From 34bc8b0aea149d96d88c5777b3dea6e122c8d9bc Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 9 Aug 2015 20:37:18 +0100 Subject: [PATCH 001/174] disallow let and modules in babel-node REPL --- packages/babel-cli/src/_babel-node.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/babel-cli/src/_babel-node.js b/packages/babel-cli/src/_babel-node.js index fe7d7fd76f..70a3325da8 100644 --- a/packages/babel-cli/src/_babel-node.js +++ b/packages/babel-cli/src/_babel-node.js @@ -38,6 +38,22 @@ babel.register({ // +var replPlugin = new babel.Plugin("repl", { + visitor: { + ModuleDeclaration() { + throw this.errorWithNode("Modules aren't supported in the REPL"); + }, + + VariableDeclaration(node) { + if (node.kind !== "var") { + throw this.errorWithNode("Only `var` variables are supported in the REPL"); + } + } + } +}); + +// + var _eval = function (code, filename) { code = code.trim(); if (!code) return undefined; @@ -47,7 +63,8 @@ var _eval = function (code, filename) { blacklist: program.blacklist, whitelist: program.whitelist, optional: program.optional, - stage: program.stage + stage: program.stage, + plugins: [replPlugin] }).code; return vm.runInThisContext(code, { From 4c71038bceda31b1ddda4962ce3622665901eb5e Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 10 Aug 2015 13:04:08 +0100 Subject: [PATCH 002/174] fix export default function expression disambiguation - fixes #2189 --- packages/babylon/src/parser/statement.js | 43 ++++--- .../actual.js | 2 + .../expected.json | 115 ++++++++++++++++++ .../options.json | 3 - .../options.json | 0 5 files changed, 146 insertions(+), 17 deletions(-) create mode 100644 packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/actual.js create mode 100644 packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/options.json rename packages/babylon/test/fixtures/harmony/modules/{export-default-function-declaration => }/options.json (100%) diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 18482415f8..8a6744f8c0 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -483,11 +483,15 @@ pp.parseVarHead = function (decl) { // Parse a function declaration or literal (depending on the // `isStatement` parameter). -pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync) { +pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) { this.initFunction(node, isAsync); node.generator = this.eat(tt.star); - if (isStatement || this.match(tt.name)) { + if (isStatement && !optionalId && !this.match(tt.name)) { + this.unexpected(); + } + + if (this.match(tt.name)) { node.id = this.parseIdent(); } @@ -504,9 +508,9 @@ pp.parseFunctionParams = function (node) { // Parse a class declaration or literal (depending on the // `isStatement` parameter). -pp.parseClass = function (node, isStatement) { +pp.parseClass = function (node, isStatement, optionalId) { this.next(); - this.parseClassId(node, isStatement); + this.parseClassId(node, isStatement, optionalId); this.parseClassSuper(node); var classBody = this.startNode(); let hadConstructor = false; @@ -607,8 +611,16 @@ pp.parseClassMethod = function (classBody, method, isGenerator, isAsync) { classBody.body.push(this.finishNode(method, "MethodDefinition")); }; -pp.parseClassId = function (node, isStatement) { - node.id = this.match(tt.name) ? this.parseIdent() : isStatement ? this.unexpected() : null; +pp.parseClassId = function (node, isStatement, optionalId) { + if (this.match(tt.name)) { + node.id = this.parseIdent(); + } else { + if (optionalId || !isStatement) { + node.id = null; + } else { + this.unexpected(); + } + } }; pp.parseClassSuper = function (node) { @@ -648,14 +660,17 @@ pp.parseExport = function (node) { } this.parseExportFrom(node, true); } else if (this.eat(tt._default)) { // export default ... - let possibleDeclaration = this.match(tt._function) || this.match(tt._class); - let expr = this.parseMaybeAssign(); - let needsSemi = true; - if (possibleDeclaration) { - needsSemi = false; - if (expr.id) { - expr.type = expr.type === "FunctionExpression" ? "FunctionDeclaration" : "ClassDeclaration"; - } + let expr = this.startNode(); + let needsSemi = false; + if (this.eat(tt._function)) { + expr = this.parseFunction(expr, true, false, false, true); + if (!expr.id) expr.type = "FunctionExpression"; + } else if (this.match(tt._class)) { + expr = this.parseClass(expr, true, true); + if (!expr.id) expr.type = "ClassExpression"; + } else { + needsSemi = true; + expr = this.parseMaybeAssign(); } node.declaration = expr; if (needsSemi) this.semicolon(); diff --git a/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/actual.js b/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/actual.js new file mode 100644 index 0000000000..1f9bc179c3 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/actual.js @@ -0,0 +1,2 @@ +export default function () {} +(foo); diff --git a/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json b/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json new file mode 100644 index 0000000000..c204457d46 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declaration": { + "type": "FunctionExpression", + "start": 15, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [] + } + } + }, + { + "type": "ExpressionStatement", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 31, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "name": "foo", + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/options.json b/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/options.json deleted file mode 100644 index 2104ca4328..0000000000 --- a/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "sourceType": "module" -} diff --git a/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration/options.json b/packages/babylon/test/fixtures/harmony/modules/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration/options.json rename to packages/babylon/test/fixtures/harmony/modules/options.json From e165e09467be9ad63b4db9192604629460c37427 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 10 Aug 2015 13:04:22 +0100 Subject: [PATCH 003/174] make Directive virtual type check more reliable --- .../src/traversal/path/lib/virtual-types.js | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/packages/babel/src/traversal/path/lib/virtual-types.js b/packages/babel/src/traversal/path/lib/virtual-types.js index 911b757ad7..1595f47d7a 100644 --- a/packages/babel/src/traversal/path/lib/virtual-types.js +++ b/packages/babel/src/traversal/path/lib/virtual-types.js @@ -117,7 +117,7 @@ export var Var = { export var DirectiveLiteral = { types: ["Literal"], checkPath(path) { - return path.isLiteral() && path.parentPath.isExpressionStatement(); + return path.parentPath.isDirective(); } }; @@ -127,8 +127,22 @@ export var DirectiveLiteral = { export var Directive = { types: ["ExpressionStatement"], - checkPath(path) { - return path.get("expression").isLiteral(); + checkPath({ inList, container, key }) { + // needs to be in a statement list + if (!inList) return false; + + // get the last directive node in this list + var lastDirective = -1; + for (var i = 0; i < container.length; i++) { + var node = container[i]; + if (t.isExpressionStatement(node) && t.isLiteral(node.expression)) { + lastDirective = i; + } else { + break; + } + } + + return key <= lastDirective; } }; From 2afad4b7e917b0a3916421613421ca23768f21c9 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 10 Aug 2015 13:10:32 +0100 Subject: [PATCH 004/174] forward all arguments to parseClassId in flow parser plugin --- packages/babylon/src/plugins/flow.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babylon/src/plugins/flow.js b/packages/babylon/src/plugins/flow.js index 718f0f4921..07c68d55c6 100644 --- a/packages/babylon/src/plugins/flow.js +++ b/packages/babylon/src/plugins/flow.js @@ -703,8 +703,8 @@ export default function (instance) { }); instance.extend("parseClassId", function (inner) { - return function (node, isStatement) { - inner.call(this, node, isStatement); + return function (node) { + inner.apply(this, arguments); if (this.isRelational("<")) { node.typeParameters = this.flowParseTypeParameterDeclaration(); } From 415d1271b985f7e251df451b5e9cc00c1abeca07 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 11 Aug 2015 00:59:15 +0100 Subject: [PATCH 005/174] add esprima tests and fix bugs picked up by it --- packages/babel/src/util.js | 11 +- .../es6.classes/bare-super/actual.js | 5 - .../es6.classes/bare-super/options.json | 3 - packages/babylon/src/options.js | 5 - packages/babylon/src/parser/expression.js | 160 +++-- packages/babylon/src/parser/lval.js | 19 +- packages/babylon/src/parser/statement.js | 89 ++- packages/babylon/src/parser/util.js | 17 + packages/babylon/src/plugins/flow.js | 64 +- .../core/uncategorised/484/expected.json | 117 ++++ .../core/uncategorised/485/expected.json | 117 ++++ .../core/uncategorised/488/expected.json | 149 +++++ .../core/uncategorised/489/expected.json | 149 +++++ .../core/uncategorised/491/expected.json | 149 +++++ .../core/uncategorised/495/expected.json | 134 +++++ .../core/uncategorised/496/expected.json | 134 +++++ .../core/uncategorised/511/expected.json | 134 +++++ .../core/uncategorised/512/expected.json | 117 ++++ .../core/uncategorised/515/expected.json | 134 +++++ .../core/uncategorised/516/expected.json | 134 +++++ .../core/uncategorised/520/expected.json | 150 +++++ .../core/uncategorised/521/expected.json | 150 +++++ .../core/uncategorised/536/expected.json | 83 +++ .../babylon/test/fixtures/esprima/LICENSE | 21 + .../migrated_0000/actual.js | 2 + .../migrated_0000/expected.json | 129 ++++ .../migrated_0001/actual.js | 2 + .../migrated_0001/expected.json | 129 ++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 129 ++++ .../migrated_0003/actual.js | 2 + .../migrated_0003/expected.json | 197 ++++++ .../migrated_0004/actual.js | 2 + .../migrated_0004/expected.json | 130 ++++ .../migrated_0005/actual.js | 2 + .../migrated_0005/expected.json | 198 ++++++ .../migrated_0006/actual.js | 2 + .../migrated_0006/expected.json | 198 ++++++ .../migrated_0007/actual.js | 2 + .../migrated_0007/expected.json | 130 ++++ .../migrated_0008/actual.js | 2 + .../migrated_0008/expected.json | 198 ++++++ .../migrated_0009/actual.js | 2 + .../migrated_0009/expected.json | 198 ++++++ .../migrated_0010/actual.js | 2 + .../migrated_0010/expected.json | 132 ++++ .../migrated_0011/actual.js | 2 + .../migrated_0011/expected.json | 200 ++++++ .../migrated_0012/actual.js | 2 + .../migrated_0012/expected.json | 200 ++++++ .../migrated_0013/actual.js | 2 + .../migrated_0013/expected.json | 112 ++++ .../migrated_0014/actual.js | 2 + .../migrated_0014/expected.json | 181 ++++++ .../migrated_0015/actual.js | 2 + .../migrated_0015/expected.json | 181 ++++++ .../declaration-const/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 100 +++ .../declaration-const/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 117 ++++ .../declaration-const/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 215 +++++++ .../declaration-function/dupe-param/actual.js | 1 + .../empty-param/actual.js | 1 + .../empty-param/expected.json | 150 +++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 131 ++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 83 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 83 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 116 ++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 132 ++++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 168 ++++++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 148 +++++ .../migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 164 +++++ .../migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 165 +++++ .../migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 132 ++++ .../migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 132 ++++ .../migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 180 ++++++ .../migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 84 +++ .../migrated_0013/actual.js | 1 + .../migrated_0013/expected.json | 100 +++ .../migrated_0014/actual.js | 1 + .../migrated_0014/expected.json | 151 +++++ .../declaration-let/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 83 +++ .../declaration-let/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 100 +++ .../declaration-let/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 117 ++++ .../declaration-let/migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 215 +++++++ .../directive-prolog/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 180 ++++++ .../directive-prolog/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 180 ++++++ .../array-binding-pattern-01/actual.js | 1 + .../array-binding-pattern-01/expected.json | 136 +++++ .../array-binding-pattern-02/actual.js | 1 + .../array-binding-pattern-02/expected.json | 135 +++++ .../array-binding-pattern-03/actual.js | 1 + .../array-binding-pattern-03/expected.json | 150 +++++ .../array-binding-pattern-empty/actual.js | 1 + .../array-binding-pattern-empty/expected.json | 102 ++++ .../elision/actual.js | 1 + .../elision/expected.json | 105 ++++ .../invalid-dup-param/actual.js | 1 + .../invalid-dup-param/expected.json | 183 ++++++ .../invalid-dup-param/options.json | 3 + .../invalid-elision-after-rest/actual.js | 1 + .../invalid-elision-after-rest/expected.json | 150 +++++ .../invalid-elision-after-rest/options.json | 3 + .../dupe-param-1/actual.js | 2 + .../dupe-param-2/actual.js | 2 + .../dupe-param-3/actual.js | 2 + .../es2015-array-pattern/elision/actual.js | 1 + .../elision/expected.json | 117 ++++ .../empty-pattern-catch-param/actual.js | 1 + .../empty-pattern-catch-param/expected.json | 113 ++++ .../empty-pattern-fn/actual.js | 1 + .../empty-pattern-fn/expected.json | 100 +++ .../empty-pattern-lexical/actual.js | 1 + .../empty-pattern-lexical/expected.json | 98 +++ .../empty-pattern-var/actual.js | 1 + .../empty-pattern-var/expected.json | 100 +++ .../es2015-array-pattern/hole/actual.js | 1 + .../es2015-array-pattern/hole/expected.json | 134 +++++ .../nested-pattern/actual.js | 1 + .../nested-pattern/expected.json | 117 ++++ .../patterned-catch-dupe/actual.js | 1 + .../patterned-catch-dupe/expected.json | 146 +++++ .../patterned-catch-dupe/options.json | 3 + .../patterned-catch/actual.js | 1 + .../patterned-catch/expected.json | 464 ++++++++++++++ .../es2015-array-pattern/rest/actual.js | 1 + .../es2015-array-pattern/rest/expected.json | 132 ++++ .../es2015-array-pattern/rest/options.json | 3 + .../tailing-hold/actual.js | 1 + .../tailing-hold/expected.json | 118 ++++ .../with-default-catch-param-fail/actual.js | 1 + .../options.json | 3 + .../with-default-catch-param/actual.js | 1 + .../with-default-catch-param/expected.json | 163 +++++ .../with-default-fn/actual.js | 1 + .../with-default-fn/expected.json | 150 +++++ .../with-object-pattern/actual.js | 1 + .../with-object-pattern/expected.json | 169 ++++++ .../arrow-rest-forgetting-comma/actual.js | 1 + .../arrow-rest-forgetting-comma/options.json | 3 + .../actual.js | 1 + .../expected.json | 149 +++++ .../arrow-with-multiple-rest/actual.js | 1 + .../arrow-with-multiple-rest/options.json | 3 + .../arrow-with-only-rest/actual.js | 1 + .../arrow-with-only-rest/expected.json | 117 ++++ .../actual.js | 1 + .../options.json | 3 + .../invalid-duplicated-params/actual.js | 1 + .../invalid-duplicated-params/options.json | 3 + .../invalid-line-terminator-arrow/actual.js | 2 + .../options.json | 3 + .../invalid-param-strict-mode/actual.js | 1 + .../invalid-param-strict-mode/expected.json | 134 +++++ .../invalid-param-strict-mode/options.json | 3 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 85 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 102 ++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 102 ++++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 118 ++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 134 +++++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 155 +++++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 165 +++++ .../migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 150 +++++ .../migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 165 +++++ .../migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 102 ++++ .../migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 102 ++++ .../migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 102 ++++ .../migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 118 ++++ .../migrated_0013/actual.js | 1 + .../migrated_0013/expected.json | 135 +++++ .../migrated_0014/actual.js | 1 + .../migrated_0014/expected.json | 151 +++++ .../migrated_0015/actual.js | 1 + .../migrated_0015/expected.json | 101 ++++ .../migrated_0016/actual.js | 1 + .../migrated_0016/expected.json | 138 +++++ .../migrated_0017/actual.js | 1 + .../migrated_0017/expected.json | 203 +++++++ .../migrated_0018/actual.js | 1 + .../migrated_0018/expected.json | 116 ++++ .../migrated_0019/actual.js | 1 + .../migrated_0019/expected.json | 149 +++++ .../migrated_0020/actual.js | 1 + .../migrated_0020/expected.json | 100 +++ .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../object-binding-pattern/expected.json | 32 + .../invalid-member-expr.failure.json | 1 + .../invalid-member-expr.js | 1 + .../invalid-method-in-pattern.failure.json | 1 + .../invalid-method-in-pattern.js | 1 + .../invalid-nested-param.failure.json | 1 + .../invalid-nested-param.js | 1 + ...d-pattern-without-parenthesis.failure.json | 1 + .../invalid-pattern-without-parenthesis.js | 1 + ...nvalid-rest-in-object-pattern.failure.json | 1 + .../invalid-rest-in-object-pattern.js | 1 + .../nested-cover-grammar.js | 1 + .../object-binding-pattern-01.js | 1 + .../object-binding-pattern-empty.js | 1 + .../param-with-rest-without-arrow/actual.js | 1 + .../options.json | 3 + .../rest-without-arrow/actual.js | 1 + .../rest-without-arrow/options.json | 3 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 66 ++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 66 ++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 66 ++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 66 ++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 66 ++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 66 ++ .../es2015-class/migrated_0000/actual.js | 1 + .../es2015-class/migrated_0000/expected.json | 81 +++ .../es2015-class/migrated_0001/actual.js | 1 + .../es2015-class/migrated_0001/expected.json | 98 +++ .../es2015-class/migrated_0002/actual.js | 1 + .../es2015-class/migrated_0002/expected.json | 81 +++ .../es2015-class/migrated_0003/actual.js | 1 + .../es2015-class/migrated_0003/expected.json | 81 +++ .../es2015-class/migrated_0004/actual.js | 1 + .../es2015-class/migrated_0004/expected.json | 151 +++++ .../es2015-class/migrated_0005/actual.js | 1 + .../es2015-class/migrated_0005/expected.json | 220 +++++++ .../es2015-class/migrated_0006/actual.js | 1 + .../es2015-class/migrated_0006/expected.json | 220 +++++++ .../es2015-class/migrated_0007/actual.js | 1 + .../es2015-class/migrated_0007/expected.json | 220 +++++++ .../es2015-class/migrated_0008/actual.js | 1 + .../es2015-class/migrated_0008/expected.json | 220 +++++++ .../es2015-class/migrated_0009/actual.js | 1 + .../es2015-class/migrated_0009/expected.json | 151 +++++ .../es2015-class/migrated_0010/actual.js | 1 + .../es2015-class/migrated_0010/expected.json | 237 ++++++++ .../es2015-class/migrated_0011/actual.js | 1 + .../es2015-class/migrated_0011/expected.json | 306 ++++++++++ .../es2015-class/migrated_0012/actual.js | 1 + .../es2015-class/migrated_0012/expected.json | 151 +++++ .../es2015-class/migrated_0013/actual.js | 1 + .../es2015-class/migrated_0013/expected.json | 151 +++++ .../es2015-class/migrated_0014/actual.js | 1 + .../es2015-class/migrated_0014/expected.json | 220 +++++++ .../es2015-class/migrated_0015/actual.js | 1 + .../es2015-class/migrated_0015/expected.json | 151 +++++ .../es2015-class/migrated_0016/actual.js | 1 + .../es2015-class/migrated_0016/expected.json | 147 +++++ .../es2015-class/migrated_0017/actual.js | 1 + .../es2015-class/migrated_0017/expected.json | 151 +++++ .../es2015-class/migrated_0018/actual.js | 1 + .../es2015-class/migrated_0018/expected.json | 151 +++++ .../es2015-class/migrated_0019/actual.js | 1 + .../es2015-class/migrated_0019/expected.json | 224 +++++++ .../es2015-class/migrated_0020/actual.js | 1 + .../es2015-class/migrated_0020/expected.json | 220 +++++++ .../es2015-class/migrated_0021/actual.js | 1 + .../es2015-class/migrated_0021/expected.json | 153 +++++ .../es2015-class/migrated_0022/actual.js | 1 + .../es2015-class/migrated_0022/expected.json | 82 +++ .../es2015-class/migrated_0023/actual.js | 1 + .../es2015-class/migrated_0023/expected.json | 97 +++ .../es2015-class/migrated_0024/actual.js | 1 + .../es2015-class/migrated_0024/expected.json | 99 +++ .../es2015-class/migrated_0025/actual.js | 1 + .../es2015-class/migrated_0025/expected.json | 114 ++++ .../es2015-class/migrated_0026/actual.js | 1 + .../es2015-class/migrated_0026/expected.json | 168 ++++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 165 +++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 133 ++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 217 +++++++ .../dup-assignment/actual.js | 1 + .../dup-assignment/expected.json | 163 +++++ .../elision/actual.js | 1 + .../elision/expected.json | 101 ++++ .../member-expr-in-rest/actual.js | 1 + .../member-expr-in-rest/expected.json | 164 +++++ .../nested-assignment/actual.js | 1 + .../nested-assignment/expected.json | 293 +++++++++ .../nested-cover-grammar/actual.js | 1 + .../nested-cover-grammar/expected.json | 198 ++++++ .../simple-assignment/actual.js | 1 + .../simple-assignment/expected.json | 115 ++++ .../empty-object-pattern-assignment/actual.js | 1 + .../expected.json | 99 +++ .../invalid-lhs-01/actual.js | 1 + .../invalid-lhs-01/options.json | 3 + .../invalid-lhs-02/actual.js | 1 + .../invalid-lhs-02/options.json | 3 + .../invalid-pattern-with-method/actual.js | 1 + .../invalid-pattern-with-method/options.json | 3 + .../nested-cover-grammar/actual.js | 1 + .../nested-cover-grammar/expected.json | 555 +++++++++++++++++ .../object-pattern-assignment/actual.js | 8 + .../object-pattern-assignment/expected.json | 568 ++++++++++++++++++ .../invalid-cover-grammar/actual.js | 1 + .../invalid-cover-grammar/options.json | 3 + .../invalid-group-assignment/actual.js | 1 + .../invalid-group-assignment/options.json | 3 + .../export-const-number/actual.js | 1 + .../export-const-number/expected.json | 117 ++++ .../export-default-array/actual.js | 1 + .../export-default-array/expected.json | 64 ++ .../export-default-class/actual.js | 1 + .../export-default-class/expected.json | 81 +++ .../export-default-expression/actual.js | 1 + .../export-default-expression/expected.json | 101 ++++ .../export-default-function/actual.js | 1 + .../export-default-function/expected.json | 83 +++ .../export-default-named-function/actual.js | 1 + .../expected.json | 98 +++ .../export-default-number/actual.js | 1 + .../export-default-number/expected.json | 66 ++ .../export-default-object/actual.js | 1 + .../export-default-object/expected.json | 118 ++++ .../export-default-value/actual.js | 1 + .../export-default-value/expected.json | 64 ++ .../export-from-batch/actual.js | 1 + .../export-from-batch/expected.json | 66 ++ .../export-from-default/actual.js | 1 + .../export-from-default/expected.json | 116 ++++ .../export-from-named-as-default/actual.js | 1 + .../expected.json | 116 ++++ .../export-from-named-as-specifier/actual.js | 1 + .../expected.json | 116 ++++ .../export-from-named-as-specifiers/actual.js | 1 + .../expected.json | 163 +++++ .../export-from-specifier/actual.js | 1 + .../export-from-specifier/expected.json | 116 ++++ .../export-from-specifiers/actual.js | 1 + .../export-from-specifiers/expected.json | 163 +++++ .../export-function-declaration/actual.js | 1 + .../export-function-declaration/expected.json | 133 ++++ .../export-function/actual.js | 1 + .../export-function/expected.json | 100 +++ .../export-let-number/actual.js | 1 + .../export-let-number/expected.json | 117 ++++ .../export-named-as-default/actual.js | 1 + .../export-named-as-default/expected.json | 99 +++ .../export-named-as-specifier/actual.js | 1 + .../export-named-as-specifier/expected.json | 99 +++ .../export-named-as-specifiers/actual.js | 1 + .../export-named-as-specifiers/expected.json | 146 +++++ .../export-named-empty/actual.js | 1 + .../export-named-empty/expected.json | 51 ++ .../export-named-specifier/actual.js | 1 + .../export-named-specifier/expected.json | 99 +++ .../export-named-specifiers-comma/actual.js | 1 + .../expected.json | 146 +++++ .../export-named-specifiers/actual.js | 1 + .../export-named-specifiers/expected.json | 146 +++++ .../export-var-anonymous-function/actual.js | 1 + .../expected.json | 134 +++++ .../export-var-number/actual.js | 1 + .../export-var-number/expected.json | 117 ++++ .../export-var/actual.js | 1 + .../export-var/expected.json | 100 +++ .../actual.js | 1 + .../options.json | 3 + .../invalid-export-batch-token/actual.js | 1 + .../invalid-export-batch-token/options.json | 3 + .../invalid-export-default-equal/actual.js | 1 + .../invalid-export-default-equal/options.json | 3 + .../invalid-export-default-token/actual.js | 1 + .../invalid-export-default-token/options.json | 3 + .../invalid-export-default/actual.js | 1 + .../invalid-export-default/options.json | 3 + .../invalid-export-named-default/actual.js | 1 + .../invalid-export-named-default/options.json | 3 + .../es2015-export-declaration/options.json | 3 + .../for-of-array-pattern-let/actual.js | 1 + .../for-of-array-pattern-let/expected.json | 162 +++++ .../for-of-array-pattern/actual.js | 1 + .../for-of-array-pattern/expected.json | 128 ++++ .../for-of-object-pattern-const/actual.js | 1 + .../for-of-object-pattern-const/expected.json | 232 +++++++ .../for-of-object-pattern/actual.js | 1 + .../for-of-object-pattern/expected.json | 198 ++++++ .../es2015-for-of/for-of-with-const/actual.js | 1 + .../for-of-with-const/expected.json | 129 ++++ .../es2015-for-of/for-of-with-let/actual.js | 1 + .../for-of-with-let/expected.json | 129 ++++ .../es2015-for-of/for-of-with-var/actual.js | 1 + .../for-of-with-var/expected.json | 129 ++++ .../esprima/es2015-for-of/for-of/actual.js | 1 + .../es2015-for-of/for-of/expected.json | 95 +++ .../invalid-const-init/actual.js | 1 + .../invalid-const-init/options.json | 3 + .../es2015-for-of/invalid-let-init/actual.js | 1 + .../invalid-let-init/options.json | 3 + .../es2015-for-of/invalid-lhs-init/actual.js | 1 + .../invalid-lhs-init/options.json | 3 + .../es2015-for-of/invalid-var-init/actual.js | 1 + .../invalid-var-init/expected.json | 146 +++++ .../invalid-var-init/options.json | 3 + .../esprima/es2015-for-of/let-of-of/actual.js | 1 + .../es2015-for-of/let-of-of/expected.json | 129 ++++ .../es2015-for-of/unexpected-number/actual.js | 1 + .../unexpected-number/options.json | 3 + .../actual.js | 1 + .../expected.json | 132 ++++ .../actual.js | 1 + .../expected.json | 133 ++++ .../actual.js | 1 + .../expected.json | 133 ++++ .../generator-declaration/actual.js | 1 + .../generator-declaration/expected.json | 83 +++ .../generator-expression-rest-param/actual.js | 1 + .../expected.json | 116 ++++ .../actual.js | 1 + .../expected.json | 133 ++++ .../actual.js | 1 + .../expected.json | 181 ++++++ .../generator-expression-with-yield/actual.js | 1 + .../expected.json | 134 +++++ .../generator-expression/actual.js | 1 + .../generator-expression/expected.json | 84 +++ .../actual.js | 3 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../generator-method-with-params/actual.js | 1 + .../expected.json | 185 ++++++ .../actual.js | 1 + .../expected.json | 186 ++++++ .../actual.js | 1 + .../expected.json | 186 ++++++ .../actual.js | 4 + .../expected.json | 202 +++++++ .../generator-method-with-yield/actual.js | 1 + .../generator-method-with-yield/expected.json | 169 ++++++ .../generator-method/actual.js | 1 + .../generator-method/expected.json | 136 +++++ .../actual.js | 3 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 3 + .../options.json | 3 + .../actual.js | 3 + .../options.json | 3 + .../actual.js | 3 + .../options.json | 3 + .../actual.js | 3 + .../options.json | 3 + .../actual.js | 3 + .../options.json | 3 + .../incomplete-yield-delegate/actual.js | 1 + .../incomplete-yield-delegate/options.json | 3 + .../malformed-generator-method-2/actual.js | 1 + .../malformed-generator-method-2/options.json | 3 + .../malformed-generator-method/actual.js | 1 + .../malformed-generator-method/options.json | 3 + .../actual.js | 1 + .../expected.json | 151 +++++ .../static-generator-method/actual.js | 1 + .../static-generator-method/expected.json | 151 +++++ .../dakuten_handakuten/actual.js | 1 + .../dakuten_handakuten/expected.json | 96 +++ .../es2015-identifier/escaped_all/actual.js | 1 + .../escaped_all/expected.json | 83 +++ .../escaped_math_alef/actual.js | 1 + .../escaped_math_alef/expected.json | 83 +++ .../escaped_math_dal_part/actual.js | 1 + .../escaped_math_dal_part/expected.json | 83 +++ .../escaped_math_kaf_lam/actual.js | 1 + .../escaped_math_kaf_lam/expected.json | 83 +++ .../escaped_math_zain_start/actual.js | 1 + .../escaped_math_zain_start/expected.json | 83 +++ .../es2015-identifier/escaped_part/actual.js | 1 + .../escaped_part/expected.json | 83 +++ .../es2015-identifier/escaped_start/actual.js | 1 + .../escaped_start/expected.json | 83 +++ .../es2015-identifier/estimated/actual.js | 1 + .../es2015-identifier/estimated/expected.json | 83 +++ .../ethiopic_digits/actual.js | 1 + .../ethiopic_digits/expected.json | 83 +++ .../invalid_escaped_surrogate_pairs/actual.js | 1 + .../options.json | 3 + .../invalid_expression_await/actual.js | 1 + .../invalid_expression_await/options.json | 3 + .../invalid_function_wait/actual.js | 1 + .../invalid_function_wait/expected.json | 83 +++ .../invalid_function_wait/options.json | 3 + .../invalid_id_smp/actual.js | 1 + .../invalid_id_smp/options.json | 3 + .../invalid_lone_surrogate/actual.js | 1 + .../invalid_lone_surrogate/expected.json | 100 +++ .../invalid_lone_surrogate/options.json | 3 + .../invalid_var_await/actual.js | 1 + .../invalid_var_await/options.json | 3 + .../es2015-identifier/math_alef/actual.js | 1 + .../es2015-identifier/math_alef/expected.json | 83 +++ .../es2015-identifier/math_dal_part/actual.js | 1 + .../math_dal_part/expected.json | 83 +++ .../es2015-identifier/math_kaf_lam/actual.js | 1 + .../math_kaf_lam/expected.json | 83 +++ .../math_zain_start/actual.js | 1 + .../math_zain_start/expected.json | 83 +++ .../es2015-identifier/module_await/actual.js | 1 + .../module_await/expected.json | 98 +++ .../es2015-identifier/valid_await/actual.js | 1 + .../valid_await/expected.json | 115 ++++ .../es2015-identifier/weierstrass/actual.js | 1 + .../weierstrass/expected.json | 83 +++ .../weierstrass_weierstrass/actual.js | 1 + .../weierstrass_weierstrass/expected.json | 83 +++ .../actual.js | 1 + .../expected.json | 146 +++++ .../actual.js | 1 + .../expected.json | 130 ++++ .../import-default-as/actual.js | 1 + .../import-default-as/expected.json | 115 ++++ .../import-default/actual.js | 1 + .../import-default/expected.json | 99 +++ .../import-jquery/actual.js | 1 + .../import-jquery/expected.json | 99 +++ .../import-module/actual.js | 1 + .../import-module/expected.json | 67 +++ .../import-named-as-specifier/actual.js | 1 + .../import-named-as-specifier/expected.json | 115 ++++ .../import-named-as-specifiers/actual.js | 1 + .../import-named-as-specifiers/expected.json | 162 +++++ .../import-named-empty/actual.js | 1 + .../import-named-empty/expected.json | 67 +++ .../import-named-specifier/actual.js | 1 + .../import-named-specifier/expected.json | 115 ++++ .../import-named-specifiers-comma/actual.js | 1 + .../expected.json | 162 +++++ .../import-named-specifiers/actual.js | 1 + .../import-named-specifiers/expected.json | 162 +++++ .../import-namespace-specifier/actual.js | 1 + .../import-namespace-specifier/expected.json | 99 +++ .../import-null-as-nil/actual.js | 1 + .../import-null-as-nil/expected.json | 115 ++++ .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../invalid-import-default/actual.js | 1 + .../invalid-import-default/options.json | 3 + .../invalid-import-missing-comma/actual.js | 1 + .../invalid-import-missing-comma/options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../invalid-import-module-specifier/actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../invalid-import-specifiers/actual.js | 1 + .../invalid-import-specifiers/options.json | 3 + .../es2015-import-declaration/options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../invalid_const_forin/actual.js | 1 + .../invalid_const_forin/options.json | 3 + .../invalid_let_forin/actual.js | 1 + .../invalid_let_forin/options.json | 3 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 184 ++++++ .../assign-new-target/actual.js | 3 + .../assign-new-target/expected.json | 180 ++++++ .../invalid-dots/actual.js | 1 + .../invalid-dots/options.json | 3 + .../invalid-new-target/actual.js | 1 + .../invalid-new-target/expected.json | 129 ++++ .../invalid-new-target/options.json | 3 + .../new-new-target/actual.js | 3 + .../new-new-target/expected.json | 162 +++++ .../new-target-declaration/actual.js | 3 + .../new-target-declaration/expected.json | 146 +++++ .../new-target-expression/actual.js | 1 + .../new-target-expression/expected.json | 180 ++++++ .../new-target-invoke/actual.js | 3 + .../new-target-invoke/expected.json | 162 +++++ .../new-target-precedence/actual.js | 3 + .../new-target-precedence/expected.json | 178 ++++++ .../unknown-property/actual.js | 1 + .../unknown-property/options.json | 3 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 167 +++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 184 ++++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 169 ++++++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 167 +++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 167 +++++ .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 170 ++++++ .../options.json | 3 + .../invalid-proto-identifiers/actual.js | 1 + .../invalid-proto-identifiers/options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../invalid-proto-literal-shorthand/actual.js | 1 + .../expected.json | 172 ++++++ .../options.json | 3 + .../invalid-proto-literals/actual.js | 1 + .../invalid-proto-literals/options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 170 ++++++ .../options.json | 3 + .../invalid-proto-shorthand-literal/actual.js | 1 + .../expected.json | 172 ++++++ .../options.json | 3 + .../invalid-proto-shorthands/actual.js | 1 + .../invalid-proto-shorthands/expected.json | 168 ++++++ .../invalid-proto-shorthands/options.json | 3 + .../proto-identifier-getter-setter/actual.js | 1 + .../expected.json | 276 +++++++++ .../proto-identifier-getter/actual.js | 1 + .../proto-identifier-getter/expected.json | 189 ++++++ .../proto-identifier-method/actual.js | 1 + .../proto-identifier-method/expected.json | 189 ++++++ .../proto-identifier-setter/actual.js | 1 + .../proto-identifier-setter/expected.json | 206 +++++++ .../proto-literal-getter-setter/actual.js | 1 + .../proto-literal-getter-setter/expected.json | 278 +++++++++ .../proto-literal-getter/actual.js | 1 + .../proto-literal-getter/expected.json | 191 ++++++ .../proto-literal-method/actual.js | 1 + .../proto-literal-method/expected.json | 191 ++++++ .../proto-literal-setter/actual.js | 1 + .../proto-literal-setter/expected.json | 208 +++++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 199 ++++++ .../es2015-object-pattern/elision/actual.js | 1 + .../elision/expected.json | 152 +++++ .../empty-catch-param/actual.js | 1 + .../empty-catch-param/expected.json | 113 ++++ .../es2015-object-pattern/empty-fn/actual.js | 1 + .../empty-fn/expected.json | 100 +++ .../empty-for-lex/actual.js | 1 + .../empty-for-lex/expected.json | 131 ++++ .../empty-lexical/actual.js | 1 + .../empty-lexical/expected.json | 100 +++ .../es2015-object-pattern/empty-var/actual.js | 1 + .../empty-var/expected.json | 100 +++ .../es2015-object-pattern/nested/actual.js | 1 + .../nested/expected.json | 152 +++++ .../properties/actual.js | 1 + .../properties/expected.json | 439 ++++++++++++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 66 ++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 66 ++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 150 +++++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 66 ++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 66 ++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 66 ++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 150 +++++ .../function-declaration/actual.js | 1 + .../function-declaration/expected.json | 131 ++++ .../function-expression/actual.js | 1 + .../function-expression/expected.json | 163 +++++ .../object-method/actual.js | 1 + .../object-method/expected.json | 215 +++++++ .../object-shorthand-method/actual.js | 1 + .../object-shorthand-method/expected.json | 199 ++++++ .../call-multi-spread/actual.js | 1 + .../call-multi-spread/expected.json | 174 ++++++ .../call-spread-default/actual.js | 1 + .../call-spread-default/expected.json | 160 +++++ .../call-spread-first/actual.js | 1 + .../call-spread-first/expected.json | 144 +++++ .../call-spread-number/actual.js | 1 + .../call-spread-number/expected.json | 114 ++++ .../call-spread/actual.js | 1 + .../call-spread/expected.json | 112 ++++ .../invalid-call-dot-dot/actual.js | 1 + .../invalid-call-dot-dot/options.json | 3 + .../invalid-call-dots/actual.js | 1 + .../invalid-call-dots/options.json | 3 + .../invalid-call-spreads/actual.js | 1 + .../invalid-call-spreads/options.json | 3 + .../invalid-new-dot-dot/actual.js | 1 + .../invalid-new-dot-dot/options.json | 3 + .../invalid-new-dots/actual.js | 1 + .../invalid-new-dots/options.json | 3 + .../invalid-new-spreads/actual.js | 1 + .../invalid-new-spreads/options.json | 3 + .../new-multi-spread/actual.js | 1 + .../new-multi-spread/expected.json | 174 ++++++ .../new-spread-default/actual.js | 1 + .../new-spread-default/expected.json | 160 +++++ .../new-spread-first/actual.js | 1 + .../new-spread-first/expected.json | 144 +++++ .../new-spread-number/actual.js | 1 + .../new-spread-number/expected.json | 114 ++++ .../new-spread/actual.js | 1 + .../new-spread/expected.json | 112 ++++ .../arrow_super/actual.js | 5 + .../arrow_super/expected.json | 232 +++++++ .../constructor_super/actual.js | 5 + .../constructor_super/expected.json | 213 +++++++ .../invalid_super_access/actual.js | 5 + .../invalid_super_access/options.json | 3 + .../invalid_super_id/actual.js | 3 + .../invalid_super_id/expected.json | 232 +++++++ .../invalid_super_id/options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../es2015-super-property/new_super/actual.js | 5 + .../new_super/expected.json | 245 ++++++++ .../super_computed/actual.js | 5 + .../super_computed/expected.json | 231 +++++++ .../super_member/actual.js | 5 + .../super_member/expected.json | 229 +++++++ .../after-switch/actual.js | 1 + .../after-switch/options.json | 3 + .../dollar-sign/actual.js | 1 + .../dollar-sign/expected.json | 86 +++ .../escape-sequences/actual.js | 1 + .../escape-sequences/expected.json | 100 +++ .../invalid-escape/actual.js | 1 + .../invalid-escape/options.json | 3 + .../line-terminators/actual.js | 1 + .../line-terminators/expected.json | 100 +++ .../literal-escape-sequences/actual.js | 1 + .../literal-escape-sequences/expected.json | 100 +++ .../new-expression/actual.js | 1 + .../new-expression/expected.json | 133 ++++ .../octal-literal/actual.js | 1 + .../octal-literal/expected.json | 86 +++ .../octal-literal/options.json | 3 + .../strict-octal-literal/actual.js | 1 + .../strict-octal-literal/expected.json | 119 ++++ .../strict-octal-literal/options.json | 3 + .../tagged-interpolation/actual.js | 1 + .../tagged-interpolation/expected.json | 154 +++++ .../actual.js | 1 + .../expected.json | 267 ++++++++ .../es2015-template-literals/tagged/actual.js | 1 + .../tagged/expected.json | 117 ++++ .../unclosed-interpolation/actual.js | 1 + .../unclosed-interpolation/options.json | 3 + .../unclosed-nested/actual.js | 1 + .../unclosed-nested/options.json | 3 + .../unclosed/actual.js | 1 + .../unclosed/options.json | 3 + .../untagged/actual.js | 1 + .../untagged/expected.json | 86 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 100 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 100 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 100 +++ .../invalid-yield-binding-property/actual.js | 1 + .../options.json | 3 + .../invalid-yield-expression/actual.js | 1 + .../invalid-yield-expression/options.json | 3 + .../actual.js | 1 + .../expected.json | 200 ++++++ .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../invalid-yield-generator-catch/actual.js | 1 + .../expected.json | 164 +++++ .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 99 +++ .../options.json | 3 + .../actual.js | 1 + .../expected.json | 101 ++++ .../options.json | 3 + .../actual.js | 1 + .../expected.json | 132 ++++ .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 100 +++ .../options.json | 3 + .../invalid-yield-generator-rest/actual.js | 1 + .../expected.json | 163 +++++ .../invalid-yield-generator-rest/options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 134 +++++ .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 164 +++++ .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../expected.json | 117 ++++ .../options.json | 3 + .../actual.js | 1 + .../expected.json | 133 ++++ .../options.json | 3 + .../invalid-yield-strict-identifier/actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../actual.js | 1 + .../options.json | 3 + .../yield-array-pattern/actual.js | 1 + .../yield-array-pattern/expected.json | 114 ++++ .../yield-arrow-concise-body/actual.js | 1 + .../yield-arrow-concise-body/expected.json | 132 ++++ .../yield-arrow-function-body/actual.js | 1 + .../yield-arrow-function-body/expected.json | 164 +++++ .../yield-arrow-parameter-default/actual.js | 1 + .../expected.json | 131 ++++ .../yield-arrow-parameter-name/actual.js | 1 + .../yield-arrow-parameter-name/expected.json | 102 ++++ .../yield-binding-element/actual.js | 1 + .../yield-binding-element/expected.json | 150 +++++ .../yield-binding-property/actual.js | 1 + .../yield-binding-property/expected.json | 150 +++++ .../yield-call-expression-property/actual.js | 1 + .../expected.json | 163 +++++ .../yield-catch-parameter/actual.js | 1 + .../yield-catch-parameter/expected.json | 113 ++++ .../yield-expression-precedence/actual.js | 1 + .../yield-expression-precedence/expected.json | 260 ++++++++ .../actual.js | 1 + .../expected.json | 100 +++ .../yield-function-declaration/actual.js | 1 + .../yield-function-declaration/expected.json | 83 +++ .../actual.js | 1 + .../expected.json | 101 ++++ .../yield-function-expression/actual.js | 1 + .../yield-function-expression/expected.json | 99 +++ .../actual.js | 1 + .../expected.json | 183 ++++++ .../yield-generator-arrow-default/actual.js | 1 + .../expected.json | 183 ++++++ .../actual.js | 1 + .../expected.json | 215 +++++++ .../yield-generator-declaration/actual.js | 1 + .../yield-generator-declaration/expected.json | 83 +++ .../actual.js | 1 + .../expected.json | 131 ++++ .../actual.js | 1 + .../actual.js | 1 + .../expected.json | 185 ++++++ .../yield-generator-method/actual.js | 1 + .../yield-generator-method/expected.json | 136 +++++ .../actual.js | 1 + .../expected.json | 152 +++++ .../yield-lexical-declaration/actual.js | 1 + .../yield-lexical-declaration/expected.json | 100 +++ .../actual.js | 1 + .../expected.json | 163 +++++ .../es2015-yield/yield-method/actual.js | 1 + .../es2015-yield/yield-method/expected.json | 136 +++++ .../yield-parameter-object-pattern/actual.js | 1 + .../expected.json | 152 +++++ .../yield-rest-parameter/actual.js | 1 + .../yield-rest-parameter/expected.json | 115 ++++ .../yield-strict-binding-property/actual.js | 1 + .../expected.json | 183 ++++++ .../yield-strict-method/actual.js | 1 + .../yield-strict-method/expected.json | 169 ++++++ .../yield-super-property/actual.js | 1 + .../yield-super-property/expected.json | 229 +++++++ .../yield-variable-declaration/actual.js | 1 + .../yield-variable-declaration/expected.json | 83 +++ .../yield-yield-expression-delegate/actual.js | 1 + .../expected.json | 132 ++++ .../yield-yield-expression/actual.js | 1 + .../yield-yield-expression/expected.json | 132 ++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 100 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 98 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 98 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 98 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 98 +++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 98 +++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 98 +++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 98 +++ .../migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 98 +++ .../migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 98 +++ .../migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 98 +++ .../migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 98 +++ .../migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 98 +++ .../migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 98 +++ .../migrated_0013/actual.js | 1 + .../migrated_0013/expected.json | 98 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 96 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 128 ++++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 128 ++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 128 ++++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 128 ++++ .../expression-binary/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 128 ++++ .../expression-binary/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 128 ++++ .../expression-binary/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 128 ++++ .../expression-binary/migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 128 ++++ .../expression-binary/migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 128 ++++ .../expression-binary/migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 128 ++++ .../expression-binary/migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 128 ++++ .../expression-binary/migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 128 ++++ .../expression-binary/migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 128 ++++ .../expression-binary/migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 128 ++++ .../expression-binary/migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 128 ++++ .../expression-binary/migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 128 ++++ .../expression-binary/migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 128 ++++ .../expression-binary/migrated_0013/actual.js | 1 + .../migrated_0013/expected.json | 128 ++++ .../expression-binary/migrated_0014/actual.js | 1 + .../migrated_0014/expected.json | 128 ++++ .../expression-binary/migrated_0015/actual.js | 1 + .../migrated_0015/expected.json | 128 ++++ .../expression-binary/migrated_0016/actual.js | 1 + .../migrated_0016/expected.json | 128 ++++ .../expression-binary/migrated_0017/actual.js | 1 + .../migrated_0017/expected.json | 128 ++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 96 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 384 ++++++++++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 115 ++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 147 +++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 150 +++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 96 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 96 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 136 +++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 135 +++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 80 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 80 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 96 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 96 +++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 128 ++++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 112 ++++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 112 ++++ .../migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 129 ++++ .../migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 113 ++++ .../migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 81 +++ .../migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 96 +++ .../migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 128 ++++ .../migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 160 +++++ .../migrated_0013/actual.js | 1 + .../migrated_0013/expected.json | 129 ++++ .../migrated_0014/actual.js | 1 + .../migrated_0014/expected.json | 96 +++ .../migrated_0015/actual.js | 1 + .../migrated_0015/expected.json | 130 ++++ .../migrated_0016/actual.js | 1 + .../migrated_0016/expected.json | 131 ++++ .../migrated_0017/actual.js | 1 + .../migrated_0017/expected.json | 234 ++++++++ .../migrated_0018/actual.js | 1 + .../migrated_0018/expected.json | 195 ++++++ .../migrated_0019/actual.js | 1 + .../migrated_0019/expected.json | 96 +++ .../migrated_0020/actual.js | 1 + .../migrated_0020/expected.json | 96 +++ .../migrated_0021/actual.js | 1 + .../migrated_0021/expected.json | 96 +++ .../migrated_0022/actual.js | 1 + .../migrated_0022/expected.json | 96 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 96 +++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 81 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 81 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 81 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 81 +++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 81 +++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 81 +++ .../expression-primary/array/expected.json | 32 + .../expression-primary/array/migrated_0000.js | 1 + .../expression-primary/array/migrated_0001.js | 1 + .../expression-primary/array/migrated_0002.js | 1 + .../expression-primary/array/migrated_0003.js | 1 + .../expression-primary/array/migrated_0004.js | 1 + .../expression-primary/array/migrated_0005.js | 1 + .../expression-primary/array/migrated_0006.js | 1 + .../expression-primary/array/migrated_0007.js | 1 + .../array/migrated_0008.source.js | 1 + .../array/migrated_0009.source.js | 1 + .../array/migrated_0010.source.js | 1 + .../array/migrated_0011.source.js | 1 + .../array/migrated_0012.source.js | 1 + .../expression-primary/literal/expected.json | 32 + .../literal/numeric/migrated_0000.js | 1 + .../literal/numeric/migrated_0001.js | 1 + .../literal/numeric/migrated_0002.js | 1 + .../literal/numeric/migrated_0003.js | 1 + .../literal/numeric/migrated_0004.js | 1 + .../literal/numeric/migrated_0005.js | 1 + .../literal/numeric/migrated_0006.js | 1 + .../literal/numeric/migrated_0007.js | 1 + .../literal/numeric/migrated_0008.js | 1 + .../literal/numeric/migrated_0009.js | 1 + .../literal/numeric/migrated_0010.js | 1 + .../literal/numeric/migrated_0011.js | 1 + .../literal/numeric/migrated_0012.js | 1 + .../literal/numeric/migrated_0013.js | 1 + .../literal/numeric/migrated_0014.js | 1 + .../literal/numeric/migrated_0015.js | 1 + .../literal/numeric/migrated_0016.js | 1 + .../literal/numeric/migrated_0017.js | 1 + .../literal/numeric/migrated_0018.js | 1 + .../literal/numeric/migrated_0019.js | 1 + .../literal/numeric/migrated_0020.js | 1 + .../literal/numeric/migrated_0021.js | 1 + .../literal/numeric/migrated_0022.js | 1 + .../literal/numeric/migrated_0023.js | 1 + .../literal/numeric/migrated_0024.js | 1 + .../regular-expression/migrated_0000.js | 1 + .../regular-expression/migrated_0001.js | 1 + .../regular-expression/migrated_0002.js | 1 + .../regular-expression/migrated_0003.js | 1 + .../regular-expression/migrated_0004.js | 1 + .../migrated_0005.source.js | 1 + .../migrated_0006.failure.json | 6 + .../migrated_0006.source.js | 1 + .../regular-expression/migrated_0007.js | 1 + .../regular-expression/migrated_0008.js | 1 + .../regular-expression/migrated_0009.js | 1 + .../regular-expression/migrated_0010.js | 1 + .../regular-expression/migrated_0011.js | 1 + .../regular-expression/migrated_0012.js | 1 + .../regular-expression/migrated_0013.js | 1 + .../u-flag-invalid-range-4-hex.failure.json | 6 + .../u-flag-invalid-range-4-hex.js | 1 + .../u-flag-invalid-range-var-hex.failure.json | 6 + .../u-flag-invalid-range-var-hex.js | 1 + .../u-flag-surrogate-pair.js | 1 + .../regular-expression/u-flag-valid-range.js | 1 + .../literal/string/migrated_0000.js | 1 + .../literal/string/migrated_0001.js | 1 + .../literal/string/migrated_0002.source.js | 1 + .../literal/string/migrated_0003.js | 1 + .../literal/string/migrated_0006.js | 1 + .../literal/string/migrated_0007.js | 2 + .../literal/string/migrated_0008.js | 1 + .../literal/string/migrated_0009.js | 1 + .../literal/string/migrated_0010.js | 1 + .../literal/string/migrated_0011.js | 1 + .../literal/string/migrated_0012.js | 1 + .../literal/string/migrated_0013.js | 1 + .../literal/string/migrated_0015.js | 1 + .../literal/string/migrated_0016.js | 1 + .../literal/string/migrated_0017.js | 2 + .../literal/string/migrated_0018.js | 1 + .../expression-primary/object/expected.json | 32 + .../object/migrated_0000.js | 1 + .../object/migrated_0001.js | 1 + .../object/migrated_0002.js | 1 + .../object/migrated_0003.js | 1 + .../object/migrated_0004.js | 1 + .../object/migrated_0005.js | 1 + .../object/migrated_0006.js | 1 + .../object/migrated_0007.js | 1 + .../object/migrated_0008.js | 1 + .../object/migrated_0009.js | 1 + .../object/migrated_0010.js | 1 + .../object/migrated_0011.js | 1 + .../object/migrated_0012.js | 1 + .../object/migrated_0013.js | 1 + .../object/migrated_0014.js | 1 + .../object/migrated_0015.js | 1 + .../object/migrated_0016.js | 1 + .../object/migrated_0017.js | 1 + .../object/migrated_0018.js | 1 + .../object/migrated_0019.js | 1 + .../object/migrated_0020.js | 1 + .../object/migrated_0021.js | 1 + .../object/migrated_0022.js | 1 + .../object/migrated_0023.js | 1 + .../object/migrated_0024.js | 1 + .../object/migrated_0025.js | 1 + .../object/migrated_0026.js | 1 + .../object/migrated_0027.js | 1 + .../object/migrated_0028.js | 1 + .../object/migrated_0029.js | 1 + .../object/migrated_0030.js | 1 + .../object/migrated_0031.js | 1 + .../object/migrated_0032.js | 1 + .../object/migrated_0033.js | 1 + .../object/migrated_0034.js | 1 + .../object/migrated_0035.js | 1 + .../object/migrated_0036.js | 1 + .../object/migrated_0037.js | 1 + .../object/migrated_0038.js | 1 + .../expression-primary/other/expected.json | 32 + .../expression-primary/other/migrated_0000.js | 1 + .../expression-primary/other/migrated_0001.js | 1 + .../expression-primary/other/migrated_0002.js | 3 + .../expression-primary/other/migrated_0003.js | 1 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 96 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 96 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 96 +++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 96 +++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 96 +++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 128 ++++ .../expression-unary/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 81 +++ .../expression-unary/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 81 +++ .../expression-unary/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 81 +++ .../expression-unary/migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 81 +++ .../expression-unary/migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 81 +++ .../expression-unary/migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 81 +++ .../expression-unary/migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 81 +++ .../expression-unary/migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 81 +++ .../expression-unary/migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 81 +++ .../expression-unary/migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 81 +++ .../expression-unary/migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 81 +++ .../expression-unary/migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 81 +++ .../expression-unary/migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 81 +++ .../invalid-syntax/GH-1106-00/actual.js | 1 + .../invalid-syntax/GH-1106-00/options.json | 3 + .../invalid-syntax/GH-1106-01/actual.js | 1 + .../invalid-syntax/GH-1106-01/options.json | 3 + .../invalid-syntax/GH-1106-02/actual.js | 1 + .../invalid-syntax/GH-1106-02/options.json | 3 + .../invalid-syntax/GH-1106-03/actual.js | 1 + .../invalid-syntax/GH-1106-03/options.json | 3 + .../invalid-syntax/GH-1106-04/actual.js | 1 + .../invalid-syntax/GH-1106-04/options.json | 3 + .../invalid-syntax/GH-1106-05/actual.js | 1 + .../invalid-syntax/GH-1106-05/options.json | 3 + .../invalid-syntax/GH-1106-06/actual.js | 1 + .../invalid-syntax/GH-1106-06/options.json | 3 + .../invalid-syntax/GH-1106-07/actual.js | 1 + .../invalid-syntax/GH-1106-07/options.json | 3 + .../invalid-syntax/GH-1106-09/actual.js | 1 + .../invalid-syntax/GH-1106-09/expected.json | 66 ++ .../invalid-syntax/GH-1106-09/options.json | 3 + .../invalid-syntax/migrated_0000/actual.js | 1 + .../invalid-syntax/migrated_0000/options.json | 3 + .../invalid-syntax/migrated_0001/actual.js | 1 + .../invalid-syntax/migrated_0001/options.json | 3 + .../invalid-syntax/migrated_0002/actual.js | 1 + .../invalid-syntax/migrated_0002/options.json | 3 + .../invalid-syntax/migrated_0003/actual.js | 1 + .../invalid-syntax/migrated_0003/options.json | 3 + .../invalid-syntax/migrated_0004/actual.js | 1 + .../invalid-syntax/migrated_0004/options.json | 3 + .../invalid-syntax/migrated_0005/actual.js | 1 + .../invalid-syntax/migrated_0005/options.json | 3 + .../invalid-syntax/migrated_0006/actual.js | 1 + .../invalid-syntax/migrated_0006/options.json | 3 + .../invalid-syntax/migrated_0007/actual.js | 1 + .../invalid-syntax/migrated_0007/options.json | 3 + .../invalid-syntax/migrated_0008/actual.js | 1 + .../invalid-syntax/migrated_0008/options.json | 3 + .../invalid-syntax/migrated_0009/actual.js | 1 + .../invalid-syntax/migrated_0009/options.json | 3 + .../invalid-syntax/migrated_0010/actual.js | 1 + .../invalid-syntax/migrated_0010/options.json | 3 + .../invalid-syntax/migrated_0011/actual.js | 1 + .../invalid-syntax/migrated_0011/options.json | 3 + .../invalid-syntax/migrated_0012/actual.js | 1 + .../invalid-syntax/migrated_0012/options.json | 3 + .../invalid-syntax/migrated_0013/actual.js | 1 + .../invalid-syntax/migrated_0013/options.json | 3 + .../invalid-syntax/migrated_0014/actual.js | 1 + .../invalid-syntax/migrated_0014/options.json | 3 + .../invalid-syntax/migrated_0015/actual.js | 1 + .../invalid-syntax/migrated_0015/options.json | 3 + .../invalid-syntax/migrated_0016/actual.js | 1 + .../invalid-syntax/migrated_0016/options.json | 3 + .../invalid-syntax/migrated_0017/actual.js | 1 + .../invalid-syntax/migrated_0017/options.json | 3 + .../invalid-syntax/migrated_0018/actual.js | 1 + .../invalid-syntax/migrated_0018/options.json | 3 + .../invalid-syntax/migrated_0019/actual.js | 1 + .../invalid-syntax/migrated_0019/options.json | 3 + .../invalid-syntax/migrated_0020/actual.js | 1 + .../invalid-syntax/migrated_0020/options.json | 3 + .../invalid-syntax/migrated_0021/actual.js | 1 + .../invalid-syntax/migrated_0021/options.json | 3 + .../invalid-syntax/migrated_0022/actual.js | 1 + .../invalid-syntax/migrated_0022/options.json | 3 + .../invalid-syntax/migrated_0023/actual.js | 1 + .../invalid-syntax/migrated_0023/options.json | 3 + .../invalid-syntax/migrated_0024/actual.js | 1 + .../invalid-syntax/migrated_0024/options.json | 3 + .../invalid-syntax/migrated_0025/actual.js | 1 + .../invalid-syntax/migrated_0025/options.json | 3 + .../invalid-syntax/migrated_0026/actual.js | 1 + .../invalid-syntax/migrated_0026/options.json | 3 + .../invalid-syntax/migrated_0027/actual.js | 1 + .../invalid-syntax/migrated_0027/options.json | 3 + .../invalid-syntax/migrated_0028/actual.js | 1 + .../invalid-syntax/migrated_0028/options.json | 3 + .../invalid-syntax/migrated_0029/actual.js | 1 + .../invalid-syntax/migrated_0029/options.json | 3 + .../invalid-syntax/migrated_0030/actual.js | 1 + .../invalid-syntax/migrated_0030/options.json | 3 + .../invalid-syntax/migrated_0031/actual.js | 2 + .../invalid-syntax/migrated_0031/options.json | 3 + .../invalid-syntax/migrated_0032/actual.js | 1 + .../invalid-syntax/migrated_0032/options.json | 3 + .../invalid-syntax/migrated_0033/actual.js | 1 + .../migrated_0033/expected.json | 100 +++ .../invalid-syntax/migrated_0033/options.json | 3 + .../invalid-syntax/migrated_0034/actual.js | 1 + .../migrated_0034/expected.json | 100 +++ .../invalid-syntax/migrated_0034/options.json | 3 + .../invalid-syntax/migrated_0035/actual.js | 1 + .../invalid-syntax/migrated_0035/options.json | 3 + .../invalid-syntax/migrated_0036/actual.js | 1 + .../migrated_0036/expected.json | 100 +++ .../invalid-syntax/migrated_0036/options.json | 3 + .../invalid-syntax/migrated_0037/actual.js | 1 + .../migrated_0037/expected.json | 100 +++ .../invalid-syntax/migrated_0037/options.json | 3 + .../invalid-syntax/migrated_0038/actual.js | 1 + .../invalid-syntax/migrated_0038/options.json | 3 + .../invalid-syntax/migrated_0039/actual.js | 1 + .../invalid-syntax/migrated_0039/options.json | 3 + .../invalid-syntax/migrated_0040/actual.js | 2 + .../invalid-syntax/migrated_0040/options.json | 3 + .../invalid-syntax/migrated_0041/actual.js | 1 + .../migrated_0041/expected.json | 100 +++ .../invalid-syntax/migrated_0041/options.json | 3 + .../invalid-syntax/migrated_0042/actual.js | 1 + .../migrated_0042/expected.json | 100 +++ .../invalid-syntax/migrated_0042/options.json | 3 + .../invalid-syntax/migrated_0043/actual.js | 1 + .../migrated_0043/expected.json | 100 +++ .../invalid-syntax/migrated_0043/options.json | 3 + .../invalid-syntax/migrated_0044/actual.js | 1 + .../migrated_0044/expected.json | 100 +++ .../invalid-syntax/migrated_0044/options.json | 3 + .../invalid-syntax/migrated_0045/actual.js | 1 + .../invalid-syntax/migrated_0045/options.json | 3 + .../invalid-syntax/migrated_0046/actual.js | 1 + .../invalid-syntax/migrated_0046/options.json | 3 + .../invalid-syntax/migrated_0047/actual.js | 1 + .../invalid-syntax/migrated_0047/options.json | 3 + .../invalid-syntax/migrated_0048/actual.js | 1 + .../migrated_0048/expected.json | 100 +++ .../invalid-syntax/migrated_0048/options.json | 3 + .../invalid-syntax/migrated_0049/actual.js | 1 + .../migrated_0049/expected.json | 100 +++ .../invalid-syntax/migrated_0049/options.json | 3 + .../invalid-syntax/migrated_0050/actual.js | 1 + .../migrated_0050/expected.json | 100 +++ .../invalid-syntax/migrated_0050/options.json | 3 + .../invalid-syntax/migrated_0051/actual.js | 1 + .../migrated_0051/expected.json | 100 +++ .../invalid-syntax/migrated_0051/options.json | 3 + .../invalid-syntax/migrated_0052/actual.js | 1 + .../invalid-syntax/migrated_0052/options.json | 3 + .../invalid-syntax/migrated_0053/actual.js | 1 + .../invalid-syntax/migrated_0053/options.json | 3 + .../invalid-syntax/migrated_0054/actual.js | 1 + .../invalid-syntax/migrated_0054/options.json | 3 + .../invalid-syntax/migrated_0055/actual.js | 1 + .../invalid-syntax/migrated_0055/options.json | 3 + .../invalid-syntax/migrated_0056/actual.js | 1 + .../invalid-syntax/migrated_0056/options.json | 3 + .../invalid-syntax/migrated_0057/actual.js | 1 + .../invalid-syntax/migrated_0057/options.json | 3 + .../invalid-syntax/migrated_0058/actual.js | 1 + .../invalid-syntax/migrated_0058/options.json | 3 + .../invalid-syntax/migrated_0059/actual.js | 1 + .../invalid-syntax/migrated_0059/options.json | 3 + .../invalid-syntax/migrated_0060/actual.js | 1 + .../invalid-syntax/migrated_0060/options.json | 3 + .../invalid-syntax/migrated_0061/actual.js | 1 + .../invalid-syntax/migrated_0061/options.json | 3 + .../invalid-syntax/migrated_0062/actual.js | 2 + .../invalid-syntax/migrated_0062/options.json | 3 + .../invalid-syntax/migrated_0063/actual.js | 1 + .../invalid-syntax/migrated_0063/options.json | 3 + .../invalid-syntax/migrated_0064/actual.js | 1 + .../invalid-syntax/migrated_0064/options.json | 3 + .../invalid-syntax/migrated_0065/actual.js | 1 + .../invalid-syntax/migrated_0065/options.json | 3 + .../invalid-syntax/migrated_0066/actual.js | 1 + .../invalid-syntax/migrated_0066/options.json | 3 + .../invalid-syntax/migrated_0067/actual.js | 1 + .../invalid-syntax/migrated_0067/options.json | 3 + .../invalid-syntax/migrated_0068/actual.js | 1 + .../invalid-syntax/migrated_0068/options.json | 3 + .../invalid-syntax/migrated_0069/actual.js | 1 + .../invalid-syntax/migrated_0069/options.json | 3 + .../invalid-syntax/migrated_0070/actual.js | 3 + .../invalid-syntax/migrated_0070/options.json | 3 + .../invalid-syntax/migrated_0071/actual.js | 1 + .../invalid-syntax/migrated_0071/options.json | 3 + .../invalid-syntax/migrated_0072/actual.js | 1 + .../invalid-syntax/migrated_0072/options.json | 3 + .../invalid-syntax/migrated_0073/actual.js | 1 + .../invalid-syntax/migrated_0073/options.json | 3 + .../invalid-syntax/migrated_0074/actual.js | 1 + .../invalid-syntax/migrated_0074/options.json | 3 + .../invalid-syntax/migrated_0075/actual.js | 1 + .../invalid-syntax/migrated_0075/options.json | 3 + .../invalid-syntax/migrated_0076/actual.js | 1 + .../invalid-syntax/migrated_0076/options.json | 3 + .../invalid-syntax/migrated_0077/actual.js | 1 + .../invalid-syntax/migrated_0077/options.json | 3 + .../invalid-syntax/migrated_0078/actual.js | 1 + .../invalid-syntax/migrated_0078/options.json | 3 + .../invalid-syntax/migrated_0080/actual.js | 1 + .../invalid-syntax/migrated_0080/options.json | 3 + .../invalid-syntax/migrated_0081/actual.js | 1 + .../invalid-syntax/migrated_0081/options.json | 3 + .../invalid-syntax/migrated_0082/actual.js | 1 + .../invalid-syntax/migrated_0082/options.json | 3 + .../invalid-syntax/migrated_0083/actual.js | 1 + .../invalid-syntax/migrated_0083/options.json | 3 + .../invalid-syntax/migrated_0084/actual.js | 1 + .../invalid-syntax/migrated_0084/options.json | 3 + .../invalid-syntax/migrated_0085/actual.js | 1 + .../invalid-syntax/migrated_0085/options.json | 3 + .../invalid-syntax/migrated_0086/actual.js | 1 + .../invalid-syntax/migrated_0086/options.json | 3 + .../invalid-syntax/migrated_0087/actual.js | 1 + .../invalid-syntax/migrated_0087/options.json | 3 + .../invalid-syntax/migrated_0088/actual.js | 1 + .../invalid-syntax/migrated_0088/options.json | 3 + .../invalid-syntax/migrated_0089/actual.js | 1 + .../invalid-syntax/migrated_0089/options.json | 3 + .../invalid-syntax/migrated_0090/actual.js | 1 + .../invalid-syntax/migrated_0090/options.json | 3 + .../invalid-syntax/migrated_0091/actual.js | 1 + .../invalid-syntax/migrated_0091/options.json | 3 + .../invalid-syntax/migrated_0092/actual.js | 1 + .../migrated_0092/expected.json | 118 ++++ .../invalid-syntax/migrated_0092/options.json | 3 + .../invalid-syntax/migrated_0093/actual.js | 1 + .../invalid-syntax/migrated_0093/options.json | 3 + .../invalid-syntax/migrated_0094/actual.js | 1 + .../invalid-syntax/migrated_0094/options.json | 3 + .../invalid-syntax/migrated_0095/actual.js | 1 + .../invalid-syntax/migrated_0095/options.json | 3 + .../invalid-syntax/migrated_0096/actual.js | 1 + .../invalid-syntax/migrated_0096/options.json | 3 + .../invalid-syntax/migrated_0097/actual.js | 1 + .../invalid-syntax/migrated_0097/options.json | 3 + .../invalid-syntax/migrated_0098/actual.js | 1 + .../invalid-syntax/migrated_0098/options.json | 3 + .../invalid-syntax/migrated_0099/actual.js | 1 + .../invalid-syntax/migrated_0099/options.json | 3 + .../invalid-syntax/migrated_0100/actual.js | 1 + .../invalid-syntax/migrated_0100/options.json | 3 + .../invalid-syntax/migrated_0101/actual.js | 1 + .../migrated_0101/expected.json | 167 +++++ .../invalid-syntax/migrated_0101/options.json | 3 + .../invalid-syntax/migrated_0102/actual.js | 1 + .../invalid-syntax/migrated_0102/options.json | 3 + .../invalid-syntax/migrated_0103/actual.js | 1 + .../invalid-syntax/migrated_0103/options.json | 3 + .../invalid-syntax/migrated_0104/actual.js | 1 + .../invalid-syntax/migrated_0104/options.json | 3 + .../invalid-syntax/migrated_0105/actual.js | 1 + .../invalid-syntax/migrated_0105/options.json | 3 + .../invalid-syntax/migrated_0106/actual.js | 1 + .../invalid-syntax/migrated_0106/options.json | 3 + .../invalid-syntax/migrated_0107/actual.js | 1 + .../invalid-syntax/migrated_0107/options.json | 3 + .../invalid-syntax/migrated_0108/actual.js | 1 + .../invalid-syntax/migrated_0108/options.json | 3 + .../invalid-syntax/migrated_0109/actual.js | 1 + .../invalid-syntax/migrated_0109/options.json | 3 + .../invalid-syntax/migrated_0110/actual.js | 1 + .../invalid-syntax/migrated_0110/options.json | 3 + .../invalid-syntax/migrated_0111/actual.js | 1 + .../invalid-syntax/migrated_0111/options.json | 3 + .../invalid-syntax/migrated_0112/actual.js | 1 + .../invalid-syntax/migrated_0112/options.json | 3 + .../invalid-syntax/migrated_0113/actual.js | 1 + .../invalid-syntax/migrated_0113/options.json | 3 + .../invalid-syntax/migrated_0114/actual.js | 1 + .../invalid-syntax/migrated_0114/options.json | 3 + .../invalid-syntax/migrated_0115/actual.js | 1 + .../invalid-syntax/migrated_0115/options.json | 3 + .../invalid-syntax/migrated_0116/actual.js | 1 + .../invalid-syntax/migrated_0116/options.json | 3 + .../invalid-syntax/migrated_0117/actual.js | 1 + .../invalid-syntax/migrated_0117/options.json | 3 + .../invalid-syntax/migrated_0118/actual.js | 1 + .../invalid-syntax/migrated_0118/options.json | 3 + .../invalid-syntax/migrated_0119/actual.js | 1 + .../invalid-syntax/migrated_0119/options.json | 3 + .../invalid-syntax/migrated_0120/actual.js | 1 + .../invalid-syntax/migrated_0120/options.json | 3 + .../invalid-syntax/migrated_0121/actual.js | 1 + .../invalid-syntax/migrated_0121/options.json | 3 + .../invalid-syntax/migrated_0122/actual.js | 1 + .../invalid-syntax/migrated_0122/options.json | 3 + .../invalid-syntax/migrated_0123/actual.js | 1 + .../invalid-syntax/migrated_0123/options.json | 3 + .../invalid-syntax/migrated_0124/actual.js | 1 + .../invalid-syntax/migrated_0124/options.json | 3 + .../invalid-syntax/migrated_0125/actual.js | 1 + .../invalid-syntax/migrated_0125/options.json | 3 + .../invalid-syntax/migrated_0126/actual.js | 1 + .../invalid-syntax/migrated_0126/options.json | 3 + .../invalid-syntax/migrated_0127/actual.js | 1 + .../invalid-syntax/migrated_0127/options.json | 3 + .../invalid-syntax/migrated_0128/actual.js | 1 + .../invalid-syntax/migrated_0128/options.json | 3 + .../invalid-syntax/migrated_0129/actual.js | 1 + .../invalid-syntax/migrated_0129/options.json | 3 + .../invalid-syntax/migrated_0130/actual.js | 1 + .../invalid-syntax/migrated_0130/options.json | 3 + .../invalid-syntax/migrated_0131/actual.js | 1 + .../invalid-syntax/migrated_0131/options.json | 3 + .../invalid-syntax/migrated_0132/actual.js | 1 + .../invalid-syntax/migrated_0132/options.json | 3 + .../invalid-syntax/migrated_0133/actual.js | 1 + .../invalid-syntax/migrated_0133/options.json | 3 + .../invalid-syntax/migrated_0134/actual.js | 1 + .../invalid-syntax/migrated_0134/options.json | 3 + .../invalid-syntax/migrated_0135/actual.js | 1 + .../invalid-syntax/migrated_0135/options.json | 3 + .../invalid-syntax/migrated_0136/actual.js | 1 + .../invalid-syntax/migrated_0136/options.json | 3 + .../invalid-syntax/migrated_0137/actual.js | 1 + .../migrated_0137/expected.json | 100 +++ .../invalid-syntax/migrated_0137/options.json | 3 + .../invalid-syntax/migrated_0138/actual.js | 1 + .../migrated_0138/expected.json | 132 ++++ .../invalid-syntax/migrated_0138/options.json | 3 + .../invalid-syntax/migrated_0139/actual.js | 1 + .../migrated_0139/expected.json | 132 ++++ .../invalid-syntax/migrated_0139/options.json | 3 + .../invalid-syntax/migrated_0140/actual.js | 1 + .../migrated_0140/expected.json | 83 +++ .../invalid-syntax/migrated_0140/options.json | 3 + .../invalid-syntax/migrated_0141/actual.js | 1 + .../invalid-syntax/migrated_0141/options.json | 3 + .../invalid-syntax/migrated_0142/actual.js | 1 + .../invalid-syntax/migrated_0142/options.json | 3 + .../invalid-syntax/migrated_0143/actual.js | 1 + .../invalid-syntax/migrated_0143/options.json | 3 + .../invalid-syntax/migrated_0144/actual.js | 1 + .../invalid-syntax/migrated_0144/options.json | 3 + .../invalid-syntax/migrated_0145/actual.js | 1 + .../invalid-syntax/migrated_0145/options.json | 3 + .../invalid-syntax/migrated_0146/actual.js | 1 + .../invalid-syntax/migrated_0146/options.json | 3 + .../invalid-syntax/migrated_0147/actual.js | 1 + .../invalid-syntax/migrated_0147/options.json | 3 + .../invalid-syntax/migrated_0148/actual.js | 3 + .../invalid-syntax/migrated_0148/options.json | 3 + .../invalid-syntax/migrated_0149/actual.js | 1 + .../invalid-syntax/migrated_0149/options.json | 3 + .../invalid-syntax/migrated_0150/actual.js | 1 + .../invalid-syntax/migrated_0150/options.json | 3 + .../invalid-syntax/migrated_0151/actual.js | 1 + .../invalid-syntax/migrated_0151/options.json | 3 + .../invalid-syntax/migrated_0152/actual.js | 1 + .../invalid-syntax/migrated_0152/options.json | 3 + .../invalid-syntax/migrated_0153/actual.js | 1 + .../invalid-syntax/migrated_0153/options.json | 3 + .../invalid-syntax/migrated_0154/actual.js | 1 + .../invalid-syntax/migrated_0154/options.json | 3 + .../invalid-syntax/migrated_0155/actual.js | 2 + .../invalid-syntax/migrated_0155/options.json | 3 + .../invalid-syntax/migrated_0156/actual.js | 2 + .../invalid-syntax/migrated_0156/options.json | 3 + .../invalid-syntax/migrated_0157/actual.js | 2 + .../invalid-syntax/migrated_0157/options.json | 3 + .../invalid-syntax/migrated_0158/actual.js | 2 + .../invalid-syntax/migrated_0158/options.json | 3 + .../invalid-syntax/migrated_0159/actual.js | 2 + .../invalid-syntax/migrated_0159/options.json | 3 + .../invalid-syntax/migrated_0160/actual.js | 2 + .../invalid-syntax/migrated_0160/options.json | 3 + .../invalid-syntax/migrated_0161/actual.js | 2 + .../invalid-syntax/migrated_0161/options.json | 3 + .../invalid-syntax/migrated_0162/actual.js | 1 + .../invalid-syntax/migrated_0162/options.json | 3 + .../invalid-syntax/migrated_0163/actual.js | 1 + .../migrated_0163/expected.json | 100 +++ .../invalid-syntax/migrated_0163/options.json | 3 + .../invalid-syntax/migrated_0164/actual.js | 1 + .../invalid-syntax/migrated_0164/options.json | 3 + .../invalid-syntax/migrated_0165/actual.js | 1 + .../migrated_0165/expected.json | 100 +++ .../invalid-syntax/migrated_0165/options.json | 3 + .../invalid-syntax/migrated_0166/actual.js | 1 + .../migrated_0166/expected.json | 100 +++ .../invalid-syntax/migrated_0166/options.json | 3 + .../invalid-syntax/migrated_0167/actual.js | 1 + .../migrated_0167/expected.json | 100 +++ .../invalid-syntax/migrated_0167/options.json | 3 + .../invalid-syntax/migrated_0168/actual.js | 1 + .../invalid-syntax/migrated_0168/options.json | 3 + .../invalid-syntax/migrated_0169/actual.js | 1 + .../migrated_0169/expected.json | 100 +++ .../invalid-syntax/migrated_0169/options.json | 3 + .../invalid-syntax/migrated_0170/actual.js | 1 + .../invalid-syntax/migrated_0170/options.json | 3 + .../invalid-syntax/migrated_0171/actual.js | 1 + .../invalid-syntax/migrated_0171/options.json | 3 + .../invalid-syntax/migrated_0172/actual.js | 1 + .../invalid-syntax/migrated_0172/options.json | 3 + .../invalid-syntax/migrated_0173/actual.js | 1 + .../invalid-syntax/migrated_0173/options.json | 3 + .../invalid-syntax/migrated_0174/actual.js | 1 + .../invalid-syntax/migrated_0174/options.json | 3 + .../invalid-syntax/migrated_0175/actual.js | 1 + .../invalid-syntax/migrated_0175/options.json | 3 + .../invalid-syntax/migrated_0176/actual.js | 1 + .../invalid-syntax/migrated_0176/options.json | 3 + .../invalid-syntax/migrated_0177/actual.js | 1 + .../invalid-syntax/migrated_0177/options.json | 3 + .../invalid-syntax/migrated_0178/actual.js | 1 + .../invalid-syntax/migrated_0178/options.json | 3 + .../invalid-syntax/migrated_0179/actual.js | 1 + .../invalid-syntax/migrated_0179/options.json | 3 + .../invalid-syntax/migrated_0180/actual.js | 1 + .../invalid-syntax/migrated_0180/options.json | 3 + .../invalid-syntax/migrated_0181/actual.js | 1 + .../invalid-syntax/migrated_0181/options.json | 3 + .../invalid-syntax/migrated_0182/actual.js | 1 + .../invalid-syntax/migrated_0182/options.json | 3 + .../invalid-syntax/migrated_0183/actual.js | 1 + .../invalid-syntax/migrated_0183/options.json | 3 + .../invalid-syntax/migrated_0184/actual.js | 1 + .../invalid-syntax/migrated_0184/options.json | 3 + .../invalid-syntax/migrated_0185/actual.js | 1 + .../invalid-syntax/migrated_0185/options.json | 3 + .../invalid-syntax/migrated_0186/actual.js | 1 + .../invalid-syntax/migrated_0186/options.json | 3 + .../invalid-syntax/migrated_0187/actual.js | 1 + .../invalid-syntax/migrated_0187/options.json | 3 + .../invalid-syntax/migrated_0188/actual.js | 1 + .../invalid-syntax/migrated_0188/options.json | 3 + .../invalid-syntax/migrated_0189/actual.js | 1 + .../invalid-syntax/migrated_0189/options.json | 3 + .../invalid-syntax/migrated_0190/actual.js | 1 + .../invalid-syntax/migrated_0190/options.json | 3 + .../invalid-syntax/migrated_0191/actual.js | 1 + .../invalid-syntax/migrated_0191/options.json | 3 + .../invalid-syntax/migrated_0192/actual.js | 1 + .../invalid-syntax/migrated_0192/options.json | 3 + .../invalid-syntax/migrated_0193/actual.js | 1 + .../invalid-syntax/migrated_0193/options.json | 3 + .../invalid-syntax/migrated_0194/actual.js | 1 + .../invalid-syntax/migrated_0194/options.json | 3 + .../invalid-syntax/migrated_0195/actual.js | 1 + .../invalid-syntax/migrated_0195/options.json | 3 + .../invalid-syntax/migrated_0196/actual.js | 1 + .../invalid-syntax/migrated_0196/options.json | 3 + .../invalid-syntax/migrated_0197/actual.js | 1 + .../invalid-syntax/migrated_0197/options.json | 3 + .../invalid-syntax/migrated_0198/actual.js | 1 + .../invalid-syntax/migrated_0198/options.json | 3 + .../invalid-syntax/migrated_0199/actual.js | 1 + .../invalid-syntax/migrated_0199/options.json | 3 + .../invalid-syntax/migrated_0200/actual.js | 1 + .../invalid-syntax/migrated_0200/options.json | 3 + .../invalid-syntax/migrated_0201/actual.js | 1 + .../migrated_0201/expected.json | 117 ++++ .../invalid-syntax/migrated_0201/options.json | 3 + .../invalid-syntax/migrated_0202/actual.js | 1 + .../migrated_0202/expected.json | 117 ++++ .../invalid-syntax/migrated_0202/options.json | 3 + .../invalid-syntax/migrated_0203/actual.js | 1 + .../invalid-syntax/migrated_0203/options.json | 3 + .../invalid-syntax/migrated_0204/actual.js | 1 + .../invalid-syntax/migrated_0204/options.json | 3 + .../invalid-syntax/migrated_0205/actual.js | 1 + .../migrated_0205/expected.json | 149 +++++ .../invalid-syntax/migrated_0205/options.json | 3 + .../invalid-syntax/migrated_0206/actual.js | 1 + .../migrated_0206/expected.json | 149 +++++ .../invalid-syntax/migrated_0206/options.json | 3 + .../invalid-syntax/migrated_0207/actual.js | 1 + .../invalid-syntax/migrated_0207/options.json | 3 + .../invalid-syntax/migrated_0208/actual.js | 1 + .../migrated_0208/expected.json | 149 +++++ .../invalid-syntax/migrated_0208/options.json | 3 + .../invalid-syntax/migrated_0209/actual.js | 1 + .../invalid-syntax/migrated_0209/options.json | 3 + .../invalid-syntax/migrated_0210/actual.js | 1 + .../invalid-syntax/migrated_0210/options.json | 3 + .../invalid-syntax/migrated_0211/actual.js | 1 + .../invalid-syntax/migrated_0211/options.json | 3 + .../invalid-syntax/migrated_0212/actual.js | 1 + .../migrated_0212/expected.json | 134 +++++ .../invalid-syntax/migrated_0212/options.json | 3 + .../invalid-syntax/migrated_0213/actual.js | 1 + .../migrated_0213/expected.json | 134 +++++ .../invalid-syntax/migrated_0213/options.json | 3 + .../invalid-syntax/migrated_0214/actual.js | 1 + .../invalid-syntax/migrated_0214/options.json | 3 + .../invalid-syntax/migrated_0215/actual.js | 1 + .../invalid-syntax/migrated_0215/options.json | 3 + .../invalid-syntax/migrated_0216/actual.js | 1 + .../migrated_0216/expected.json | 99 +++ .../invalid-syntax/migrated_0216/options.json | 3 + .../invalid-syntax/migrated_0217/actual.js | 1 + .../invalid-syntax/migrated_0217/options.json | 3 + .../invalid-syntax/migrated_0218/actual.js | 1 + .../invalid-syntax/migrated_0218/options.json | 3 + .../invalid-syntax/migrated_0219/actual.js | 1 + .../invalid-syntax/migrated_0219/options.json | 3 + .../invalid-syntax/migrated_0220/actual.js | 1 + .../invalid-syntax/migrated_0220/options.json | 3 + .../invalid-syntax/migrated_0221/actual.js | 1 + .../migrated_0221/expected.json | 150 +++++ .../invalid-syntax/migrated_0221/options.json | 3 + .../invalid-syntax/migrated_0222/actual.js | 1 + .../migrated_0222/expected.json | 183 ++++++ .../invalid-syntax/migrated_0222/options.json | 3 + .../invalid-syntax/migrated_0223/actual.js | 1 + .../invalid-syntax/migrated_0223/options.json | 3 + .../invalid-syntax/migrated_0224/actual.js | 1 + .../invalid-syntax/migrated_0224/options.json | 3 + .../invalid-syntax/migrated_0225/actual.js | 1 + .../invalid-syntax/migrated_0225/options.json | 3 + .../invalid-syntax/migrated_0226/actual.js | 1 + .../invalid-syntax/migrated_0226/options.json | 3 + .../invalid-syntax/migrated_0227/actual.js | 1 + .../invalid-syntax/migrated_0227/options.json | 3 + .../invalid-syntax/migrated_0228/actual.js | 1 + .../invalid-syntax/migrated_0228/options.json | 3 + .../invalid-syntax/migrated_0229/actual.js | 1 + .../invalid-syntax/migrated_0229/options.json | 3 + .../invalid-syntax/migrated_0230/actual.js | 1 + .../invalid-syntax/migrated_0230/options.json | 3 + .../invalid-syntax/migrated_0231/actual.js | 1 + .../invalid-syntax/migrated_0231/options.json | 3 + .../invalid-syntax/migrated_0232/actual.js | 1 + .../invalid-syntax/migrated_0232/options.json | 3 + .../invalid-syntax/migrated_0233/actual.js | 1 + .../migrated_0233/expected.json | 134 +++++ .../invalid-syntax/migrated_0233/options.json | 3 + .../invalid-syntax/migrated_0234/actual.js | 1 + .../migrated_0234/expected.json | 117 ++++ .../invalid-syntax/migrated_0234/options.json | 3 + .../invalid-syntax/migrated_0235/actual.js | 1 + .../migrated_0235/expected.json | 134 +++++ .../invalid-syntax/migrated_0235/options.json | 3 + .../invalid-syntax/migrated_0236/actual.js | 1 + .../migrated_0236/expected.json | 134 +++++ .../invalid-syntax/migrated_0236/options.json | 3 + .../invalid-syntax/migrated_0238/actual.js | 1 + .../migrated_0238/expected.json | 83 +++ .../invalid-syntax/migrated_0238/options.json | 3 + .../invalid-syntax/migrated_0239/actual.js | 1 + .../invalid-syntax/migrated_0239/options.json | 3 + .../invalid-syntax/migrated_0240/actual.js | 1 + .../invalid-syntax/migrated_0240/options.json | 3 + .../invalid-syntax/migrated_0241/actual.js | 1 + .../migrated_0241/expected.json | 134 +++++ .../invalid-syntax/migrated_0241/options.json | 3 + .../invalid-syntax/migrated_0242/actual.js | 1 + .../migrated_0242/expected.json | 134 +++++ .../invalid-syntax/migrated_0242/options.json | 3 + .../invalid-syntax/migrated_0243/actual.js | 1 + .../invalid-syntax/migrated_0243/options.json | 3 + .../invalid-syntax/migrated_0244/actual.js | 1 + .../invalid-syntax/migrated_0244/options.json | 3 + .../invalid-syntax/migrated_0245/actual.js | 1 + .../invalid-syntax/migrated_0245/options.json | 3 + .../invalid-syntax/migrated_0246/actual.js | 1 + .../migrated_0246/expected.json | 150 +++++ .../invalid-syntax/migrated_0246/options.json | 3 + .../invalid-syntax/migrated_0247/actual.js | 1 + .../migrated_0247/expected.json | 150 +++++ .../invalid-syntax/migrated_0247/options.json | 3 + .../invalid-syntax/migrated_0248/actual.js | 1 + .../invalid-syntax/migrated_0248/options.json | 3 + .../invalid-syntax/migrated_0249/actual.js | 1 + .../invalid-syntax/migrated_0249/options.json | 3 + .../invalid-syntax/migrated_0250/actual.js | 1 + .../invalid-syntax/migrated_0250/options.json | 3 + .../invalid-syntax/migrated_0252/actual.js | 1 + .../invalid-syntax/migrated_0252/options.json | 3 + .../invalid-syntax/migrated_0253/actual.js | 1 + .../migrated_0253/expected.json | 64 ++ .../invalid-syntax/migrated_0253/options.json | 3 + .../invalid-syntax/migrated_0254/actual.js | 1 + .../invalid-syntax/migrated_0254/options.json | 3 + .../invalid-syntax/migrated_0255/actual.js | 1 + .../invalid-syntax/migrated_0255/options.json | 3 + .../invalid-syntax/migrated_0256/actual.js | 1 + .../invalid-syntax/migrated_0256/options.json | 3 + .../invalid-syntax/migrated_0257/actual.js | 1 + .../invalid-syntax/migrated_0257/options.json | 3 + .../invalid-syntax/migrated_0258/actual.js | 1 + .../invalid-syntax/migrated_0258/options.json | 3 + .../invalid-syntax/migrated_0259/actual.js | 1 + .../invalid-syntax/migrated_0259/options.json | 3 + .../invalid-syntax/migrated_0260/actual.js | 1 + .../invalid-syntax/migrated_0260/options.json | 3 + .../invalid-syntax/migrated_0261/actual.js | 1 + .../invalid-syntax/migrated_0261/options.json | 3 + .../invalid-syntax/migrated_0262/actual.js | 1 + .../invalid-syntax/migrated_0262/options.json | 3 + .../invalid-syntax/migrated_0263/actual.js | 1 + .../invalid-syntax/migrated_0263/options.json | 3 + .../invalid-syntax/migrated_0264/actual.js | 1 + .../invalid-syntax/migrated_0264/options.json | 3 + .../invalid-syntax/migrated_0265/actual.js | 1 + .../invalid-syntax/migrated_0265/options.json | 3 + .../invalid-syntax/migrated_0266/actual.js | 1 + .../invalid-syntax/migrated_0266/options.json | 3 + .../invalid-syntax/migrated_0267/actual.js | 1 + .../invalid-syntax/migrated_0267/options.json | 3 + .../invalid-syntax/migrated_0268/actual.js | 1 + .../invalid-syntax/migrated_0268/options.json | 3 + .../invalid-syntax/migrated_0269/actual.js | 1 + .../invalid-syntax/migrated_0269/options.json | 3 + .../invalid-syntax/migrated_0270/actual.js | 1 + .../migrated_0270/expected.json | 151 +++++ .../invalid-syntax/migrated_0270/options.json | 3 + .../invalid-syntax/migrated_0271/actual.js | 1 + .../migrated_0271/expected.json | 153 +++++ .../invalid-syntax/migrated_0271/options.json | 3 + .../invalid-syntax/migrated_0272/actual.js | 1 + .../invalid-syntax/migrated_0272/options.json | 3 + .../invalid-syntax/migrated_0273/actual.js | 1 + .../invalid-syntax/migrated_0273/options.json | 3 + .../invalid-syntax/migrated_0274/actual.js | 1 + .../invalid-syntax/migrated_0274/options.json | 3 + .../invalid-syntax/migrated_0275/actual.js | 1 + .../invalid-syntax/migrated_0275/options.json | 3 + .../invalid-syntax/migrated_0276/actual.js | 1 + .../invalid-syntax/migrated_0276/options.json | 3 + .../invalid-syntax/migrated_0277/actual.js | 1 + .../migrated_0277/expected.json | 168 ++++++ .../invalid-syntax/migrated_0277/options.json | 3 + .../invalid-syntax/migrated_0278/actual.js | 1 + .../migrated_0278/expected.json | 151 +++++ .../invalid-syntax/migrated_0278/options.json | 3 + .../statement-block/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 81 +++ .../statement-block/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 144 +++++ .../statement-block/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 49 ++ .../statement-break/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 99 +++ .../statement-break/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 145 +++++ .../statement-break/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 145 +++++ .../statement-break/migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 145 +++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 99 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 99 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 145 +++++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 145 +++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 145 +++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 48 ++ .../statement-empty/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 48 ++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 64 ++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 97 +++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 100 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 100 +++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 100 +++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 100 +++ .../statement-if/migrated_0000/actual.js | 1 + .../statement-if/migrated_0000/expected.json | 112 ++++ .../statement-if/migrated_0001/actual.js | 1 + .../statement-if/migrated_0001/expected.json | 116 ++++ .../statement-if/migrated_0002/actual.js | 1 + .../statement-if/migrated_0002/expected.json | 132 ++++ .../statement-if/migrated_0003/actual.js | 1 + .../statement-if/migrated_0004/actual.js | 1 + .../statement-if/migrated_0004/expected.json | 158 +++++ .../statement-if/migrated_0005/actual.js | 2 + .../statement-if/migrated_0005/expected.json | 128 ++++ .../statement-if/migrated_0006/actual.js | 1 + .../statement-if/migrated_0006/expected.json | 128 ++++ .../statement-iteration/const_forin/actual.js | 1 + .../const_forin/expected.json | 178 ++++++ .../for-statement-with-seq/actual.js | 1 + .../for-statement-with-seq/expected.json | 130 ++++ .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 113 ++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 113 ++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 211 +++++++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 132 ++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 113 ++++ .../migrated_0005/actual.js | 2 + .../migrated_0005/expected.json | 113 ++++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 113 ++++ .../migrated_0007/actual.js | 1 + .../migrated_0007/expected.json | 211 +++++++ .../migrated_0008/actual.js | 1 + .../migrated_0008/expected.json | 66 ++ .../migrated_0009/actual.js | 1 + .../migrated_0009/expected.json | 67 +++ .../migrated_0010/actual.js | 1 + .../migrated_0010/expected.json | 115 ++++ .../migrated_0011/actual.js | 1 + .../migrated_0011/expected.json | 132 ++++ .../migrated_0012/actual.js | 1 + .../migrated_0012/expected.json | 132 ++++ .../migrated_0013/actual.js | 1 + .../migrated_0013/expected.json | 181 ++++++ .../migrated_0014/actual.js | 1 + .../migrated_0014/expected.json | 164 +++++ .../migrated_0015/actual.js | 1 + .../migrated_0015/expected.json | 196 ++++++ .../migrated_0016/actual.js | 1 + .../migrated_0016/expected.json | 245 ++++++++ .../migrated_0017/actual.js | 1 + .../migrated_0017/expected.json | 144 +++++ .../migrated_0018/actual.js | 1 + .../migrated_0018/expected.json | 178 ++++++ .../migrated_0019/actual.js | 1 + .../migrated_0019/expected.json | 195 ++++++ .../migrated_0020/actual.js | 1 + .../migrated_0020/expected.json | 178 ++++++ .../migrated_0021/actual.js | 1 + .../migrated_0021/expected.json | 176 ++++++ .../migrated_0022/actual.js | 1 + .../migrated_0022/expected.json | 241 ++++++++ .../migrated_0023/actual.js | 1 + .../migrated_0023/expected.json | 278 +++++++++ .../migrated_0024/actual.js | 1 + .../migrated_0024/expected.json | 159 +++++ .../migrated_0025/actual.js | 1 + .../migrated_0025/expected.json | 194 ++++++ .../migrated_0026/actual.js | 1 + .../migrated_0026/expected.json | 127 ++++ .../pattern-in-for-in/actual.js | 1 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 113 ++++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 128 ++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 95 +++ .../statement-return/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 101 ++++ .../statement-return/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 101 ++++ .../statement-return/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 116 ++++ .../statement-return/migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 148 +++++ .../statement-switch/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 65 ++ .../statement-switch/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 164 +++++ .../statement-switch/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 198 ++++++ .../statement-throw/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 64 ++ .../statement-throw/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 96 +++ .../statement-throw/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 118 ++++ .../statement-try/migrated_0000/actual.js | 1 + .../statement-try/migrated_0000/expected.json | 113 ++++ .../statement-try/migrated_0001/actual.js | 1 + .../statement-try/migrated_0001/expected.json | 113 ++++ .../statement-try/migrated_0002/actual.js | 1 + .../statement-try/migrated_0002/expected.json | 113 ++++ .../statement-try/migrated_0003/actual.js | 1 + .../statement-try/migrated_0003/expected.json | 178 ++++++ .../statement-try/migrated_0004/actual.js | 1 + .../statement-try/migrated_0004/expected.json | 147 +++++ .../statement-try/migrated_0005/actual.js | 1 + .../statement-try/migrated_0005/expected.json | 226 +++++++ .../statement-try/migrated_0006/actual.js | 1 + .../statement-try/migrated_0006/expected.json | 306 ++++++++++ .../complex-pattern-requires-init/actual.js | 1 + .../options.json | 3 + .../migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 83 +++ .../migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 115 ++++ .../migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 100 +++ .../migrated_0003/actual.js | 1 + .../migrated_0003/expected.json | 149 +++++ .../migrated_0004/actual.js | 1 + .../migrated_0004/expected.json | 198 ++++++ .../migrated_0005/actual.js | 1 + .../migrated_0005/expected.json | 147 +++++ .../migrated_0006/actual.js | 1 + .../migrated_0006/expected.json | 179 ++++++ .../statement-with/migrated_0000/actual.js | 1 + .../migrated_0000/expected.json | 127 ++++ .../statement-with/migrated_0001/actual.js | 1 + .../migrated_0001/expected.json | 127 ++++ .../statement-with/migrated_0002/actual.js | 1 + .../migrated_0002/expected.json | 144 +++++ .../async-functions/illegal-parens/actual.js | 1 + .../illegal-parens/options.json | 3 + .../actual.js | 1 + .../expected.json | 166 +++++ .../options.json | 3 + .../arrow-functions/inner-parens/actual.js | 1 + .../arrow-functions/inner-parens/options.json | 3 + .../harmony/uncategorised/289/expected.json | 187 ++++++ .../harmony/uncategorised/297/expected.json | 167 +++++ 2094 files changed, 82947 insertions(+), 122 deletions(-) delete mode 100644 packages/babel/test/fixtures/transformation/es6.classes/bare-super/actual.js delete mode 100644 packages/babel/test/fixtures/transformation/es6.classes/bare-super/options.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/484/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/485/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/488/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/489/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/491/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/495/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/496/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/511/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/512/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/515/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/516/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/520/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/521/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/536/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/LICENSE create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/empty-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/expected.json create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/nested-cover-grammar.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-01.js create mode 100755 packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-empty.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-export-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-import-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-primary/array/expected.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0000.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0001.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0002.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0003.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0004.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0005.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0006.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0007.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0008.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0009.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0010.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0011.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0012.source.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-primary/literal/expected.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0000.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0001.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0002.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0003.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0004.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0005.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0006.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0007.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0008.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0009.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0010.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0011.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0012.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0013.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0014.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0015.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0016.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0017.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0018.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0019.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0020.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0021.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0022.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0023.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0024.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0000.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0001.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0002.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0003.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0004.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0005.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0007.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0008.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0009.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0010.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0011.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0012.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0013.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.failure.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-surrogate-pair.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-valid-range.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0000.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0001.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0002.source.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0003.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0006.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0007.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0008.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0009.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0010.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0011.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0012.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0013.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0015.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0016.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0017.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0018.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-primary/object/expected.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0000.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0001.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0002.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0003.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0004.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0005.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0006.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0007.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0008.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0009.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0010.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0011.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0012.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0013.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0014.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0015.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0016.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0017.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0018.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0019.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0020.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0021.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0022.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0023.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0024.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0025.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0026.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0027.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0028.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0029.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0030.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0031.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0032.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0033.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0034.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0035.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0036.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0037.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0038.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-primary/other/expected.json create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0000.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0001.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0002.js create mode 100755 packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0003.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/options.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/pattern-in-for-in/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/actual.js create mode 100644 packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/expected.json create mode 100644 packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/options.json create mode 100644 packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/actual.js create mode 100644 packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/expected.json create mode 100644 packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/options.json create mode 100644 packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/actual.js create mode 100644 packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/289/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/297/expected.json diff --git a/packages/babel/src/util.js b/packages/babel/src/util.js index 61b5ca8b56..2f0610873f 100644 --- a/packages/babel/src/util.js +++ b/packages/babel/src/util.js @@ -199,9 +199,14 @@ export function template(name: string, nodes?: Array, keepExpression?: b */ export function parseTemplate(loc: string, code: string): Object { - var ast = parse(code, { filename: loc, looseModules: true }).program; - ast = traverse.removeProperties(ast); - return ast; + try { + var ast = parse(code, { filename: loc, looseModules: true }).program; + ast = traverse.removeProperties(ast); + return ast; + } catch (err) { + err.message = `${loc}: ${err.message}`; + throw err; + } } /** diff --git a/packages/babel/test/fixtures/transformation/es6.classes/bare-super/actual.js b/packages/babel/test/fixtures/transformation/es6.classes/bare-super/actual.js deleted file mode 100644 index 6e053ecf76..0000000000 --- a/packages/babel/test/fixtures/transformation/es6.classes/bare-super/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -class Test { - constructor() { - console.log(super); - } -} diff --git a/packages/babel/test/fixtures/transformation/es6.classes/bare-super/options.json b/packages/babel/test/fixtures/transformation/es6.classes/bare-super/options.json deleted file mode 100644 index 9813318b1b..0000000000 --- a/packages/babel/test/fixtures/transformation/es6.classes/bare-super/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "Illegal use of bare super" -} diff --git a/packages/babylon/src/options.js b/packages/babylon/src/options.js index 5c5d6d50f1..f33e39d920 100755 --- a/packages/babylon/src/options.js +++ b/packages/babylon/src/options.js @@ -4,11 +4,6 @@ export const defaultOptions = { // Source type ("script" or "module") for different semantics sourceType: "script", - // By default, reserved words are not enforced. Disable - // `allowReserved` to enforce them. When this option has the - // value "never", reserved words and keywords can also not be - // used as property names. - allowReserved: true, // When enabled, a return at the top level is not considered an // error. allowReturnOutsideFunction: false, diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 5faf80afce..3169de84e5 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -229,7 +229,7 @@ pp.parseSubscripts = function(base, startPos, startLoc, noCalls) { } else if (this.eat(tt.dot)) { let node = this.startNodeAt(startPos, startLoc); node.object = base; - node.property = this.parseIdent(true); + node.property = this.parseIdentifier(true); node.computed = false; base = this.finishNode(node, "MemberExpression"); } else if (this.eat(tt.bracketL)) { @@ -245,10 +245,10 @@ pp.parseSubscripts = function(base, startPos, startLoc, noCalls) { let node = this.startNodeAt(startPos, startLoc); node.callee = base; - node.arguments = this.parseExprList(tt.parenR, this.options.features["es7.trailingFunctionCommas"]); + node.arguments = this.parseCallExpressionArguments(tt.parenR, this.options.features["es7.trailingFunctionCommas"], possibleAsync); base = this.finishNode(node, "CallExpression"); - if (possibleAsync && (this.match(tt.colon) || this.match(tt.arrow))) { + if (possibleAsync && this.shouldParseAsyncArrow()) { base = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node); } else { this.toReferencedList(node.arguments); @@ -264,6 +264,38 @@ pp.parseSubscripts = function(base, startPos, startLoc, noCalls) { } }; +pp.parseCallExpressionArguments = function (close, allowTrailingComma, possibleAsyncArrow) { + let innerParenStart; + + let elts = [], first = true; + while (!this.eat(close)) { + if (first) { + first = false; + } else { + this.expect(tt.comma); + if (allowTrailingComma && this.eat(close)) break; + } + + // we need to make sure that if this is an async arrow functions, that we don't allow inner parens inside the params + if (this.match(tt.parenL) && !innerParenStart) { + innerParenStart = this.state.start; + } + + elts.push(this.parseExprListItem()); + } + + // we found an async arrow function so let's not allow any inner parens + if (possibleAsyncArrow && innerParenStart && this.shouldParseAsyncArrow()) { + this.unexpected(); + } + + return elts; +}; + +pp.shouldParseAsyncArrow = function () { + return this.match(tt.arrow); +}; + pp.parseAsyncArrowFromCallExpression = function (node, call) { if (!this.options.features["es7.asyncFunctions"]) this.unexpected(); this.expect(tt.arrow); @@ -286,16 +318,51 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { let node, canBeArrow = this.state.potentialArrowAt === this.state.start; switch (this.state.type) { case tt._super: - if (!this.state.inFunction) + if (!this.state.inFunction) { this.raise(this.state.start, "'super' outside of function or class"); - case tt._this: - let type = this.match(tt._this) ? "ThisExpression" : "Super"; + } + node = this.startNode(); this.next(); - return this.finishNode(node, type); + if (!this.match(tt.parenL) && !this.match(tt.bracketL) && !this.match(tt.dot)) { + this.unexpected(); + } + return this.finishNode(node, "Super"); + + case tt._this: + node = this.startNode(); + this.next(); + return this.finishNode(node, "ThisExpression"); case tt._yield: - if (this.state.inGenerator) this.unexpected(); + // NOTE: falls through to _let + if (!this.state.inGenerator && this.strict) this.unexpected(); + + case tt._let: + case tt.name: + node = this.startNode(); + let id = this.parseIdentifier(true); + + if (this.options.features["es7.asyncFunctions"]) { + if (id.name === "await") { + if (this.inAsync) return this.parseAwait(node); + } else if (id.name === "async" && this.match(tt._function) && !this.canInsertSemicolon()) { + this.next(); + return this.parseFunction(node, false, false, true); + } else if (canBeArrow && id.name === "async" && this.match(tt.name)) { + var params = [this.parseIdentifier()]; + this.expect(tt.arrow); + // var foo = bar => {}; + return this.parseArrowExpression(node, params, true); + } + } + + if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) { + return this.parseArrowExpression(node, [id]); + } + + return id; + case tt._do: if (this.options.features["es7.doExpressions"]) { @@ -311,30 +378,6 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { return this.finishNode(node, "DoExpression"); } - case tt.name: - node = this.startNode(); - let id = this.parseIdent(true); - - if (this.options.features["es7.asyncFunctions"]) { - if (id.name === "await") { - if (this.inAsync) return this.parseAwait(node); - } else if (id.name === "async" && this.match(tt._function) && !this.canInsertSemicolon()) { - this.next(); - return this.parseFunction(node, false, false, true); - } else if (canBeArrow && id.name === "async" && this.match(tt.name)) { - var params = [this.parseIdent()]; - this.expect(tt.arrow); - // var foo = bar => {}; - return this.parseArrowExpression(node, params, true); - } - } - - if (canBeArrow && !this.canInsertSemicolon() && this.eat(tt.arrow)) { - return this.parseArrowExpression(node, [id]); - } - - return id; - case tt.regexp: let value = this.state.value; node = this.parseLiteral(value.value); @@ -430,7 +473,7 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow let innerStartPos = this.state.start, innerStartLoc = this.state.startLoc; let exprList = [], first = true; - let refShorthandDefaultPos = {start: 0}, spreadStart, innerParenStart, optionalCommaStart; + let refShorthandDefaultPos = { start: 0 }, spreadStart, innerParenStart, optionalCommaStart; while (!this.match(tt.parenR)) { if (first) { first = false; @@ -454,6 +497,7 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow exprList.push(this.parseMaybeAssign(false, refShorthandDefaultPos, this.parseParenItem)); } } + let innerEndPos = this.state.start; let innerEndLoc = this.state.startLoc; this.expect(tt.parenR); @@ -497,11 +541,11 @@ pp.parseParenItem = function (node) { pp.parseNew = function () { let node = this.startNode(); - let meta = this.parseIdent(true); + let meta = this.parseIdentifier(true); if (this.eat(tt.dot)) { node.meta = meta; - node.property = this.parseIdent(true); + node.property = this.parseIdentifier(true); if (node.property.name !== "target") { this.raise(node.property.start, "The only valid meta property for new is new.target"); @@ -592,7 +636,7 @@ pp.parseObj = function (isPattern, refShorthandDefaultPos) { } if (!isPattern && this.options.features["es7.asyncFunctions"] && this.isContextual("async")) { if (isGenerator) this.unexpected(); - var asyncId = this.parseIdent(); + var asyncId = this.parseIdentifier(); if (this.match(tt.colon) || this.match(tt.parenL) || this.match(tt.braceR)) { prop.key = asyncId; } else { @@ -629,22 +673,27 @@ pp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, let paramCount = prop.kind === "get" ? 0 : 1; if (prop.value.params.length !== paramCount) { let start = prop.value.start; - if (prop.kind === "get") + if (prop.kind === "get") { this.raise(start, "getter should have no params"); - else + } else { this.raise(start, "setter should have exactly one param"); + } } } else if (!prop.computed && prop.key.type === "Identifier") { prop.kind = "init"; if (isPattern) { - if (this.isKeyword(prop.key.name) || - (this.strict && (reservedWords.strictBind(prop.key.name) || reservedWords.strict(prop.key.name))) || - (!this.options.allowReserved && this.isReservedWord(prop.key.name))) - this.raise(prop.key.start, "Binding " + prop.key.name); + var illegalBinding = this.isKeyword(prop.key.name); + if (!illegalBinding && this.strict) { + illegalBinding = reservedWords.strictBind(prop.key.name) || reservedWords.strict(prop.key.name); + } + if (illegalBinding) { + this.raise(prop.key.start, "Binding " + prop.key.name); + } prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); } else if (this.match(tt.eq) && refShorthandDefaultPos) { - if (!refShorthandDefaultPos.start) + if (!refShorthandDefaultPos.start) { refShorthandDefaultPos.start = this.state.start; + } prop.value = this.parseMaybeDefault(startPos, startLoc, prop.key.__clone()); } else { prop.value = prop.key.__clone(); @@ -663,7 +712,7 @@ pp.parsePropertyName = function (prop) { return prop.key; } else { prop.computed = false; - return prop.key = (this.match(tt.num) || this.match(tt.string)) ? this.parseExprAtom() : this.parseIdent(true); + return prop.key = (this.match(tt.num) || this.match(tt.string)) ? this.parseExprAtom() : this.parseIdentifier(true); } }; @@ -723,16 +772,19 @@ pp.parseFunctionBody = function (node, allowExpression) { // If this is a strict mode function, verify that argument names // are not repeated, and it does not try to bind the words `eval` // or `arguments`. - if (this.strict || !isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) { - let nameHash = Object.create(null), oldStrict = this.strict; - this.strict = true; + var checkLVal = this.strict; + // arrow function + if (allowExpression) checkLVal = true; + // normal function + if (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) checkLVal = true; + if (checkLVal) { + let nameHash = Object.create(null); if (node.id) { this.checkLVal(node.id, true); } for (let param of (node.params: Array)) { this.checkLVal(param, true, nameHash); } - this.strict = oldStrict; } }; @@ -773,19 +825,21 @@ pp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) { // when parsing properties), it will also convert keywords into // identifiers. -pp.parseIdent = function (liberal) { +pp.parseIdentifier = function (liberal) { let node = this.startNode(); - if (this.match(tt.name)) { - if (!liberal && - ((!this.options.allowReserved && this.isReservedWord(this.state.value)) || - (this.strict && reservedWords.strict(this.state.value)))) + + if (this.isName()) { + if (!liberal && this.strict && reservedWords.strict(this.state.value)) { this.raise(this.state.start, "The keyword '" + this.state.value + "' is reserved"); + } + node.name = this.state.value; } else if (liberal && this.state.type.keyword) { node.name = this.state.type.keyword; } else { this.unexpected(); } + this.next(); return this.finishNode(node, "Identifier"); }; diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index b8ee7bc63f..7ec54ae135 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -92,17 +92,22 @@ pp.parseSpread = function (refShorthandDefaultPos) { pp.parseRest = function () { let node = this.startNode(); this.next(); - node.argument = this.match(tt.name) || this.match(tt.bracketL) ? this.parseBindingAtom() : this.unexpected(); + if (this.isName() || this.match(tt.bracketL)) { + node.argument = this.parseBindingAtom(); + } else { + this.unexpected(); + } return this.finishNode(node, "RestElement"); }; // Parses lvalue (assignable) atom. pp.parseBindingAtom = function () { - switch (this.state.type) { - case tt.name: - return this.parseIdent(); + if (this.isName()) { + return this.parseIdentifier(true); + } + switch (this.state.type) { case tt.bracketL: let node = this.startNode(); this.next(); @@ -163,8 +168,10 @@ pp.parseMaybeDefault = function (startPos, startLoc, left) { pp.checkLVal = function (expr, isBinding, checkClashes) { switch (expr.type) { case "Identifier": - if (this.strict && (reservedWords.strictBind(expr.name) || reservedWords.strict(expr.name))) + if (this.strict && (reservedWords.strictBind(expr.name) || reservedWords.strict(expr.name))) { this.raise(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); + } + if (checkClashes) { if (checkClashes[expr.name]) { this.raise(expr.start, "Argument name clash in strict mode"); @@ -179,7 +186,7 @@ pp.checkLVal = function (expr, isBinding, checkClashes) { break; case "ObjectPattern": - for (let prop of (expr.properties: Array)) { + for (let prop of (expr.properties: Array)) { if (prop.type === "Property") prop = prop.value; this.checkLVal(prop, isBinding, checkClashes); } diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 8a6744f8c0..559ab8ebda 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -72,8 +72,27 @@ pp.parseStatement = function (declaration, topLevel) { case tt._switch: return this.parseSwitchStatement(node); case tt._throw: return this.parseThrowStatement(node); case tt._try: return this.parseTryStatement(node); - case tt._let: case tt._const: if (!declaration) this.unexpected(); // NOTE: falls through to _var - case tt._var: return this.parseVarStatement(node, starttype); + + case tt._let: + // NOTE: falls through to _const + if (!this.strict) { + let state = this.state.clone(); + this.next(); + + var isBindingAtomStart = this.isName() || this.match(tt.braceL) || this.match(tt.bracketL); + + // set back lookahead + this.state = state; + + if (!isBindingAtomStart) break; + } + + case tt._const: + if (!declaration) this.unexpected(); // NOTE: falls through to _var + + case tt._var: + return this.parseVarStatement(node, starttype); + case tt._while: return this.parseWhileStatement(node); case tt._with: return this.parseWithStatement(node); case tt.braceL: return this.parseBlock(); @@ -92,7 +111,7 @@ pp.parseStatement = function (declaration, topLevel) { case tt.name: if (this.options.features["es7.asyncFunctions"] && this.state.value === "async") { // peek ahead and see if next token is a function - var state = this.state.clone(); + let state = this.state.clone(); this.next(); if (this.match(tt._function) && !this.canInsertSemicolon()) { this.expect(tt._function); @@ -101,20 +120,19 @@ pp.parseStatement = function (declaration, topLevel) { this.state = state; } } + } - // If the statement does not start with a statement keyword or a - // brace, it's an ExpressionStatement or LabeledStatement. We - // simply start parsing an expression, and afterwards, if the - // next token is a colon and the expression was a simple - // Identifier node, we switch to interpreting it as a label. - default: - let maybeName = this.state.value, expr = this.parseExpression(); + // If the statement does not start with a statement keyword or a + // brace, it's an ExpressionStatement or LabeledStatement. We + // simply start parsing an expression, and afterwards, if the + // next token is a colon and the expression was a simple + // Identifier node, we switch to interpreting it as a label. + let maybeName = this.state.value, expr = this.parseExpression(); - if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon)) { - return this.parseLabeledStatement(node, maybeName, expr); - } else { - return this.parseExpressionStatement(node, expr); - } + if (starttype === tt.name && expr.type === "Identifier" && this.eat(tt.colon)) { + return this.parseLabeledStatement(node, maybeName, expr); + } else { + return this.parseExpressionStatement(node, expr); } }; @@ -158,7 +176,7 @@ pp.parseBreakContinueStatement = function (node, keyword) { } else if (!this.match(tt.name)) { this.unexpected(); } else { - node.label = this.parseIdent(); + node.label = this.parseIdentifier(); this.semicolon(); } @@ -487,12 +505,12 @@ pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, op this.initFunction(node, isAsync); node.generator = this.eat(tt.star); - if (isStatement && !optionalId && !this.match(tt.name)) { + if (isStatement && !optionalId && !this.isName()) { this.unexpected(); } - if (this.match(tt.name)) { - node.id = this.parseIdent(); + if (this.isName()) { + node.id = this.parseIdentifier(); } this.parseFunctionParams(node); @@ -613,7 +631,7 @@ pp.parseClassMethod = function (classBody, method, isGenerator, isAsync) { pp.parseClassId = function (node, isStatement, optionalId) { if (this.match(tt.name)) { - node.id = this.parseIdent(); + node.id = this.parseIdentifier(); } else { if (optionalId || !isStatement) { node.id = null; @@ -636,7 +654,7 @@ pp.parseExport = function (node) { let specifier = this.startNode(); this.next(); if (this.options.features["es7.exportExtensions"] && this.eatContextual("as")) { - specifier.exported = this.parseIdent(); + specifier.exported = this.parseIdentifier(); node.specifiers = [this.finishNode(specifier, "ExportNamespaceSpecifier")]; this.parseExportSpecifiersMaybe(node); this.parseExportFrom(node, true); @@ -646,14 +664,14 @@ pp.parseExport = function (node) { } } else if (this.options.features["es7.exportExtensions"] && this.isExportDefaultSpecifier()) { let specifier = this.startNode(); - specifier.exported = this.parseIdent(true); + specifier.exported = this.parseIdentifier(true); node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; if (this.match(tt.comma) && this.lookahead().type === tt.star) { this.expect(tt.comma); let specifier = this.startNode(); this.expect(tt.star); this.expectContextual("as"); - specifier.exported = this.parseIdent(); + specifier.exported = this.parseIdentifier(); node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); } else { this.parseExportSpecifiersMaybe(node); @@ -744,7 +762,10 @@ pp.checkExport = function (node) { // Parses a comma-separated list of module exports. pp.parseExportSpecifiers = function () { - let nodes = [], first = true; + let nodes = []; + let first = true; + let needsFrom; + // export { x, y as z } [from '...'] this.expect(tt.braceL); @@ -756,12 +777,20 @@ pp.parseExportSpecifiers = function () { if (this.eat(tt.braceR)) break; } + let isDefault = this.match(tt._default); + if (isDefault && !needsFrom) needsFrom = true; + let node = this.startNode(); - node.local = this.parseIdent(this.match(tt._default)); - node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local.__clone(); + node.local = this.parseIdentifier(isDefault); + node.exported = this.eatContextual("as") ? this.parseIdentifier(true) : node.local.__clone(); nodes.push(this.finishNode(node, "ExportSpecifier")); } + // https://github.com/ember-cli/ember-cli/pull/3739 + if (needsFrom && !this.isContextual("from")) { + this.unexpected(); + } + return nodes; }; @@ -791,7 +820,7 @@ pp.parseImportSpecifiers = function (node) { if (this.match(tt.name)) { // import defaultObj, { x, y as z } from '...' var startPos = this.state.start, startLoc = this.state.startLoc; - node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdent(), startPos, startLoc)); + node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc)); if (!this.eat(tt.comma)) return; } @@ -799,7 +828,7 @@ pp.parseImportSpecifiers = function (node) { let specifier = this.startNode(); this.next(); this.expectContextual("as"); - specifier.local = this.parseIdent(); + specifier.local = this.parseIdentifier(); this.checkLVal(specifier.local, true); node.specifiers.push(this.finishNode(specifier, "ImportNamespaceSpecifier")); return; @@ -815,8 +844,8 @@ pp.parseImportSpecifiers = function (node) { } let specifier = this.startNode(); - specifier.imported = this.parseIdent(true); - specifier.local = this.eatContextual("as") ? this.parseIdent() : specifier.imported.__clone(); + specifier.imported = this.parseIdentifier(true); + specifier.local = this.eatContextual("as") ? this.parseIdentifier() : specifier.imported.__clone(); this.checkLVal(specifier.local, true); node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); } diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index 51ca0bdc6f..53f1e4b27d 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -28,6 +28,23 @@ pp.expectRelational = function (op) { } }; +// TODO + +pp.isName = function () { + if (this.match(tt.name)) { + return true; + } else if (!this.strict) { + var keyword = this.state.type.keyword; + if (keyword === "let") { + return true; + } else if (keyword === "yield") { + return !this.state.inGenerator; + } + } + + return false; +}; + // Tests whether parsed token is a contextual keyword. pp.isContextual = function (name) { diff --git a/packages/babylon/src/plugins/flow.js b/packages/babylon/src/plugins/flow.js index 07c68d55c6..4bc211ccb1 100644 --- a/packages/babylon/src/plugins/flow.js +++ b/packages/babylon/src/plugins/flow.js @@ -21,7 +21,7 @@ pp.flowParseDeclareClass = function (node) { pp.flowParseDeclareFunction = function (node) { this.next(); - var id = node.id = this.parseIdent(); + var id = node.id = this.parseIdentifier(); var typeNode = this.startNode(); var typeContainer = this.startNode(); @@ -76,7 +76,7 @@ pp.flowParseDeclareModule = function (node) { if (this.match(tt.string)) { node.id = this.parseExprAtom(); } else { - node.id = this.parseIdent(); + node.id = this.parseIdentifier(); } var bodyNode = node.body = this.startNode(); @@ -100,7 +100,7 @@ pp.flowParseDeclareModule = function (node) { // Interfaces pp.flowParseInterfaceish = function (node, allowStatic) { - node.id = this.parseIdent(); + node.id = this.parseIdentifier(); if (this.isRelational("<")) { node.typeParameters = this.flowParseTypeParameterDeclaration(); @@ -122,7 +122,7 @@ pp.flowParseInterfaceish = function (node, allowStatic) { pp.flowParseInterfaceExtends = function () { var node = this.startNode(); - node.id = this.parseIdent(); + node.id = this.parseIdentifier(); if (this.isRelational("<")) { node.typeParameters = this.flowParseTypeParameterInstantiation(); } else { @@ -140,7 +140,7 @@ pp.flowParseInterface = function (node) { // Type aliases pp.flowParseTypeAlias = function (node) { - node.id = this.parseIdent(); + node.id = this.parseIdentifier(); if (this.isRelational("<")) { node.typeParameters = this.flowParseTypeParameterDeclaration(); @@ -193,7 +193,7 @@ pp.flowParseTypeParameterInstantiation = function () { }; pp.flowParseObjectPropertyKey = function () { - return (this.match(tt.num) || this.match(tt.string)) ? this.parseExprAtom() : this.parseIdent(true); + return (this.match(tt.num) || this.match(tt.string)) ? this.parseExprAtom() : this.parseIdentifier(true); }; pp.flowParseObjectTypeIndexer = function (node, isStatic) { @@ -280,7 +280,7 @@ pp.flowParseObjectType = function (allowStatic) { nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, allowStatic)); } else { if (isStatic && this.match(tt.colon)) { - propertyKey = this.parseIdent(); + propertyKey = this.parseIdentifier(); } else { propertyKey = this.flowParseObjectPropertyKey(); } @@ -321,7 +321,7 @@ pp.flowParseGenericType = function (startPos, startLoc, id) { while (this.eat(tt.dot)) { var node2 = this.startNodeAt(startPos, startLoc); node2.qualification = node.id; - node2.id = this.parseIdent(); + node2.id = this.parseIdentifier(); node.id = this.finishNode(node2, "QualifiedTypeIdentifier"); } @@ -356,7 +356,7 @@ pp.flowParseTupleType = function () { pp.flowParseFunctionTypeParam = function () { var optional = false; var node = this.startNode(); - node.name = this.parseIdent(); + node.name = this.parseIdentifier(); if (this.eat(tt.question)) { optional = true; } @@ -417,7 +417,7 @@ pp.flowParsePrimaryType = function () { switch (this.state.type) { case tt.name: - return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdent()); + return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier()); case tt.braceL: return this.flowParseObjectType(); @@ -570,7 +570,7 @@ pp.flowParseTypeAnnotation = function () { }; pp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) { - var ident = this.parseIdent(); + var ident = this.parseIdentifier(); var isOptionalParam = false; if (canBeOptionalParam && this.eat(tt.question)) { @@ -592,7 +592,7 @@ pp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOp }; export default function (instance) { - // function name(): string {} + // plain function return types: function name(): string {} instance.extend("parseFunctionBody", function (inner) { return function (node, allowExpression) { if (this.match(tt.colon) && !allowExpression) { @@ -605,6 +605,7 @@ export default function (instance) { }; }); + // interfaces instance.extend("parseStatement", function (inner) { return function (declaration, topLevel) { // strict mode handling of `interface` since it's a reserved word @@ -618,6 +619,7 @@ export default function (instance) { }; }); + // declares, interfaces and type aliases instance.extend("parseExpressionStatement", function (inner) { return function (node, expr) { if (expr.type === "Identifier") { @@ -638,6 +640,7 @@ export default function (instance) { }; }); + // export type instance.extend("shouldParseExportDeclaration", function (inner) { return function () { return this.isContextual("type") || inner.call(this); @@ -723,6 +726,7 @@ export default function (instance) { }; }); + // ensure that inside flow types, we bypass the jsx parser plugin instance.extend("readToken", function (inner) { return function (code) { if (this.state.inType && (code === 62 || code === 60)) { @@ -733,6 +737,7 @@ export default function (instance) { }; }); + // don't lex any token as a jsx one inside a flow type instance.extend("jsx_readToken", function (inner) { return function () { if (!this.state.inType) return inner.call(this); @@ -744,6 +749,7 @@ export default function (instance) { return node.expression; } + // turn type casts that we found in function parameter head into type annotated params instance.extend("toAssignableList", function (inner) { return function (exprList, isBinding) { for (var i = 0; i < exprList.length; i++) { @@ -756,6 +762,8 @@ export default function (instance) { }; }); + // this is a list of nodes, from something like a call expression, we need to filter the + // type casts that we've found that are illegal in this context instance.extend("toReferencedList", function () { return function (exprList) { for (var i = 0; i < exprList.length; i++) { @@ -769,6 +777,8 @@ export default function (instance) { }; }); + // parse an item inside a expression list eg. `(NODE, NODE)` where NODE represents + // the position where this function is cal;ed instance.extend("parseExprListItem", function (inner) { return function (allowEmpty, refShorthandDefaultPos) { var container = this.startNode(); @@ -784,6 +794,7 @@ export default function (instance) { }; }); + // parse class property type annotations instance.extend("parseClassProperty", function (inner) { return function (node) { if (this.match(tt.colon)) { @@ -793,12 +804,14 @@ export default function (instance) { }; }); + // determine whether or not we're currently in the position where a class property would appear instance.extend("isClassProperty", function (inner) { return function () { return this.match(tt.colon) || inner.call(this); }; }); + // parse type parameters for class methods instance.extend("parseClassMethod", function () { return function (classBody, method, isGenerator, isAsync) { var typeParameters; @@ -811,6 +824,7 @@ export default function (instance) { }; }); + // parse a the super class type parameters and implements instance.extend("parseClassSuper", function (inner) { return function (node, isStatement) { inner.call(this, node, isStatement); @@ -822,7 +836,7 @@ export default function (instance) { var implemented = node.implements = []; do { let node = this.startNode(); - node.id = this.parseIdent(); + node.id = this.parseIdentifier(); if (this.isRelational("<")) { node.typeParameters = this.flowParseTypeParameterInstantiation(); } else { @@ -834,6 +848,7 @@ export default function (instance) { }; }); + // parse type parameters for object method shorthand instance.extend("parseObjPropValue", function (inner) { return function (prop) { var typeParameters; @@ -866,11 +881,18 @@ export default function (instance) { }; }); + + // parse typeof and type imports instance.extend("parseImportSpecifiers", function (inner) { return function (node) { node.importKind = "value"; - var kind = (this.match(tt._typeof) ? "typeof" : (this.isContextual("type") ? "type" : null)); + var kind = null; + if (this.match(tt._typeof)) { + kind = "typeof"; + } else if (this.isContextual("type")) { + kind = "type"; + } if (kind) { var lh = this.lookahead(); if ((lh.type === tt.name && lh.value !== "from") || lh.type === tt.braceL || lh.type === tt.star) { @@ -883,7 +905,7 @@ export default function (instance) { }; }); - // function foo() {} + // parse function type parameters - function foo() {} instance.extend("parseFunctionParams", function (inner) { return function (node) { if (this.isRelational("<")) { @@ -893,7 +915,7 @@ export default function (instance) { }; }); - // var foo: string = bar + // parse flow type annotations on variable declarator heads - var foo: string = bar instance.extend("parseVarHead", function (inner) { return function (decl) { inner.call(this, decl); @@ -904,7 +926,7 @@ export default function (instance) { }; }); - // var foo = (async (): number => {}); + // parse the return type of an async arrow function - var foo = (async (): number => {}); instance.extend("parseAsyncArrowFromCallExpression", function (inner) { return function (node, call) { if (this.match(tt.colon)) { @@ -915,6 +937,14 @@ export default function (instance) { }; }); + // todo description + instance.extend("shouldParseAsyncArrow", function (inner) { + return function () { + return this.match(tt.colon) || inner.call(this); + }; + }); + + // handle return types for arrow functions instance.extend("parseParenAndDistinguishExpression", function (inner) { return function (startPos, startLoc, canBeArrow, isAsync) { startPos = startPos || this.state.start; diff --git a/packages/babylon/test/fixtures/core/uncategorised/484/expected.json b/packages/babylon/test/fixtures/core/uncategorised/484/expected.json new file mode 100644 index 0000000000..c110e76a57 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/484/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "Literal", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/485/expected.json b/packages/babylon/test/fixtures/core/uncategorised/485/expected.json new file mode 100644 index 0000000000..817f907aee --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/485/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 22, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/488/expected.json b/packages/babylon/test/fixtures/core/uncategorised/488/expected.json new file mode 100644 index 0000000000..1a995ca123 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/488/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "Literal", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + }, + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/489/expected.json b/packages/babylon/test/fixtures/core/uncategorised/489/expected.json new file mode 100644 index 0000000000..34984de2e0 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/489/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 23, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "Literal", + "start": 23, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + }, + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/491/expected.json b/packages/babylon/test/fixtures/core/uncategorised/491/expected.json new file mode 100644 index 0000000000..d0765fadb6 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/491/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "package" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 21, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "Literal", + "start": 21, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + }, + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/495/expected.json b/packages/babylon/test/fixtures/core/uncategorised/495/expected.json new file mode 100644 index 0000000000..6aa54306ed --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/495/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 22, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/496/expected.json b/packages/babylon/test/fixtures/core/uncategorised/496/expected.json new file mode 100644 index 0000000000..5fbf9ec4b8 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/496/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "BlockStatement", + "start": 26, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 27, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expression": { + "type": "Literal", + "start": 27, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/511/expected.json b/packages/babylon/test/fixtures/core/uncategorised/511/expected.json new file mode 100644 index 0000000000..9454908513 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/511/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "static" + } + ], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 25, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "expression": { + "type": "Literal", + "start": 25, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/512/expected.json b/packages/babylon/test/fixtures/core/uncategorised/512/expected.json new file mode 100644 index 0000000000..42dbd8e915 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/512/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "static" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "Literal", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/515/expected.json b/packages/babylon/test/fixtures/core/uncategorised/515/expected.json new file mode 100644 index 0000000000..14824eac9f --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/515/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "Literal", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/516/expected.json b/packages/babylon/test/fixtures/core/uncategorised/516/expected.json new file mode 100644 index 0000000000..b18233c76a --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/516/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "package" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 22, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/520/expected.json b/packages/babylon/test/fixtures/core/uncategorised/520/expected.json new file mode 100644 index 0000000000..a4e3e8cbd5 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/520/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "Literal", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/521/expected.json b/packages/babylon/test/fixtures/core/uncategorised/521/expected.json new file mode 100644 index 0000000000..63264f0559 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/521/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "package" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 23, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "Literal", + "start": 23, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/536/expected.json b/packages/babylon/test/fixtures/core/uncategorised/536/expected.json new file mode 100644 index 0000000000..050ac2d8b2 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/536/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "a" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/LICENSE b/packages/babylon/test/fixtures/esprima/LICENSE new file mode 100644 index 0000000000..17557eceb9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) jQuery Foundation, Inc. and Contributors, All Rights Reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/actual.js new file mode 100644 index 0000000000..fd33f0ef61 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/actual.js @@ -0,0 +1,2 @@ +{ x +++y } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/expected.json new file mode 100644 index 0000000000..bab8079535 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0000/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "x" + } + }, + { + "type": "ExpressionStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "name": "y" + } + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/actual.js new file mode 100644 index 0000000000..6823a7ff85 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/actual.js @@ -0,0 +1,2 @@ +{ x +--y } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/expected.json new file mode 100644 index 0000000000..e7aa5f92ff --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0001/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "x" + } + }, + { + "type": "ExpressionStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "name": "y" + } + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/actual.js new file mode 100644 index 0000000000..7dc79c7a8d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/actual.js @@ -0,0 +1 @@ +var x /* comment */; diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json new file mode 100644 index 0000000000..bfca2ac2a5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x", + "leadingComments": null, + "trailingComments": null + }, + "init": null, + "trailingComments": [ + { + "type": "CommentBlock", + "value": " comment ", + "start": 6, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "range": [ + 6, + 19 + ] + } + ] + } + ], + "kind": "var" + } + ] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " comment ", + "start": 6, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "range": [ + 6, + 19 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/actual.js new file mode 100644 index 0000000000..2f881957fe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/actual.js @@ -0,0 +1,2 @@ +{ var x = 14, y = 3 +z; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json new file mode 100644 index 0000000000..54b06ec57a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json @@ -0,0 +1,197 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 2, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 14, + "rawValue": 14, + "raw": "14" + } + }, + { + "type": "VariableDeclarator", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "y" + }, + "init": { + "type": "Literal", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + ], + "kind": "var" + }, + { + "type": "ExpressionStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "expression": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 1 + } + }, + "name": "z" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/actual.js new file mode 100644 index 0000000000..a2a0280978 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/actual.js @@ -0,0 +1,2 @@ +while (true) { continue +there; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json new file mode 100644 index 0000000000..417879a077 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json @@ -0,0 +1,130 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "label": null + }, + { + "type": "ExpressionStatement", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "there" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/actual.js new file mode 100644 index 0000000000..40aea02e2c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/actual.js @@ -0,0 +1,2 @@ +while (true) { continue // Comment +there; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json new file mode 100644 index 0000000000..22f542ddac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "label": null, + "leadingComments": null, + "trailingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 24, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "range": [ + 24, + 34 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 35, + "end": 41, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 35, + "end": 40, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "there", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 24, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "range": [ + 24, + 34 + ] + } + ] + } + ] + } + } + ] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 24, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "range": [ + 24, + 34 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/actual.js new file mode 100644 index 0000000000..31cc7daf97 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/actual.js @@ -0,0 +1,2 @@ +while (true) { continue /* Multiline +Comment */there; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json new file mode 100644 index 0000000000..d4241aabc4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "label": null, + "leadingComments": null, + "trailingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 24, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 24, + 47 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 47, + "end": 53, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "expression": { + "type": "Identifier", + "start": 47, + "end": 52, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "there", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 24, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 24, + 47 + ] + } + ] + } + ] + } + } + ] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 24, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 24, + 47 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/actual.js new file mode 100644 index 0000000000..21400a2714 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/actual.js @@ -0,0 +1,2 @@ +while (true) { break +there; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json new file mode 100644 index 0000000000..6f55ed4658 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json @@ -0,0 +1,130 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "label": null + }, + { + "type": "ExpressionStatement", + "start": 21, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 21, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "there" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/actual.js new file mode 100644 index 0000000000..25f5810894 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/actual.js @@ -0,0 +1,2 @@ +while (true) { break // Comment +there; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json new file mode 100644 index 0000000000..aaf8f84a1d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "label": null, + "leadingComments": null, + "trailingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 21, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "range": [ + 21, + 31 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 32, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "there", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 21, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "range": [ + 21, + 31 + ] + } + ] + } + ] + } + } + ] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 21, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "range": [ + 21, + 31 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/actual.js new file mode 100644 index 0000000000..df2c682c74 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/actual.js @@ -0,0 +1,2 @@ +while (true) { break /* Multiline +Comment */there; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json new file mode 100644 index 0000000000..cae3efe70d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "label": null, + "leadingComments": null, + "trailingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 21, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 21, + 44 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 44, + "end": 50, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "expression": { + "type": "Identifier", + "start": 44, + "end": 49, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "there", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 21, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 21, + 44 + ] + } + ] + } + ] + } + } + ] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 21, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 21, + 44 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/actual.js new file mode 100644 index 0000000000..0e73a24144 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/actual.js @@ -0,0 +1,2 @@ +(function(){ return +x; }) diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json new file mode 100644 index 0000000000..9098864a2b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "argument": null + }, + { + "type": "ExpressionStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "expression": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 1 + } + }, + "name": "x" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/actual.js new file mode 100644 index 0000000000..f2651888c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/actual.js @@ -0,0 +1,2 @@ +(function(){ return // Comment +x; }) diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json new file mode 100644 index 0000000000..8c387c91d1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json @@ -0,0 +1,200 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "argument": null, + "leadingComments": null, + "trailingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "range": [ + 20, + 30 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 31, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 2 + } + }, + "expression": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 1 + } + }, + "name": "x", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "range": [ + 20, + 30 + ] + } + ] + } + ] + }, + "parenthesizedExpression": true + } + } + ] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "range": [ + 20, + 30 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/actual.js new file mode 100644 index 0000000000..74aa0f55fa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/actual.js @@ -0,0 +1,2 @@ +(function(){ return/* Multiline +Comment */x; }) diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json new file mode 100644 index 0000000000..2eb4083a3c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json @@ -0,0 +1,200 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "argument": null, + "leadingComments": null, + "trailingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 19, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 19, + 42 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 42, + "end": 44, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 12 + } + }, + "expression": { + "type": "Identifier", + "start": 42, + "end": 43, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 11 + } + }, + "name": "x", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 19, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 19, + 42 + ] + } + ] + } + ] + }, + "parenthesizedExpression": true + } + } + ] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 19, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 19, + 42 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/actual.js new file mode 100644 index 0000000000..1e05557a75 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/actual.js @@ -0,0 +1,2 @@ +{ throw error +error; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/expected.json new file mode 100644 index 0000000000..d55af430c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0013/expected.json @@ -0,0 +1,112 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "body": [ + { + "type": "ThrowStatement", + "start": 2, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "argument": { + "type": "Identifier", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "error" + } + }, + { + "type": "ExpressionStatement", + "start": 14, + "end": 20, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "error" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/actual.js new file mode 100644 index 0000000000..d400cf220c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/actual.js @@ -0,0 +1,2 @@ +{ throw error// Comment +error; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json new file mode 100644 index 0000000000..59760cfccf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json @@ -0,0 +1,181 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "body": [ + { + "type": "ThrowStatement", + "start": 2, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "argument": { + "type": "Identifier", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "error", + "leadingComments": null, + "trailingComments": null + }, + "trailingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "range": [ + 13, + 23 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 6 + } + }, + "expression": { + "type": "Identifier", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "error", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "range": [ + 13, + 23 + ] + } + ] + } + ] + } + ] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "range": [ + 13, + 23 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/actual.js new file mode 100644 index 0000000000..88ec9f1ed8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/actual.js @@ -0,0 +1,2 @@ +{ throw error/* Multiline +Comment */error; } diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json new file mode 100644 index 0000000000..316c90a92c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json @@ -0,0 +1,181 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "body": [ + { + "type": "ThrowStatement", + "start": 2, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "argument": { + "type": "Identifier", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "error", + "leadingComments": null, + "trailingComments": null + }, + "trailingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 13, + 36 + ] + } + ] + }, + { + "type": "ExpressionStatement", + "start": 36, + "end": 42, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "expression": { + "type": "Identifier", + "start": 36, + "end": 41, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "error", + "leadingComments": null + }, + "leadingComments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 13, + 36 + ] + } + ] + } + ] + } + ] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 13, + 36 + ] + } + ] +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/actual.js new file mode 100644 index 0000000000..bf90b1a026 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/actual.js @@ -0,0 +1 @@ +const x = 42 diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json new file mode 100644 index 0000000000..7a3105b73c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "const" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/actual.js new file mode 100644 index 0000000000..88d50d85b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/actual.js @@ -0,0 +1 @@ +{ const x = 42 } diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json new file mode 100644 index 0000000000..80198c2546 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 2, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "const" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/actual.js new file mode 100644 index 0000000000..dc4cc9cfd3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/actual.js @@ -0,0 +1 @@ +{ const x = 14, y = 3, z = 1977 } diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json new file mode 100644 index 0000000000..79a7b04629 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json @@ -0,0 +1,215 @@ +{ + "type": "File", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 2, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 14, + "rawValue": 14, + "raw": "14" + } + }, + { + "type": "VariableDeclarator", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "y" + }, + "init": { + "type": "Literal", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + }, + { + "type": "VariableDeclarator", + "start": 23, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "z" + }, + "init": { + "type": "Literal", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": 1977, + "rawValue": 1977, + "raw": "1977" + } + } + ], + "kind": "const" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/actual.js new file mode 100644 index 0000000000..3b836d372c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/actual.js @@ -0,0 +1 @@ +function a(x, x) {'use strict';} diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/actual.js new file mode 100644 index 0000000000..860cafa480 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/actual.js @@ -0,0 +1 @@ +function a([], []) {'use strict';} diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json new file mode 100644 index 0000000000..546a1c4026 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "elements": [] + }, + { + "type": "ArrayPattern", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "elements": [] + } + ], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "Literal", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/actual.js new file mode 100644 index 0000000000..58671af140 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/actual.js @@ -0,0 +1 @@ +function hello() { sayHi(); } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/expected.json new file mode 100644 index 0000000000..8de460e887 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0000/expected.json @@ -0,0 +1,131 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "CallExpression", + "start": 19, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "callee": { + "type": "Identifier", + "start": 19, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "sayHi" + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/actual.js new file mode 100644 index 0000000000..bcb22bdb50 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/actual.js @@ -0,0 +1 @@ +function eval() { } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/expected.json new file mode 100644 index 0000000000..d8bcde0844 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0001/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/actual.js new file mode 100644 index 0000000000..fc4384962c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/actual.js @@ -0,0 +1 @@ +function arguments() { } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/expected.json new file mode 100644 index 0000000000..086e1ef65b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0002/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/actual.js new file mode 100644 index 0000000000..95368d4da2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/actual.js @@ -0,0 +1 @@ +function test(t, t) { } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/expected.json new file mode 100644 index 0000000000..c081c978ea --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0003/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "test" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/actual.js new file mode 100644 index 0000000000..bc5fe5b5e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/actual.js @@ -0,0 +1 @@ +(function test(t, t) { }) diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json new file mode 100644 index 0000000000..246b6b5a20 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "test" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/actual.js new file mode 100644 index 0000000000..54349ae31c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/actual.js @@ -0,0 +1 @@ +function eval() { function inner() { "use strict" } } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json new file mode 100644 index 0000000000..c1db4cf35a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 18, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "id": { + "type": "Identifier", + "start": 27, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "inner" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 37, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "expression": { + "type": "Literal", + "start": 37, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/actual.js new file mode 100644 index 0000000000..0b2880aaa9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/actual.js @@ -0,0 +1 @@ +function hello(a) { sayHi(); } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/expected.json new file mode 100644 index 0000000000..3d1b214f48 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0006/expected.json @@ -0,0 +1,148 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "a" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "CallExpression", + "start": 20, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "callee": { + "type": "Identifier", + "start": 20, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "sayHi" + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/actual.js new file mode 100644 index 0000000000..8d67f5afb4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/actual.js @@ -0,0 +1 @@ +function hello(a, b) { sayHi(); } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/expected.json new file mode 100644 index 0000000000..8bc6714852 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0007/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "b" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 23, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "CallExpression", + "start": 23, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "callee": { + "type": "Identifier", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "sayHi" + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/actual.js new file mode 100644 index 0000000000..67366da16c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/actual.js @@ -0,0 +1 @@ +var hi = function() { sayHi() }; diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/expected.json new file mode 100644 index 0000000000..6483debdcd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0008/expected.json @@ -0,0 +1,165 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "hi" + }, + "init": { + "type": "FunctionExpression", + "start": 9, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "CallExpression", + "start": 22, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "callee": { + "type": "Identifier", + "start": 22, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "sayHi" + }, + "arguments": [] + } + } + ] + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/actual.js new file mode 100644 index 0000000000..5a2a82fb35 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/actual.js @@ -0,0 +1 @@ +var hi = function eval() { }; diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/expected.json new file mode 100644 index 0000000000..b4b770ef03 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0009/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "hi" + }, + "init": { + "type": "FunctionExpression", + "start": 9, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 25, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [] + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/actual.js new file mode 100644 index 0000000000..4d0ce45e67 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/actual.js @@ -0,0 +1 @@ +var hi = function arguments() { }; diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/expected.json new file mode 100644 index 0000000000..75abd7b81c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0010/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "hi" + }, + "init": { + "type": "FunctionExpression", + "start": 9, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 18, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 30, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [] + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/actual.js new file mode 100644 index 0000000000..17c1c9bbe9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/actual.js @@ -0,0 +1 @@ +var hello = function hi() { sayHi() }; diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/expected.json new file mode 100644 index 0000000000..71c7365c51 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0011/expected.json @@ -0,0 +1,180 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "hello" + }, + "init": { + "type": "FunctionExpression", + "start": 12, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "hi" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 26, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 28, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "CallExpression", + "start": 28, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "callee": { + "type": "Identifier", + "start": 28, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "sayHi" + }, + "arguments": [] + } + } + ] + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/actual.js new file mode 100644 index 0000000000..0c3a328272 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/actual.js @@ -0,0 +1 @@ +(function(){}) diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json new file mode 100644 index 0000000000..4841a07e51 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json @@ -0,0 +1,84 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/actual.js new file mode 100644 index 0000000000..3219ae202f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/actual.js @@ -0,0 +1 @@ +function universe(__proto__) { } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/expected.json new file mode 100644 index 0000000000..e9af076d07 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0013/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "universe" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 18, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "__proto__" + } + ], + "body": { + "type": "BlockStatement", + "start": 29, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/actual.js new file mode 100644 index 0000000000..7e29601a2c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/actual.js @@ -0,0 +1 @@ +function test() { "use strict" + 42; } diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json new file mode 100644 index 0000000000..72f253f625 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "test" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "left": { + "type": "Literal", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 33, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/actual.js new file mode 100644 index 0000000000..d29e51d21f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/actual.js @@ -0,0 +1 @@ +let x diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/expected.json new file mode 100644 index 0000000000..9e7caa0016 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0000/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/actual.js new file mode 100644 index 0000000000..eb76ecd156 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/actual.js @@ -0,0 +1 @@ +{ let x } diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/expected.json new file mode 100644 index 0000000000..1e0f4d8fa5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0001/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 2, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "let" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/actual.js new file mode 100644 index 0000000000..f74da40ece --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/actual.js @@ -0,0 +1 @@ +{ let x = 42 } diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json new file mode 100644 index 0000000000..421e69547d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 2, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "let" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/actual.js new file mode 100644 index 0000000000..d0dbf07f59 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/actual.js @@ -0,0 +1 @@ +{ let x = 14, y = 3, z = 1977 } diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json new file mode 100644 index 0000000000..1614fceb4c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json @@ -0,0 +1,215 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 2, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 14, + "rawValue": 14, + "raw": "14" + } + }, + { + "type": "VariableDeclarator", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "y" + }, + "init": { + "type": "Literal", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + }, + { + "type": "VariableDeclarator", + "start": 21, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "z" + }, + "init": { + "type": "Literal", + "start": 25, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 1977, + "rawValue": 1977, + "raw": "1977" + } + } + ], + "kind": "let" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/actual.js new file mode 100644 index 0000000000..ce29451593 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/actual.js @@ -0,0 +1 @@ +(function () { 'use\x20strict'; with (i); }()) diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json new file mode 100644 index 0000000000..6fc51fdb6d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json @@ -0,0 +1,180 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 15, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "Literal", + "start": 15, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use\\x20strict'" + } + }, + { + "type": "WithStatement", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "object": { + "type": "Identifier", + "start": 38, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "name": "i" + }, + "body": { + "type": "EmptyStatement", + "start": 40, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 41 + } + } + } + } + ] + } + }, + "arguments": [], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/actual.js new file mode 100644 index 0000000000..f5269df4aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/actual.js @@ -0,0 +1 @@ +(function () { 'use\nstrict'; with (i); }()) diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json new file mode 100644 index 0000000000..97967a7597 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json @@ -0,0 +1,180 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 15, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "Literal", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "use\nstrict", + "rawValue": "use\nstrict", + "raw": "'use\\nstrict'" + } + }, + { + "type": "WithStatement", + "start": 30, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "object": { + "type": "Identifier", + "start": 36, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "i" + }, + "body": { + "type": "EmptyStatement", + "start": 38, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 39 + } + } + } + } + ] + } + }, + "arguments": [], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/actual.js new file mode 100644 index 0000000000..17678772eb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/actual.js @@ -0,0 +1 @@ +([a]) => [0]; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json new file mode 100644 index 0000000000..aac755fdd7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + } + ] + } + ], + "body": { + "type": "ArrayExpression", + "start": 9, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "elements": [ + { + "type": "Literal", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/actual.js new file mode 100644 index 0000000000..0fe9b0cd71 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/actual.js @@ -0,0 +1 @@ +([a,b])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json new file mode 100644 index 0000000000..acb3c68692 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json @@ -0,0 +1,135 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "b" + } + ] + } + ], + "body": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/actual.js new file mode 100644 index 0000000000..05fb54993f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/actual.js @@ -0,0 +1 @@ +([a,...b])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json new file mode 100644 index 0000000000..bb4d92fc83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + }, + { + "type": "RestElement", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "argument": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "b" + } + } + ] + } + ], + "body": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/actual.js new file mode 100644 index 0000000000..49f16d5171 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/actual.js @@ -0,0 +1 @@ +([])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json new file mode 100644 index 0000000000..055970fd64 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "elements": [] + } + ], + "body": { + "type": "Literal", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/actual.js new file mode 100644 index 0000000000..f5e9538ab1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/actual.js @@ -0,0 +1 @@ +([,,])=>0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json new file mode 100644 index 0000000000..7c9c32e1c5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json @@ -0,0 +1,105 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "elements": [ + null, + null + ] + } + ], + "body": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/actual.js new file mode 100644 index 0000000000..1bd2fdef70 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/actual.js @@ -0,0 +1 @@ +([a,[b],...b])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/expected.json new file mode 100644 index 0000000000..73fc92e40b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/expected.json @@ -0,0 +1,183 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + }, + { + "type": "ArrayPattern", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "b" + } + ] + }, + { + "type": "RestElement", + "start": 8, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "argument": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "b" + } + } + ] + } + ], + "body": { + "type": "Literal", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/options.json new file mode 100644 index 0000000000..34197d2efe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-dup-param/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:11)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/actual.js new file mode 100644 index 0000000000..6042292866 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/actual.js @@ -0,0 +1 @@ +([a,...b,])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/expected.json new file mode 100644 index 0000000000..aa98014263 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + }, + { + "type": "RestElement", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "argument": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "b" + } + } + ] + } + ], + "body": { + "type": "Literal", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/actual.js new file mode 100644 index 0000000000..276ef3b4da --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/actual.js @@ -0,0 +1,2 @@ +"use strict"; +function a([a,a]){ } diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/actual.js new file mode 100644 index 0000000000..bf5cca2904 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/actual.js @@ -0,0 +1,2 @@ +"use strict"; +function a([a,...a]){ } diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/actual.js new file mode 100644 index 0000000000..930726974e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/actual.js @@ -0,0 +1,2 @@ +"use strict"; +function a([{a},...a]){ } diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/actual.js new file mode 100644 index 0000000000..d8bb636425 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/actual.js @@ -0,0 +1 @@ +let [a,] = 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json new file mode 100644 index 0000000000..f0c82eec3f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + } + ] + }, + "init": { + "type": "Literal", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/actual.js new file mode 100644 index 0000000000..5d4f5ddda4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/actual.js @@ -0,0 +1 @@ +try { } catch ([]) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/expected.json new file mode 100644 index 0000000000..85e1ffb837 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-catch-param/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "param": { + "type": "ArrayPattern", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "elements": [] + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/actual.js new file mode 100644 index 0000000000..61b45b94bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/actual.js @@ -0,0 +1 @@ +function a([]) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/expected.json new file mode 100644 index 0000000000..495f1eefe4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-fn/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "elements": [] + } + ], + "body": { + "type": "BlockStatement", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/actual.js new file mode 100644 index 0000000000..62ca18957d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/actual.js @@ -0,0 +1 @@ +let [] = []; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/expected.json new file mode 100644 index 0000000000..969c550a6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-lexical/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "elements": [] + }, + "init": { + "type": "ArrayExpression", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "elements": [] + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/actual.js new file mode 100644 index 0000000000..256529bc21 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/actual.js @@ -0,0 +1 @@ +var [] = 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json new file mode 100644 index 0000000000..536a85d158 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "elements": [] + }, + "init": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/actual.js new file mode 100644 index 0000000000..76fe814bc5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/actual.js @@ -0,0 +1 @@ +let [a,,b]=0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json new file mode 100644 index 0000000000..44ee381630 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + null, + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "b" + } + ] + }, + "init": { + "type": "Literal", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/actual.js new file mode 100644 index 0000000000..88a3177b3b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/actual.js @@ -0,0 +1 @@ +let [[]]=0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json new file mode 100644 index 0000000000..5d80c8dd9c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "elements": [] + } + ] + }, + "init": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/actual.js new file mode 100644 index 0000000000..417d6fc849 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/actual.js @@ -0,0 +1 @@ +try {} catch ([a,a]) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/expected.json new file mode 100644 index 0000000000..5752809413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 7, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "param": { + "type": "ArrayPattern", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "a" + } + ] + }, + "body": { + "type": "BlockStatement", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/actual.js new file mode 100644 index 0000000000..4197eb461e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/actual.js @@ -0,0 +1 @@ +try {} catch ([a,b, {c, d:e=0, [f]:g=0, h=i}]) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json new file mode 100644 index 0000000000..0a028a82f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json @@ -0,0 +1,464 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 7, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "param": { + "type": "ArrayPattern", + "start": 14, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "b" + }, + { + "type": "ObjectPattern", + "start": 20, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "properties": [ + { + "type": "Property", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "c" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "c" + } + }, + { + "type": "Property", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "d" + }, + "value": { + "type": "AssignmentPattern", + "start": 26, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "left": { + "type": "Identifier", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "e" + }, + "right": { + "type": "Literal", + "start": 28, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 31, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "method": false, + "shorthand": false, + "computed": true, + "key": { + "type": "Identifier", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "f" + }, + "value": { + "type": "AssignmentPattern", + "start": 35, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "left": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "g" + }, + "right": { + "type": "Literal", + "start": 37, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 40, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 40, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "h" + }, + "kind": "init", + "value": { + "type": "AssignmentPattern", + "start": 40, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "left": { + "type": "Identifier", + "start": 40, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "h" + }, + "right": { + "type": "Identifier", + "start": 42, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "i" + } + } + } + ] + } + ] + }, + "body": { + "type": "BlockStatement", + "start": 47, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/actual.js new file mode 100644 index 0000000000..3fd6f16faa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/actual.js @@ -0,0 +1 @@ +let [...a] = 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json new file mode 100644 index 0000000000..7118bc2683 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "elements": [ + { + "type": "RestElement", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "argument": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "a" + } + } + ] + }, + "init": { + "type": "Literal", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/actual.js new file mode 100644 index 0000000000..7e1ac75714 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/actual.js @@ -0,0 +1 @@ +let [a,,]=0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json new file mode 100644 index 0000000000..695be41271 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + null + ] + }, + "init": { + "type": "Literal", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/actual.js new file mode 100644 index 0000000000..ff120cf6cd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/actual.js @@ -0,0 +1 @@ +try { } catch ([a] = []) { } diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/options.json new file mode 100644 index 0000000000..1e730e1707 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param-fail/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:19)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/actual.js new file mode 100644 index 0000000000..0b02d2f86c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/actual.js @@ -0,0 +1 @@ +try { } catch ([a = 0]) { } diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json new file mode 100644 index 0000000000..b45bc367e9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "param": { + "type": "ArrayPattern", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "elements": [ + { + "type": "AssignmentPattern", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "a" + }, + "right": { + "type": "Literal", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ] + }, + "body": { + "type": "BlockStatement", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/actual.js new file mode 100644 index 0000000000..e74ff47ece --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/actual.js @@ -0,0 +1 @@ +function a([a=0]) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json new file mode 100644 index 0000000000..da1c0b9799 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 11, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "elements": [ + { + "type": "AssignmentPattern", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "left": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "a" + }, + "right": { + "type": "Literal", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/actual.js new file mode 100644 index 0000000000..c20b838021 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/actual.js @@ -0,0 +1 @@ +let [{a}] = 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json new file mode 100644 index 0000000000..d7d0077c3d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "ArrayPattern", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elements": [ + { + "type": "ObjectPattern", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "a" + } + } + ] + } + ] + }, + "init": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/actual.js new file mode 100644 index 0000000000..de1208284b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/actual.js @@ -0,0 +1 @@ +(a ...b) => 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-rest-forgetting-comma/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/actual.js new file mode 100644 index 0000000000..61d7f20525 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/actual.js @@ -0,0 +1 @@ +(a,b,...c) => 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json new file mode 100644 index 0000000000..878f8d67a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "b" + }, + { + "type": "RestElement", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "argument": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "c" + } + } + ], + "body": { + "type": "Literal", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/actual.js new file mode 100644 index 0000000000..7d8f773fc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/actual.js @@ -0,0 +1 @@ +(...a, ...b) => 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-rest/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/actual.js new file mode 100644 index 0000000000..db6e46e4e2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/actual.js @@ -0,0 +1 @@ +(...a) => 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json new file mode 100644 index 0000000000..7528bfa144 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "RestElement", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "argument": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "a" + } + } + ], + "body": { + "type": "Literal", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/actual.js new file mode 100644 index 0000000000..ed8b57eb04 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/actual.js @@ -0,0 +1 @@ +(a,...[a]) => 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json new file mode 100644 index 0000000000..4ebe77e8fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:7)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/actual.js new file mode 100644 index 0000000000..edd030d19c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/actual.js @@ -0,0 +1 @@ +(x, x) => y; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/options.json new file mode 100644 index 0000000000..0590c2b7e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-duplicated-params/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:4)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/actual.js new file mode 100644 index 0000000000..efc10aad8b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/actual.js @@ -0,0 +1,2 @@ +() +=> 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-line-terminator-arrow/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/actual.js new file mode 100644 index 0000000000..5087dd1250 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/actual.js @@ -0,0 +1 @@ +eval => {"use strict"}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/expected.json new file mode 100644 index 0000000000..28f8776321 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 9, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "Literal", + "start": 9, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/options.json new file mode 100644 index 0000000000..811d429e63 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/invalid-param-strict-mode/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/actual.js new file mode 100644 index 0000000000..9bd20e6306 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/actual.js @@ -0,0 +1 @@ +() => "test" diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json new file mode 100644 index 0000000000..cdf259a636 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json @@ -0,0 +1,85 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [], + "body": { + "type": "Literal", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "test", + "rawValue": "test", + "raw": "\"test\"" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/actual.js new file mode 100644 index 0000000000..66e7d77f82 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/actual.js @@ -0,0 +1 @@ +e => "test" diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json new file mode 100644 index 0000000000..fd76eb8af9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "e" + } + ], + "body": { + "type": "Literal", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": "test", + "rawValue": "test", + "raw": "\"test\"" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/actual.js new file mode 100644 index 0000000000..492abecbb4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/actual.js @@ -0,0 +1 @@ +(e) => "test" diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json new file mode 100644 index 0000000000..1b9cab7e5c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "e" + } + ], + "body": { + "type": "Literal", + "start": 7, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": "test", + "rawValue": "test", + "raw": "\"test\"" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/actual.js new file mode 100644 index 0000000000..fb2bcd3a3f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/actual.js @@ -0,0 +1 @@ +(a, b) => "test" diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json new file mode 100644 index 0000000000..5a88aff7cb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "b" + } + ], + "body": { + "type": "Literal", + "start": 10, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": "test", + "rawValue": "test", + "raw": "\"test\"" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/actual.js new file mode 100644 index 0000000000..7832f00157 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/actual.js @@ -0,0 +1 @@ +e => { 42; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json new file mode 100644 index 0000000000..a8c79cf5fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "e" + } + ], + "body": { + "type": "BlockStatement", + "start": 5, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "Literal", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/actual.js new file mode 100644 index 0000000000..8cae73b669 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/actual.js @@ -0,0 +1 @@ +e => ({ property: 42 }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json new file mode 100644 index 0000000000..616b8e8a5b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json @@ -0,0 +1,155 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "e" + } + ], + "body": { + "type": "ObjectExpression", + "start": 6, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "properties": [ + { + "type": "Property", + "start": 8, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 8, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "property" + }, + "value": { + "type": "Literal", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/actual.js new file mode 100644 index 0000000000..a315e257aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/actual.js @@ -0,0 +1 @@ +e => { label: 42 } diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json new file mode 100644 index 0000000000..be00941649 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json @@ -0,0 +1,165 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "e" + } + ], + "body": { + "type": "BlockStatement", + "start": 5, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [ + { + "type": "LabeledStatement", + "start": 7, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "body": { + "type": "ExpressionStatement", + "start": 14, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "Literal", + "start": 14, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + }, + "label": { + "type": "Identifier", + "start": 7, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "label" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/actual.js new file mode 100644 index 0000000000..1de9f227d2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/actual.js @@ -0,0 +1 @@ +(a, b) => { 42; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json new file mode 100644 index 0000000000..f79a8f0276 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "b" + } + ], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "Literal", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/actual.js new file mode 100644 index 0000000000..7d3f13df4b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/actual.js @@ -0,0 +1 @@ +(x=1) => x * x diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json new file mode 100644 index 0000000000..7ad095e070 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json @@ -0,0 +1,165 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "AssignmentPattern", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "left": { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "body": { + "type": "BinaryExpression", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "left": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "x" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/actual.js new file mode 100644 index 0000000000..d1cf60fd7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/actual.js @@ -0,0 +1 @@ +eval => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json new file mode 100644 index 0000000000..c45a0f326b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "eval" + } + ], + "body": { + "type": "Literal", + "start": 8, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/actual.js new file mode 100644 index 0000000000..c2c0225fe2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/actual.js @@ -0,0 +1 @@ +arguments => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json new file mode 100644 index 0000000000..6af42ac3f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "Literal", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/actual.js new file mode 100644 index 0000000000..c8cc6f33f2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/actual.js @@ -0,0 +1 @@ +(a) => 00 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json new file mode 100644 index 0000000000..79998f9b16 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + } + ], + "body": { + "type": "Literal", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "00" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/actual.js new file mode 100644 index 0000000000..2cd3cc4073 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/actual.js @@ -0,0 +1 @@ +(eval, a) => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json new file mode 100644 index 0000000000..09c80c6f1e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "eval" + }, + { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "a" + } + ], + "body": { + "type": "Literal", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/actual.js new file mode 100644 index 0000000000..8bfa1d67ec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/actual.js @@ -0,0 +1 @@ +(eval = 10) => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json new file mode 100644 index 0000000000..7549259432 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json @@ -0,0 +1,135 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "AssignmentPattern", + "start": 1, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "left": { + "type": "Identifier", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "eval" + }, + "right": { + "type": "Literal", + "start": 8, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "body": { + "type": "Literal", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/actual.js new file mode 100644 index 0000000000..1c47ed256a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/actual.js @@ -0,0 +1 @@ +(eval, a = 10) => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json new file mode 100644 index 0000000000..6ea224db79 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "eval" + }, + { + "type": "AssignmentPattern", + "start": 7, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "left": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "a" + }, + "right": { + "type": "Literal", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "body": { + "type": "Literal", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/actual.js new file mode 100644 index 0000000000..0d4a5ed958 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/actual.js @@ -0,0 +1 @@ +(x => x) diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json new file mode 100644 index 0000000000..e81c37fc89 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 1, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + ], + "body": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/actual.js new file mode 100644 index 0000000000..48deea86cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/actual.js @@ -0,0 +1 @@ +x => y => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json new file mode 100644 index 0000000000..8a76cf1c16 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json @@ -0,0 +1,138 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + } + ], + "body": { + "type": "ArrowFunctionExpression", + "start": 5, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + ], + "body": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/actual.js new file mode 100644 index 0000000000..a243c8ba58 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/actual.js @@ -0,0 +1 @@ +(x) => ((y, z) => (x, y, z)) diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json new file mode 100644 index 0000000000..8a2ef02d21 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json @@ -0,0 +1,203 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + ], + "body": { + "type": "ArrowFunctionExpression", + "start": 8, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "z" + } + ], + "body": { + "type": "SequenceExpression", + "start": 19, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expressions": [ + { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "z" + } + ], + "parenthesizedExpression": true + }, + "parenthesizedExpression": true + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/actual.js new file mode 100644 index 0000000000..62aef02bfd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/actual.js @@ -0,0 +1 @@ +foo(() => {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/expected.json new file mode 100644 index 0000000000..001ee4b78f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0018/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "foo" + }, + "arguments": [ + { + "type": "ArrowFunctionExpression", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "body": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/actual.js new file mode 100644 index 0000000000..90023d1be8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/actual.js @@ -0,0 +1 @@ +foo((x, y) => {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/expected.json new file mode 100644 index 0000000000..6abd542b88 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0019/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "foo" + }, + "arguments": [ + { + "type": "ArrowFunctionExpression", + "start": 4, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "y" + } + ], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "body": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/actual.js new file mode 100644 index 0000000000..3222faced0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/actual.js @@ -0,0 +1 @@ +(sun) => earth diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/expected.json new file mode 100644 index 0000000000..c0edf43c28 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0020/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "sun" + } + ], + "body": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "earth" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/actual.js new file mode 100644 index 0000000000..487bb99ecf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/actual.js @@ -0,0 +1 @@ +((a)) => 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-arrow/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/actual.js new file mode 100644 index 0000000000..df151fb1b2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/actual.js @@ -0,0 +1 @@ +((a),...b) => 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/non-arrow-param-followed-by-rest/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/expected.json new file mode 100644 index 0000000000..10130f3578 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/expected.json @@ -0,0 +1,32 @@ +{ + "type": "File", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "sourceType": "script", + "body": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.failure.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.failure.json new file mode 100755 index 0000000000..8245542d3d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.failure.json @@ -0,0 +1 @@ +{"index":10,"lineNumber":1,"column":11,"message":"Error: Line 1: Unexpected token =>","description":"Unexpected token =>"} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.js new file mode 100755 index 0000000000..a5f4a07955 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-member-expr.js @@ -0,0 +1 @@ +({a:b[0]})=>0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.failure.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.failure.json new file mode 100755 index 0000000000..030f8f3752 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.failure.json @@ -0,0 +1 @@ +{"index":14,"lineNumber":1,"column":15,"message":"Error: Line 1: Unexpected token =>","description":"Unexpected token =>"} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.js new file mode 100755 index 0000000000..79ff928dce --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-method-in-pattern.js @@ -0,0 +1 @@ +({get a(){}}) => 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.failure.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.failure.json new file mode 100755 index 0000000000..08ba5aca74 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.failure.json @@ -0,0 +1 @@ +{"index":50,"lineNumber":1,"column":51,"message":"Error: Line 1: Unexpected token =>","description":"Unexpected token =>"} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.js new file mode 100755 index 0000000000..a0f03b9660 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-nested-param.js @@ -0,0 +1 @@ +([[[[[[[[[[[[[[[[[[[[{a:b[0]}]]]]]]]]]]]]]]]]]]]])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.failure.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.failure.json new file mode 100755 index 0000000000..b0c1b45f77 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.failure.json @@ -0,0 +1 @@ +{"index":3,"lineNumber":1,"column":4,"message":"Error: Line 1: Unexpected token =>","description":"Unexpected token =>"} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.js new file mode 100755 index 0000000000..76fa79dbcd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-pattern-without-parenthesis.js @@ -0,0 +1 @@ +({}=>0) diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.failure.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.failure.json new file mode 100755 index 0000000000..6551a47579 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.failure.json @@ -0,0 +1 @@ +{"index":4,"lineNumber":1,"column":5,"message":"Error: Line 1: Unexpected token ...","description":"Unexpected token ..."} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.js new file mode 100755 index 0000000000..77352f8f88 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/invalid-rest-in-object-pattern.js @@ -0,0 +1 @@ +({a,...b}) => 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/nested-cover-grammar.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/nested-cover-grammar.js new file mode 100755 index 0000000000..3481b6ca91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/nested-cover-grammar.js @@ -0,0 +1 @@ +([[[[[[[[[[[[[[[[[[[[{a=b}]]]]]]]]]]]]]]]]]]]])=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-01.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-01.js new file mode 100755 index 0000000000..c50a2a757b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-01.js @@ -0,0 +1 @@ +({a,b=b,a:c,[a]:[d]})=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-empty.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-empty.js new file mode 100755 index 0000000000..acfe22488e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/object-binding-pattern/object-binding-pattern-empty.js @@ -0,0 +1 @@ +({})=>0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/actual.js new file mode 100644 index 0000000000..65116d42d4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/actual.js @@ -0,0 +1 @@ +(b, ...a) + 1 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/param-with-rest-without-arrow/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/actual.js b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/actual.js new file mode 100644 index 0000000000..13d242d02f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/actual.js @@ -0,0 +1 @@ +(...a) + 1 diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/rest-without-arrow/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/actual.js new file mode 100644 index 0000000000..315efbae83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/actual.js @@ -0,0 +1 @@ +0b0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json new file mode 100644 index 0000000000..d75e50e145 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0b0" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/actual.js new file mode 100644 index 0000000000..d24eb0100a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/actual.js @@ -0,0 +1 @@ +0b1 diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json new file mode 100644 index 0000000000..87c4066eaf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 1, + "rawValue": 1, + "raw": "0b1" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/actual.js new file mode 100644 index 0000000000..34eafb9e6d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/actual.js @@ -0,0 +1 @@ +0b10 diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json new file mode 100644 index 0000000000..15344e54fd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": 2, + "rawValue": 2, + "raw": "0b10" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/actual.js new file mode 100644 index 0000000000..1afe400c83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/actual.js @@ -0,0 +1 @@ +0B0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json new file mode 100644 index 0000000000..25eeb9786f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0B0" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/actual.js new file mode 100644 index 0000000000..f75498de50 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/actual.js @@ -0,0 +1 @@ +0B1 diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json new file mode 100644 index 0000000000..d42f8407c2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 1, + "rawValue": 1, + "raw": "0B1" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/actual.js new file mode 100644 index 0000000000..3847e5c0d8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/actual.js @@ -0,0 +1 @@ +0B10 diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json new file mode 100644 index 0000000000..6f8f49f4e1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": 2, + "rawValue": 2, + "raw": "0B10" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/actual.js new file mode 100644 index 0000000000..a869c28495 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/actual.js @@ -0,0 +1 @@ +class A {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/expected.json new file mode 100644 index 0000000000..9be73d0dda --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0000/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/actual.js new file mode 100644 index 0000000000..b8a3671ec0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/actual.js @@ -0,0 +1 @@ +class A extends 0 {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json new file mode 100644 index 0000000000..99cd27794e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Literal", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/actual.js new file mode 100644 index 0000000000..38a97a0b1c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/actual.js @@ -0,0 +1 @@ +class A {;} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/expected.json new file mode 100644 index 0000000000..13ae4c94f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0002/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/actual.js new file mode 100644 index 0000000000..3528a381c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/actual.js @@ -0,0 +1 @@ +class A {;;} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/expected.json new file mode 100644 index 0000000000..dbd2563e9f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0003/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/actual.js new file mode 100644 index 0000000000..6c12735490 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/actual.js @@ -0,0 +1 @@ +class A {a(){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json new file mode 100644 index 0000000000..e60d7294c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/actual.js new file mode 100644 index 0000000000..225d0cc10d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/actual.js @@ -0,0 +1 @@ +class A {a(){}b(){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json new file mode 100644 index 0000000000..4ead53f755 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json @@ -0,0 +1,220 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "b" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/actual.js new file mode 100644 index 0000000000..c71d0c48b4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/actual.js @@ -0,0 +1 @@ +class A {a(){};b(){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json new file mode 100644 index 0000000000..a4bb492dbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json @@ -0,0 +1,220 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "b" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/actual.js new file mode 100644 index 0000000000..28359eb659 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/actual.js @@ -0,0 +1 @@ +class A {a(){};b(){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json new file mode 100644 index 0000000000..77aa858ee4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json @@ -0,0 +1,220 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "b" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/actual.js new file mode 100644 index 0000000000..21c95927e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/actual.js @@ -0,0 +1 @@ +class A {;a(){};b(){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json new file mode 100644 index 0000000000..f0da7ec99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json @@ -0,0 +1,220 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 10, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "b" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 17, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/actual.js new file mode 100644 index 0000000000..37ee444b36 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/actual.js @@ -0,0 +1 @@ +class A {static(){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json new file mode 100644 index 0000000000..0cd6f1a23f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "static" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/actual.js new file mode 100644 index 0000000000..3522e47d56 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/actual.js @@ -0,0 +1 @@ +class A {get a(){} set b(c){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json new file mode 100644 index 0000000000..b2101dd75c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json @@ -0,0 +1,237 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "a" + }, + "static": false, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 19, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "b" + }, + "static": false, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "c" + } + ], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/actual.js new file mode 100644 index 0000000000..d51a855c19 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/actual.js @@ -0,0 +1 @@ +class A {static a(){} static get a(){} static set a(b){} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json new file mode 100644 index 0000000000..1c0665ae72 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json @@ -0,0 +1,306 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "a" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 17, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 22, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 33, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "a" + }, + "static": true, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 34, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 36, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 39, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 50, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 50 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "a" + }, + "static": true, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 51, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 51 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 52, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "name": "b" + } + ], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/actual.js new file mode 100644 index 0000000000..9e05866140 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/actual.js @@ -0,0 +1 @@ +class A {static a(){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json new file mode 100644 index 0000000000..b1acc4da5f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "a" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 17, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/actual.js new file mode 100644 index 0000000000..3655b96640 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/actual.js @@ -0,0 +1 @@ +class A {static [a](){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json new file mode 100644 index 0000000000..a366c8ad3f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "computed": true, + "key": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "a" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 19, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/actual.js new file mode 100644 index 0000000000..d7d015564b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/actual.js @@ -0,0 +1 @@ +class A {static[a](){}; static[b](){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json new file mode 100644 index 0000000000..b9887ebdf9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json @@ -0,0 +1,220 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "computed": true, + "key": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "a" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 24, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "computed": true, + "key": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "b" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/actual.js new file mode 100644 index 0000000000..ef28cd29d4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/actual.js @@ -0,0 +1 @@ +class A {static static(){};} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json new file mode 100644 index 0000000000..7e151a458e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "static" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 22, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/actual.js new file mode 100644 index 0000000000..9e20af5ce5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/actual.js @@ -0,0 +1 @@ +var x = class A extends 0{} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json new file mode 100644 index 0000000000..150f14ca4c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json @@ -0,0 +1,147 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": { + "type": "ClassExpression", + "start": 8, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "A" + }, + "superClass": { + "type": "Literal", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "body": { + "type": "ClassBody", + "start": 25, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "body": [] + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/actual.js new file mode 100644 index 0000000000..f99ff2f6ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/actual.js @@ -0,0 +1 @@ +class A {prototype(){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json new file mode 100644 index 0000000000..a887878c99 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "prototype" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/actual.js new file mode 100644 index 0000000000..22b21f85a8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/actual.js @@ -0,0 +1 @@ +class A {constructor(){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json new file mode 100644 index 0000000000..4ce9a1e28c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "constructor" + }, + "static": false, + "kind": "constructor", + "value": { + "type": "FunctionExpression", + "start": 20, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/actual.js new file mode 100644 index 0000000000..4055effa37 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/actual.js @@ -0,0 +1 @@ +class A {"constructor"(){} ["constructor"](){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json new file mode 100644 index 0000000000..8b28390427 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json @@ -0,0 +1,224 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "computed": false, + "key": { + "type": "Literal", + "start": 9, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "constructor", + "rawValue": "constructor", + "raw": "\"constructor\"" + }, + "static": false, + "kind": "constructor", + "value": { + "type": "FunctionExpression", + "start": 22, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 27, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "computed": true, + "key": { + "type": "Literal", + "start": 28, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "value": "constructor", + "rawValue": "constructor", + "raw": "\"constructor\"" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 42, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 44, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/actual.js new file mode 100644 index 0000000000..2a91706210 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/actual.js @@ -0,0 +1 @@ +class A {static constructor(){} static constructor(){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json new file mode 100644 index 0000000000..0241df155f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json @@ -0,0 +1,220 @@ +{ + "type": "File", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "constructor" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [] + } + } + }, + { + "type": "MethodDefinition", + "start": 32, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 39, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "name": "constructor" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 50, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 50 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 52, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/actual.js new file mode 100644 index 0000000000..f67a12b369 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/actual.js @@ -0,0 +1 @@ +class A {static ["prototype"](){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json new file mode 100644 index 0000000000..0d65fe2441 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json @@ -0,0 +1,153 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "computed": true, + "key": { + "type": "Literal", + "start": 17, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "prototype", + "rawValue": "prototype", + "raw": "\"prototype\"" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 29, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 31, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/actual.js new file mode 100644 index 0000000000..cfc53f66a8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/actual.js @@ -0,0 +1 @@ +(class {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json new file mode 100644 index 0000000000..5a08887ae2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json @@ -0,0 +1,82 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "ClassExpression", + "start": 1, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/actual.js new file mode 100644 index 0000000000..156703052c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/actual.js @@ -0,0 +1 @@ +(class A {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json new file mode 100644 index 0000000000..daf97fa8cc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json @@ -0,0 +1,97 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "ClassExpression", + "start": 1, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/actual.js new file mode 100644 index 0000000000..d4d239c25b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/actual.js @@ -0,0 +1 @@ +(class extends 0{}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json new file mode 100644 index 0000000000..897b90b1c4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "expression": { + "type": "ClassExpression", + "start": 1, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "superClass": { + "type": "Literal", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "body": { + "type": "ClassBody", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/actual.js new file mode 100644 index 0000000000..3aad971839 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/actual.js @@ -0,0 +1 @@ +(class A extends 0{}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json new file mode 100644 index 0000000000..80a74cd675 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json @@ -0,0 +1,114 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "ClassExpression", + "start": 1, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "A" + }, + "superClass": { + "type": "Literal", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/actual.js new file mode 100644 index 0000000000..ecb24de6d9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/actual.js @@ -0,0 +1 @@ +class A {a(eval){}} diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json new file mode 100644 index 0000000000..7354aa5050 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 10, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/actual.js new file mode 100644 index 0000000000..8031dd7db9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/actual.js @@ -0,0 +1 @@ +x = function(y = 1) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json new file mode 100644 index 0000000000..8b22c0b26b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json @@ -0,0 +1,165 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "FunctionExpression", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "left": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "y" + }, + "right": { + "type": "Literal", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/actual.js new file mode 100644 index 0000000000..25e4a13a7a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/actual.js @@ -0,0 +1 @@ +function f(a = 1) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json new file mode 100644 index 0000000000..8cbbeeddbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 11, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "left": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "a" + }, + "right": { + "type": "Literal", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/actual.js new file mode 100644 index 0000000000..e6afbda892 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/actual.js @@ -0,0 +1 @@ +x = { f: function(a=1) {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json new file mode 100644 index 0000000000..4f349927b9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json @@ -0,0 +1,217 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "f" + }, + "value": { + "type": "FunctionExpression", + "start": 9, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 18, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "a" + }, + "right": { + "type": "Literal", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [] + } + }, + "kind": "init" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/actual.js new file mode 100644 index 0000000000..32ca5172db --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/actual.js @@ -0,0 +1 @@ +[a,a,,...a]=0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json new file mode 100644 index 0000000000..574f634dc3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "a" + }, + null, + { + "type": "RestElement", + "start": 6, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "argument": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + } + } + ] + }, + "right": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/actual.js new file mode 100644 index 0000000000..1819baf74d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/actual.js @@ -0,0 +1 @@ +[,,]=0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json new file mode 100644 index 0000000000..e56c4d8f57 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "elements": [ + null, + null + ] + }, + "right": { + "type": "Literal", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/actual.js new file mode 100644 index 0000000000..f09a194748 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/actual.js @@ -0,0 +1 @@ +[...a[0]] = 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json new file mode 100644 index 0000000000..80579906b4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elements": [ + { + "type": "RestElement", + "start": 1, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "argument": { + "type": "MemberExpression", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "object": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "a" + }, + "property": { + "type": "Literal", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "computed": true + } + } + ] + }, + "right": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/actual.js new file mode 100644 index 0000000000..4bb7333964 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/actual.js @@ -0,0 +1 @@ +[a,b=0,[c,...a[0]]={}]=0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json new file mode 100644 index 0000000000..b274610e61 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json @@ -0,0 +1,293 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + }, + { + "type": "AssignmentPattern", + "start": 3, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "b" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + { + "type": "AssignmentPattern", + "start": 7, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "ArrayPattern", + "start": 7, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "c" + }, + { + "type": "RestElement", + "start": 10, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "argument": { + "type": "MemberExpression", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "object": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "a" + }, + "property": { + "type": "Literal", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "computed": true + } + } + ] + }, + "right": { + "type": "ObjectExpression", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "properties": [] + } + } + ] + }, + "right": { + "type": "Literal", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/actual.js new file mode 100644 index 0000000000..4b9a5e317b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/actual.js @@ -0,0 +1 @@ +[{a=b}=0] diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json new file mode 100644 index 0000000000..335b17c62c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "ArrayExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elements": [ + { + "type": "AssignmentExpression", + "start": 1, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "operator": "=", + "left": { + "type": "ObjectPattern", + "start": 1, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "properties": [ + { + "type": "Property", + "start": 2, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "AssignmentPattern", + "start": 2, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "a" + }, + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "b" + } + } + } + ] + }, + "right": { + "type": "Literal", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/actual.js new file mode 100644 index 0000000000..7cfd69bb5f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/actual.js @@ -0,0 +1 @@ +[a] = 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json new file mode 100644 index 0000000000..04a63a3079 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + } + ] + }, + "right": { + "type": "Literal", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/actual.js new file mode 100644 index 0000000000..90c7f79b8c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/actual.js @@ -0,0 +1 @@ +({} = 0); diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json new file mode 100644 index 0000000000..71ff2e0702 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 1, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "=", + "left": { + "type": "ObjectPattern", + "start": 1, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "properties": [] + }, + "right": { + "type": "Literal", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/actual.js new file mode 100644 index 0000000000..e4587fbdf2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/actual.js @@ -0,0 +1 @@ +({a:this}=0) diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json new file mode 100644 index 0000000000..f940813b9f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-01/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/actual.js new file mode 100644 index 0000000000..d6169342ed --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/actual.js @@ -0,0 +1 @@ +({a: this} = 0); diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json new file mode 100644 index 0000000000..85f6f01102 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-lhs-02/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/actual.js new file mode 100644 index 0000000000..4dc400f18b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/actual.js @@ -0,0 +1 @@ +({get a(){}})=0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/options.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/options.json new file mode 100644 index 0000000000..359d73aba0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/invalid-pattern-with-method/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Object pattern can't contain getter or setter (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/actual.js new file mode 100644 index 0000000000..eafafc8751 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/actual.js @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[[[{a=b[0]}]]]]]]]]]]]]]]]]]]]]=0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json new file mode 100644 index 0000000000..65409260c0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json @@ -0,0 +1,555 @@ +{ + "type": "File", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 1, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 2, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 3, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 4, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 5, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 6, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 7, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 8, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 9, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 10, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 11, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 12, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 13, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 15, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 16, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 17, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "elements": [ + { + "type": "ArrayPattern", + "start": 19, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "elements": [ + { + "type": "ObjectPattern", + "start": 20, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "properties": [ + { + "type": "Property", + "start": 21, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "AssignmentPattern", + "start": 21, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "left": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "a" + }, + "right": { + "type": "MemberExpression", + "start": 23, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "object": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "b" + }, + "property": { + "type": "Literal", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "computed": true + } + } + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "right": { + "type": "Literal", + "start": 49, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/actual.js new file mode 100644 index 0000000000..c24458998d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/actual.js @@ -0,0 +1,8 @@ +({ + a, + a:a, + a:a=a, + [a]:{a}, + a:some_call()[a], + a:this.a +} = 0); diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json new file mode 100644 index 0000000000..1689a3fe18 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json @@ -0,0 +1,568 @@ +{ + "type": "File", + "start": 0, + "end": 85, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 8, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 85, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 8, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 85, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 8, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 1, + "end": 83, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 8, + "column": 5 + } + }, + "operator": "=", + "left": { + "type": "ObjectPattern", + "start": 1, + "end": 79, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 8, + "column": 1 + } + }, + "properties": [ + { + "type": "Property", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "a" + } + }, + { + "type": "Property", + "start": 14, + "end": 17, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 5 + } + }, + "name": "a" + }, + "value": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 3, + "column": 6 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "name": "a" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 4, + "column": 4 + }, + "end": { + "line": 4, + "column": 9 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 4, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "name": "a" + }, + "value": { + "type": "AssignmentPattern", + "start": 25, + "end": 28, + "loc": { + "start": { + "line": 4, + "column": 6 + }, + "end": { + "line": 4, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 4, + "column": 6 + }, + "end": { + "line": 4, + "column": 7 + } + }, + "name": "a" + }, + "right": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 4, + "column": 8 + }, + "end": { + "line": 4, + "column": 9 + } + }, + "name": "a" + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 34, + "end": 41, + "loc": { + "start": { + "line": 5, + "column": 4 + }, + "end": { + "line": 5, + "column": 11 + } + }, + "method": false, + "shorthand": false, + "computed": true, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 5, + "column": 5 + }, + "end": { + "line": 5, + "column": 6 + } + }, + "name": "a" + }, + "value": { + "type": "ObjectPattern", + "start": 38, + "end": 41, + "loc": { + "start": { + "line": 5, + "column": 8 + }, + "end": { + "line": 5, + "column": 11 + } + }, + "properties": [ + { + "type": "Property", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 5, + "column": 9 + }, + "end": { + "line": 5, + "column": 10 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 5, + "column": 9 + }, + "end": { + "line": 5, + "column": 10 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 5, + "column": 9 + }, + "end": { + "line": 5, + "column": 10 + } + }, + "name": "a" + } + } + ] + }, + "kind": "init" + }, + { + "type": "Property", + "start": 47, + "end": 63, + "loc": { + "start": { + "line": 6, + "column": 4 + }, + "end": { + "line": 6, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 47, + "end": 48, + "loc": { + "start": { + "line": 6, + "column": 4 + }, + "end": { + "line": 6, + "column": 5 + } + }, + "name": "a" + }, + "value": { + "type": "MemberExpression", + "start": 49, + "end": 63, + "loc": { + "start": { + "line": 6, + "column": 6 + }, + "end": { + "line": 6, + "column": 20 + } + }, + "object": { + "type": "CallExpression", + "start": 49, + "end": 60, + "loc": { + "start": { + "line": 6, + "column": 6 + }, + "end": { + "line": 6, + "column": 17 + } + }, + "callee": { + "type": "Identifier", + "start": 49, + "end": 58, + "loc": { + "start": { + "line": 6, + "column": 6 + }, + "end": { + "line": 6, + "column": 15 + } + }, + "name": "some_call" + }, + "arguments": [] + }, + "property": { + "type": "Identifier", + "start": 61, + "end": 62, + "loc": { + "start": { + "line": 6, + "column": 18 + }, + "end": { + "line": 6, + "column": 19 + } + }, + "name": "a" + }, + "computed": true + }, + "kind": "init" + }, + { + "type": "Property", + "start": 69, + "end": 77, + "loc": { + "start": { + "line": 7, + "column": 4 + }, + "end": { + "line": 7, + "column": 12 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 69, + "end": 70, + "loc": { + "start": { + "line": 7, + "column": 4 + }, + "end": { + "line": 7, + "column": 5 + } + }, + "name": "a" + }, + "value": { + "type": "MemberExpression", + "start": 71, + "end": 77, + "loc": { + "start": { + "line": 7, + "column": 6 + }, + "end": { + "line": 7, + "column": 12 + } + }, + "object": { + "type": "ThisExpression", + "start": 71, + "end": 75, + "loc": { + "start": { + "line": 7, + "column": 6 + }, + "end": { + "line": 7, + "column": 10 + } + } + }, + "property": { + "type": "Identifier", + "start": 76, + "end": 77, + "loc": { + "start": { + "line": 7, + "column": 11 + }, + "end": { + "line": 7, + "column": 12 + } + }, + "name": "a" + }, + "computed": false + }, + "kind": "init" + } + ] + }, + "right": { + "type": "Literal", + "start": 82, + "end": 83, + "loc": { + "start": { + "line": 8, + "column": 4 + }, + "end": { + "line": 8, + "column": 5 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/actual.js new file mode 100644 index 0000000000..0b41490405 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/actual.js @@ -0,0 +1 @@ +[[[[[[[[[[[[[[[[[[[[{a=b}]]]]]]]]]]]]]]]]]]]] diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json new file mode 100644 index 0000000000..b23f881870 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-cover-grammar/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:22)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/actual.js b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/actual.js new file mode 100644 index 0000000000..edb5ea6143 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/actual.js @@ -0,0 +1 @@ +(a,b)=(c,d); diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json new file mode 100644 index 0000000000..4d699b8b0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment/invalid-group-assignment/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/actual.js new file mode 100644 index 0000000000..bb1843d113 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/actual.js @@ -0,0 +1 @@ +export const foo = 1; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json new file mode 100644 index 0000000000..3291034455 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "VariableDeclaration", + "start": 7, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 13, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "foo" + }, + "init": { + "type": "Literal", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "kind": "const" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/actual.js new file mode 100644 index 0000000000..d6d1738de6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/actual.js @@ -0,0 +1 @@ +export default []; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/expected.json new file mode 100644 index 0000000000..50cc489ebb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-array/expected.json @@ -0,0 +1,64 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "declaration": { + "type": "ArrayExpression", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "elements": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/actual.js new file mode 100644 index 0000000000..a6e68e9838 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/actual.js @@ -0,0 +1 @@ +export default class {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json new file mode 100644 index 0000000000..0d4410ae2e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declaration": { + "type": "ClassExpression", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": null, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/actual.js new file mode 100644 index 0000000000..f30c184a1a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/actual.js @@ -0,0 +1 @@ +export default (1 + 2); diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json new file mode 100644 index 0000000000..81384a8a1d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declaration": { + "type": "BinaryExpression", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "Literal", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": 2, + "rawValue": 2, + "raw": "2" + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/actual.js new file mode 100644 index 0000000000..ea9b101e1c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/actual.js @@ -0,0 +1 @@ +export default function () {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json new file mode 100644 index 0000000000..be8795503e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declaration": { + "type": "FunctionExpression", + "start": 15, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/actual.js new file mode 100644 index 0000000000..386baca173 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/actual.js @@ -0,0 +1 @@ +export default function foo() {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/expected.json new file mode 100644 index 0000000000..904f0ed8d9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-named-function/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "declaration": { + "type": "FunctionDeclaration", + "start": 15, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "foo" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 30, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/actual.js new file mode 100644 index 0000000000..7a4e8a723a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/actual.js @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json new file mode 100644 index 0000000000..b0579df273 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "declaration": { + "type": "Literal", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/actual.js new file mode 100644 index 0000000000..f8266ca25f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/actual.js @@ -0,0 +1 @@ +export default { foo: 1 }; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json new file mode 100644 index 0000000000..3881690753 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "declaration": { + "type": "ObjectExpression", + "start": 15, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "properties": [ + { + "type": "Property", + "start": 17, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "foo" + }, + "value": { + "type": "Literal", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "kind": "init" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/actual.js new file mode 100644 index 0000000000..f7b318b3f6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/actual.js @@ -0,0 +1 @@ +export default foo; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/expected.json new file mode 100644 index 0000000000..7425436e1f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-value/expected.json @@ -0,0 +1,64 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportDefaultDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "declaration": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "foo" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/actual.js new file mode 100644 index 0000000000..9ec8f63ab2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/actual.js @@ -0,0 +1 @@ +export * from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json new file mode 100644 index 0000000000..c23e216897 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportAllDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "source": { + "type": "Literal", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/actual.js new file mode 100644 index 0000000000..2c7930d925 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/actual.js @@ -0,0 +1 @@ +export {default} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json new file mode 100644 index 0000000000..9b94e4de83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "default" + }, + "exported": { + "type": "Identifier", + "start": 8, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "default" + } + } + ], + "source": { + "type": "Literal", + "start": 22, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/actual.js new file mode 100644 index 0000000000..5be9a685aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/actual.js @@ -0,0 +1 @@ +export {foo as default} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json new file mode 100644 index 0000000000..1f80e99f3b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "default" + } + } + ], + "source": { + "type": "Literal", + "start": 29, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/actual.js new file mode 100644 index 0000000000..9fff903bd9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/actual.js @@ -0,0 +1 @@ +export {foo as bar} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json new file mode 100644 index 0000000000..263e8769d4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "bar" + } + } + ], + "source": { + "type": "Literal", + "start": 25, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/actual.js new file mode 100644 index 0000000000..4461d79e3b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/actual.js @@ -0,0 +1 @@ +export {foo as default, bar} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json new file mode 100644 index 0000000000..39ad36c9ac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "default" + } + }, + { + "type": "ExportSpecifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "local": { + "type": "Identifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "bar" + }, + "exported": { + "type": "Identifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "bar" + } + } + ], + "source": { + "type": "Literal", + "start": 34, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/actual.js new file mode 100644 index 0000000000..83b7b67c51 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/actual.js @@ -0,0 +1 @@ +export {foo} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json new file mode 100644 index 0000000000..37e27ba6b1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + } + } + ], + "source": { + "type": "Literal", + "start": 18, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/actual.js new file mode 100644 index 0000000000..35c2762a29 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/actual.js @@ -0,0 +1 @@ +export {foo, bar} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json new file mode 100644 index 0000000000..90f8b953b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + } + }, + { + "type": "ExportSpecifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "local": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + }, + "exported": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + } + } + ], + "source": { + "type": "Literal", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/actual.js new file mode 100644 index 0000000000..003d71f6ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/actual.js @@ -0,0 +1 @@ +export function foo () {} false diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json new file mode 100644 index 0000000000..a3474dbd50 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "FunctionDeclaration", + "start": 7, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 16, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "foo" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [] + } + } + }, + { + "type": "ExpressionStatement", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "Literal", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": false, + "rawValue": false, + "raw": "false" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/actual.js new file mode 100644 index 0000000000..768586d72c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/actual.js @@ -0,0 +1 @@ +export function foo () {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/expected.json new file mode 100644 index 0000000000..88b3e7b5b3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "FunctionDeclaration", + "start": 7, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 16, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "foo" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/actual.js new file mode 100644 index 0000000000..9d2b01ce65 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/actual.js @@ -0,0 +1 @@ +export let foo = 1; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json new file mode 100644 index 0000000000..63b6fdfeec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "VariableDeclaration", + "start": 7, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "foo" + }, + "init": { + "type": "Literal", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "kind": "let" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/actual.js new file mode 100644 index 0000000000..5d32a24de0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/actual.js @@ -0,0 +1 @@ +export {foo as default}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/expected.json new file mode 100644 index 0000000000..9c84a45187 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-default/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "default" + } + } + ], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/actual.js new file mode 100644 index 0000000000..e7820a6f02 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/actual.js @@ -0,0 +1 @@ +export {foo as bar}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/expected.json new file mode 100644 index 0000000000..0b4b274d42 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifier/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "bar" + } + } + ], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/actual.js new file mode 100644 index 0000000000..ff57927839 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/actual.js @@ -0,0 +1 @@ +export {foo as default, bar}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/expected.json new file mode 100644 index 0000000000..35d224c0d9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-as-specifiers/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "default" + } + }, + { + "type": "ExportSpecifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "local": { + "type": "Identifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "bar" + }, + "exported": { + "type": "Identifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "bar" + } + } + ], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/actual.js new file mode 100644 index 0000000000..cb0ff5c3b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/actual.js @@ -0,0 +1 @@ +export {}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/expected.json new file mode 100644 index 0000000000..7c7d2cfb8b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-empty/expected.json @@ -0,0 +1,51 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declaration": null, + "specifiers": [], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/actual.js new file mode 100644 index 0000000000..df5f5e609e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/actual.js @@ -0,0 +1 @@ +export {foo}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/expected.json new file mode 100644 index 0000000000..923c934a26 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifier/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + } + } + ], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/actual.js new file mode 100644 index 0000000000..61bc40fd77 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/actual.js @@ -0,0 +1 @@ +export {foo, bar,}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/expected.json new file mode 100644 index 0000000000..0694002dce --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers-comma/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + } + }, + { + "type": "ExportSpecifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "local": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + }, + "exported": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + } + } + ], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/actual.js new file mode 100644 index 0000000000..fdbc942750 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/actual.js @@ -0,0 +1 @@ +export {foo, bar}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/expected.json new file mode 100644 index 0000000000..745d2e9d0b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-named-specifiers/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "declaration": null, + "specifiers": [ + { + "type": "ExportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "exported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + } + }, + { + "type": "ExportSpecifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "local": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + }, + "exported": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + } + } + ], + "source": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/actual.js new file mode 100644 index 0000000000..f8af288212 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/actual.js @@ -0,0 +1 @@ +export var foo = function () {}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/expected.json new file mode 100644 index 0000000000..130b99c96e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-anonymous-function/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "VariableDeclaration", + "start": 7, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "Identifier", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "foo" + }, + "init": { + "type": "FunctionExpression", + "start": 17, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [] + } + } + } + ], + "kind": "var" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/actual.js new file mode 100644 index 0000000000..e2e71aa4fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/actual.js @@ -0,0 +1 @@ +export var foo = 1; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json new file mode 100644 index 0000000000..af2ce633cb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "VariableDeclaration", + "start": 7, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "foo" + }, + "init": { + "type": "Literal", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "kind": "var" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/actual.js new file mode 100644 index 0000000000..62da3e6018 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/actual.js @@ -0,0 +1 @@ +export var bar; diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/expected.json new file mode 100644 index 0000000000..22ba6ec97b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExportNamedDeclaration", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "specifiers": [], + "source": null, + "declaration": { + "type": "VariableDeclaration", + "start": 7, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "bar" + }, + "init": null + } + ], + "kind": "var" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/actual.js new file mode 100644 index 0000000000..3f576881e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/actual.js @@ -0,0 +1 @@ +export * diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json new file mode 100644 index 0000000000..65ef4a184a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-missing-from-clause/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/actual.js new file mode 100644 index 0000000000..32cb28ea92 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/actual.js @@ -0,0 +1 @@ +export * + diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-batch-token/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/actual.js new file mode 100644 index 0000000000..0dfb038eb5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/actual.js @@ -0,0 +1 @@ +export default = 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-equal/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/actual.js new file mode 100644 index 0000000000..a0af03d2e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/actual.js @@ -0,0 +1 @@ +export {default} + diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default-token/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/actual.js new file mode 100644 index 0000000000..8dfa0a19a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/actual.js @@ -0,0 +1 @@ +export default from "foo" diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/actual.js new file mode 100644 index 0000000000..8f3cde5c96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/actual.js @@ -0,0 +1 @@ +export {default} diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/options.json new file mode 100644 index 0000000000..4c07f39d17 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/invalid-export-named-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/options.json new file mode 100644 index 0000000000..2104ca4328 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/actual.js new file mode 100644 index 0000000000..a8c67fc5f7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/actual.js @@ -0,0 +1 @@ +for (let [p, q] of r); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/expected.json new file mode 100644 index 0000000000..f81b113841 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern-let/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": { + "type": "ArrayPattern", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "p" + }, + { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "q" + } + ] + }, + "init": null + } + ], + "kind": "let" + }, + "right": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "r" + }, + "body": { + "type": "EmptyStatement", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/actual.js new file mode 100644 index 0000000000..9d98abad0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/actual.js @@ -0,0 +1 @@ +for ([p, q] of r); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/expected.json new file mode 100644 index 0000000000..c174207c6b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-array-pattern/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "left": { + "type": "ArrayPattern", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "p" + }, + { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "q" + } + ] + }, + "right": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "r" + }, + "body": { + "type": "EmptyStatement", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/actual.js new file mode 100644 index 0000000000..05db80eefc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/actual.js @@ -0,0 +1 @@ +for (const {x, y} of z); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json new file mode 100644 index 0000000000..2fcb51b5b1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json @@ -0,0 +1,232 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": { + "type": "ObjectPattern", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "properties": [ + { + "type": "Property", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "x" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "x" + } + }, + { + "type": "Property", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "y" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "y" + } + } + ] + }, + "init": null + } + ], + "kind": "const" + }, + "right": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "z" + }, + "body": { + "type": "EmptyStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/actual.js new file mode 100644 index 0000000000..a96674542a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/actual.js @@ -0,0 +1 @@ +for ({x, y} of z); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json new file mode 100644 index 0000000000..9cfd59a3ab --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "left": { + "type": "ObjectPattern", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + } + }, + { + "type": "Property", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "y" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "y" + } + } + ] + }, + "right": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "z" + }, + "body": { + "type": "EmptyStatement", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/actual.js new file mode 100644 index 0000000000..3cb53e5e6e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/actual.js @@ -0,0 +1 @@ +for (const y of list); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/expected.json new file mode 100644 index 0000000000..7608d6e366 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-const/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "y" + }, + "init": null + } + ], + "kind": "const" + }, + "right": { + "type": "Identifier", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "list" + }, + "body": { + "type": "EmptyStatement", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/actual.js new file mode 100644 index 0000000000..4596dd4be2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/actual.js @@ -0,0 +1 @@ +for (let z of list); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/expected.json new file mode 100644 index 0000000000..f48045b006 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-let/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "z" + }, + "init": null + } + ], + "kind": "let" + }, + "right": { + "type": "Identifier", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "list" + }, + "body": { + "type": "EmptyStatement", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/actual.js new file mode 100644 index 0000000000..1bd32300f2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/actual.js @@ -0,0 +1 @@ +for (var x of list); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/expected.json new file mode 100644 index 0000000000..75eaef11cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-with-var/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "list" + }, + "body": { + "type": "EmptyStatement", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/actual.js new file mode 100644 index 0000000000..61d83114bd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/actual.js @@ -0,0 +1 @@ +for (p of q); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/expected.json new file mode 100644 index 0000000000..32de26d7ac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of/expected.json @@ -0,0 +1,95 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "left": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "p" + }, + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "q" + }, + "body": { + "type": "EmptyStatement", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/actual.js new file mode 100644 index 0000000000..802142b398 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/actual.js @@ -0,0 +1 @@ +for (const x = 1 of y); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/options.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-const-init/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/actual.js new file mode 100644 index 0000000000..16c9d38843 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/actual.js @@ -0,0 +1 @@ +for (let x = 1 of y); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/options.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-let-init/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/actual.js new file mode 100644 index 0000000000..9150592412 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/actual.js @@ -0,0 +1 @@ +for (this of that); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json new file mode 100644 index 0000000000..85f6f01102 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-lhs-init/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/actual.js new file mode 100644 index 0000000000..2b5eb5d3df --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/actual.js @@ -0,0 +1 @@ +for (var x = 1 of y); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/expected.json new file mode 100644 index 0000000000..eec137e3bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "y" + }, + "body": { + "type": "EmptyStatement", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json new file mode 100644 index 0000000000..89e36d9013 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/actual.js new file mode 100644 index 0000000000..cbc3509ff4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/actual.js @@ -0,0 +1 @@ +for (let of of xyz); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/expected.json new file mode 100644 index 0000000000..1af67a2a58 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/let-of-of/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForOfStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "of" + }, + "init": null + } + ], + "kind": "let" + }, + "right": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "xyz" + }, + "body": { + "type": "EmptyStatement", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/actual.js new file mode 100644 index 0000000000..c2ff917432 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/actual.js @@ -0,0 +1 @@ +for (const of 42); diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/unexpected-number/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/actual.js new file mode 100644 index 0000000000..cdbfd3f4f6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/actual.js @@ -0,0 +1 @@ +function *foo(x, y, z) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/expected.json new file mode 100644 index 0000000000..94810ff25f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-params/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "foo" + }, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/actual.js new file mode 100644 index 0000000000..fd4f8e1962 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/actual.js @@ -0,0 +1 @@ +function *foo() { yield* 3; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json new file mode 100644 index 0000000000..ed91c27238 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "foo" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "YieldExpression", + "start": 18, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "delegate": true, + "argument": { + "type": "Literal", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/actual.js new file mode 100644 index 0000000000..52ac303f0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/actual.js @@ -0,0 +1 @@ +function *foo() { yield 3; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json new file mode 100644 index 0000000000..1e6854a12e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "foo" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "YieldExpression", + "start": 18, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "delegate": false, + "argument": { + "type": "Literal", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/actual.js new file mode 100644 index 0000000000..7c42189626 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/actual.js @@ -0,0 +1 @@ +function *foo() {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/expected.json new file mode 100644 index 0000000000..a222c7d25a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "foo" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/actual.js new file mode 100644 index 0000000000..855b74300d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/actual.js @@ -0,0 +1 @@ +(function*(...x) {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json new file mode 100644 index 0000000000..cc24e31b58 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "RestElement", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "argument": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "x" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/actual.js new file mode 100644 index 0000000000..49568d61ac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/actual.js @@ -0,0 +1 @@ +(function*(x, y, z) {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json new file mode 100644 index 0000000000..0f53a4fd9c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/actual.js new file mode 100644 index 0000000000..7d1d130e6b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/actual.js @@ -0,0 +1 @@ +(function*(x, y, z) { yield* x; }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json new file mode 100644 index 0000000000..4b28752a8f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json @@ -0,0 +1,181 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "YieldExpression", + "start": 22, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "delegate": true, + "argument": { + "type": "Identifier", + "start": 29, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "name": "x" + } + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/actual.js new file mode 100644 index 0000000000..9fcc58a8cc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/actual.js @@ -0,0 +1 @@ +(function*() { yield 3; }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json new file mode 100644 index 0000000000..aada6e0350 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "YieldExpression", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "delegate": false, + "argument": { + "type": "Literal", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/actual.js new file mode 100644 index 0000000000..daa6bf5b22 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/actual.js @@ -0,0 +1 @@ +(function*() {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json new file mode 100644 index 0000000000..ab58afaeee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json @@ -0,0 +1,84 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/actual.js new file mode 100644 index 0000000000..0739904dc1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/actual.js @@ -0,0 +1,3 @@ +(function*() { + { *[yield iter]() {} } +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/options.json new file mode 100644 index 0000000000..f86bbd48e9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-computed-name/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/actual.js new file mode 100644 index 0000000000..c55ce55133 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/actual.js @@ -0,0 +1 @@ +({ *[yield iter]() {} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-invalid-computed-name/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/actual.js new file mode 100644 index 0000000000..5d0406edaa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/actual.js @@ -0,0 +1 @@ +({ *foo(x, y, z) {} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json new file mode 100644 index 0000000000..d54bbc11a2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json @@ -0,0 +1,185 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 7, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/actual.js new file mode 100644 index 0000000000..84c3ef4bd2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/actual.js @@ -0,0 +1 @@ +({ *foo() { yield* 3; } }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json new file mode 100644 index 0000000000..86f538137e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 7, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "YieldExpression", + "start": 12, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "delegate": true, + "argument": { + "type": "Literal", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/actual.js new file mode 100644 index 0000000000..e356cfaefc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/actual.js @@ -0,0 +1 @@ +({ *foo() { yield 3; } }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json new file mode 100644 index 0000000000..652e20d1b3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 7, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "YieldExpression", + "start": 12, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "delegate": false, + "argument": { + "type": "Literal", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/actual.js new file mode 100644 index 0000000000..13ebbabcf8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/actual.js @@ -0,0 +1,4 @@ +({ *foo() { + yield + 3 +} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json new file mode 100644 index 0000000000..4fc6768637 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json @@ -0,0 +1,202 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 4, + "column": 4 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 4, + "column": 3 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 7, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 4, + "column": 1 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "expression": { + "type": "YieldExpression", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "delegate": false, + "argument": null + } + }, + { + "type": "ExpressionStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 3 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + ] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/actual.js new file mode 100644 index 0000000000..8eea58fd39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/actual.js @@ -0,0 +1 @@ +({ *foo() { yield; } }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json new file mode 100644 index 0000000000..dd439657fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 7, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "YieldExpression", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "delegate": false, + "argument": null + } + } + ] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/actual.js new file mode 100644 index 0000000000..c6a22b0ea4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/actual.js @@ -0,0 +1 @@ +({ *foo() {} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json new file mode 100644 index 0000000000..ce2bcad3ea --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 7, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/actual.js new file mode 100644 index 0000000000..c8bbdf1d0e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/actual.js @@ -0,0 +1,3 @@ +(function*() { + function(x = yield 3) {} +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json new file mode 100644 index 0000000000..690a8e9e31 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-element/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/actual.js new file mode 100644 index 0000000000..d36f1062d1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/actual.js @@ -0,0 +1 @@ +(function*({yield}) {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/options.json new file mode 100644 index 0000000000..26ddfc8190 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding yield (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/actual.js new file mode 100644 index 0000000000..3de539ac3f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/actual.js @@ -0,0 +1,3 @@ +(function*() { + function({x: y = yield 3}) {} +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json new file mode 100644 index 0000000000..690a8e9e31 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/actual.js new file mode 100644 index 0000000000..7bc0064073 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/actual.js @@ -0,0 +1,3 @@ +(function*() { + function({[yield 3]: y}) {} +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json new file mode 100644 index 0000000000..690a8e9e31 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-computed-property-name/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/actual.js new file mode 100644 index 0000000000..bc7938c174 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/actual.js @@ -0,0 +1,3 @@ +(function*() { + function*(x = yield 3) {} +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json new file mode 100644 index 0000000000..38ea64b097 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-element/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/actual.js new file mode 100644 index 0000000000..c219639513 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/actual.js @@ -0,0 +1,3 @@ +(function*() { + function*({x: y = yield 3}) {} +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json new file mode 100644 index 0000000000..38ea64b097 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-binding-property/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/actual.js new file mode 100644 index 0000000000..1ca20284b3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/actual.js @@ -0,0 +1,3 @@ +(function*() { + function*({[yield 3]: y}) {} +}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json new file mode 100644 index 0000000000..38ea64b097 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-invalid-computed-property-name/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/actual.js new file mode 100644 index 0000000000..f0d07c0140 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/actual.js @@ -0,0 +1 @@ +(function*() { yield* }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json new file mode 100644 index 0000000000..b23f881870 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/incomplete-yield-delegate/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:22)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/actual.js new file mode 100644 index 0000000000..0273d50d68 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/actual.js @@ -0,0 +1 @@ +class Foo { * } diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method-2/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/actual.js new file mode 100644 index 0000000000..f34ab0f700 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/actual.js @@ -0,0 +1 @@ +({ * }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/malformed-generator-method/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/actual.js new file mode 100644 index 0000000000..5252f9a97d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/actual.js @@ -0,0 +1 @@ +class Foo { static *[foo]() {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json new file mode 100644 index 0000000000..d257165465 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "Foo" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 10, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 12, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "computed": true, + "key": { + "type": "Identifier", + "start": 21, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "foo" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 25, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/actual.js new file mode 100644 index 0000000000..6644eb190c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/actual.js @@ -0,0 +1 @@ +class Foo { static *foo() {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json new file mode 100644 index 0000000000..bebbec9f26 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "Foo" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 10, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 12, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "foo" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/actual.js new file mode 100644 index 0000000000..38d91a508a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/actual.js @@ -0,0 +1 @@ +゛+ ゜ diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/expected.json new file mode 100644 index 0000000000..777d6344e3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/dakuten_handakuten/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "゛" + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "゜" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/actual.js new file mode 100644 index 0000000000..918581760d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/actual.js @@ -0,0 +1 @@ +var \u{41}\u{42}\u{43}; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/expected.json new file mode 100644 index 0000000000..e71aacfe96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_all/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "ABC" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/actual.js new file mode 100644 index 0000000000..94262d79ba --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/actual.js @@ -0,0 +1 @@ +var \u{1EE00} diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/expected.json new file mode 100644 index 0000000000..720e46270b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_alef/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "𞸀" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/actual.js new file mode 100644 index 0000000000..dfeaf3553e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/actual.js @@ -0,0 +1 @@ +var _\u{1EE03} diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/expected.json new file mode 100644 index 0000000000..aac895c761 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_dal_part/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "_𞸃" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/actual.js new file mode 100644 index 0000000000..84eba349a4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/actual.js @@ -0,0 +1 @@ +var \u{1EE0A}\u{1EE0B} diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/expected.json new file mode 100644 index 0000000000..aeab4c908f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_kaf_lam/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "𞸊𞸋" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/actual.js new file mode 100644 index 0000000000..7b9341ce7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/actual.js @@ -0,0 +1 @@ +var \u{1EE06}_$ diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/expected.json new file mode 100644 index 0000000000..f3f71d5dd7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_math_zain_start/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "𞸆_$" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/actual.js new file mode 100644 index 0000000000..6f2d330a7a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/actual.js @@ -0,0 +1 @@ +var A\u{42}C; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/expected.json new file mode 100644 index 0000000000..538f851879 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_part/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "ABC" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/actual.js new file mode 100644 index 0000000000..a5bd7053f2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/actual.js @@ -0,0 +1 @@ +var \u{41}BC; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/expected.json new file mode 100644 index 0000000000..538f851879 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/escaped_start/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "ABC" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/actual.js new file mode 100644 index 0000000000..5349d5bcfc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/actual.js @@ -0,0 +1 @@ +let ℮ diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/expected.json new file mode 100644 index 0000000000..52b66afb75 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/estimated/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "℮" + }, + "init": null + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/actual.js new file mode 100644 index 0000000000..43a8b95859 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/actual.js @@ -0,0 +1 @@ +var _፩፪፫፬፭፮፯፰፱ diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/expected.json new file mode 100644 index 0000000000..3c1f5449e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/ethiopic_digits/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "_፩፪፫፬፭፮፯፰፱" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/actual.js new file mode 100644 index 0000000000..bf6b772173 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/actual.js @@ -0,0 +1 @@ +var \uD83B\uDE00 diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json new file mode 100644 index 0000000000..4bb33235bd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_escaped_surrogate_pairs/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid Unicode escape (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/actual.js new file mode 100644 index 0000000000..8d5a78d2d2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/actual.js @@ -0,0 +1 @@ +export var answer = await + 1; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json new file mode 100644 index 0000000000..53ee186d1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_expression_await/options.json @@ -0,0 +1,3 @@ +{ + "throws": "'import' and 'export' may appear only with 'sourceType: module' (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/actual.js new file mode 100644 index 0000000000..2526e7ed1d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/actual.js @@ -0,0 +1 @@ +function await() {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/expected.json new file mode 100644 index 0000000000..e1bd544880 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "await" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/actual.js new file mode 100644 index 0000000000..9e1a5ea2ed --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/actual.js @@ -0,0 +1 @@ +var 🀒 diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json new file mode 100644 index 0000000000..905116584b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_id_smp/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected character '🀒' (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/actual.js new file mode 100644 index 0000000000..e66fe1911a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/actual.js @@ -0,0 +1 @@ +var source = '\uD800!'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/expected.json new file mode 100644 index 0000000000..8a8057346c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "�!", + "rawValue": "�!", + "raw": "'\\uD800!'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/actual.js new file mode 100644 index 0000000000..91cd4f3b2b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/actual.js @@ -0,0 +1 @@ +export var await; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json new file mode 100644 index 0000000000..53ee186d1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_var_await/options.json @@ -0,0 +1,3 @@ +{ + "throws": "'import' and 'export' may appear only with 'sourceType: module' (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/actual.js new file mode 100644 index 0000000000..965aec3af5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/actual.js @@ -0,0 +1 @@ +var 𞸀 diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/expected.json new file mode 100644 index 0000000000..95e4a8ea91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_alef/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "𞸀" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/actual.js new file mode 100644 index 0000000000..2291df983e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/actual.js @@ -0,0 +1 @@ +var _𞸃 diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/expected.json new file mode 100644 index 0000000000..177536551c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_dal_part/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "_𞸃" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/actual.js new file mode 100644 index 0000000000..e1ad50f51d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/actual.js @@ -0,0 +1 @@ +var 𞸊𞸋 diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/expected.json new file mode 100644 index 0000000000..d3db5f5c03 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_kaf_lam/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "𞸊𞸋" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/actual.js new file mode 100644 index 0000000000..98c10c1f85 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/actual.js @@ -0,0 +1 @@ +var 𞸆_$ diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/expected.json new file mode 100644 index 0000000000..5124087f99 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/math_zain_start/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "𞸆_$" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/actual.js new file mode 100644 index 0000000000..aabfa0d200 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/actual.js @@ -0,0 +1 @@ +await = 0; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json new file mode 100644 index 0000000000..9ceb584ddd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "await" + }, + "right": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/actual.js new file mode 100644 index 0000000000..4b130dd06e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/actual.js @@ -0,0 +1 @@ +var await; (await); diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json new file mode 100644 index 0000000000..480b8d531d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "await" + }, + "init": null + } + ], + "kind": "var" + }, + { + "type": "ExpressionStatement", + "start": 11, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "expression": { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "await", + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/actual.js new file mode 100644 index 0000000000..23b440eeed --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/actual.js @@ -0,0 +1 @@ +var ℘; diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/expected.json new file mode 100644 index 0000000000..0fb54a0f5f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "℘" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/actual.js new file mode 100644 index 0000000000..3fc1e2a32e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/actual.js @@ -0,0 +1 @@ +var ℘\u2118 diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/expected.json new file mode 100644 index 0000000000..b6bb7d481d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/weierstrass_weierstrass/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "℘℘" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/actual.js new file mode 100644 index 0000000000..e544977b3a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/actual.js @@ -0,0 +1 @@ +import foo, {bar} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json new file mode 100644 index 0000000000..edc235cd14 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "specifiers": [ + { + "type": "ImportDefaultSpecifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "local": { + "type": "Identifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "foo" + } + }, + { + "type": "ImportSpecifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "imported": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + }, + "local": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "bar" + } + } + ], + "source": { + "type": "Literal", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/actual.js new file mode 100644 index 0000000000..084fa0cdd1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/actual.js @@ -0,0 +1 @@ +import foo, * as bar from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json new file mode 100644 index 0000000000..f4121da033 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json @@ -0,0 +1,130 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "specifiers": [ + { + "type": "ImportDefaultSpecifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "local": { + "type": "Identifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "foo" + } + }, + { + "type": "ImportNamespaceSpecifier", + "start": 12, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "local": { + "type": "Identifier", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "bar" + } + } + ], + "source": { + "type": "Literal", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/actual.js new file mode 100644 index 0000000000..96c936db10 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/actual.js @@ -0,0 +1 @@ +import {default as foo} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json new file mode 100644 index 0000000000..ef53af8608 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 8, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "imported": { + "type": "Identifier", + "start": 8, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "default" + }, + "local": { + "type": "Identifier", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "foo" + } + } + ], + "source": { + "type": "Literal", + "start": 29, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/actual.js new file mode 100644 index 0000000000..8d1420050a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/actual.js @@ -0,0 +1 @@ +import foo from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json new file mode 100644 index 0000000000..f65d947db8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "specifiers": [ + { + "type": "ImportDefaultSpecifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "local": { + "type": "Identifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "foo" + } + } + ], + "source": { + "type": "Literal", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/actual.js new file mode 100644 index 0000000000..ea74241b4b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/actual.js @@ -0,0 +1 @@ +import $ from "jquery" diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json new file mode 100644 index 0000000000..5466ba5614 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "specifiers": [ + { + "type": "ImportDefaultSpecifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "local": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "$" + } + } + ], + "source": { + "type": "Literal", + "start": 14, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "jquery", + "rawValue": "jquery", + "raw": "\"jquery\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/actual.js new file mode 100644 index 0000000000..c0748305d5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/actual.js @@ -0,0 +1 @@ +import "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json new file mode 100644 index 0000000000..bb56815106 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json @@ -0,0 +1,67 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "specifiers": [], + "source": { + "type": "Literal", + "start": 7, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/actual.js new file mode 100644 index 0000000000..769f3b3d0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/actual.js @@ -0,0 +1 @@ +import {bar as baz} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json new file mode 100644 index 0000000000..58842b0c0d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 8, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "imported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "local": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "baz" + } + } + ], + "source": { + "type": "Literal", + "start": 25, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/actual.js new file mode 100644 index 0000000000..5198ead3cd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/actual.js @@ -0,0 +1 @@ +import {bar as baz, xyz} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json new file mode 100644 index 0000000000..b063a99cd2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 8, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "imported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "local": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "baz" + } + }, + { + "type": "ImportSpecifier", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "imported": { + "type": "Identifier", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "xyz" + }, + "local": { + "type": "Identifier", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "xyz" + } + } + ], + "source": { + "type": "Literal", + "start": 30, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/actual.js new file mode 100644 index 0000000000..5faab37ebb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/actual.js @@ -0,0 +1 @@ +import {} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json new file mode 100644 index 0000000000..a896b50ab1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json @@ -0,0 +1,67 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "specifiers": [], + "source": { + "type": "Literal", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/actual.js new file mode 100644 index 0000000000..fc80c74dd7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/actual.js @@ -0,0 +1 @@ +import {bar} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json new file mode 100644 index 0000000000..6a3be9f6d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "imported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + } + } + ], + "source": { + "type": "Literal", + "start": 18, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/actual.js new file mode 100644 index 0000000000..c2e95853d6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/actual.js @@ -0,0 +1 @@ +import {bar, baz,} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json new file mode 100644 index 0000000000..2913832639 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "imported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + } + }, + { + "type": "ImportSpecifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "imported": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "baz" + }, + "local": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "baz" + } + } + ], + "source": { + "type": "Literal", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/actual.js new file mode 100644 index 0000000000..2fb83c2349 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/actual.js @@ -0,0 +1 @@ +import {bar, baz} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json new file mode 100644 index 0000000000..f5152845f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "imported": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "local": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + } + }, + { + "type": "ImportSpecifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "imported": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "baz" + }, + "local": { + "type": "Identifier", + "start": 13, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "baz" + } + } + ], + "source": { + "type": "Literal", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/actual.js new file mode 100644 index 0000000000..e55c077500 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/actual.js @@ -0,0 +1 @@ +import * as foo from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json new file mode 100644 index 0000000000..27b3e13863 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "specifiers": [ + { + "type": "ImportNamespaceSpecifier", + "start": 7, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "local": { + "type": "Identifier", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "foo" + } + } + ], + "source": { + "type": "Literal", + "start": 21, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": "foo", + "rawValue": "foo", + "raw": "\"foo\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/actual.js new file mode 100644 index 0000000000..ced8a86bb8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/actual.js @@ -0,0 +1 @@ +import { null as nil } from "bar" diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json new file mode 100644 index 0000000000..20286c5ce1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ImportDeclaration", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "specifiers": [ + { + "type": "ImportSpecifier", + "start": 9, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "imported": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "null" + }, + "local": { + "type": "Identifier", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "nil" + } + } + ], + "source": { + "type": "Literal", + "start": 28, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": "bar", + "rawValue": "bar", + "raw": "\"bar\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/actual.js new file mode 100644 index 0000000000..69aac7e8e1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/actual.js @@ -0,0 +1 @@ +import foo, {bar}, foo from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named-after-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/actual.js new file mode 100644 index 0000000000..5be12dab64 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/actual.js @@ -0,0 +1 @@ +import {bar}, foo from "foo" diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-after-named/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/actual.js new file mode 100644 index 0000000000..ddf557475a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/actual.js @@ -0,0 +1 @@ +import foo diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-missing-module-specifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/actual.js new file mode 100644 index 0000000000..16e3ea2897 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/actual.js @@ -0,0 +1 @@ +import foo from bar; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json new file mode 100644 index 0000000000..89e36d9013 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default-module-specifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/actual.js new file mode 100644 index 0000000000..6399a1a662 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/actual.js @@ -0,0 +1 @@ +import default from "foo" diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/actual.js new file mode 100644 index 0000000000..e54f9c16f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/actual.js @@ -0,0 +1 @@ +import foo { bar } from "bar"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-comma/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/actual.js new file mode 100644 index 0000000000..338ebc128b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/actual.js @@ -0,0 +1 @@ +import { foo, bar } diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json new file mode 100644 index 0000000000..1e730e1707 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-missing-module-specifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:19)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/actual.js new file mode 100644 index 0000000000..15dda167c6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/actual.js @@ -0,0 +1 @@ +export {foo} from bar diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-module-specifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/actual.js new file mode 100644 index 0000000000..a0557bf0ea --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/actual.js @@ -0,0 +1 @@ +import {bar}, {foo} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-named/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/actual.js new file mode 100644 index 0000000000..24cede9de6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/actual.js @@ -0,0 +1 @@ +import * as foo, {bar} from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-after-namespace/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/actual.js new file mode 100644 index 0000000000..5d7daedfbd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/actual.js @@ -0,0 +1 @@ +import {default as foo} diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json new file mode 100644 index 0000000000..2ddc9e708f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-named-as-missing-from/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:23)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/actual.js new file mode 100644 index 0000000000..09d0d344e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/actual.js @@ -0,0 +1 @@ +import {bar}, * as foo from "foo"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-after-named/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/actual.js new file mode 100644 index 0000000000..4382a94adb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/actual.js @@ -0,0 +1 @@ +import * from "foo" diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-namespace-missing-as/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/actual.js new file mode 100644 index 0000000000..297310b37d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/actual.js @@ -0,0 +1 @@ +import foo, from "bar"; diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/invalid-import-specifiers/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/options.json new file mode 100644 index 0000000000..2104ca4328 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/options.json @@ -0,0 +1,3 @@ +{ + "sourceType": "module" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/actual.js b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/actual.js new file mode 100644 index 0000000000..ba39fedac6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/actual.js @@ -0,0 +1 @@ +let [] diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json new file mode 100644 index 0000000000..8cb567ee77 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_complex_binding_without_init/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Complex binding patterns require an initialization value (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/actual.js b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/actual.js new file mode 100644 index 0000000000..2c6e10ed33 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/actual.js @@ -0,0 +1 @@ +for (const x = 0 in y){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/options.json b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_const_forin/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/actual.js b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/actual.js new file mode 100644 index 0000000000..6686af7386 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/actual.js @@ -0,0 +1 @@ +for (let x = 0 in y){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/options.json b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/invalid_let_forin/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/actual.js new file mode 100644 index 0000000000..5df03fa0b7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/actual.js @@ -0,0 +1 @@ +switch (answer) { case 42: let t = 42; break; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json new file mode 100644 index 0000000000..9cb6015642 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "SwitchStatement", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "discriminant": { + "type": "Identifier", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "answer" + }, + "cases": [ + { + "type": "SwitchCase", + "start": 18, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "consequent": [ + { + "type": "VariableDeclaration", + "start": 27, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 31, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "t" + }, + "init": { + "type": "Literal", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "let" + }, + { + "type": "BreakStatement", + "start": 39, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "label": null + } + ], + "test": { + "type": "Literal", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/actual.js new file mode 100644 index 0000000000..34426e1f42 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/actual.js @@ -0,0 +1,3 @@ +function f() { + let x = new.target; +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/expected.json new file mode 100644 index 0000000000..e909c85c33 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/assign-new-target/expected.json @@ -0,0 +1,180 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 19, + "end": 38, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 23, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 9 + } + }, + "name": "x" + }, + "init": { + "type": "MetaProperty", + "start": 27, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 22 + } + }, + "meta": { + "type": "Identifier", + "start": 27, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 31, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 16 + }, + "end": { + "line": 2, + "column": 22 + } + }, + "name": "target" + } + } + } + ], + "kind": "let" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/actual.js new file mode 100644 index 0000000000..a535e5644b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/actual.js @@ -0,0 +1 @@ +var x = function() { y = new..target; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json new file mode 100644 index 0000000000..4e08e9340e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-dots/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:29)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/actual.js new file mode 100644 index 0000000000..46b13d0e56 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/actual.js @@ -0,0 +1 @@ +var x = new.target; diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/expected.json new file mode 100644 index 0000000000..c2ab0aba1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": { + "type": "MetaProperty", + "start": 8, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "meta": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "target" + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/options.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/options.json new file mode 100644 index 0000000000..27f6e27de8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/actual.js new file mode 100644 index 0000000000..ac74ad9bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/actual.js @@ -0,0 +1,3 @@ +function f() { + new new.target; +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/expected.json new file mode 100644 index 0000000000..545d3f05a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-new-target/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "expression": { + "type": "NewExpression", + "start": 19, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "callee": { + "type": "MetaProperty", + "start": 23, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "meta": { + "type": "Identifier", + "start": 23, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 11 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 27, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "name": "target" + } + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/actual.js new file mode 100644 index 0000000000..01687a0993 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/actual.js @@ -0,0 +1,3 @@ +function f() { + new.target; +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/expected.json new file mode 100644 index 0000000000..154850a47c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-declaration/expected.json @@ -0,0 +1,146 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "expression": { + "type": "MetaProperty", + "start": 19, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "meta": { + "type": "Identifier", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 23, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "name": "target" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/actual.js new file mode 100644 index 0000000000..f8f320a995 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/actual.js @@ -0,0 +1 @@ +var f = function() { new.target; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/expected.json new file mode 100644 index 0000000000..fdf1e48cdb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-expression/expected.json @@ -0,0 +1,180 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "f" + }, + "init": { + "type": "FunctionExpression", + "start": 8, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 21, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "MetaProperty", + "start": 21, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "meta": { + "type": "Identifier", + "start": 21, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 25, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "target" + } + } + } + ] + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/actual.js new file mode 100644 index 0000000000..bebd659c0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/actual.js @@ -0,0 +1,3 @@ +function f() { + new.target(); +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/expected.json new file mode 100644 index 0000000000..4480d5f16b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-invoke/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 17 + } + }, + "expression": { + "type": "CallExpression", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "callee": { + "type": "MetaProperty", + "start": 19, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "meta": { + "type": "Identifier", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 23, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "name": "target" + } + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/actual.js new file mode 100644 index 0000000000..d5dded3f12 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/actual.js @@ -0,0 +1,3 @@ +function f() { + new new.target()(); +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/expected.json new file mode 100644 index 0000000000..3a85fec1a1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/new-target-precedence/expected.json @@ -0,0 +1,178 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 38, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "expression": { + "type": "CallExpression", + "start": 19, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 22 + } + }, + "callee": { + "type": "NewExpression", + "start": 19, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "callee": { + "type": "MetaProperty", + "start": 23, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "meta": { + "type": "Identifier", + "start": 23, + "end": 26, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 11 + } + }, + "name": "new" + }, + "property": { + "type": "Identifier", + "start": 27, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "name": "target" + } + }, + "arguments": [] + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/actual.js new file mode 100644 index 0000000000..dc1b123d55 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/actual.js @@ -0,0 +1 @@ +var f = function() { new.unknown_property; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json new file mode 100644 index 0000000000..2985f64e65 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-meta-property/unknown-property/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The only valid meta property for new is new.target (1:25)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/actual.js new file mode 100644 index 0000000000..9b4c1e304a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/actual.js @@ -0,0 +1 @@ +x = { method() { } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json new file mode 100644 index 0000000000..5d4235ff90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "method" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/actual.js new file mode 100644 index 0000000000..01ff4912cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/actual.js @@ -0,0 +1 @@ +x = { method(test) { } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json new file mode 100644 index 0000000000..9e72a8c644 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "method" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 12, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "test" + } + ], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/actual.js new file mode 100644 index 0000000000..0f3a2113e2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/actual.js @@ -0,0 +1 @@ +x = { 'method'() { } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json new file mode 100644 index 0000000000..c05da73d96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 6, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "method", + "rawValue": "method", + "raw": "'method'" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 14, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/actual.js new file mode 100644 index 0000000000..56936cfbd1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/actual.js @@ -0,0 +1 @@ +x = { get() { } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json new file mode 100644 index 0000000000..986432a828 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "get" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": [] + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/actual.js new file mode 100644 index 0000000000..561e2f42f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/actual.js @@ -0,0 +1 @@ +x = { set() { } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json new file mode 100644 index 0000000000..8d18a3447c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "set" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": [] + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/actual.js new file mode 100644 index 0000000000..3f9966ff99 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/actual.js @@ -0,0 +1 @@ +({ get __proto(){}, "__proto__": null, __proto__: null, }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json new file mode 100644 index 0000000000..57e02d3bf4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:39)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/actual.js new file mode 100644 index 0000000000..e399af6d6d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/actual.js @@ -0,0 +1 @@ +({ __proto__: null, "__proto__": null }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json new file mode 100644 index 0000000000..f36f2e1bd9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/actual.js new file mode 100644 index 0000000000..c62a4ce1a1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/actual.js @@ -0,0 +1 @@ +({ __proto__: null, __proto__ }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/expected.json new file mode 100644 index 0000000000..957f3941af --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "Literal", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 20, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 20, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "__proto__" + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json new file mode 100644 index 0000000000..7b7329bb7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:30)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/actual.js new file mode 100644 index 0000000000..112b5ff8de --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/actual.js @@ -0,0 +1 @@ +({ __proto__: null, __proto__: null }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json new file mode 100644 index 0000000000..f36f2e1bd9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/actual.js new file mode 100644 index 0000000000..4e890f9366 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, __proto__: null }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json new file mode 100644 index 0000000000..afd5a5116b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:22)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/actual.js new file mode 100644 index 0000000000..2972018b5a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, __proto__ }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/expected.json new file mode 100644 index 0000000000..22e6537ffa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/expected.json @@ -0,0 +1,172 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "Literal", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "__proto__" + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json new file mode 100644 index 0000000000..cbc444ce90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/actual.js new file mode 100644 index 0000000000..be94b24002 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, '__proto__': null }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json new file mode 100644 index 0000000000..afd5a5116b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:22)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/actual.js new file mode 100644 index 0000000000..0d07da8456 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/actual.js @@ -0,0 +1 @@ +({ set __proto__(x){}, "__proto__": null, __proto__: null, }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json new file mode 100644 index 0000000000..cf57a1fa83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:42)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/actual.js new file mode 100644 index 0000000000..9cf6d27e79 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/actual.js @@ -0,0 +1 @@ +({ __proto__, __proto__: null }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/expected.json new file mode 100644 index 0000000000..3f3242833e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + } + }, + { + "type": "Property", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "__proto__" + }, + "value": { + "type": "Literal", + "start": 25, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json new file mode 100644 index 0000000000..0c5f4deed6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:24)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/actual.js new file mode 100644 index 0000000000..898082ce49 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/actual.js @@ -0,0 +1 @@ +({ __proto__, "__proto__": null }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/expected.json new file mode 100644 index 0000000000..c09f7f715b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/expected.json @@ -0,0 +1,172 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + } + }, + { + "type": "Property", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 14, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "Literal", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json new file mode 100644 index 0000000000..00b62a33f8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:26)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/actual.js new file mode 100644 index 0000000000..785615c976 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/actual.js @@ -0,0 +1 @@ +({ __proto__, __proto__ }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/expected.json new file mode 100644 index 0000000000..3de2340596 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + } + }, + { + "type": "Property", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "__proto__" + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json new file mode 100644 index 0000000000..0c5f4deed6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:24)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/actual.js new file mode 100644 index 0000000000..a3741bf749 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/actual.js @@ -0,0 +1 @@ +({ __proto__: null, get __proto__(){}, set __proto__(x){} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json new file mode 100644 index 0000000000..226684195f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json @@ -0,0 +1,276 @@ +{ + "type": "File", + "start": 0, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "Literal", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "__proto__" + }, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [] + } + } + }, + { + "type": "Property", + "start": 39, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 43, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "name": "__proto__" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 52, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 53, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 55, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 55 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/actual.js new file mode 100644 index 0000000000..b98cb5a0c5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/actual.js @@ -0,0 +1 @@ +({ __proto__: null, get __proto__(){} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json new file mode 100644 index 0000000000..799d51e116 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json @@ -0,0 +1,189 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "Literal", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "__proto__" + }, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/actual.js new file mode 100644 index 0000000000..b886d6e186 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/actual.js @@ -0,0 +1 @@ +({ __proto__: null, __proto__(){}, }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json new file mode 100644 index 0000000000..12192e3584 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json @@ -0,0 +1,189 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "Literal", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 29, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 31, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/actual.js new file mode 100644 index 0000000000..433662021a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/actual.js @@ -0,0 +1 @@ +({ __proto__: null, set __proto__(x){} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json new file mode 100644 index 0000000000..b85b34999c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json @@ -0,0 +1,206 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "Literal", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 20, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "__proto__" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 33, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 36, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/actual.js new file mode 100644 index 0000000000..08c6ed23ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, get __proto__(){}, set __proto__(x){} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json new file mode 100644 index 0000000000..fb52590573 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json @@ -0,0 +1,278 @@ +{ + "type": "File", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "Literal", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 26, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "__proto__" + }, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 35, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 37, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [] + } + } + }, + { + "type": "Property", + "start": 41, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 45, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 45 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "name": "__proto__" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 54, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 55, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 55 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 57, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 57 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/actual.js new file mode 100644 index 0000000000..b0496bde96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, get __proto__(){} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json new file mode 100644 index 0000000000..981e9ca6a1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json @@ -0,0 +1,191 @@ +{ + "type": "File", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "Literal", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 26, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "__proto__" + }, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 35, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 37, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/actual.js new file mode 100644 index 0000000000..9aaf992935 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, __proto__(){}, }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json new file mode 100644 index 0000000000..aaff700170 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json @@ -0,0 +1,191 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "Literal", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "__proto__" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 31, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 33, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/actual.js new file mode 100644 index 0000000000..4481cb5890 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/actual.js @@ -0,0 +1 @@ +({ "__proto__": null, set __proto__(x){} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json new file mode 100644 index 0000000000..92e920ccdd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json @@ -0,0 +1,208 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Literal", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "Literal", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": null, + "rawValue": null, + "raw": "null" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 26, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "__proto__" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 35, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 36, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 38, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/actual.js new file mode 100644 index 0000000000..02c62e5f34 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/actual.js @@ -0,0 +1 @@ +x = { y, z } diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json new file mode 100644 index 0000000000..83f868da39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json @@ -0,0 +1,199 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "y" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "y" + } + }, + { + "type": "Property", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "z" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "z" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/actual.js new file mode 100644 index 0000000000..458d6387cc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/actual.js @@ -0,0 +1 @@ +let {a,} = 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json new file mode 100644 index 0000000000..7b239f85db --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "properties": [ + { + "type": "Property", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + } + } + ] + }, + "init": { + "type": "Literal", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/actual.js new file mode 100644 index 0000000000..14d2f32e56 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/actual.js @@ -0,0 +1 @@ +try { } catch ({}) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/expected.json new file mode 100644 index 0000000000..360729bf4f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-catch-param/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "param": { + "type": "ObjectPattern", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "properties": [] + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/actual.js new file mode 100644 index 0000000000..5b576774b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/actual.js @@ -0,0 +1 @@ +function a({}) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/expected.json new file mode 100644 index 0000000000..fc8aa6cdb9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-fn/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ObjectPattern", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "properties": [] + } + ], + "body": { + "type": "BlockStatement", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/actual.js new file mode 100644 index 0000000000..23033126a8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/actual.js @@ -0,0 +1 @@ +for (let {} in 0); diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json new file mode 100644 index 0000000000..d3ba43788a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json @@ -0,0 +1,131 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "ObjectPattern", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "properties": [] + }, + "init": null + } + ], + "kind": "let" + }, + "right": { + "type": "Literal", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "body": { + "type": "EmptyStatement", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/actual.js new file mode 100644 index 0000000000..fe8923efef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/actual.js @@ -0,0 +1 @@ +let {} = 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json new file mode 100644 index 0000000000..dbbd5e0895 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "properties": [] + }, + "init": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/actual.js new file mode 100644 index 0000000000..8e5b5da7ca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/actual.js @@ -0,0 +1 @@ +var {} = 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json new file mode 100644 index 0000000000..24ff27c2f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "properties": [] + }, + "init": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/actual.js new file mode 100644 index 0000000000..82d997cb9b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/actual.js @@ -0,0 +1 @@ +let {a:{}} = 0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json new file mode 100644 index 0000000000..1e70efa276 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "properties": [ + { + "type": "Property", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + "value": { + "type": "ObjectPattern", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "properties": [] + }, + "kind": "init" + } + ] + }, + "init": { + "type": "Literal", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/actual.js new file mode 100644 index 0000000000..37e1fb1514 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/actual.js @@ -0,0 +1 @@ +let {a,b=0,c:d,e:f=0,[g]:[h]}=0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json new file mode 100644 index 0000000000..3540998633 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json @@ -0,0 +1,439 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "properties": [ + { + "type": "Property", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + } + }, + { + "type": "Property", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "b" + }, + "kind": "init", + "value": { + "type": "AssignmentPattern", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "left": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "b" + }, + "right": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + }, + { + "type": "Property", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "c" + }, + "value": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "d" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "e" + }, + "value": { + "type": "AssignmentPattern", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "left": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "f" + }, + "right": { + "type": "Literal", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 21, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "method": false, + "shorthand": false, + "computed": true, + "key": { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "g" + }, + "value": { + "type": "ArrayPattern", + "start": 25, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "h" + } + ] + }, + "kind": "init" + } + ] + }, + "init": { + "type": "Literal", + "start": 30, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/actual.js new file mode 100644 index 0000000000..4daddb72ff --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/actual.js @@ -0,0 +1 @@ +00 diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json new file mode 100644 index 0000000000..7071e2971b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "value": 0, + "rawValue": 0, + "raw": "00" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/actual.js new file mode 100644 index 0000000000..8893f6d11d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/actual.js @@ -0,0 +1 @@ +0o0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json new file mode 100644 index 0000000000..198d34971a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0o0" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/actual.js new file mode 100644 index 0000000000..2efa481a33 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/actual.js @@ -0,0 +1 @@ +function test() {'use strict'; 0o0; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json new file mode 100644 index 0000000000..205a96ab16 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "test" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "Literal", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + }, + { + "type": "ExpressionStatement", + "start": 31, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 31, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0o0" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/actual.js new file mode 100644 index 0000000000..11ec2e8006 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/actual.js @@ -0,0 +1 @@ +0o2 diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json new file mode 100644 index 0000000000..5e0a93482f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 2, + "rawValue": 2, + "raw": "0o2" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/actual.js new file mode 100644 index 0000000000..0d019e772e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/actual.js @@ -0,0 +1 @@ +0o12 diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json new file mode 100644 index 0000000000..99d27ef22c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": 10, + "rawValue": 10, + "raw": "0o12" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/actual.js new file mode 100644 index 0000000000..fa429fd56e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/actual.js @@ -0,0 +1 @@ +0O0 diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json new file mode 100644 index 0000000000..b97a7679b0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0O0" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/actual.js new file mode 100644 index 0000000000..ca79cb08e1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/actual.js @@ -0,0 +1 @@ +function test() {'use strict'; 0O0; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json new file mode 100644 index 0000000000..e3ee2c9f37 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "test" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "Literal", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + }, + { + "type": "ExpressionStatement", + "start": 31, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 31, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0O0" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/actual.js new file mode 100644 index 0000000000..712e8692f7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/actual.js @@ -0,0 +1 @@ +function f(a, ...b) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/expected.json new file mode 100644 index 0000000000..4a17d865f7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-declaration/expected.json @@ -0,0 +1,131 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "a" + }, + { + "type": "RestElement", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "argument": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "b" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/actual.js new file mode 100644 index 0000000000..fa971224bb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/actual.js @@ -0,0 +1 @@ +f = function(a, ...b) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/expected.json new file mode 100644 index 0000000000..d524d90df1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/function-expression/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "f" + }, + "right": { + "type": "FunctionExpression", + "start": 4, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "a" + }, + { + "type": "RestElement", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "argument": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "b" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/actual.js new file mode 100644 index 0000000000..af5910b4fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/actual.js @@ -0,0 +1 @@ +o = { f: function(a, ...b) {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json new file mode 100644 index 0000000000..e7736168c6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json @@ -0,0 +1,215 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "o" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "f" + }, + "value": { + "type": "FunctionExpression", + "start": 9, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "a" + }, + { + "type": "RestElement", + "start": 21, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "argument": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "b" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [] + } + }, + "kind": "init" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/actual.js new file mode 100644 index 0000000000..5099434fef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/actual.js @@ -0,0 +1 @@ +x = { method(...test) { } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json new file mode 100644 index 0000000000..aee5d3439b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json @@ -0,0 +1,199 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "method" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 12, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "RestElement", + "start": 13, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "argument": { + "type": "Identifier", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "test" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [] + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/actual.js new file mode 100644 index 0000000000..35ce3a284a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/actual.js @@ -0,0 +1 @@ +f(...x, ...y, ...z); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/expected.json new file mode 100644 index 0000000000..2610b26d4f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-multi-spread/expected.json @@ -0,0 +1,174 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 2, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "argument": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "x" + } + }, + { + "type": "SpreadElement", + "start": 8, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "argument": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "y" + } + }, + { + "type": "SpreadElement", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "argument": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "z" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/actual.js new file mode 100644 index 0000000000..66837c3c6c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/actual.js @@ -0,0 +1 @@ +f(g, ...h = i); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/expected.json new file mode 100644 index 0000000000..dbf33a3d90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-default/expected.json @@ -0,0 +1,160 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "g" + }, + { + "type": "SpreadElement", + "start": 5, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "argument": { + "type": "AssignmentExpression", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "h" + }, + "right": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "i" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/actual.js new file mode 100644 index 0000000000..c6bb9ceba6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/actual.js @@ -0,0 +1 @@ +f(...x, y, z); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/expected.json new file mode 100644 index 0000000000..4200d9b278 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-first/expected.json @@ -0,0 +1,144 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 2, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "argument": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "x" + } + }, + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "z" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/actual.js new file mode 100644 index 0000000000..e97b23f2bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/actual.js @@ -0,0 +1 @@ +f(....5); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json new file mode 100644 index 0000000000..0b852348e3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json @@ -0,0 +1,114 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 2, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "argument": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 0.5, + "rawValue": 0.5, + "raw": ".5" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/actual.js new file mode 100644 index 0000000000..95c689e847 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/actual.js @@ -0,0 +1 @@ +f(...g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/expected.json new file mode 100644 index 0000000000..f85b3967a4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread/expected.json @@ -0,0 +1,112 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 2, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "argument": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "g" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/actual.js new file mode 100644 index 0000000000..893bd180db --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/actual.js @@ -0,0 +1 @@ +f(..g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dot-dot/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/actual.js new file mode 100644 index 0000000000..70875a2750 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/actual.js @@ -0,0 +1 @@ +f(....g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-dots/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/actual.js new file mode 100644 index 0000000000..6c046e3528 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/actual.js @@ -0,0 +1 @@ +f(... ... g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json new file mode 100644 index 0000000000..515b971673 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-call-spreads/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/actual.js new file mode 100644 index 0000000000..94f077133c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/actual.js @@ -0,0 +1 @@ +new f(..g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json new file mode 100644 index 0000000000..515b971673 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dot-dot/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/actual.js new file mode 100644 index 0000000000..1078dba79a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/actual.js @@ -0,0 +1 @@ +new f(....g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-dots/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/actual.js new file mode 100644 index 0000000000..5f6a3034bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/actual.js @@ -0,0 +1 @@ +new f(... ... g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/invalid-new-spreads/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/actual.js new file mode 100644 index 0000000000..afb519abca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/actual.js @@ -0,0 +1 @@ +new f(...x, ...y, ...z); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/expected.json new file mode 100644 index 0000000000..8a3987d6e0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-multi-spread/expected.json @@ -0,0 +1,174 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 6, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "argument": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + } + }, + { + "type": "SpreadElement", + "start": 12, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "argument": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "y" + } + }, + { + "type": "SpreadElement", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "argument": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "z" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/actual.js new file mode 100644 index 0000000000..a379e559f4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/actual.js @@ -0,0 +1 @@ +new f(g, ...h = i); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/expected.json new file mode 100644 index 0000000000..79688da6aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-default/expected.json @@ -0,0 +1,160 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "g" + }, + { + "type": "SpreadElement", + "start": 9, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "argument": { + "type": "AssignmentExpression", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "h" + }, + "right": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "i" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/actual.js new file mode 100644 index 0000000000..359da277a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/actual.js @@ -0,0 +1 @@ +new f(...x, y, z); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/expected.json new file mode 100644 index 0000000000..7075fa833c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-first/expected.json @@ -0,0 +1,144 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 6, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "argument": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + } + }, + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "z" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/actual.js new file mode 100644 index 0000000000..3c55719805 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/actual.js @@ -0,0 +1 @@ +new f(....5); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json new file mode 100644 index 0000000000..f0ce7bb220 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json @@ -0,0 +1,114 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 6, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "argument": { + "type": "Literal", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 0.5, + "rawValue": 0.5, + "raw": ".5" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/actual.js b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/actual.js new file mode 100644 index 0000000000..316f810403 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/actual.js @@ -0,0 +1 @@ +new f(...g); diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/expected.json new file mode 100644 index 0000000000..a5a4974201 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread/expected.json @@ -0,0 +1,112 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "f" + }, + "arguments": [ + { + "type": "SpreadElement", + "start": 6, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "argument": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "g" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/actual.js new file mode 100644 index 0000000000..016e8d4d7f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/actual.js @@ -0,0 +1,5 @@ +class A extends B { + constructor() { + () => super() + } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json new file mode 100644 index 0000000000..b94e426219 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json @@ -0,0 +1,232 @@ +{ + "type": "File", + "start": 0, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "B" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 24, + "end": 67, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "constructor" + }, + "static": false, + "kind": "constructor", + "value": { + "type": "FunctionExpression", + "start": 35, + "end": 67, + "loc": { + "start": { + "line": 2, + "column": 15 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 38, + "end": 67, + "loc": { + "start": { + "line": 2, + "column": 18 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 48, + "end": 61, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 21 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 48, + "end": 61, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 21 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [], + "body": { + "type": "CallExpression", + "start": 54, + "end": 61, + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 21 + } + }, + "callee": { + "type": "Super", + "start": 54, + "end": 59, + "loc": { + "start": { + "line": 3, + "column": 14 + }, + "end": { + "line": 3, + "column": 19 + } + } + }, + "arguments": [] + } + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/actual.js new file mode 100644 index 0000000000..ed6fbc8212 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/actual.js @@ -0,0 +1,5 @@ +class A extends B { + constructor() { + super(); + } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json new file mode 100644 index 0000000000..dd99c7bb8e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json @@ -0,0 +1,213 @@ +{ + "type": "File", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "B" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 24, + "end": 62, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "constructor" + }, + "static": false, + "kind": "constructor", + "value": { + "type": "FunctionExpression", + "start": 35, + "end": 62, + "loc": { + "start": { + "line": 2, + "column": 15 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 38, + "end": 62, + "loc": { + "start": { + "line": 2, + "column": 18 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 48, + "end": 56, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 16 + } + }, + "expression": { + "type": "CallExpression", + "start": 48, + "end": 55, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 15 + } + }, + "callee": { + "type": "Super", + "start": 48, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 13 + } + } + }, + "arguments": [] + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/actual.js new file mode 100644 index 0000000000..ddff2f376c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/actual.js @@ -0,0 +1,5 @@ +class A extends B { + constructor() { + (super)(); + } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json new file mode 100644 index 0000000000..18fe6d12a8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected super (3:9)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/actual.js new file mode 100644 index 0000000000..bf4f139b2b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/actual.js @@ -0,0 +1,3 @@ +class A { + foo() { new super + 3 } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json new file mode 100644 index 0000000000..9f101bba08 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json @@ -0,0 +1,232 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 3, + "column": 1 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 14, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 27 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 14, + "end": 17, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "name": "foo" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 17, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 7 + }, + "end": { + "line": 2, + "column": 27 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 2, + "column": 27 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "left": { + "type": "NewExpression", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 21 + } + }, + "callee": { + "type": "Super", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 16 + }, + "end": { + "line": 2, + "column": 21 + } + } + }, + "arguments": [] + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 24 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/options.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/options.json new file mode 100644 index 0000000000..2479ccfd69 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected super (2:16)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/actual.js new file mode 100644 index 0000000000..37fcf41ca3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/actual.js @@ -0,0 +1 @@ +var x = super(); diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/options.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/options.json new file mode 100644 index 0000000000..1518a5e3fe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_not_inside_function/options.json @@ -0,0 +1,3 @@ +{ + "throws": "'super' outside of function or class (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/actual.js new file mode 100644 index 0000000000..ec0be4ed6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/actual.js @@ -0,0 +1,5 @@ +class A extends B { + foo() { + new super.bar() + } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json new file mode 100644 index 0000000000..d86a834f70 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json @@ -0,0 +1,245 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "B" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 24, + "end": 61, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "name": "foo" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 27, + "end": 61, + "loc": { + "start": { + "line": 2, + "column": 7 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 30, + "end": 61, + "loc": { + "start": { + "line": 2, + "column": 10 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 40, + "end": 55, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 23 + } + }, + "expression": { + "type": "NewExpression", + "start": 40, + "end": 55, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 23 + } + }, + "callee": { + "type": "MemberExpression", + "start": 44, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 12 + }, + "end": { + "line": 3, + "column": 21 + } + }, + "object": { + "type": "Super", + "start": 44, + "end": 49, + "loc": { + "start": { + "line": 3, + "column": 12 + }, + "end": { + "line": 3, + "column": 17 + } + } + }, + "property": { + "type": "Identifier", + "start": 50, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 21 + } + }, + "name": "bar" + }, + "computed": false + }, + "arguments": [] + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/actual.js new file mode 100644 index 0000000000..02b6d22d2f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/actual.js @@ -0,0 +1,5 @@ +class A extends B { + X() { + return super[1] + } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json new file mode 100644 index 0000000000..ff1ee7f02a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json @@ -0,0 +1,231 @@ +{ + "type": "File", + "start": 0, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "B" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 24, + "end": 59, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "X" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 25, + "end": 59, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, + "end": 59, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 38, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 23 + } + }, + "argument": { + "type": "MemberExpression", + "start": 45, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 15 + }, + "end": { + "line": 3, + "column": 23 + } + }, + "object": { + "type": "Super", + "start": 45, + "end": 50, + "loc": { + "start": { + "line": 3, + "column": 15 + }, + "end": { + "line": 3, + "column": 20 + } + } + }, + "property": { + "type": "Literal", + "start": 51, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 22 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "computed": true + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/actual.js new file mode 100644 index 0000000000..28e4ea0e62 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/actual.js @@ -0,0 +1,5 @@ +class A extends B { + X() { + return super.y + } +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json new file mode 100644 index 0000000000..ad4ef9c6c4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json @@ -0,0 +1,229 @@ +{ + "type": "File", + "start": 0, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "B" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 24, + "end": 58, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 2, + "column": 4 + }, + "end": { + "line": 2, + "column": 5 + } + }, + "name": "X" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 25, + "end": 58, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, + "end": 58, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 4, + "column": 5 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 38, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 22 + } + }, + "argument": { + "type": "MemberExpression", + "start": 45, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 15 + }, + "end": { + "line": 3, + "column": 22 + } + }, + "object": { + "type": "Super", + "start": 45, + "end": 50, + "loc": { + "start": { + "line": 3, + "column": 15 + }, + "end": { + "line": 3, + "column": 20 + } + } + }, + "property": { + "type": "Identifier", + "start": 51, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 22 + } + }, + "name": "y" + }, + "computed": false + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/actual.js new file mode 100644 index 0000000000..951b889322 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/actual.js @@ -0,0 +1 @@ +switch `test` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/after-switch/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/actual.js new file mode 100644 index 0000000000..ecfd22dd77 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/actual.js @@ -0,0 +1 @@ +`$` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/expected.json new file mode 100644 index 0000000000..094ec18811 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/dollar-sign/expected.json @@ -0,0 +1,86 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "TemplateLiteral", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "value": { + "raw": "$", + "cooked": "$" + }, + "tail": true + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/actual.js new file mode 100644 index 0000000000..2f6bc5fc68 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/actual.js @@ -0,0 +1 @@ +var source = '`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json new file mode 100644 index 0000000000..0dade7f955 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "value": "`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`", + "rawValue": "`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`", + "raw": "'`\\\\n\\\\r\\\\b\\\\v\\\\t\\\\f\\\\\\n\\\\\\r\\n`'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/actual.js new file mode 100644 index 0000000000..8d9106f9c8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/actual.js @@ -0,0 +1 @@ +`\1`; diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json new file mode 100644 index 0000000000..857b44ba21 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/invalid-escape/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Octal literal in strict mode (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/actual.js new file mode 100644 index 0000000000..c5468af67d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/actual.js @@ -0,0 +1 @@ +var source = '`\n\r\n`'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json new file mode 100644 index 0000000000..a2c5419a32 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "`\n\r\n`", + "rawValue": "`\n\r\n`", + "raw": "'`\\n\\r\\n`'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/actual.js new file mode 100644 index 0000000000..f8f6e9a34e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/actual.js @@ -0,0 +1 @@ +var source = '`\\u{000042}\\u0042\\x42\\u0\\A\\0`'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json new file mode 100644 index 0000000000..aa36f4ccae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "value": "`\\u{000042}\\u0042\\x42\\u0\\A\\0`", + "rawValue": "`\\u{000042}\\u0042\\x42\\u0\\A\\0`", + "raw": "'`\\\\u{000042}\\\\u0042\\\\x42\\\\u0\\\\A\\\\0`'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/actual.js new file mode 100644 index 0000000000..0309ceb6c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/actual.js @@ -0,0 +1 @@ +new raw`42` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/expected.json new file mode 100644 index 0000000000..08da84c059 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/new-expression/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "callee": { + "type": "TaggedTemplateExpression", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "tag": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "raw" + }, + "quasi": { + "type": "TemplateLiteral", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 8, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": { + "raw": "42", + "cooked": "42" + }, + "tail": true + } + ] + } + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/actual.js new file mode 100644 index 0000000000..84db0a12ca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/actual.js @@ -0,0 +1 @@ +`\00`; diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/expected.json new file mode 100644 index 0000000000..9ebd9cc590 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/expected.json @@ -0,0 +1,86 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "TemplateLiteral", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": { + "raw": "\\00", + "cooked": "\u0000" + }, + "tail": true + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/actual.js new file mode 100644 index 0000000000..b3c8c9645f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/actual.js @@ -0,0 +1 @@ +'use strict'; `\00`; diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/expected.json new file mode 100644 index 0000000000..7ffc243c53 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/expected.json @@ -0,0 +1,119 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + }, + { + "type": "ExpressionStatement", + "start": 14, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "TemplateLiteral", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": { + "raw": "\\00", + "cooked": "\u0000" + }, + "tail": true + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/actual.js new file mode 100644 index 0000000000..eb544f2df4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/actual.js @@ -0,0 +1 @@ +raw`hello ${name}` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/expected.json new file mode 100644 index 0000000000..1308a48aaa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-interpolation/expected.json @@ -0,0 +1,154 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "TaggedTemplateExpression", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "tag": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "raw" + }, + "quasi": { + "type": "TemplateLiteral", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expressions": [ + { + "type": "Identifier", + "start": 12, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "name" + } + ], + "quasis": [ + { + "type": "TemplateElement", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": { + "raw": "hello ", + "cooked": "hello " + }, + "tail": false + }, + { + "type": "TemplateElement", + "start": 17, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": { + "raw": "", + "cooked": "" + }, + "tail": true + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/actual.js new file mode 100644 index 0000000000..9e7b600b59 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/actual.js @@ -0,0 +1 @@ +raw`token ${`nested ${`deeply` + {}} blah`}` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/expected.json new file mode 100644 index 0000000000..dd145facf5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged-nested-with-object-literal/expected.json @@ -0,0 +1,267 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "TaggedTemplateExpression", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "tag": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "raw" + }, + "quasi": { + "type": "TemplateLiteral", + "start": 3, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expressions": [ + { + "type": "TemplateLiteral", + "start": 12, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "expressions": [ + { + "type": "BinaryExpression", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "left": { + "type": "TemplateLiteral", + "start": 22, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 23, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": { + "raw": "deeply", + "cooked": "deeply" + }, + "tail": true + } + ] + }, + "operator": "+", + "right": { + "type": "ObjectExpression", + "start": 33, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "properties": [] + } + } + ], + "quasis": [ + { + "type": "TemplateElement", + "start": 13, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": { + "raw": "nested ", + "cooked": "nested " + }, + "tail": false + }, + { + "type": "TemplateElement", + "start": 36, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "value": { + "raw": " blah", + "cooked": " blah" + }, + "tail": true + } + ] + } + ], + "quasis": [ + { + "type": "TemplateElement", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": { + "raw": "token ", + "cooked": "token " + }, + "tail": false + }, + { + "type": "TemplateElement", + "start": 43, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "value": { + "raw": "", + "cooked": "" + }, + "tail": true + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/actual.js new file mode 100644 index 0000000000..756b976d06 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/actual.js @@ -0,0 +1 @@ +raw`42` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/expected.json new file mode 100644 index 0000000000..3eabcd73c8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/tagged/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "TaggedTemplateExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "tag": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "raw" + }, + "quasi": { + "type": "TemplateLiteral", + "start": 3, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "value": { + "raw": "42", + "cooked": "42" + }, + "tail": true + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/actual.js new file mode 100644 index 0000000000..1847ed1bd5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/actual.js @@ -0,0 +1 @@ +`hello ${10;test` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-interpolation/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/actual.js new file mode 100644 index 0000000000..4bcb8f1efd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/actual.js @@ -0,0 +1 @@ +`hello ${10 `test` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed-nested/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/actual.js new file mode 100644 index 0000000000..4885e202ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/actual.js @@ -0,0 +1 @@ +`test diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/options.json new file mode 100644 index 0000000000..182d155159 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/unclosed/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated template (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/actual.js new file mode 100644 index 0000000000..e1b8fa68e9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/actual.js @@ -0,0 +1 @@ +`42` diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/expected.json new file mode 100644 index 0000000000..f0f8b0bf3c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/untagged/expected.json @@ -0,0 +1,86 @@ +{ + "type": "File", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expression": { + "type": "TemplateLiteral", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expressions": [], + "quasis": [ + { + "type": "TemplateElement", + "start": 1, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "value": { + "raw": "42", + "cooked": "42" + }, + "tail": true + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/actual.js new file mode 100644 index 0000000000..1d5ecf6f7c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/actual.js @@ -0,0 +1 @@ +var source = '"\\u{714E}\\u{8336}"'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json new file mode 100644 index 0000000000..8572ac41d4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": "\"\\u{714E}\\u{8336}\"", + "rawValue": "\"\\u{714E}\\u{8336}\"", + "raw": "'\"\\\\u{714E}\\\\u{8336}\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/actual.js new file mode 100644 index 0000000000..fd2a94179a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/actual.js @@ -0,0 +1 @@ +var source = '"\\u{20BB7}\\u{91CE}\\u{5BB6}"'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json new file mode 100644 index 0000000000..0192886854 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "value": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"", + "rawValue": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"", + "raw": "'\"\\\\u{20BB7}\\\\u{91CE}\\\\u{5BB6}\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/actual.js new file mode 100644 index 0000000000..582b9f3ab9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/actual.js @@ -0,0 +1 @@ +var source = '"\\u{00000000034}"'; diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json new file mode 100644 index 0000000000..965abbf51a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": "\"\\u{00000000034}\"", + "rawValue": "\"\\u{00000000034}\"", + "raw": "'\"\\\\u{00000000034}\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/actual.js new file mode 100644 index 0000000000..e6d7b0640a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/actual.js @@ -0,0 +1 @@ +var {x: y = yield 3} = z; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-binding-property/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/actual.js new file mode 100644 index 0000000000..e88270d51d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/actual.js @@ -0,0 +1 @@ +(function() { yield 3; }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-expression/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/actual.js new file mode 100644 index 0000000000..88b9947a8a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/actual.js @@ -0,0 +1 @@ +function* g() { (x = yield 42) => {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/expected.json new file mode 100644 index 0000000000..dd6a552b65 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/expected.json @@ -0,0 +1,200 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 16, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "left": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + }, + "right": { + "type": "YieldExpression", + "start": 21, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "delegate": false, + "argument": { + "type": "Literal", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "body": { + "type": "BlockStatement", + "start": 34, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json new file mode 100644 index 0000000000..cbc444ce90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/actual.js new file mode 100644 index 0000000000..974d4e4b49 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/actual.js @@ -0,0 +1 @@ +function *g(){ (yield) => 42 } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json new file mode 100644 index 0000000000..b7fab4d126 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/actual.js new file mode 100644 index 0000000000..e9aafb3633 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/actual.js @@ -0,0 +1 @@ +function *g(){ (a, b, c, yield) => 42 } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json new file mode 100644 index 0000000000..b38eacd757 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-parameters/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:25)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/actual.js new file mode 100644 index 0000000000..f2891b80cd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/actual.js @@ -0,0 +1 @@ +function *g() { try {} catch (yield) {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/expected.json new file mode 100644 index 0000000000..53cf8c221f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "TryStatement", + "start": 16, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "block": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 23, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "param": { + "type": "Identifier", + "start": 30, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "yield" + }, + "body": { + "type": "BlockStatement", + "start": 37, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/options.json new file mode 100644 index 0000000000..7b7329bb7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-catch/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:30)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/actual.js new file mode 100644 index 0000000000..8093fc9b88 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/actual.js @@ -0,0 +1 @@ +function *g() { function *yield(){} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/options.json new file mode 100644 index 0000000000..00b62a33f8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:26)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/actual.js new file mode 100644 index 0000000000..e925fcfee9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/actual.js @@ -0,0 +1 @@ +export default function *yield() {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json new file mode 100644 index 0000000000..53ee186d1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-export-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "'import' and 'export' may appear only with 'sourceType: module' (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/actual.js new file mode 100644 index 0000000000..0fdfd886f2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/actual.js @@ -0,0 +1 @@ +(function*yield(){}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/expected.json new file mode 100644 index 0000000000..608a26d547 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "yield" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/actual.js new file mode 100644 index 0000000000..d36903158a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/actual.js @@ -0,0 +1 @@ +(function *(yield){}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/expected.json new file mode 100644 index 0000000000..df826e036e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "yield" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/actual.js new file mode 100644 index 0000000000..1982701745 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/actual.js @@ -0,0 +1 @@ +(function *(x, ...yield){}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/expected.json new file mode 100644 index 0000000000..e99f09b954 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "x" + }, + { + "type": "RestElement", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "argument": { + "type": "Identifier", + "start": 18, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/actual.js new file mode 100644 index 0000000000..45ef943364 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/actual.js @@ -0,0 +1 @@ +function *g() { function yield() {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/options.json new file mode 100644 index 0000000000..b242442b4c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-function-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:25)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/actual.js new file mode 100644 index 0000000000..c977c7c980 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/actual.js @@ -0,0 +1 @@ +function *g() { let yield; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-lexical-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/actual.js new file mode 100644 index 0000000000..6d4eb10367 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/actual.js @@ -0,0 +1 @@ +function *g() { return yield.x; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json new file mode 100644 index 0000000000..f55830c1c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-member-expression/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:28)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/actual.js new file mode 100644 index 0000000000..572f574f1f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/actual.js @@ -0,0 +1 @@ +function *g(yield){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/expected.json new file mode 100644 index 0000000000..a5588e4e19 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "yield" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/actual.js new file mode 100644 index 0000000000..7a23544ebd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/actual.js @@ -0,0 +1 @@ +function *g(a, b, c, ...yield){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/expected.json new file mode 100644 index 0000000000..eb042938fb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "b" + }, + { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "c" + }, + { + "type": "RestElement", + "start": 21, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "argument": { + "type": "Identifier", + "start": 24, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 30, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json new file mode 100644 index 0000000000..0c5f4deed6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:24)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/actual.js new file mode 100644 index 0000000000..980df04f8d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/actual.js @@ -0,0 +1 @@ +"use strict"; function *g(){ var y = function yield(){}; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/options.json new file mode 100644 index 0000000000..d34690fa60 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-expression/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:46)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/actual.js new file mode 100644 index 0000000000..ed19c76d04 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/actual.js @@ -0,0 +1 @@ +"use strict"; function *g() { var z = function(yield) {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/options.json new file mode 100644 index 0000000000..c9ba88af97 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-strict-function-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:47)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/actual.js new file mode 100644 index 0000000000..786e859b64 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/actual.js @@ -0,0 +1 @@ +function *g() { var yield; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/expected.json new file mode 100644 index 0000000000..a4876b5487 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 16, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 20, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 20, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "yield" + }, + "init": null + } + ], + "kind": "var" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-variable-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/actual.js new file mode 100644 index 0000000000..71fa5c54c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/actual.js @@ -0,0 +1 @@ +"use strict"; ([yield] = x) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json new file mode 100644 index 0000000000..8fee4a64fa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to yield in strict mode (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/actual.js new file mode 100644 index 0000000000..f1e4209b9b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/actual.js @@ -0,0 +1 @@ +"use strict"; (x = yield) => {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/expected.json new file mode 100644 index 0000000000..cab8ff9322 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + }, + { + "type": "ExpressionStatement", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "left": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "x" + }, + "right": { + "type": "Identifier", + "start": 19, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/actual.js new file mode 100644 index 0000000000..f24afff7d9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/actual.js @@ -0,0 +1 @@ +"use strict"; (yield) => 42 diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json new file mode 100644 index 0000000000..c72d3f77b2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding yield in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/actual.js new file mode 100644 index 0000000000..f2d5c1f89b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/actual.js @@ -0,0 +1 @@ +"use strict"; var { x: yield } = foo; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/options.json new file mode 100644 index 0000000000..2ddc9e708f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:23)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/actual.js new file mode 100644 index 0000000000..f7734c9a28 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/actual.js @@ -0,0 +1 @@ +"use strict"; try {} catch (yield) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/options.json new file mode 100644 index 0000000000..f55830c1c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:28)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/actual.js new file mode 100644 index 0000000000..333040f339 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/actual.js @@ -0,0 +1 @@ +"use strict"; function f(yield) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/options.json new file mode 100644 index 0000000000..b242442b4c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:25)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/actual.js new file mode 100644 index 0000000000..01909ba03e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/actual.js @@ -0,0 +1 @@ +function yield(){ "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/expected.json new file mode 100644 index 0000000000..83a78a03c2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "yield" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "Literal", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/options.json new file mode 100644 index 0000000000..ce6a7da479 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding yield in strict mode (1:9)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/actual.js new file mode 100644 index 0000000000..e0b8151268 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/actual.js @@ -0,0 +1 @@ +(function yield(){ "use strict"; }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/expected.json new file mode 100644 index 0000000000..a12316ae59 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/expected.json @@ -0,0 +1,133 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "yield" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "Literal", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/options.json new file mode 100644 index 0000000000..95d52f45f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-function-expression/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding yield in strict mode (1:10)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/actual.js new file mode 100644 index 0000000000..bba51e2706 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/actual.js @@ -0,0 +1 @@ +"use strict"; function f() { yield } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/options.json new file mode 100644 index 0000000000..6079f138a6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:29)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/actual.js new file mode 100644 index 0000000000..71917f956c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/actual.js @@ -0,0 +1 @@ +"use strict"; let yield = 42; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/actual.js new file mode 100644 index 0000000000..d9d63622bb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/actual.js @@ -0,0 +1 @@ +"use strict"; function f(...yield) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/options.json new file mode 100644 index 0000000000..f55830c1c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:28)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/actual.js new file mode 100644 index 0000000000..455ea8aa00 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/actual.js @@ -0,0 +1 @@ +"use strict"; var yield; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/actual.js new file mode 100644 index 0000000000..f4a21e5ac5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/actual.js @@ -0,0 +1 @@ +([yield] = x) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json new file mode 100644 index 0000000000..5a8f717350 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json @@ -0,0 +1,114 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 1, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 1, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 2, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "yield" + } + ] + }, + "right": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/actual.js new file mode 100644 index 0000000000..e6844e30f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/actual.js @@ -0,0 +1 @@ +(x) => x * yield; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/expected.json new file mode 100644 index 0000000000..81505c98aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-concise-body/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + ], + "body": { + "type": "BinaryExpression", + "start": 7, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "left": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 11, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "yield" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/actual.js new file mode 100644 index 0000000000..b8c73aaa9c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/actual.js @@ -0,0 +1 @@ +(z) => { yield + z }; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/expected.json new file mode 100644 index 0000000000..524a90fb9e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-function-body/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 7, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "left": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "yield" + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "z" + } + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/actual.js new file mode 100644 index 0000000000..e4bd6e2eb5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/actual.js @@ -0,0 +1 @@ +(x = yield) => {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/expected.json new file mode 100644 index 0000000000..2058074918 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-default/expected.json @@ -0,0 +1,131 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 1, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "left": { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + }, + "right": { + "type": "Identifier", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/actual.js new file mode 100644 index 0000000000..db130ff82d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/actual.js @@ -0,0 +1 @@ +(yield) => 42; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json new file mode 100644 index 0000000000..4fdb12deff --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "yield" + } + ], + "body": { + "type": "Literal", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/actual.js new file mode 100644 index 0000000000..4e915ae558 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/actual.js @@ -0,0 +1 @@ +var { x: yield } = foo; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json new file mode 100644 index 0000000000..350b3f3ac2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "value": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "yield" + }, + "kind": "init" + } + ] + }, + "init": { + "type": "Identifier", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "foo" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/actual.js new file mode 100644 index 0000000000..2387b61668 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/actual.js @@ -0,0 +1 @@ +var { yield: x } = foo; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json new file mode 100644 index 0000000000..65944e5be1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "ObjectPattern", + "start": 4, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "properties": [ + { + "type": "Property", + "start": 6, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "yield" + }, + "value": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "x" + }, + "kind": "init" + } + ] + }, + "init": { + "type": "Identifier", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "foo" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/actual.js new file mode 100644 index 0000000000..3faf4147c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/actual.js @@ -0,0 +1 @@ +function *g() { obj.yield(); } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/expected.json new file mode 100644 index 0000000000..2e11c61b3c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-call-expression-property/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "CallExpression", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "callee": { + "type": "MemberExpression", + "start": 16, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "object": { + "type": "Identifier", + "start": 16, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "obj" + }, + "property": { + "type": "Identifier", + "start": 20, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "yield" + }, + "computed": false + }, + "arguments": [] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/actual.js new file mode 100644 index 0000000000..42c9869dc1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/actual.js @@ -0,0 +1 @@ +try {} catch (yield) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/expected.json new file mode 100644 index 0000000000..3cba41671f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-catch-parameter/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 7, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "param": { + "type": "Identifier", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "yield" + }, + "body": { + "type": "BlockStatement", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/actual.js new file mode 100644 index 0000000000..5dca227228 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/actual.js @@ -0,0 +1 @@ +function *g() { yield a=b, yield* c=d, e } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/expected.json new file mode 100644 index 0000000000..8a39ff485d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-expression-precedence/expected.json @@ -0,0 +1,260 @@ +{ + "type": "File", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expression": { + "type": "SequenceExpression", + "start": 16, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expressions": [ + { + "type": "YieldExpression", + "start": 16, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "delegate": false, + "argument": { + "type": "AssignmentExpression", + "start": 22, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "a" + }, + "right": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "b" + } + } + }, + { + "type": "YieldExpression", + "start": 27, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "delegate": true, + "argument": { + "type": "AssignmentExpression", + "start": 34, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "c" + }, + "right": { + "type": "Identifier", + "start": 36, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "d" + } + } + }, + { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "e" + } + ] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/actual.js new file mode 100644 index 0000000000..0f1d08ca70 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/actual.js @@ -0,0 +1 @@ +function f(yield) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/expected.json new file mode 100644 index 0000000000..f16d4b50a4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration-formal-parameter/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "yield" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/actual.js new file mode 100644 index 0000000000..fe8a313f26 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/actual.js @@ -0,0 +1 @@ +function yield(){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/expected.json new file mode 100644 index 0000000000..18ef7bd43a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-declaration/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "yield" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/actual.js new file mode 100644 index 0000000000..0f2ffa39ca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/actual.js @@ -0,0 +1 @@ +(function(yield) {}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json new file mode 100644 index 0000000000..be34ece5b3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 10, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "yield" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/actual.js new file mode 100644 index 0000000000..d8d03fa6de --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/actual.js @@ -0,0 +1 @@ +(function yield(){}) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json new file mode 100644 index 0000000000..03c3926cb0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "yield" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/actual.js new file mode 100644 index 0000000000..9d1bde8dd6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/actual.js @@ -0,0 +1 @@ +function *g() { (x) => x * yield; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/expected.json new file mode 100644 index 0000000000..4887c0fc44 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/expected.json @@ -0,0 +1,183 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 16, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + } + ], + "body": { + "type": "BinaryExpression", + "start": 23, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "left": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 27, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "yield" + } + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/actual.js new file mode 100644 index 0000000000..fafac7f806 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/actual.js @@ -0,0 +1 @@ +function *g() { (x = yield) => {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/expected.json new file mode 100644 index 0000000000..f9c4899032 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-default/expected.json @@ -0,0 +1,183 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 16, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 17, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "left": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + }, + "right": { + "type": "YieldExpression", + "start": 21, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "delegate": false, + "argument": null + } + } + ], + "body": { + "type": "BlockStatement", + "start": 31, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/actual.js new file mode 100644 index 0000000000..7f27722f51 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/actual.js @@ -0,0 +1 @@ +function *g() { (z) => { yield + z }; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/expected.json new file mode 100644 index 0000000000..8ee47195d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-function-body/expected.json @@ -0,0 +1,215 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 16, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 25, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 25, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "left": { + "type": "Identifier", + "start": 25, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "name": "yield" + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 33, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "z" + } + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/actual.js new file mode 100644 index 0000000000..be10f1b197 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/actual.js @@ -0,0 +1 @@ +function *yield(){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/expected.json new file mode 100644 index 0000000000..76d7225d05 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-declaration/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "yield" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/actual.js new file mode 100644 index 0000000000..98b544c1c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/actual.js @@ -0,0 +1 @@ +function *g(x = yield){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/expected.json new file mode 100644 index 0000000000..272c0b0c3d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-default-parameter/expected.json @@ -0,0 +1,131 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 12, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "x" + }, + "right": { + "type": "Identifier", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-expression/actual.js new file mode 100644 index 0000000000..be9d93e137 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-expression/actual.js @@ -0,0 +1 @@ +function *g(){ var y = function yield(){}; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/actual.js new file mode 100644 index 0000000000..95cb17aad9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/actual.js @@ -0,0 +1 @@ +function *g() { var z = function(yield) {} } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/expected.json new file mode 100644 index 0000000000..e8b2f8224a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/expected.json @@ -0,0 +1,185 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 16, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 20, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "id": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "z" + }, + "init": { + "type": "FunctionExpression", + "start": 24, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 33, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "yield" + } + ], + "body": { + "type": "BlockStatement", + "start": 40, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "body": [] + } + } + } + ], + "kind": "var" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/actual.js new file mode 100644 index 0000000000..09daccad90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/actual.js @@ -0,0 +1 @@ +({ *yield() {} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json new file mode 100644 index 0000000000..9260f06278 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "yield" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/actual.js new file mode 100644 index 0000000000..a97e6379c4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/actual.js @@ -0,0 +1 @@ +function *g({yield: y}){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json new file mode 100644 index 0000000000..f491ff04fd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [ + { + "type": "ObjectPattern", + "start": 12, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "properties": [ + { + "type": "Property", + "start": 13, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "yield" + }, + "value": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "y" + }, + "kind": "init" + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/actual.js new file mode 100644 index 0000000000..f2faf618ec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/actual.js @@ -0,0 +1 @@ +let yield = 42; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json new file mode 100644 index 0000000000..dec93c479a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "yield" + }, + "init": { + "type": "Literal", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/actual.js new file mode 100644 index 0000000000..aa6e4c82e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/actual.js @@ -0,0 +1 @@ +function *g() { yield obj.yield; } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/expected.json new file mode 100644 index 0000000000..091dac5d5d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-member-expression-property/expected.json @@ -0,0 +1,163 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "YieldExpression", + "start": 16, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "delegate": false, + "argument": { + "type": "MemberExpression", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "object": { + "type": "Identifier", + "start": 22, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "obj" + }, + "property": { + "type": "Identifier", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "yield" + }, + "computed": false + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/actual.js new file mode 100644 index 0000000000..fe2070884e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/actual.js @@ -0,0 +1 @@ +({ yield() {} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json new file mode 100644 index 0000000000..7a4f9cbf39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "yield" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/actual.js new file mode 100644 index 0000000000..fe3cb6d854 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/actual.js @@ -0,0 +1 @@ +function f({yield: y}){} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json new file mode 100644 index 0000000000..68bee782bd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ObjectPattern", + "start": 11, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "properties": [ + { + "type": "Property", + "start": 12, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "yield" + }, + "value": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "y" + }, + "kind": "init" + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/actual.js new file mode 100644 index 0000000000..0a895a5c11 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/actual.js @@ -0,0 +1 @@ +function f(...yield) {} diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/expected.json new file mode 100644 index 0000000000..bfd5f8f9d2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-rest-parameter/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "RestElement", + "start": 11, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "argument": { + "type": "Identifier", + "start": 14, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/actual.js new file mode 100644 index 0000000000..b90497633b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/actual.js @@ -0,0 +1 @@ +"use strict"; var { yield: x } = foo; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json new file mode 100644 index 0000000000..cff6332edb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json @@ -0,0 +1,183 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + }, + { + "type": "VariableDeclaration", + "start": 14, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 18, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "ObjectPattern", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "properties": [ + { + "type": "Property", + "start": 20, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "yield" + }, + "value": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "x" + }, + "kind": "init" + } + ] + }, + "init": { + "type": "Identifier", + "start": 33, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "foo" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/actual.js new file mode 100644 index 0000000000..a24661b935 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/actual.js @@ -0,0 +1 @@ +"use strict"; ({ yield() {} }) diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json new file mode 100644 index 0000000000..73ba30aca8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + }, + { + "type": "ExpressionStatement", + "start": 14, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 15, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "properties": [ + { + "type": "Property", + "start": 17, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 17, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "yield" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 22, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 25, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "body": [] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/actual.js new file mode 100644 index 0000000000..d3a2c77709 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/actual.js @@ -0,0 +1 @@ +class A extends B { X() { super.yield } } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json new file mode 100644 index 0000000000..4e179ca792 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json @@ -0,0 +1,229 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "B" + }, + "body": { + "type": "ClassBody", + "start": 18, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 20, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "X" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 21, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 26, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expression": { + "type": "MemberExpression", + "start": 26, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "object": { + "type": "Super", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + } + }, + "property": { + "type": "Identifier", + "start": 32, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "yield" + }, + "computed": false + } + } + ] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/actual.js new file mode 100644 index 0000000000..1d02d76086 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/actual.js @@ -0,0 +1 @@ +var yield; diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/expected.json new file mode 100644 index 0000000000..2c21f2ba38 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-variable-declaration/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "yield" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/actual.js new file mode 100644 index 0000000000..800c8c7f34 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/actual.js @@ -0,0 +1 @@ +function *g() { yield *yield } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/expected.json new file mode 100644 index 0000000000..be7cde28c8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression-delegate/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "YieldExpression", + "start": 16, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "delegate": true, + "argument": { + "type": "YieldExpression", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "delegate": false, + "argument": null + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/actual.js new file mode 100644 index 0000000000..205c792662 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/actual.js @@ -0,0 +1 @@ +function *g() { yield yield } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/expected.json new file mode 100644 index 0000000000..299cd23813 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-yield-expression/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "g" + }, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "YieldExpression", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "delegate": false, + "argument": { + "type": "YieldExpression", + "start": 22, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "delegate": false, + "argument": null + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/actual.js new file mode 100644 index 0000000000..beeb1e5903 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/actual.js @@ -0,0 +1 @@ +x + y diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/expected.json new file mode 100644 index 0000000000..951a2c8573 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/actual.js new file mode 100644 index 0000000000..82b2d8de84 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/actual.js @@ -0,0 +1 @@ +x - y diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/expected.json new file mode 100644 index 0000000000..4be8cd12bf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "-", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/actual.js new file mode 100644 index 0000000000..dcc0e169ca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/actual.js @@ -0,0 +1 @@ +"use strict" + 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json new file mode 100644 index 0000000000..d3ad9d674b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "left": { + "type": "Literal", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/actual.js new file mode 100644 index 0000000000..2d76abaa89 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/actual.js @@ -0,0 +1 @@ +x = 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json new file mode 100644 index 0000000000..dcfe85d992 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 4, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/actual.js new file mode 100644 index 0000000000..ec77db7c41 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/actual.js @@ -0,0 +1 @@ +eval = 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json new file mode 100644 index 0000000000..32e9683fad --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "eval" + }, + "right": { + "type": "Literal", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/actual.js new file mode 100644 index 0000000000..8915ea9874 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/actual.js @@ -0,0 +1 @@ +arguments = 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json new file mode 100644 index 0000000000..aadc603158 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "arguments" + }, + "right": { + "type": "Literal", + "start": 12, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/actual.js new file mode 100644 index 0000000000..800fe89767 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/actual.js @@ -0,0 +1 @@ +x *= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json new file mode 100644 index 0000000000..c68b13b4a8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "*=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/actual.js new file mode 100644 index 0000000000..e6d4af128c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/actual.js @@ -0,0 +1 @@ +x /= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json new file mode 100644 index 0000000000..2a2e320c76 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "/=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/actual.js new file mode 100644 index 0000000000..1fdb8c843b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/actual.js @@ -0,0 +1 @@ +x %= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json new file mode 100644 index 0000000000..f61cd91960 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "%=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/actual.js new file mode 100644 index 0000000000..76d0126c78 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/actual.js @@ -0,0 +1 @@ +x += 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json new file mode 100644 index 0000000000..d87bd7221e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "+=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/actual.js new file mode 100644 index 0000000000..9efddfe799 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/actual.js @@ -0,0 +1 @@ +x -= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json new file mode 100644 index 0000000000..58ac4f76d5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "-=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/actual.js new file mode 100644 index 0000000000..0ec003b342 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/actual.js @@ -0,0 +1 @@ +x <<= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json new file mode 100644 index 0000000000..6aec1fd6ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "operator": "<<=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 6, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/actual.js new file mode 100644 index 0000000000..985184e363 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/actual.js @@ -0,0 +1 @@ +x >>= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json new file mode 100644 index 0000000000..2afa7f1ab0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "operator": ">>=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 6, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/actual.js new file mode 100644 index 0000000000..4ddbf45b90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/actual.js @@ -0,0 +1 @@ +x >>>= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json new file mode 100644 index 0000000000..34ae7fde25 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": ">>>=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/actual.js new file mode 100644 index 0000000000..021d2208ec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/actual.js @@ -0,0 +1 @@ +x &= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json new file mode 100644 index 0000000000..a97d4cb79e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "&=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/actual.js new file mode 100644 index 0000000000..77975a2659 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/actual.js @@ -0,0 +1 @@ +x ^= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json new file mode 100644 index 0000000000..7a092cae1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "^=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/actual.js new file mode 100644 index 0000000000..8bbad8cd9f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/actual.js @@ -0,0 +1 @@ +x |= 42 diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json new file mode 100644 index 0000000000..0c297787a4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json @@ -0,0 +1,98 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "operator": "|=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 5, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/actual.js new file mode 100644 index 0000000000..9d87069548 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/actual.js @@ -0,0 +1 @@ +x & y diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/expected.json new file mode 100644 index 0000000000..a21f7900f7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "&", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/actual.js new file mode 100644 index 0000000000..460a89ecfa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/actual.js @@ -0,0 +1 @@ +x ^ y diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/expected.json new file mode 100644 index 0000000000..9ff129d06b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "^", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/actual.js new file mode 100644 index 0000000000..07736e61c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/actual.js @@ -0,0 +1 @@ +x | y diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/expected.json new file mode 100644 index 0000000000..2c6c6a71aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-bitwise/migrated_0002/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "|", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/actual.js new file mode 100644 index 0000000000..d3891c2c9c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/actual.js @@ -0,0 +1 @@ +x || y diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/expected.json new file mode 100644 index 0000000000..43821da431 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "||", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/actual.js new file mode 100644 index 0000000000..7d5be6bfd1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/actual.js @@ -0,0 +1 @@ +x && y diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/expected.json new file mode 100644 index 0000000000..7b3dce0fdb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/actual.js new file mode 100644 index 0000000000..90e7cf52f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/actual.js @@ -0,0 +1 @@ +x || y || z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/expected.json new file mode 100644 index 0000000000..313205c734 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0002/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "||", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + }, + "operator": "||", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/actual.js new file mode 100644 index 0000000000..3a9c93b39c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/actual.js @@ -0,0 +1 @@ +x && y && z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/expected.json new file mode 100644 index 0000000000..076e9826f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0003/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/actual.js new file mode 100644 index 0000000000..ba63b00838 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/actual.js @@ -0,0 +1 @@ +x || y && z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/expected.json new file mode 100644 index 0000000000..39a92de27e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0004/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "||", + "right": { + "type": "LogicalExpression", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/actual.js new file mode 100644 index 0000000000..6ff43831c6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/actual.js @@ -0,0 +1 @@ +x || y ^ z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/expected.json new file mode 100644 index 0000000000..27399a9c53 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary-logical/migrated_0005/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "||", + "right": { + "type": "BinaryExpression", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "left": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + }, + "operator": "^", + "right": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/actual.js new file mode 100644 index 0000000000..ace7e0bf2d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/actual.js @@ -0,0 +1 @@ +x + y + z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/expected.json new file mode 100644 index 0000000000..102f5d3d69 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0000/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/actual.js new file mode 100644 index 0000000000..689cb88717 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/actual.js @@ -0,0 +1 @@ +x - y + z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/expected.json new file mode 100644 index 0000000000..de56597e6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0001/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "-", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/actual.js new file mode 100644 index 0000000000..89425f9273 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/actual.js @@ -0,0 +1 @@ +x + y - z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/expected.json new file mode 100644 index 0000000000..edc0351968 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0002/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "+", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "-", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/actual.js new file mode 100644 index 0000000000..8e7a45ced7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/actual.js @@ -0,0 +1 @@ +x - y - z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/expected.json new file mode 100644 index 0000000000..74e0ab65b8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0003/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "-", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "-", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/actual.js new file mode 100644 index 0000000000..6908de281f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/actual.js @@ -0,0 +1 @@ +x + y * z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/expected.json new file mode 100644 index 0000000000..510073e483 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0004/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "+", + "right": { + "type": "BinaryExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/actual.js new file mode 100644 index 0000000000..05c8c505cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/actual.js @@ -0,0 +1 @@ +x + y / z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/expected.json new file mode 100644 index 0000000000..5e5fca2313 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0005/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "+", + "right": { + "type": "BinaryExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/actual.js new file mode 100644 index 0000000000..4fde298f0f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/actual.js @@ -0,0 +1 @@ +x - y % z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/expected.json new file mode 100644 index 0000000000..dc0ac6b9bf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0006/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "-", + "right": { + "type": "BinaryExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + }, + "operator": "%", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/actual.js new file mode 100644 index 0000000000..2487593dd8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/actual.js @@ -0,0 +1 @@ +x * y * z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/expected.json new file mode 100644 index 0000000000..4beef8dd3d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0007/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/actual.js new file mode 100644 index 0000000000..0bfe2ae559 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/actual.js @@ -0,0 +1 @@ +x * y / z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/expected.json new file mode 100644 index 0000000000..9d743b0d39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0008/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/actual.js new file mode 100644 index 0000000000..862069a198 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/actual.js @@ -0,0 +1 @@ +x * y % z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/expected.json new file mode 100644 index 0000000000..3e5a22a223 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0009/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "%", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/actual.js new file mode 100644 index 0000000000..77b5290486 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/actual.js @@ -0,0 +1 @@ +x % y * z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/expected.json new file mode 100644 index 0000000000..2174559e10 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0010/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "%", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/actual.js new file mode 100644 index 0000000000..3e63d20011 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/actual.js @@ -0,0 +1 @@ +x << y << z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/expected.json new file mode 100644 index 0000000000..92c65557e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0011/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "<<", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + }, + "operator": "<<", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/actual.js new file mode 100644 index 0000000000..7d90d68915 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/actual.js @@ -0,0 +1 @@ +x | y | z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/expected.json new file mode 100644 index 0000000000..188c481bfc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0012/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "|", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "|", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/actual.js new file mode 100644 index 0000000000..c6fe6c5daf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/actual.js @@ -0,0 +1 @@ +x & y & z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/expected.json new file mode 100644 index 0000000000..3c6c2f0817 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0013/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "&", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "&", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/actual.js new file mode 100644 index 0000000000..c2d0bfe871 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/actual.js @@ -0,0 +1 @@ +x ^ y ^ z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/expected.json new file mode 100644 index 0000000000..48e47e4198 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0014/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "^", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "^", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/actual.js new file mode 100644 index 0000000000..962182f597 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/actual.js @@ -0,0 +1 @@ +x & y | z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/expected.json new file mode 100644 index 0000000000..0fa66acc0b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0015/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "&", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "|", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/actual.js new file mode 100644 index 0000000000..25a30410da --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/actual.js @@ -0,0 +1 @@ +x | y ^ z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/expected.json new file mode 100644 index 0000000000..c8df10d3d8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0016/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "|", + "right": { + "type": "BinaryExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + }, + "operator": "^", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/actual.js b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/actual.js new file mode 100644 index 0000000000..4e4b638c97 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/actual.js @@ -0,0 +1 @@ +x | y & z diff --git a/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/expected.json new file mode 100644 index 0000000000..c66d330503 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-binary/migrated_0017/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "|", + "right": { + "type": "BinaryExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + }, + "operator": "&", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/actual.js new file mode 100644 index 0000000000..9956b52bbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/actual.js @@ -0,0 +1 @@ +x << y diff --git a/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/expected.json new file mode 100644 index 0000000000..7da984159e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "<<", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/actual.js new file mode 100644 index 0000000000..97b03e6112 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/actual.js @@ -0,0 +1 @@ +x >> y diff --git a/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/expected.json new file mode 100644 index 0000000000..51b1fefd9e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": ">>", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/actual.js new file mode 100644 index 0000000000..6605695a6b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/actual.js @@ -0,0 +1 @@ +x >>> y diff --git a/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/expected.json new file mode 100644 index 0000000000..c61c63d02d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-bitwise-shift/migrated_0002/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": ">>>", + "right": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/actual.js new file mode 100644 index 0000000000..2a769e96c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/actual.js @@ -0,0 +1 @@ +a || b && c | d ^ e & f == g < h >>> i + j * k diff --git a/packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/expected.json new file mode 100644 index 0000000000..2158045bd1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-complex/migrated_0000/expected.json @@ -0,0 +1,384 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "expression": { + "type": "LogicalExpression", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "a" + }, + "operator": "||", + "right": { + "type": "LogicalExpression", + "start": 5, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "b" + }, + "operator": "&&", + "right": { + "type": "BinaryExpression", + "start": 10, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "c" + }, + "operator": "|", + "right": { + "type": "BinaryExpression", + "start": 14, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "d" + }, + "operator": "^", + "right": { + "type": "BinaryExpression", + "start": 18, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "e" + }, + "operator": "&", + "right": { + "type": "BinaryExpression", + "start": 22, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "f" + }, + "operator": "==", + "right": { + "type": "BinaryExpression", + "start": 27, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "g" + }, + "operator": "<", + "right": { + "type": "BinaryExpression", + "start": 31, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "h" + }, + "operator": ">>>", + "right": { + "type": "BinaryExpression", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 37, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "i" + }, + "operator": "+", + "right": { + "type": "BinaryExpression", + "start": 41, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "left": { + "type": "Identifier", + "start": 41, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "name": "j" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 45, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 45 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "k" + } + } + } + } + } + } + } + } + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/actual.js new file mode 100644 index 0000000000..848240c6c6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/actual.js @@ -0,0 +1 @@ +y ? 1 : 2 diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json new file mode 100644 index 0000000000..355a73a1ad --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "ConditionalExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "test": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "y" + }, + "consequent": { + "type": "Literal", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "alternate": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 2, + "rawValue": 2, + "raw": "2" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/actual.js new file mode 100644 index 0000000000..3f29ba0e20 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/actual.js @@ -0,0 +1 @@ +x && y ? 1 : 2 diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json new file mode 100644 index 0000000000..618615ef5f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json @@ -0,0 +1,147 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "ConditionalExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "test": { + "type": "LogicalExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "&&", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + }, + "consequent": { + "type": "Literal", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "alternate": { + "type": "Literal", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": 2, + "rawValue": 2, + "raw": "2" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/actual.js new file mode 100644 index 0000000000..c63be97a08 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/actual.js @@ -0,0 +1 @@ +x = (0) ? 1 : 2 diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json new file mode 100644 index 0000000000..3875482cdf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ConditionalExpression", + "start": 4, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "test": { + "type": "Literal", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0", + "parenthesizedExpression": true + }, + "consequent": { + "type": "Literal", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "alternate": { + "type": "Literal", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 2, + "rawValue": 2, + "raw": "2" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/actual.js new file mode 100644 index 0000000000..04dfc84773 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/actual.js @@ -0,0 +1 @@ +x == y diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/expected.json new file mode 100644 index 0000000000..c1e5bf26af --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "==", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/actual.js new file mode 100644 index 0000000000..348bb48b0f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/actual.js @@ -0,0 +1 @@ +x != y diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/expected.json new file mode 100644 index 0000000000..8eb45e6a10 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "!=", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/actual.js new file mode 100644 index 0000000000..8193d1149a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/actual.js @@ -0,0 +1 @@ +x === y diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/expected.json new file mode 100644 index 0000000000..2610f3986a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0002/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "===", + "right": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/actual.js new file mode 100644 index 0000000000..9060514515 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/actual.js @@ -0,0 +1 @@ +x !== y diff --git a/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/expected.json new file mode 100644 index 0000000000..ab3b9424ab --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-equality/migrated_0003/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "!==", + "right": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/actual.js new file mode 100644 index 0000000000..42734c6592 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/actual.js @@ -0,0 +1 @@ +(1) + (2 ) + 3 diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json new file mode 100644 index 0000000000..68090be774 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Literal", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1", + "parenthesizedExpression": true + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "value": 2, + "rawValue": 2, + "raw": "2", + "parenthesizedExpression": true + } + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/actual.js new file mode 100644 index 0000000000..56c0cac6ce --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/actual.js @@ -0,0 +1 @@ +4 + 5 << (6) diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json new file mode 100644 index 0000000000..df6409e3a6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json @@ -0,0 +1,135 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Literal", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "value": 4, + "rawValue": 4, + "raw": "4" + }, + "operator": "+", + "right": { + "type": "Literal", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "value": 5, + "rawValue": 5, + "raw": "5" + } + }, + "operator": "<<", + "right": { + "type": "Literal", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 6, + "rawValue": 6, + "raw": "6", + "parenthesizedExpression": true + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/actual.js new file mode 100644 index 0000000000..f25591e1c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/actual.js @@ -0,0 +1 @@ +new Button diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/expected.json new file mode 100644 index 0000000000..08c175955a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0000/expected.json @@ -0,0 +1,80 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "Button" + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/actual.js new file mode 100644 index 0000000000..faf1e044d7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/actual.js @@ -0,0 +1 @@ +new Button() diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/expected.json new file mode 100644 index 0000000000..782d5ea7e4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0001/expected.json @@ -0,0 +1,80 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "Button" + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/actual.js new file mode 100644 index 0000000000..94d35b3de1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/actual.js @@ -0,0 +1 @@ +new new foo diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/expected.json new file mode 100644 index 0000000000..376081c391 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0002/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "callee": { + "type": "NewExpression", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "callee": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "arguments": [] + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/actual.js new file mode 100644 index 0000000000..dd7e741e59 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/actual.js @@ -0,0 +1 @@ +new new foo() diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/expected.json new file mode 100644 index 0000000000..5c476aa6cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0003/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "NewExpression", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "foo" + }, + "arguments": [] + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/actual.js new file mode 100644 index 0000000000..70f5f76c68 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/actual.js @@ -0,0 +1 @@ +new foo().bar() diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/expected.json new file mode 100644 index 0000000000..1b87993df9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0004/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "callee": { + "type": "MemberExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "object": { + "type": "NewExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "arguments": [] + }, + "property": { + "type": "Identifier", + "start": 10, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "bar" + }, + "computed": false + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/actual.js new file mode 100644 index 0000000000..970159627a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/actual.js @@ -0,0 +1 @@ +new foo[bar] diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/expected.json new file mode 100644 index 0000000000..952d418f50 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0005/expected.json @@ -0,0 +1,112 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "callee": { + "type": "MemberExpression", + "start": 4, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "object": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "computed": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/actual.js new file mode 100644 index 0000000000..c8eaa7d3df --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/actual.js @@ -0,0 +1 @@ +new foo.bar() diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/expected.json new file mode 100644 index 0000000000..7ace856b56 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0006/expected.json @@ -0,0 +1,112 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "NewExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "MemberExpression", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "object": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "property": { + "type": "Identifier", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "bar" + }, + "computed": false + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/actual.js new file mode 100644 index 0000000000..3cfaa821f0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/actual.js @@ -0,0 +1 @@ +( new foo).bar() diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json new file mode 100644 index 0000000000..b353ef2c83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "callee": { + "type": "MemberExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "object": { + "type": "NewExpression", + "start": 2, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "foo" + }, + "arguments": [], + "parenthesizedExpression": true + }, + "property": { + "type": "Identifier", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "bar" + }, + "computed": false + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/actual.js new file mode 100644 index 0000000000..da0f4f336f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/actual.js @@ -0,0 +1 @@ +foo(bar, baz) diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/expected.json new file mode 100644 index 0000000000..c20918ced6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0008/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "foo" + }, + "arguments": [ + { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "bar" + }, + { + "type": "Identifier", + "start": 9, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "baz" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/actual.js new file mode 100644 index 0000000000..f3004e7a57 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/actual.js @@ -0,0 +1 @@ +( foo )() diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json new file mode 100644 index 0000000000..6105d2841a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "callee": { + "type": "Identifier", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "foo", + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/actual.js new file mode 100644 index 0000000000..02ad348883 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/actual.js @@ -0,0 +1 @@ +universe.milkyway diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/expected.json new file mode 100644 index 0000000000..937e364bb2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0010/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "milkyway" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/actual.js new file mode 100644 index 0000000000..aafe7cd7c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/actual.js @@ -0,0 +1 @@ +universe.milkyway.solarsystem diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/expected.json new file mode 100644 index 0000000000..9b9c988c91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0011/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "object": { + "type": "MemberExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "milkyway" + }, + "computed": false + }, + "property": { + "type": "Identifier", + "start": 18, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "solarsystem" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/actual.js new file mode 100644 index 0000000000..eae277418a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/actual.js @@ -0,0 +1 @@ +universe.milkyway.solarsystem.Earth diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/expected.json new file mode 100644 index 0000000000..e160672e6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0012/expected.json @@ -0,0 +1,160 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "object": { + "type": "MemberExpression", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "object": { + "type": "MemberExpression", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "milkyway" + }, + "computed": false + }, + "property": { + "type": "Identifier", + "start": 18, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "solarsystem" + }, + "computed": false + }, + "property": { + "type": "Identifier", + "start": 30, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "Earth" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/actual.js new file mode 100644 index 0000000000..3b1db67828 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/actual.js @@ -0,0 +1 @@ +universe[galaxyName, otherUselessName] diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/expected.json new file mode 100644 index 0000000000..269aad8658 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0013/expected.json @@ -0,0 +1,129 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "SequenceExpression", + "start": 9, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expressions": [ + { + "type": "Identifier", + "start": 9, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "galaxyName" + }, + { + "type": "Identifier", + "start": 21, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "otherUselessName" + } + ] + }, + "computed": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/actual.js new file mode 100644 index 0000000000..47f9ec6916 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/actual.js @@ -0,0 +1 @@ +universe[galaxyName] diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/expected.json new file mode 100644 index 0000000000..fd2ad08336 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0014/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "galaxyName" + }, + "computed": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/actual.js new file mode 100644 index 0000000000..79781fb356 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/actual.js @@ -0,0 +1 @@ +universe[42].galaxies diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json new file mode 100644 index 0000000000..cca9b0fc82 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json @@ -0,0 +1,130 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "object": { + "type": "MemberExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Literal", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + }, + "computed": true + }, + "property": { + "type": "Identifier", + "start": 13, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "galaxies" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/actual.js new file mode 100644 index 0000000000..3d6d662393 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/actual.js @@ -0,0 +1 @@ +universe(42).galaxies diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json new file mode 100644 index 0000000000..463a77c2e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json @@ -0,0 +1,131 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "object": { + "type": "CallExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "arguments": [ + { + "type": "Literal", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + ] + }, + "property": { + "type": "Identifier", + "start": 13, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "galaxies" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/actual.js new file mode 100644 index 0000000000..76785c5f46 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/actual.js @@ -0,0 +1 @@ +universe(42).galaxies(14, 3, 77).milkyway diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json new file mode 100644 index 0000000000..fab1521321 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json @@ -0,0 +1,234 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "object": { + "type": "CallExpression", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "callee": { + "type": "MemberExpression", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "object": { + "type": "CallExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "callee": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "arguments": [ + { + "type": "Literal", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + ] + }, + "property": { + "type": "Identifier", + "start": 13, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "galaxies" + }, + "computed": false + }, + "arguments": [ + { + "type": "Literal", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": 14, + "rawValue": 14, + "raw": "14" + }, + { + "type": "Literal", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + }, + { + "type": "Literal", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": 77, + "rawValue": 77, + "raw": "77" + } + ] + }, + "property": { + "type": "Identifier", + "start": 33, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "milkyway" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/actual.js new file mode 100644 index 0000000000..423bc528eb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/actual.js @@ -0,0 +1 @@ +earth.asia.Indonesia.prepareForElection(2014) diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json new file mode 100644 index 0000000000..762a4f980c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json @@ -0,0 +1,195 @@ +{ + "type": "File", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "callee": { + "type": "MemberExpression", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "object": { + "type": "MemberExpression", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "object": { + "type": "MemberExpression", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "earth" + }, + "property": { + "type": "Identifier", + "start": 6, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "asia" + }, + "computed": false + }, + "property": { + "type": "Identifier", + "start": 11, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "Indonesia" + }, + "computed": false + }, + "property": { + "type": "Identifier", + "start": 21, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "name": "prepareForElection" + }, + "computed": false + }, + "arguments": [ + { + "type": "Literal", + "start": 40, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "value": 2014, + "rawValue": 2014, + "raw": "2014" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/actual.js new file mode 100644 index 0000000000..1999f5dc40 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/actual.js @@ -0,0 +1 @@ +universe.if diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/expected.json new file mode 100644 index 0000000000..41129f5624 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0019/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "if" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/actual.js new file mode 100644 index 0000000000..5c90c4fefb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/actual.js @@ -0,0 +1 @@ +universe.true diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/expected.json new file mode 100644 index 0000000000..b31bc7542a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0020/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "true" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/actual.js new file mode 100644 index 0000000000..5fe9f0397c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/actual.js @@ -0,0 +1 @@ +universe.false diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/expected.json new file mode 100644 index 0000000000..5bc538a2b9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0021/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "false" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/actual.js b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/actual.js new file mode 100644 index 0000000000..b439c86b98 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/actual.js @@ -0,0 +1 @@ +universe.null diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/expected.json new file mode 100644 index 0000000000..a8f3caddc1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0022/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "MemberExpression", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "object": { + "type": "Identifier", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "universe" + }, + "property": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "null" + }, + "computed": false + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/actual.js new file mode 100644 index 0000000000..d1a067af67 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/actual.js @@ -0,0 +1 @@ +x * y diff --git a/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/expected.json new file mode 100644 index 0000000000..89022ede9f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/actual.js new file mode 100644 index 0000000000..02514641d8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/actual.js @@ -0,0 +1 @@ +x / y diff --git a/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/expected.json new file mode 100644 index 0000000000..8a860dd890 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "/", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/actual.js new file mode 100644 index 0000000000..e5605cc2ca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/actual.js @@ -0,0 +1 @@ +x % y diff --git a/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/expected.json new file mode 100644 index 0000000000..2887a84d0e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-multiplicative/migrated_0002/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "%", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/actual.js new file mode 100644 index 0000000000..364dc43646 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/actual.js @@ -0,0 +1 @@ +x++ diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/expected.json new file mode 100644 index 0000000000..0712715b16 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0000/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/actual.js new file mode 100644 index 0000000000..0820536cd8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/actual.js @@ -0,0 +1 @@ +x-- diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/expected.json new file mode 100644 index 0000000000..c4ea608985 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0001/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/actual.js new file mode 100644 index 0000000000..71a7f25653 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/actual.js @@ -0,0 +1 @@ +eval++ diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/expected.json new file mode 100644 index 0000000000..b1909f3acc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0002/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "eval" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/actual.js new file mode 100644 index 0000000000..798b38e212 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/actual.js @@ -0,0 +1 @@ +eval-- diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/expected.json new file mode 100644 index 0000000000..aaebc648e7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0003/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "eval" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/actual.js new file mode 100644 index 0000000000..cd0b1ae75a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/actual.js @@ -0,0 +1 @@ +arguments++ diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/expected.json new file mode 100644 index 0000000000..bb07286fc5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0004/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "arguments" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/actual.js new file mode 100644 index 0000000000..ac1d0470da --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/actual.js @@ -0,0 +1 @@ +arguments-- diff --git a/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/expected.json new file mode 100644 index 0000000000..5fdbf545d2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-postfix/migrated_0005/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "arguments" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/expected.json b/packages/babylon/test/fixtures/esprima/expression-primary/array/expected.json new file mode 100644 index 0000000000..10130f3578 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/expected.json @@ -0,0 +1,32 @@ +{ + "type": "File", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "sourceType": "script", + "body": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0000.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0000.js new file mode 100755 index 0000000000..93edbdf932 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0000.js @@ -0,0 +1 @@ +x = [] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0001.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0001.js new file mode 100755 index 0000000000..bad19c76e0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0001.js @@ -0,0 +1 @@ +x = [ ] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0002.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0002.js new file mode 100755 index 0000000000..34a371c58c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0002.js @@ -0,0 +1 @@ +x = [ 42 ] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0003.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0003.js new file mode 100755 index 0000000000..4a52d857d6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0003.js @@ -0,0 +1 @@ +x = [ 42, ] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0004.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0004.js new file mode 100755 index 0000000000..18ce8c0881 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0004.js @@ -0,0 +1 @@ +x = [ ,, 42 ] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0005.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0005.js new file mode 100755 index 0000000000..9a2988fad8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0005.js @@ -0,0 +1 @@ +x = [ 1, 2, 3, ] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0006.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0006.js new file mode 100755 index 0000000000..9fad480185 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0006.js @@ -0,0 +1 @@ +x = [ 1, 2,, 3, ] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0007.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0007.js new file mode 100755 index 0000000000..16e202fe27 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0007.js @@ -0,0 +1 @@ +日本語 = [] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0008.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0008.source.js new file mode 100755 index 0000000000..f0f44705bf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0008.source.js @@ -0,0 +1 @@ +var source = 'T\u203F = []'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0009.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0009.source.js new file mode 100755 index 0000000000..e2eb52f9c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0009.source.js @@ -0,0 +1 @@ +var source = 'T\u200C = []'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0010.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0010.source.js new file mode 100755 index 0000000000..bafe63b052 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0010.source.js @@ -0,0 +1 @@ +var source = 'T\u200D = []'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0011.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0011.source.js new file mode 100755 index 0000000000..307b0667e7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0011.source.js @@ -0,0 +1 @@ +var source = '\u2163\u2161 = []'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0012.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0012.source.js new file mode 100755 index 0000000000..b24f8e1c82 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/array/migrated_0012.source.js @@ -0,0 +1 @@ +var source = '\u2163\u2161\u200A=\u2009[]'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/expected.json b/packages/babylon/test/fixtures/esprima/expression-primary/literal/expected.json new file mode 100644 index 0000000000..10130f3578 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/expected.json @@ -0,0 +1,32 @@ +{ + "type": "File", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "sourceType": "script", + "body": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0000.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0000.js new file mode 100755 index 0000000000..c227083464 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0000.js @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0001.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0001.js new file mode 100755 index 0000000000..f70d7bba4a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0001.js @@ -0,0 +1 @@ +42 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0002.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0002.js new file mode 100755 index 0000000000..e440e5c842 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0002.js @@ -0,0 +1 @@ +3 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0003.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0003.js new file mode 100755 index 0000000000..7813681f5b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0003.js @@ -0,0 +1 @@ +5 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0004.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0004.js new file mode 100755 index 0000000000..be03e1f60c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0004.js @@ -0,0 +1 @@ +.14 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0005.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0005.js new file mode 100755 index 0000000000..2c0cac55e9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0005.js @@ -0,0 +1 @@ +3.14159 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0006.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0006.js new file mode 100755 index 0000000000..f5b274b29f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0006.js @@ -0,0 +1 @@ +6.02214179e+23 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0007.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0007.js new file mode 100755 index 0000000000..76ed586cf9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0007.js @@ -0,0 +1 @@ +1.492417830e-10 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0008.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0008.js new file mode 100755 index 0000000000..4eb9959a2f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0008.js @@ -0,0 +1 @@ +0x0 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0009.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0009.js new file mode 100755 index 0000000000..920f1df47e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0009.js @@ -0,0 +1 @@ +0x0; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0010.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0010.js new file mode 100755 index 0000000000..fc205a7af3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0010.js @@ -0,0 +1 @@ +0e+100 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0011.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0011.js new file mode 100755 index 0000000000..09ef70253b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0011.js @@ -0,0 +1 @@ +0e+100 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0012.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0012.js new file mode 100755 index 0000000000..2638b79541 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0012.js @@ -0,0 +1 @@ +0xabc \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0013.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0013.js new file mode 100755 index 0000000000..f52a51eac0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0013.js @@ -0,0 +1 @@ +0xdef \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0014.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0014.js new file mode 100755 index 0000000000..64239bc1d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0014.js @@ -0,0 +1 @@ +0X1A \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0015.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0015.js new file mode 100755 index 0000000000..1543d40816 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0015.js @@ -0,0 +1 @@ +0x10 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0016.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0016.js new file mode 100755 index 0000000000..b4df9e41e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0016.js @@ -0,0 +1 @@ +0x100 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0017.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0017.js new file mode 100755 index 0000000000..0c023f5103 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0017.js @@ -0,0 +1 @@ +0X04 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0018.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0018.js new file mode 100755 index 0000000000..b08e32771f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0018.js @@ -0,0 +1 @@ +02 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0019.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0019.js new file mode 100755 index 0000000000..108d4a6efa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0019.js @@ -0,0 +1 @@ +012 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0020.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0020.js new file mode 100755 index 0000000000..58aba07363 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0020.js @@ -0,0 +1 @@ +0012 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0021.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0021.js new file mode 100755 index 0000000000..7d4defd631 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0021.js @@ -0,0 +1 @@ +08 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0022.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0022.js new file mode 100755 index 0000000000..63e484e2ed --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0022.js @@ -0,0 +1 @@ +0008 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0023.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0023.js new file mode 100755 index 0000000000..aa2f0b2695 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0023.js @@ -0,0 +1 @@ +09 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0024.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0024.js new file mode 100755 index 0000000000..54bb538e84 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/numeric/migrated_0024.js @@ -0,0 +1 @@ +09.5 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0000.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0000.js new file mode 100755 index 0000000000..abc222ef6c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0000.js @@ -0,0 +1 @@ +/p/; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0001.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0001.js new file mode 100755 index 0000000000..3252cdd9a7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0001.js @@ -0,0 +1 @@ +[/q/] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0002.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0002.js new file mode 100755 index 0000000000..6bb56b4469 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0002.js @@ -0,0 +1 @@ +var x = /[a-z]/i \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0003.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0003.js new file mode 100755 index 0000000000..db1b90a161 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0003.js @@ -0,0 +1 @@ +var x = /[a-z]/y \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0004.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0004.js new file mode 100755 index 0000000000..2c1de8e27e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0004.js @@ -0,0 +1 @@ +var x = /[a-z]/u \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0005.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0005.source.js new file mode 100755 index 0000000000..b2b646e23e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0005.source.js @@ -0,0 +1 @@ +var source = 'var x = /[\\u{0000000000000061}-\\u{7A}]/u'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.failure.json b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.failure.json new file mode 100755 index 0000000000..55cbc7a399 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.failure.json @@ -0,0 +1,6 @@ +{ + "index": 21, + "lineNumber": 1, + "column": 22, + "message": "Error: Line 1: Invalid regular expression" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.source.js new file mode 100755 index 0000000000..964850a64e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0006.source.js @@ -0,0 +1 @@ +var source = 'var x = /\\u{110000}/u'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0007.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0007.js new file mode 100755 index 0000000000..9381588264 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0007.js @@ -0,0 +1 @@ +var x = /[x-z]/i \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0008.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0008.js new file mode 100755 index 0000000000..71e179d728 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0008.js @@ -0,0 +1 @@ +var x = /[a-c]/i \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0009.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0009.js new file mode 100755 index 0000000000..cc13baaedb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0009.js @@ -0,0 +1 @@ +var x = /[P QR]/i \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0010.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0010.js new file mode 100755 index 0000000000..de30ee8d78 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0010.js @@ -0,0 +1 @@ +var x = /[\]/]/ \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0011.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0011.js new file mode 100755 index 0000000000..dec7c26546 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0011.js @@ -0,0 +1 @@ +var x = /foo\/bar/ \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0012.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0012.js new file mode 100755 index 0000000000..3778fcff9e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0012.js @@ -0,0 +1 @@ +var x = /=([^=\s])+/g \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0013.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0013.js new file mode 100755 index 0000000000..7bb9d02a44 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/migrated_0013.js @@ -0,0 +1 @@ +var x = /42/g.test \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.failure.json b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.failure.json new file mode 100755 index 0000000000..9bfbe69a02 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.failure.json @@ -0,0 +1,6 @@ +{ + "index": 21, + "lineNumber": 1, + "column": 22, + "message": "Error: Line 1: Invalid regular expression" +} diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.js new file mode 100755 index 0000000000..3d8b6d0439 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-4-hex.js @@ -0,0 +1 @@ +var x = /[\u0063-b]/u; diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.failure.json b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.failure.json new file mode 100755 index 0000000000..9bfbe69a02 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.failure.json @@ -0,0 +1,6 @@ +{ + "index": 21, + "lineNumber": 1, + "column": 22, + "message": "Error: Line 1: Invalid regular expression" +} diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.js new file mode 100755 index 0000000000..34e1615cf2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-invalid-range-var-hex.js @@ -0,0 +1 @@ +var x = /[\u{63}-b]/u; diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-surrogate-pair.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-surrogate-pair.js new file mode 100755 index 0000000000..b0c93c88cd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-surrogate-pair.js @@ -0,0 +1 @@ +var x = /[\uD834\uDF06-\uD834\uDF08a-z]/u diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-valid-range.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-valid-range.js new file mode 100755 index 0000000000..82055ad165 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/regular-expression/u-flag-valid-range.js @@ -0,0 +1 @@ +var x = /[\u{61}-b][\u0061-b][a-\u{62}][a-\u0062]\u{1ffff}/u; diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0000.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0000.js new file mode 100755 index 0000000000..5638d8ba20 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0000.js @@ -0,0 +1 @@ +"Hello" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0001.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0001.js new file mode 100755 index 0000000000..5df7cc4df6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0001.js @@ -0,0 +1 @@ +"\n\r\t\v\b\f\\\'\"\0" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0002.source.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0002.source.js new file mode 100755 index 0000000000..0447afbd6f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0002.source.js @@ -0,0 +1 @@ +var source = '"\\u0061"'; \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0003.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0003.js new file mode 100755 index 0000000000..e2900ca237 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0003.js @@ -0,0 +1 @@ +"\x61" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0006.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0006.js new file mode 100755 index 0000000000..0b0d9763bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0006.js @@ -0,0 +1 @@ +"Hello\nworld" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0007.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0007.js new file mode 100755 index 0000000000..7e5e4d1982 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0007.js @@ -0,0 +1,2 @@ +"Hello\ +world" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0008.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0008.js new file mode 100755 index 0000000000..09a19f43fe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0008.js @@ -0,0 +1 @@ +"Hello\02World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0009.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0009.js new file mode 100755 index 0000000000..b0f991045e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0009.js @@ -0,0 +1 @@ +"Hello\012World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0010.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0010.js new file mode 100755 index 0000000000..a0768cd433 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0010.js @@ -0,0 +1 @@ +"Hello\122World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0011.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0011.js new file mode 100755 index 0000000000..7bf843297c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0011.js @@ -0,0 +1 @@ +"Hello\0122World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0012.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0012.js new file mode 100755 index 0000000000..bb1e3cbb63 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0012.js @@ -0,0 +1 @@ +"Hello\312World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0013.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0013.js new file mode 100755 index 0000000000..271e2dedac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0013.js @@ -0,0 +1 @@ +"Hello\412World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0015.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0015.js new file mode 100755 index 0000000000..864a61471d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0015.js @@ -0,0 +1 @@ +"Hello\712World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0016.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0016.js new file mode 100755 index 0000000000..8e8574da03 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0016.js @@ -0,0 +1 @@ +"Hello\0World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0017.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0017.js new file mode 100755 index 0000000000..f9ac49bca7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0017.js @@ -0,0 +1,2 @@ +"Hello\ +world" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0018.js b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0018.js new file mode 100755 index 0000000000..d667033539 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/literal/string/migrated_0018.js @@ -0,0 +1 @@ +"Hello\1World" \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/expected.json b/packages/babylon/test/fixtures/esprima/expression-primary/object/expected.json new file mode 100644 index 0000000000..10130f3578 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/expected.json @@ -0,0 +1,32 @@ +{ + "type": "File", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "sourceType": "script", + "body": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0000.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0000.js new file mode 100755 index 0000000000..ad9234753c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0000.js @@ -0,0 +1 @@ +x = {} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0001.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0001.js new file mode 100755 index 0000000000..e2070b1349 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0001.js @@ -0,0 +1 @@ +x = { } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0002.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0002.js new file mode 100755 index 0000000000..ac27b07c1f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0002.js @@ -0,0 +1 @@ +x = { answer: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0003.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0003.js new file mode 100755 index 0000000000..eb6c39e461 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0003.js @@ -0,0 +1 @@ +x = { if: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0004.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0004.js new file mode 100755 index 0000000000..cc13060a89 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0004.js @@ -0,0 +1 @@ +x = { true: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0005.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0005.js new file mode 100755 index 0000000000..232f4d608a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0005.js @@ -0,0 +1 @@ +x = { false: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0006.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0006.js new file mode 100755 index 0000000000..73fedb55da --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0006.js @@ -0,0 +1 @@ +x = { null: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0007.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0007.js new file mode 100755 index 0000000000..080fc0eb69 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0007.js @@ -0,0 +1 @@ +x = { "answer": 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0008.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0008.js new file mode 100755 index 0000000000..27dc99aa13 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0008.js @@ -0,0 +1 @@ +x = { x: 1, x: 2 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0009.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0009.js new file mode 100755 index 0000000000..6184558260 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0009.js @@ -0,0 +1 @@ +x = { get width() { return m_width } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0010.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0010.js new file mode 100755 index 0000000000..31858315e9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0010.js @@ -0,0 +1 @@ +x = { get undef() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0011.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0011.js new file mode 100755 index 0000000000..d36a62233b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0011.js @@ -0,0 +1 @@ +x = { get if() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0012.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0012.js new file mode 100755 index 0000000000..d1eebe34eb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0012.js @@ -0,0 +1 @@ +x = { get true() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0013.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0013.js new file mode 100755 index 0000000000..bfdd86e7bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0013.js @@ -0,0 +1 @@ +x = { get false() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0014.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0014.js new file mode 100755 index 0000000000..11f3416e4d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0014.js @@ -0,0 +1 @@ +x = { get null() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0015.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0015.js new file mode 100755 index 0000000000..6b2adc2768 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0015.js @@ -0,0 +1 @@ +x = { get "undef"() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0016.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0016.js new file mode 100755 index 0000000000..a4b31f7f4b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0016.js @@ -0,0 +1 @@ +x = { get 10() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0017.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0017.js new file mode 100755 index 0000000000..195d9af705 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0017.js @@ -0,0 +1 @@ +x = { set width(w) { m_width = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0018.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0018.js new file mode 100755 index 0000000000..5a84a53efe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0018.js @@ -0,0 +1 @@ +x = { set if(w) { m_if = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0019.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0019.js new file mode 100755 index 0000000000..9a2f22a04c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0019.js @@ -0,0 +1 @@ +x = { set true(w) { m_true = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0020.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0020.js new file mode 100755 index 0000000000..8689324d5f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0020.js @@ -0,0 +1 @@ +x = { set false(w) { m_false = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0021.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0021.js new file mode 100755 index 0000000000..2694a883bd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0021.js @@ -0,0 +1 @@ +x = { set null(w) { m_null = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0022.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0022.js new file mode 100755 index 0000000000..46712ca95a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0022.js @@ -0,0 +1 @@ +x = { set "null"(w) { m_null = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0023.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0023.js new file mode 100755 index 0000000000..c5e8300a63 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0023.js @@ -0,0 +1 @@ +x = { set 10(w) { m_null = w } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0024.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0024.js new file mode 100755 index 0000000000..12174c643f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0024.js @@ -0,0 +1 @@ +x = { get: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0025.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0025.js new file mode 100755 index 0000000000..3750d76009 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0025.js @@ -0,0 +1 @@ +x = { set: 43 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0026.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0026.js new file mode 100755 index 0000000000..7ac6c98aba --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0026.js @@ -0,0 +1 @@ +x = { __proto__: 2 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0027.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0027.js new file mode 100755 index 0000000000..47f74f2edd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0027.js @@ -0,0 +1 @@ +x = {"__proto__": 2 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0028.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0028.js new file mode 100755 index 0000000000..32bbc3d6fb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0028.js @@ -0,0 +1 @@ +x = { get width() { return m_width }, set width(width) { m_width = width; } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0029.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0029.js new file mode 100755 index 0000000000..485ec58cc1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0029.js @@ -0,0 +1 @@ +({ get i() { }, i: 42 }) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0030.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0030.js new file mode 100755 index 0000000000..77c8fde597 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0030.js @@ -0,0 +1 @@ +"use strict";x={y:1,y:1} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0031.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0031.js new file mode 100755 index 0000000000..eefc56adf8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0031.js @@ -0,0 +1 @@ +"use strict"; var x = { get i() {}, get i() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0032.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0032.js new file mode 100755 index 0000000000..74514c2863 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0032.js @@ -0,0 +1 @@ +"use strict"; var x = { i: 42, get i() {} } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0033.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0033.js new file mode 100755 index 0000000000..7e54c3ecd4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0033.js @@ -0,0 +1 @@ +"use strict"; var x = { set i(x) {}, i: 42 } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0034.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0034.js new file mode 100755 index 0000000000..dc29fd9df0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0034.js @@ -0,0 +1 @@ +({[a](){}}) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0035.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0035.js new file mode 100755 index 0000000000..1f56c40c66 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0035.js @@ -0,0 +1 @@ +({[a]:()=>{}}) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0036.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0036.js new file mode 100755 index 0000000000..a086e035da --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0036.js @@ -0,0 +1 @@ +({["__proto__"]:0, ["__proto__"]:0}) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0037.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0037.js new file mode 100755 index 0000000000..5333738e27 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0037.js @@ -0,0 +1 @@ +({"[": 42}) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0038.js b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0038.js new file mode 100755 index 0000000000..1f93bdbc7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/object/migrated_0038.js @@ -0,0 +1 @@ +({set x(a=0){}}) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/other/expected.json b/packages/babylon/test/fixtures/esprima/expression-primary/other/expected.json new file mode 100644 index 0000000000..10130f3578 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/other/expected.json @@ -0,0 +1,32 @@ +{ + "type": "File", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 0, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 0 + } + }, + "sourceType": "script", + "body": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0000.js b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0000.js new file mode 100755 index 0000000000..9ecf3cf1d5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0000.js @@ -0,0 +1 @@ +this diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0001.js b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0001.js new file mode 100755 index 0000000000..19765bd501 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0001.js @@ -0,0 +1 @@ +null diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0002.js b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0002.js new file mode 100755 index 0000000000..aa5dcabcca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0002.js @@ -0,0 +1,3 @@ + + 42 + diff --git a/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0003.js b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0003.js new file mode 100755 index 0000000000..7000f9b764 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-primary/other/migrated_0003.js @@ -0,0 +1 @@ +(1 + 2 ) * 3 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/actual.js new file mode 100644 index 0000000000..a4309450ff --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/actual.js @@ -0,0 +1 @@ +x < y diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/expected.json new file mode 100644 index 0000000000..da2300c3ba --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0000/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/actual.js new file mode 100644 index 0000000000..4cdc8cdbb2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/actual.js @@ -0,0 +1 @@ +x > y diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/expected.json new file mode 100644 index 0000000000..d036898e8d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": ">", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/actual.js new file mode 100644 index 0000000000..da883403b4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/actual.js @@ -0,0 +1 @@ +x <= y diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/expected.json new file mode 100644 index 0000000000..21272df967 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0002/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "<=", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/actual.js new file mode 100644 index 0000000000..a64436af47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/actual.js @@ -0,0 +1 @@ +x >= y diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/expected.json new file mode 100644 index 0000000000..4eba25fa96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0003/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": ">=", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/actual.js new file mode 100644 index 0000000000..15f21b7b63 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/actual.js @@ -0,0 +1 @@ +x in y diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/expected.json new file mode 100644 index 0000000000..179ec5032f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0004/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "in", + "right": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/actual.js new file mode 100644 index 0000000000..ce7d945120 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/actual.js @@ -0,0 +1 @@ +x instanceof y diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/expected.json new file mode 100644 index 0000000000..8edd71168c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0005/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "instanceof", + "right": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/actual.js new file mode 100644 index 0000000000..aad496bf6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/actual.js @@ -0,0 +1 @@ +x < y < z diff --git a/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/expected.json new file mode 100644 index 0000000000..855baa45d7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-relational/migrated_0006/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "BinaryExpression", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "left": { + "type": "BinaryExpression", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "y" + } + }, + "operator": "<", + "right": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "z" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/actual.js new file mode 100644 index 0000000000..e4238dffdf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/actual.js @@ -0,0 +1 @@ +++x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/expected.json new file mode 100644 index 0000000000..b8e60e420d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0000/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/actual.js new file mode 100644 index 0000000000..acb2c9ff3f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/actual.js @@ -0,0 +1 @@ +--x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/expected.json new file mode 100644 index 0000000000..74d0f506ec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0001/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 2, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/actual.js new file mode 100644 index 0000000000..45adb9d186 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/actual.js @@ -0,0 +1 @@ +++eval diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/expected.json new file mode 100644 index 0000000000..892974799e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0002/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 2, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "eval" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/actual.js new file mode 100644 index 0000000000..09a7ca55ce --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/actual.js @@ -0,0 +1 @@ +--eval diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/expected.json new file mode 100644 index 0000000000..f82908bc2b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0003/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 2, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "eval" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/actual.js new file mode 100644 index 0000000000..2507513936 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/actual.js @@ -0,0 +1 @@ +++arguments diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/expected.json new file mode 100644 index 0000000000..e190c488dd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0004/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 2, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "arguments" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/actual.js new file mode 100644 index 0000000000..0108538d3d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/actual.js @@ -0,0 +1 @@ +--arguments diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/expected.json new file mode 100644 index 0000000000..8451361753 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0005/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 2, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "arguments" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/actual.js new file mode 100644 index 0000000000..0f31a64603 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/actual.js @@ -0,0 +1 @@ ++x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/expected.json new file mode 100644 index 0000000000..62ee624c4c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0006/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "operator": "+", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/actual.js new file mode 100644 index 0000000000..670c7b14af --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/actual.js @@ -0,0 +1 @@ +-x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/expected.json new file mode 100644 index 0000000000..4b614da625 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0007/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "operator": "-", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/actual.js new file mode 100644 index 0000000000..d5b13ed838 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/actual.js @@ -0,0 +1 @@ +~x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/expected.json new file mode 100644 index 0000000000..326a3d6c51 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0008/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "operator": "~", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/actual.js new file mode 100644 index 0000000000..d1b14d778f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/actual.js @@ -0,0 +1 @@ +!x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/expected.json new file mode 100644 index 0000000000..5db05c771f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0009/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "operator": "!", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/actual.js new file mode 100644 index 0000000000..6bba139bc6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/actual.js @@ -0,0 +1 @@ +void x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/expected.json new file mode 100644 index 0000000000..776ed71df2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0010/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "operator": "void", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/actual.js new file mode 100644 index 0000000000..ebeb0cb0fa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/actual.js @@ -0,0 +1 @@ +delete x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/expected.json new file mode 100644 index 0000000000..f5edc45759 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0011/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "operator": "delete", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/actual.js new file mode 100644 index 0000000000..e18eec452d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/actual.js @@ -0,0 +1 @@ +typeof x diff --git a/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/expected.json new file mode 100644 index 0000000000..137dc642bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/expression-unary/migrated_0012/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "operator": "typeof", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "x" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/actual.js new file mode 100644 index 0000000000..5a64203ac2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/actual.js @@ -0,0 +1 @@ +"\x"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-00/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/actual.js new file mode 100644 index 0000000000..fdf6b4ff7b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/actual.js @@ -0,0 +1 @@ +"\x0"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-01/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/actual.js new file mode 100644 index 0000000000..ce2c7dfa93 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/actual.js @@ -0,0 +1 @@ +"\xx"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-02/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/actual.js new file mode 100644 index 0000000000..8f04b77029 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/actual.js @@ -0,0 +1 @@ +"\u"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-03/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/actual.js new file mode 100644 index 0000000000..422fe603b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/actual.js @@ -0,0 +1 @@ +"\u0"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-04/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/actual.js new file mode 100644 index 0000000000..0e0fb8fb4d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/actual.js @@ -0,0 +1 @@ +"\ux"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-05/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/actual.js new file mode 100644 index 0000000000..e9a8c01817 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/actual.js @@ -0,0 +1 @@ +"\u00"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-06/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/actual.js new file mode 100644 index 0000000000..b77b4ffa07 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/actual.js @@ -0,0 +1 @@ +"\u000"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json new file mode 100644 index 0000000000..143c8be643 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-07/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Bad character escape sequence (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/actual.js new file mode 100644 index 0000000000..a29592d0ff --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/actual.js @@ -0,0 +1 @@ +"\9"; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/expected.json new file mode 100644 index 0000000000..0d183a7bf6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": "9", + "rawValue": "9", + "raw": "\"\\9\"" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/actual.js new file mode 100644 index 0000000000..98232c64fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/actual.js @@ -0,0 +1 @@ +{ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0000/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/actual.js new file mode 100644 index 0000000000..5c34318c21 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/actual.js @@ -0,0 +1 @@ +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json new file mode 100644 index 0000000000..919c05ec87 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0001/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/actual.js new file mode 100644 index 0000000000..595e60763e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/actual.js @@ -0,0 +1 @@ +3ea diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json new file mode 100644 index 0000000000..cf3086295c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0002/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/actual.js new file mode 100644 index 0000000000..b3ef4067a1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/actual.js @@ -0,0 +1 @@ +3in [] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json new file mode 100644 index 0000000000..b239abb159 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0003/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/actual.js new file mode 100644 index 0000000000..0dd5d19ef2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/actual.js @@ -0,0 +1 @@ +3e diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json new file mode 100644 index 0000000000..cf3086295c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0004/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/actual.js new file mode 100644 index 0000000000..bce33bebdd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/actual.js @@ -0,0 +1 @@ +3e+ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json new file mode 100644 index 0000000000..cf3086295c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0005/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/actual.js new file mode 100644 index 0000000000..d5b347678a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/actual.js @@ -0,0 +1 @@ +3e- diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json new file mode 100644 index 0000000000..cf3086295c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0006/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/actual.js new file mode 100644 index 0000000000..c5606e347b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/actual.js @@ -0,0 +1 @@ +3x diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json new file mode 100644 index 0000000000..b239abb159 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0007/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/actual.js new file mode 100644 index 0000000000..819eb6fa76 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/actual.js @@ -0,0 +1 @@ +3x0 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json new file mode 100644 index 0000000000..b239abb159 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0008/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/actual.js new file mode 100644 index 0000000000..ec687260b8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/actual.js @@ -0,0 +1 @@ +0x diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json new file mode 100644 index 0000000000..b4716df8c6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0009/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 16 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/actual.js new file mode 100644 index 0000000000..f21bf23578 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/actual.js @@ -0,0 +1 @@ +01a diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json new file mode 100644 index 0000000000..aa61ff56c2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0010/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/actual.js new file mode 100644 index 0000000000..636d63d27a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/actual.js @@ -0,0 +1 @@ +0o1a diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json new file mode 100644 index 0000000000..f42de64632 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0011/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/actual.js new file mode 100644 index 0000000000..c1b0a14e8e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/actual.js @@ -0,0 +1 @@ +0o diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json new file mode 100644 index 0000000000..5c0ca078e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0012/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 8 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/actual.js new file mode 100644 index 0000000000..75d282c01a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/actual.js @@ -0,0 +1 @@ +0O diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json new file mode 100644 index 0000000000..5c0ca078e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0013/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 8 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/actual.js new file mode 100644 index 0000000000..7a0afdef9e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/actual.js @@ -0,0 +1 @@ +0o9 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json new file mode 100644 index 0000000000..5c0ca078e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0014/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 8 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/actual.js new file mode 100644 index 0000000000..85651f72b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/actual.js @@ -0,0 +1 @@ +0o18 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0015/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/actual.js new file mode 100644 index 0000000000..5df2ec263c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/actual.js @@ -0,0 +1 @@ +0O1a diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json new file mode 100644 index 0000000000..f42de64632 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0016/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/actual.js new file mode 100644 index 0000000000..59db2fe288 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/actual.js @@ -0,0 +1 @@ +0b diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json new file mode 100644 index 0000000000..d00691a137 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0017/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 2 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/actual.js new file mode 100644 index 0000000000..3e0f73a9e3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/actual.js @@ -0,0 +1 @@ +0b1a diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json new file mode 100644 index 0000000000..f42de64632 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0018/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/actual.js new file mode 100644 index 0000000000..e62cb535f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/actual.js @@ -0,0 +1 @@ +0b9 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json new file mode 100644 index 0000000000..d00691a137 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0019/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 2 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/actual.js new file mode 100644 index 0000000000..b8ca7e8b07 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/actual.js @@ -0,0 +1 @@ +0b18 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0020/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/actual.js new file mode 100644 index 0000000000..6c1ef85b86 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/actual.js @@ -0,0 +1 @@ +0b12 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0021/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/actual.js new file mode 100644 index 0000000000..eb589e9da2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/actual.js @@ -0,0 +1 @@ +0B diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json new file mode 100644 index 0000000000..d00691a137 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0022/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 2 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/actual.js new file mode 100644 index 0000000000..7d2702a63f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/actual.js @@ -0,0 +1 @@ +0B1a diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json new file mode 100644 index 0000000000..f42de64632 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0023/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/actual.js new file mode 100644 index 0000000000..6e4d94bc50 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/actual.js @@ -0,0 +1 @@ +0B9 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json new file mode 100644 index 0000000000..d00691a137 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0024/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 2 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/actual.js new file mode 100644 index 0000000000..4b6bfcaa09 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/actual.js @@ -0,0 +1 @@ +0B18 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0025/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/actual.js new file mode 100644 index 0000000000..3b15e039cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/actual.js @@ -0,0 +1 @@ +0B12 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0026/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/actual.js new file mode 100644 index 0000000000..bc1a867d69 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/actual.js @@ -0,0 +1 @@ +0O9 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json new file mode 100644 index 0000000000..5c0ca078e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0027/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected number in radix 8 (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/actual.js new file mode 100644 index 0000000000..bb5c956fcb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/actual.js @@ -0,0 +1 @@ +0O18 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0028/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/actual.js new file mode 100644 index 0000000000..e030754528 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/actual.js @@ -0,0 +1 @@ +3in[] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json new file mode 100644 index 0000000000..b239abb159 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0029/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/actual.js new file mode 100644 index 0000000000..ae39b1a8aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/actual.js @@ -0,0 +1 @@ +0x3in[] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json new file mode 100644 index 0000000000..f42de64632 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0030/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Identifier directly after number (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/actual.js new file mode 100644 index 0000000000..81a3004b84 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/actual.js @@ -0,0 +1,2 @@ +"Hello +World" diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json new file mode 100644 index 0000000000..a760565b1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0031/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated string constant (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/actual.js new file mode 100644 index 0000000000..442979963f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/actual.js @@ -0,0 +1 @@ +x\ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json new file mode 100644 index 0000000000..d08f66903c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0032/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expecting Unicode escape sequence \\uXXXX (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/actual.js new file mode 100644 index 0000000000..0faf8dc92a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/actual.js @@ -0,0 +1 @@ +var source = 'x\\u005c'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/expected.json new file mode 100644 index 0000000000..f4fe7d7ce4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "x\\u005c", + "rawValue": "x\\u005c", + "raw": "'x\\\\u005c'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/options.json new file mode 100644 index 0000000000..65ef4a184a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/actual.js new file mode 100644 index 0000000000..ac96b78354 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/actual.js @@ -0,0 +1 @@ +var source = 'x\\u002a'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/expected.json new file mode 100644 index 0000000000..bc71c475ce --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "x\\u002a", + "rawValue": "x\\u002a", + "raw": "'x\\\\u002a'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/options.json new file mode 100644 index 0000000000..65ef4a184a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/actual.js new file mode 100644 index 0000000000..75d51a0f40 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/actual.js @@ -0,0 +1 @@ +var x = /(s/g diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/options.json new file mode 100644 index 0000000000..f8ff26aba2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Error parsing regular expression: Invalid regular expression: /(s/: Unterminated group (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/actual.js new file mode 100644 index 0000000000..e7f145a8d0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/actual.js @@ -0,0 +1 @@ +var source = 'a\\u'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/expected.json new file mode 100644 index 0000000000..ee388c0ff8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": "a\\u", + "rawValue": "a\\u", + "raw": "'a\\\\u'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/actual.js new file mode 100644 index 0000000000..5ced27a43a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/actual.js @@ -0,0 +1 @@ +var source = '\\ua'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/expected.json new file mode 100644 index 0000000000..1e4947ba6c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": "\\ua", + "rawValue": "\\ua", + "raw": "'\\\\ua'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/actual.js new file mode 100644 index 0000000000..b498fd495d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/actual.js @@ -0,0 +1 @@ +/ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json new file mode 100644 index 0000000000..e07b72599f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0038/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated regular expression (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/actual.js new file mode 100644 index 0000000000..ee4c926823 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/actual.js @@ -0,0 +1 @@ +/test diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json new file mode 100644 index 0000000000..e07b72599f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0039/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated regular expression (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/actual.js new file mode 100644 index 0000000000..d878a41870 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/actual.js @@ -0,0 +1,2 @@ +/test +/ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json new file mode 100644 index 0000000000..e07b72599f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0040/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated regular expression (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/actual.js new file mode 100644 index 0000000000..21543eba12 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/actual.js @@ -0,0 +1 @@ +var source = 'var x = /[a-z]/\\ux'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/expected.json new file mode 100644 index 0000000000..432370bc2e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "var x = /[a-z]/\\ux", + "rawValue": "var x = /[a-z]/\\ux", + "raw": "'var x = /[a-z]/\\\\ux'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/actual.js new file mode 100644 index 0000000000..a7b0d9a465 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/actual.js @@ -0,0 +1 @@ +var source = 'var x = /[a-z\n]/\\ux'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/expected.json new file mode 100644 index 0000000000..88d96a096a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "value": "var x = /[a-z\n]/\\ux", + "rawValue": "var x = /[a-z\n]/\\ux", + "raw": "'var x = /[a-z\\n]/\\\\ux'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/actual.js new file mode 100644 index 0000000000..42552d4807 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/actual.js @@ -0,0 +1 @@ +var source = 'var x = /[a-z]/\\\\ux'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/expected.json new file mode 100644 index 0000000000..5dccf2df66 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "value": "var x = /[a-z]/\\\\ux", + "rawValue": "var x = /[a-z]/\\\\ux", + "raw": "'var x = /[a-z]/\\\\\\\\ux'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/actual.js new file mode 100644 index 0000000000..eabe2cb40a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/actual.js @@ -0,0 +1 @@ +var source = 'var x = /[P QR]/\\\\u0067'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/expected.json new file mode 100644 index 0000000000..7b451084c4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "value": "var x = /[P QR]/\\\\u0067", + "rawValue": "var x = /[P QR]/\\\\u0067", + "raw": "'var x = /[P QR]/\\\\\\\\u0067'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/actual.js new file mode 100644 index 0000000000..616fd0585b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/actual.js @@ -0,0 +1 @@ +3 = 4 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json new file mode 100644 index 0000000000..de19a8ed39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0045/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/actual.js new file mode 100644 index 0000000000..f77f75b0d7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/actual.js @@ -0,0 +1 @@ +func() = 4 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json new file mode 100644 index 0000000000..de19a8ed39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0046/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/actual.js new file mode 100644 index 0000000000..963c543b5c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/actual.js @@ -0,0 +1 @@ +(1 + 1) = 10 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json new file mode 100644 index 0000000000..4d699b8b0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0047/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/actual.js new file mode 100644 index 0000000000..3271450755 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/actual.js @@ -0,0 +1 @@ +var source = '"\\u{110000}"'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/expected.json new file mode 100644 index 0000000000..c74b8f4b9d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "\"\\u{110000}\"", + "rawValue": "\"\\u{110000}\"", + "raw": "'\"\\\\u{110000}\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/actual.js new file mode 100644 index 0000000000..1a2de200fe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/actual.js @@ -0,0 +1 @@ +var source = '"\\u{}"'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/expected.json new file mode 100644 index 0000000000..0d8aed2410 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "\"\\u{}\"", + "rawValue": "\"\\u{}\"", + "raw": "'\"\\\\u{}\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/actual.js new file mode 100644 index 0000000000..eac5bf2ce6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/actual.js @@ -0,0 +1 @@ +var source = '"\\u{FFFF"'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/expected.json new file mode 100644 index 0000000000..fc597b32c5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": "\"\\u{FFFF\"", + "rawValue": "\"\\u{FFFF\"", + "raw": "'\"\\\\u{FFFF\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/actual.js new file mode 100644 index 0000000000..b190f73e12 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/actual.js @@ -0,0 +1 @@ +var source = '"\\u{FFZ}"'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/expected.json new file mode 100644 index 0000000000..e22bc63888 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": "\"\\u{FFZ}\"", + "rawValue": "\"\\u{FFZ}\"", + "raw": "'\"\\\\u{FFZ}\"'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/options.json new file mode 100644 index 0000000000..65ef4a184a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/actual.js new file mode 100644 index 0000000000..8bf3f078ea --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/actual.js @@ -0,0 +1 @@ +1++ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json new file mode 100644 index 0000000000..de19a8ed39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0052/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/actual.js new file mode 100644 index 0000000000..a6f48225e0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/actual.js @@ -0,0 +1 @@ +1-- diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json new file mode 100644 index 0000000000..de19a8ed39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0053/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/actual.js new file mode 100644 index 0000000000..cae2d8c862 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/actual.js @@ -0,0 +1 @@ +++1 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json new file mode 100644 index 0000000000..0b53e4963e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0054/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/actual.js new file mode 100644 index 0000000000..6d785b0042 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/actual.js @@ -0,0 +1 @@ +--1 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json new file mode 100644 index 0000000000..0b53e4963e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0055/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/actual.js new file mode 100644 index 0000000000..18b35ff5a7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/actual.js @@ -0,0 +1 @@ +for((1 + 1) in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json new file mode 100644 index 0000000000..85f6f01102 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0056/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/actual.js new file mode 100644 index 0000000000..558ed37d93 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/actual.js @@ -0,0 +1 @@ +[ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0057/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/actual.js new file mode 100644 index 0000000000..5b911f11dc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/actual.js @@ -0,0 +1 @@ +[, diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0058/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/actual.js new file mode 100644 index 0000000000..b2b02c9336 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/actual.js @@ -0,0 +1 @@ +1 + { diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0059/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/actual.js new file mode 100644 index 0000000000..5518c1faaf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/actual.js @@ -0,0 +1 @@ +1 + { t:t diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0060/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/actual.js new file mode 100644 index 0000000000..21306bd0bd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/actual.js @@ -0,0 +1 @@ +1 + { t:t, diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0061/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/actual.js new file mode 100644 index 0000000000..90e4e14a24 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/actual.js @@ -0,0 +1,2 @@ +var x = / +/ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json new file mode 100644 index 0000000000..d5e4b52d5c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0062/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated regular expression (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/actual.js new file mode 100644 index 0000000000..66386204a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/actual.js @@ -0,0 +1 @@ +var x = " diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json new file mode 100644 index 0000000000..78a668d16d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0063/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated string constant (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/actual.js new file mode 100644 index 0000000000..9c2ca5814d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/actual.js @@ -0,0 +1 @@ +var if = 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0064/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/actual.js new file mode 100644 index 0000000000..04b9f4b9e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/actual.js @@ -0,0 +1 @@ +i #= 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json new file mode 100644 index 0000000000..852d412611 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0065/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected character '#' (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/actual.js new file mode 100644 index 0000000000..6474a49009 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/actual.js @@ -0,0 +1 @@ +i + 2 = 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json new file mode 100644 index 0000000000..de19a8ed39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0066/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/actual.js new file mode 100644 index 0000000000..f9eaf60b60 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/actual.js @@ -0,0 +1 @@ ++i = 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json new file mode 100644 index 0000000000..de19a8ed39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0067/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/actual.js new file mode 100644 index 0000000000..49be204801 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/actual.js @@ -0,0 +1 @@ +1 + ( diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0068/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/actual.js new file mode 100644 index 0000000000..98232c64fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/actual.js @@ -0,0 +1 @@ +{ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0069/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/actual.js new file mode 100644 index 0000000000..e0b089091d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/actual.js @@ -0,0 +1,3 @@ +/* Some multiline +comment */ +) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json new file mode 100644 index 0000000000..aa8239233c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0070/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (3:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/actual.js new file mode 100644 index 0000000000..6f0c9a74a2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/actual.js @@ -0,0 +1 @@ +{ set 1 } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json new file mode 100644 index 0000000000..515b971673 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0071/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/actual.js new file mode 100644 index 0000000000..0718d8d1a0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/actual.js @@ -0,0 +1 @@ +{ get 2 } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json new file mode 100644 index 0000000000..515b971673 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0072/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/actual.js new file mode 100644 index 0000000000..0bfede151f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/actual.js @@ -0,0 +1 @@ +({ set: s(if) { } }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0073/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/actual.js new file mode 100644 index 0000000000..74ef97f8fc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/actual.js @@ -0,0 +1 @@ +({ set s(.) { } }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0074/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/actual.js new file mode 100644 index 0000000000..d511811854 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/actual.js @@ -0,0 +1 @@ +({ set s() { } }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/options.json new file mode 100644 index 0000000000..0341c5637c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/options.json @@ -0,0 +1,3 @@ +{ + "throws": "setter should have exactly one param (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/actual.js new file mode 100644 index 0000000000..d016bfac86 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/actual.js @@ -0,0 +1 @@ +({ set: s() { } }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0076/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/actual.js new file mode 100644 index 0000000000..3565cf9420 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/actual.js @@ -0,0 +1 @@ +({ set: s(a, b) { } }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/options.json new file mode 100644 index 0000000000..89e36d9013 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0077/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/actual.js new file mode 100644 index 0000000000..0c8721bff2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/actual.js @@ -0,0 +1 @@ +({ get: g(d) { } }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/options.json new file mode 100644 index 0000000000..27f6e27de8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0078/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/actual.js new file mode 100644 index 0000000000..1de1532eef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/actual.js @@ -0,0 +1 @@ +({[a,b]:0}) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0080/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/actual.js new file mode 100644 index 0000000000..be1b0c7ed0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/actual.js @@ -0,0 +1 @@ +({get[a,b]:0}) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0081/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/actual.js new file mode 100644 index 0000000000..90278627e4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/actual.js @@ -0,0 +1 @@ +({(a):0}) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0082/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/actual.js new file mode 100644 index 0000000000..31d05430f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/actual.js @@ -0,0 +1 @@ +({get{a}:0}) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0083/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/actual.js new file mode 100644 index 0000000000..f505a44ce5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/actual.js @@ -0,0 +1 @@ +({get diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0084/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/actual.js new file mode 100644 index 0000000000..375e21014c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/actual.js @@ -0,0 +1 @@ +((a)) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0085/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/actual.js new file mode 100644 index 0000000000..89739afb96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/actual.js @@ -0,0 +1 @@ +(a, (b)) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0086/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/actual.js new file mode 100644 index 0000000000..04e1f360a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/actual.js @@ -0,0 +1 @@ +"use strict"; (eval = 10) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/options.json new file mode 100644 index 0000000000..7ba6713b58 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to eval in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/actual.js new file mode 100644 index 0000000000..a2477b1895 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/actual.js @@ -0,0 +1 @@ +"use strict"; eval => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/options.json new file mode 100644 index 0000000000..734b22815e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/actual.js new file mode 100644 index 0000000000..6c508673a1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/actual.js @@ -0,0 +1 @@ +"use strict"; arguments => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/options.json new file mode 100644 index 0000000000..a3af8401ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/actual.js new file mode 100644 index 0000000000..520fa01c1f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/actual.js @@ -0,0 +1 @@ +"use strict"; (eval, a) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/options.json new file mode 100644 index 0000000000..8de33328ad --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/actual.js new file mode 100644 index 0000000000..7fd870b9dd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/actual.js @@ -0,0 +1 @@ +"use strict"; (arguments, a) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/options.json new file mode 100644 index 0000000000..e2b36a2437 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/actual.js new file mode 100644 index 0000000000..4c4b266635 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/actual.js @@ -0,0 +1 @@ +(a, a) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/expected.json new file mode 100644 index 0000000000..89326051bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "a" + } + ], + "body": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/actual.js new file mode 100644 index 0000000000..c6a78ee8e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/actual.js @@ -0,0 +1 @@ +"use strict"; (a, a) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json new file mode 100644 index 0000000000..8d80c05650 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0093/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/actual.js new file mode 100644 index 0000000000..93bfca5079 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/actual.js @@ -0,0 +1 @@ +"use strict"; (a) => 00 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json new file mode 100644 index 0000000000..2fdbbb1bc8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:21)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/actual.js new file mode 100644 index 0000000000..150c7e8b14 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/actual.js @@ -0,0 +1 @@ +() <= 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0095/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/actual.js new file mode 100644 index 0000000000..d0b3ff9746 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/actual.js @@ -0,0 +1 @@ +() ? 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0096/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/actual.js new file mode 100644 index 0000000000..f70424ee94 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/actual.js @@ -0,0 +1 @@ +() + 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0097/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/actual.js new file mode 100644 index 0000000000..c8c983560f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/actual.js @@ -0,0 +1 @@ +(10) => 00 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json new file mode 100644 index 0000000000..4d699b8b0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0098/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/actual.js new file mode 100644 index 0000000000..147de1b125 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/actual.js @@ -0,0 +1 @@ +(10, 20) => 00 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json new file mode 100644 index 0000000000..4d699b8b0c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0099/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/actual.js new file mode 100644 index 0000000000..352636041d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/actual.js @@ -0,0 +1 @@ +"use strict"; (eval) => 42 diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/options.json new file mode 100644 index 0000000000..8de33328ad --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/actual.js new file mode 100644 index 0000000000..a27d9ae050 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/actual.js @@ -0,0 +1 @@ +(eval) => { "use strict"; 42 } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/expected.json new file mode 100644 index 0000000000..338190dde1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "expression": { + "type": "Literal", + "start": 12, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + }, + { + "type": "ExpressionStatement", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "Literal", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/options.json new file mode 100644 index 0000000000..4bd43226c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0101/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/actual.js new file mode 100644 index 0000000000..ccaeb93a8c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/actual.js @@ -0,0 +1 @@ +p = { q/ } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0102/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/actual.js new file mode 100644 index 0000000000..82bba3473a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/actual.js @@ -0,0 +1 @@ +p = { "q"/ } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0103/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/actual.js new file mode 100644 index 0000000000..9d44939080 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/actual.js @@ -0,0 +1 @@ +function t(if) { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0104/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/actual.js new file mode 100644 index 0000000000..d7516ce611 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/actual.js @@ -0,0 +1 @@ +function t(true) { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0105/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/actual.js new file mode 100644 index 0000000000..e8edce8239 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/actual.js @@ -0,0 +1 @@ +function t(false) { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0106/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/actual.js new file mode 100644 index 0000000000..86c3d224d0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/actual.js @@ -0,0 +1 @@ +function t(null) { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0107/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/actual.js new file mode 100644 index 0000000000..6cafc79275 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/actual.js @@ -0,0 +1 @@ +function null() { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0108/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/actual.js new file mode 100644 index 0000000000..bc1d04c212 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/actual.js @@ -0,0 +1 @@ +function true() { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0109/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/actual.js new file mode 100644 index 0000000000..4480e07b7d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/actual.js @@ -0,0 +1 @@ +function false() { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0110/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/actual.js new file mode 100644 index 0000000000..df1aa5f561 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/actual.js @@ -0,0 +1 @@ +function if() { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0111/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/actual.js new file mode 100644 index 0000000000..067469daeb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/actual.js @@ -0,0 +1 @@ +a b; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0112/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/actual.js new file mode 100644 index 0000000000..4656d46fe7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/actual.js @@ -0,0 +1 @@ +if.a; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0113/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/actual.js new file mode 100644 index 0000000000..50a58c6f8e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/actual.js @@ -0,0 +1 @@ +a if; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0114/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/actual.js new file mode 100644 index 0000000000..f27f0312fd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/actual.js @@ -0,0 +1 @@ +a enum; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0115/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/actual.js new file mode 100644 index 0000000000..bf3fdcd662 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/actual.js @@ -0,0 +1 @@ +break diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json new file mode 100644 index 0000000000..6ccbfe923d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0116/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic break (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/actual.js new file mode 100644 index 0000000000..b15d781d74 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/actual.js @@ -0,0 +1 @@ +break 1; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json new file mode 100644 index 0000000000..515b971673 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0117/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/actual.js new file mode 100644 index 0000000000..44c5d7d65e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/actual.js @@ -0,0 +1 @@ +continue diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json new file mode 100644 index 0000000000..14a50290d0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0118/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic continue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/actual.js new file mode 100644 index 0000000000..d3ea6dec54 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/actual.js @@ -0,0 +1 @@ +continue 2; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0119/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/actual.js new file mode 100644 index 0000000000..18db166649 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/actual.js @@ -0,0 +1 @@ +throw diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0120/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/actual.js new file mode 100644 index 0000000000..647703f8c2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/actual.js @@ -0,0 +1 @@ +throw; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0121/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/actual.js new file mode 100644 index 0000000000..18db166649 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/actual.js @@ -0,0 +1 @@ +throw diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0122/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/actual.js new file mode 100644 index 0000000000..93db8e824f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/actual.js @@ -0,0 +1 @@ +for (var i, i2 in {}); diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0123/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/actual.js new file mode 100644 index 0000000000..8a28bcd011 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/actual.js @@ -0,0 +1 @@ +for ((i in {})); diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0124/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/actual.js new file mode 100644 index 0000000000..726bd139c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/actual.js @@ -0,0 +1 @@ +for (i + 1 in {}); diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json new file mode 100644 index 0000000000..85f6f01102 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0125/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/actual.js new file mode 100644 index 0000000000..5f2c966c28 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/actual.js @@ -0,0 +1 @@ +for (+i in {}); diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json new file mode 100644 index 0000000000..85f6f01102 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0126/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to rvalue (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/actual.js new file mode 100644 index 0000000000..cec627f0c4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/actual.js @@ -0,0 +1 @@ +if(false) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0127/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/actual.js new file mode 100644 index 0000000000..e75fa10598 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/actual.js @@ -0,0 +1 @@ +if(false) doThis(); else diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json new file mode 100644 index 0000000000..0c5f4deed6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0128/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:24)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/actual.js new file mode 100644 index 0000000000..91ebb18bbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/actual.js @@ -0,0 +1 @@ +do diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0129/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/actual.js new file mode 100644 index 0000000000..98dcc6eb86 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/actual.js @@ -0,0 +1 @@ +while(false) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0130/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/actual.js new file mode 100644 index 0000000000..c046779af2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/actual.js @@ -0,0 +1 @@ +for(;;) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0131/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/actual.js new file mode 100644 index 0000000000..293dcc9270 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/actual.js @@ -0,0 +1 @@ +with(x) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0132/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/actual.js new file mode 100644 index 0000000000..7340c58dc3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/actual.js @@ -0,0 +1 @@ +try { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json new file mode 100644 index 0000000000..9b3d4185f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0133/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Missing catch or finally clause (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/actual.js new file mode 100644 index 0000000000..5b0413681b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/actual.js @@ -0,0 +1 @@ +try {} catch (42) {} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0134/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/actual.js new file mode 100644 index 0000000000..4667a13b69 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/actual.js @@ -0,0 +1 @@ +try {} catch (answer()) {} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0135/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/actual.js new file mode 100644 index 0000000000..7b5aa84de3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/actual.js @@ -0,0 +1 @@ +try {} catch (-x) {} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0136/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/actual.js new file mode 100644 index 0000000000..93e2a300f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/actual.js @@ -0,0 +1 @@ +var source = '\u203F = 10'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/expected.json new file mode 100644 index 0000000000..c910512d1a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": "‿ = 10", + "rawValue": "‿ = 10", + "raw": "'\\u203F = 10'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/actual.js new file mode 100644 index 0000000000..fcefec567e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/actual.js @@ -0,0 +1 @@ +const x = 12, y; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/expected.json new file mode 100644 index 0000000000..b5b53bc87a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 10, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": 12, + "rawValue": 12, + "raw": "12" + } + }, + { + "type": "VariableDeclarator", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "y" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json new file mode 100644 index 0000000000..7ca1e1ffbb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0138/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/actual.js new file mode 100644 index 0000000000..147d061751 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/actual.js @@ -0,0 +1 @@ +const x, y = 12; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/expected.json new file mode 100644 index 0000000000..0d296d31a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "y" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 12, + "rawValue": 12, + "raw": "12" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0139/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/actual.js new file mode 100644 index 0000000000..59607d92f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/actual.js @@ -0,0 +1 @@ +const x; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/expected.json new file mode 100644 index 0000000000..cc88fe2b7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0140/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/actual.js new file mode 100644 index 0000000000..4e5970dfdc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/actual.js @@ -0,0 +1 @@ +if(true) let a = 1; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0141/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/actual.js new file mode 100644 index 0000000000..6f01bff4f3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/actual.js @@ -0,0 +1 @@ +if(true) const a = 1; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0142/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/actual.js new file mode 100644 index 0000000000..93f1fa378c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/actual.js @@ -0,0 +1 @@ +switch (c) { default: default: } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json new file mode 100644 index 0000000000..8ded4af443 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0143/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Multiple default clauses (1:22)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/actual.js new file mode 100644 index 0000000000..597bda3644 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/actual.js @@ -0,0 +1 @@ +new X()."s" diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json new file mode 100644 index 0000000000..65ef4a184a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0144/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:8)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/actual.js new file mode 100644 index 0000000000..33662f5545 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/actual.js @@ -0,0 +1 @@ +/* diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json new file mode 100644 index 0000000000..228eff80e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0145/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated comment (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/actual.js new file mode 100644 index 0000000000..33662f5545 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/actual.js @@ -0,0 +1 @@ +/* diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json new file mode 100644 index 0000000000..228eff80e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0146/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated comment (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/actual.js new file mode 100644 index 0000000000..ad79f5619a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/actual.js @@ -0,0 +1 @@ +/** diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json new file mode 100644 index 0000000000..228eff80e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0147/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated comment (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/actual.js new file mode 100644 index 0000000000..ffbafd018e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/actual.js @@ -0,0 +1,3 @@ +/* + +* diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json new file mode 100644 index 0000000000..228eff80e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0148/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated comment (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/actual.js new file mode 100644 index 0000000000..dae851dfe1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/actual.js @@ -0,0 +1 @@ +/*hello diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json new file mode 100644 index 0000000000..228eff80e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0149/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated comment (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/actual.js new file mode 100644 index 0000000000..e63adfb071 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/actual.js @@ -0,0 +1 @@ +/*hello * diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json new file mode 100644 index 0000000000..228eff80e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0150/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated comment (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/actual.js new file mode 100644 index 0000000000..079b5796ef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/actual.js @@ -0,0 +1 @@ +] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json new file mode 100644 index 0000000000..919c05ec87 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0151/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/actual.js new file mode 100644 index 0000000000..079b5796ef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/actual.js @@ -0,0 +1 @@ +] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json new file mode 100644 index 0000000000..919c05ec87 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0152/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/actual.js new file mode 100644 index 0000000000..079b5796ef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/actual.js @@ -0,0 +1 @@ +] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json new file mode 100644 index 0000000000..919c05ec87 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0153/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/actual.js new file mode 100644 index 0000000000..079b5796ef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/actual.js @@ -0,0 +1 @@ +] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json new file mode 100644 index 0000000000..919c05ec87 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0154/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/actual.js new file mode 100644 index 0000000000..dd8e38b429 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/actual.js @@ -0,0 +1,2 @@ +// +] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json new file mode 100644 index 0000000000..0361d7c7d2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0155/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/actual.js new file mode 100644 index 0000000000..b31647414c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/actual.js @@ -0,0 +1,2 @@ +// + ] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json new file mode 100644 index 0000000000..aa8239233c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0156/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (3:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/actual.js new file mode 100644 index 0000000000..bdad89d19c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/actual.js @@ -0,0 +1,2 @@ +/a\ +/ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json new file mode 100644 index 0000000000..e07b72599f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0157/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated regular expression (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/actual.js new file mode 100644 index 0000000000..6e011fcd2d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/actual.js @@ -0,0 +1,2 @@ +// +] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json new file mode 100644 index 0000000000..aa8239233c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0158/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (3:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/actual.js new file mode 100644 index 0000000000..583aa13ef8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/actual.js @@ -0,0 +1,2 @@ +/* +*/] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json new file mode 100644 index 0000000000..0b22a698d6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0159/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/actual.js new file mode 100644 index 0000000000..038a61d463 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/actual.js @@ -0,0 +1,2 @@ +/* + */] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json new file mode 100644 index 0000000000..02c5500083 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0160/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (3:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/actual.js new file mode 100644 index 0000000000..1a12d8e361 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/actual.js @@ -0,0 +1,2 @@ +/* +*/] diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json new file mode 100644 index 0000000000..02c5500083 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0161/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (3:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/actual.js new file mode 100644 index 0000000000..adcf3cef43 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/actual.js @@ -0,0 +1 @@ +\\ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json new file mode 100644 index 0000000000..c5a8baf2b8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0162/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expecting Unicode escape sequence \\uXXXX (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/actual.js new file mode 100644 index 0000000000..cd1103629d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/actual.js @@ -0,0 +1 @@ +var source = '\\u005c'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/expected.json new file mode 100644 index 0000000000..e3f4ea1270 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "\\u005c", + "rawValue": "\\u005c", + "raw": "'\\\\u005c'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/actual.js new file mode 100644 index 0000000000..2c955a68ab --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/actual.js @@ -0,0 +1 @@ +\x diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json new file mode 100644 index 0000000000..c5a8baf2b8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0164/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expecting Unicode escape sequence \\uXXXX (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/actual.js new file mode 100644 index 0000000000..aa31feb7ec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/actual.js @@ -0,0 +1 @@ +var source = '\\u0000'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/expected.json new file mode 100644 index 0000000000..968d4f6a66 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "\\u0000", + "rawValue": "\\u0000", + "raw": "'\\\\u0000'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/actual.js new file mode 100644 index 0000000000..29a288bee4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/actual.js @@ -0,0 +1 @@ +var source = '\u200C = []'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/expected.json new file mode 100644 index 0000000000..f9b68dd718 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": "‌ = []", + "rawValue": "‌ = []", + "raw": "'\\u200C = []'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/actual.js new file mode 100644 index 0000000000..ec9a56e78c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/actual.js @@ -0,0 +1 @@ +var source = '\u200D = []'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/expected.json new file mode 100644 index 0000000000..238759889e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": "‍ = []", + "rawValue": "‍ = []", + "raw": "'\\u200D = []'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/options.json new file mode 100644 index 0000000000..04b967a2ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:1)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/actual.js new file mode 100644 index 0000000000..032d059cb6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/actual.js @@ -0,0 +1 @@ +"\ diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json new file mode 100644 index 0000000000..a760565b1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0168/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unterminated string constant (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/actual.js new file mode 100644 index 0000000000..481ef9c808 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/actual.js @@ -0,0 +1 @@ +var source = '"\\u'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/expected.json new file mode 100644 index 0000000000..5dcccc5d34 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "value": "\"\\u", + "rawValue": "\"\\u", + "raw": "'\"\\\\u'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/actual.js new file mode 100644 index 0000000000..ecabda4f10 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/actual.js @@ -0,0 +1 @@ +try { } catch() {} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0170/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/actual.js new file mode 100644 index 0000000000..a09c86384f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/actual.js @@ -0,0 +1 @@ +return diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json new file mode 100644 index 0000000000..dececd0e83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0171/options.json @@ -0,0 +1,3 @@ +{ + "throws": "'return' outside of function (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/actual.js new file mode 100644 index 0000000000..bf3fdcd662 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/actual.js @@ -0,0 +1 @@ +break diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json new file mode 100644 index 0000000000..6ccbfe923d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0172/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic break (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/actual.js new file mode 100644 index 0000000000..44c5d7d65e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/actual.js @@ -0,0 +1 @@ +continue diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json new file mode 100644 index 0000000000..14a50290d0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0173/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic continue (1:0)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/actual.js new file mode 100644 index 0000000000..a586b85c82 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/actual.js @@ -0,0 +1 @@ +switch (x) { default: continue; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json new file mode 100644 index 0000000000..332366a21c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0174/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic continue (1:22)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/actual.js new file mode 100644 index 0000000000..6cffa7b720 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/actual.js @@ -0,0 +1 @@ +do { x } * diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0175/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/actual.js new file mode 100644 index 0000000000..8c1c0d5511 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/actual.js @@ -0,0 +1 @@ +while (true) { break x; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json new file mode 100644 index 0000000000..33bf5f84b8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0176/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic break (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/actual.js new file mode 100644 index 0000000000..0764ef527f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/actual.js @@ -0,0 +1 @@ +while (true) { continue x; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json new file mode 100644 index 0000000000..e75cfed858 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0177/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic continue (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/actual.js new file mode 100644 index 0000000000..b404785be3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/actual.js @@ -0,0 +1 @@ +x: while (true) { (function () { break x; }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json new file mode 100644 index 0000000000..8008848be3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0178/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic break (1:33)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/actual.js new file mode 100644 index 0000000000..c2f322687c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/actual.js @@ -0,0 +1 @@ +x: while (true) { (function () { continue x; }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json new file mode 100644 index 0000000000..f0faa7faaa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0179/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic continue (1:33)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/actual.js new file mode 100644 index 0000000000..af82a69c63 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/actual.js @@ -0,0 +1 @@ +x: while (true) { (function () { break; }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json new file mode 100644 index 0000000000..8008848be3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0180/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic break (1:33)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/actual.js new file mode 100644 index 0000000000..3e0d6d7a29 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/actual.js @@ -0,0 +1 @@ +x: while (true) { (function () { continue; }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json new file mode 100644 index 0000000000..f0faa7faaa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0181/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unsyntactic continue (1:33)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/actual.js new file mode 100644 index 0000000000..f7285406ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/actual.js @@ -0,0 +1 @@ +x: while (true) { x: while (true) { } } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json new file mode 100644 index 0000000000..a430baffb5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0182/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Label 'x' is already declared (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/actual.js new file mode 100644 index 0000000000..8da08f63cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/actual.js @@ -0,0 +1 @@ +(function () { 'use strict'; delete i; }()) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json new file mode 100644 index 0000000000..8112470453 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Deleting local variable in strict mode (1:29)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/actual.js new file mode 100644 index 0000000000..83f5153160 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/actual.js @@ -0,0 +1 @@ +(function () { 'use strict'; with (i); }()) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json new file mode 100644 index 0000000000..1b86ef2104 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/options.json @@ -0,0 +1,3 @@ +{ + "throws": "'with' in strict mode (1:29)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/actual.js new file mode 100644 index 0000000000..3da2a6ce2f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; var eval = 10; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/options.json new file mode 100644 index 0000000000..0e72c82fe8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:36)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/actual.js new file mode 100644 index 0000000000..317faa2c4b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; var arguments = 10; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/options.json new file mode 100644 index 0000000000..f171e1b2c8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:36)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/actual.js new file mode 100644 index 0000000000..414967c2aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; try { } catch (eval) { } } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/options.json new file mode 100644 index 0000000000..52cc5e0c10 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:47)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/actual.js new file mode 100644 index 0000000000..99e1121230 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; try { } catch (arguments) { } } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/options.json new file mode 100644 index 0000000000..1c09320e14 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:47)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/actual.js new file mode 100644 index 0000000000..473b0eb964 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; eval = 10; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/options.json new file mode 100644 index 0000000000..e606855bd2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to eval in strict mode (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/actual.js new file mode 100644 index 0000000000..4fca40040b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; arguments = 10; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/options.json new file mode 100644 index 0000000000..d66800268f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to arguments in strict mode (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/actual.js new file mode 100644 index 0000000000..9476f553f4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; ++eval; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/options.json new file mode 100644 index 0000000000..194b27c0a0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to eval in strict mode (1:34)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/actual.js new file mode 100644 index 0000000000..b19aafdefe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; --eval; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/options.json new file mode 100644 index 0000000000..194b27c0a0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to eval in strict mode (1:34)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/actual.js new file mode 100644 index 0000000000..e9604fa799 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; ++arguments; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/options.json new file mode 100644 index 0000000000..fa7fd234e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to arguments in strict mode (1:34)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/actual.js new file mode 100644 index 0000000000..d13dfec134 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; --arguments; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/options.json new file mode 100644 index 0000000000..fa7fd234e5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to arguments in strict mode (1:34)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/actual.js new file mode 100644 index 0000000000..13f1fda122 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; eval++; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/options.json new file mode 100644 index 0000000000..e606855bd2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to eval in strict mode (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/actual.js new file mode 100644 index 0000000000..3376981d90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; eval--; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/options.json new file mode 100644 index 0000000000..e606855bd2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to eval in strict mode (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/actual.js new file mode 100644 index 0000000000..a15d29e178 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; arguments++; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/options.json new file mode 100644 index 0000000000..d66800268f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to arguments in strict mode (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/actual.js new file mode 100644 index 0000000000..85bdb41f7f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; arguments--; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/options.json new file mode 100644 index 0000000000..d66800268f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Assigning to arguments in strict mode (1:32)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/actual.js new file mode 100644 index 0000000000..63383f2064 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; function eval() { } } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/options.json new file mode 100644 index 0000000000..74aee2c177 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:41)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/actual.js new file mode 100644 index 0000000000..9ded5a17a2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; function arguments() { } } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/options.json new file mode 100644 index 0000000000..cb4087319e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:41)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/actual.js new file mode 100644 index 0000000000..5fbe3c38ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/actual.js @@ -0,0 +1 @@ +function eval() {'use strict'; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/expected.json new file mode 100644 index 0000000000..c110e76a57 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "Literal", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/options.json new file mode 100644 index 0000000000..a49374fb46 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0201/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/actual.js new file mode 100644 index 0000000000..a849a16ce4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/actual.js @@ -0,0 +1 @@ +function arguments() {'use strict'; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/expected.json new file mode 100644 index 0000000000..817f907aee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 22, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/options.json new file mode 100644 index 0000000000..8a3871a0d1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0202/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/actual.js new file mode 100644 index 0000000000..1a911e9452 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; (function eval() { }()) } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/options.json new file mode 100644 index 0000000000..9c41225e97 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:42)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/actual.js new file mode 100644 index 0000000000..59c6ac030f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; (function arguments() { }()) } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/options.json new file mode 100644 index 0000000000..bc7c65ae7b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:42)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/actual.js new file mode 100644 index 0000000000..dcdb7294e1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/actual.js @@ -0,0 +1 @@ +(function eval() {'use strict'; })() diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/expected.json new file mode 100644 index 0000000000..1a995ca123 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "Literal", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + }, + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/options.json new file mode 100644 index 0000000000..0dcd2b3e58 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0205/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/actual.js new file mode 100644 index 0000000000..16037653d0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/actual.js @@ -0,0 +1 @@ +(function arguments() {'use strict'; })() diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/expected.json new file mode 100644 index 0000000000..34984de2e0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 23, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "Literal", + "start": 23, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + }, + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/options.json new file mode 100644 index 0000000000..57ba0014b4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0206/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/actual.js new file mode 100644 index 0000000000..022bc8130c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; ({ s: function eval() { } }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/options.json new file mode 100644 index 0000000000..52cc5e0c10 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:47)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/actual.js new file mode 100644 index 0000000000..6ff7af500d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/actual.js @@ -0,0 +1 @@ +(function package() {'use strict'; })() diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/expected.json new file mode 100644 index 0000000000..d0765fadb6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "CallExpression", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "package" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 21, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "Literal", + "start": 21, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + }, + "parenthesizedExpression": true + }, + "arguments": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/options.json new file mode 100644 index 0000000000..94e937fa7c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0208/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding package in strict mode (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/actual.js new file mode 100644 index 0000000000..9be1bda833 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; ({ i: 10, set s(eval) { } }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/options.json new file mode 100644 index 0000000000..d6f5d89ca6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:48)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/actual.js new file mode 100644 index 0000000000..a8c4c44203 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; ({ set s(eval) { } }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/options.json new file mode 100644 index 0000000000..74aee2c177 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:41)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/actual.js new file mode 100644 index 0000000000..f5aabcc792 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/actual.js @@ -0,0 +1 @@ +function hello() {'use strict'; ({ s: function s(eval) { } }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/options.json new file mode 100644 index 0000000000..c181de42a2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:49)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/actual.js new file mode 100644 index 0000000000..0cbf5e4f14 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/actual.js @@ -0,0 +1 @@ +function hello(eval) {'use strict';} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/expected.json new file mode 100644 index 0000000000..6aa54306ed --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 22, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/options.json new file mode 100644 index 0000000000..8de33328ad --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0212/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/actual.js new file mode 100644 index 0000000000..7d75fa5662 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/actual.js @@ -0,0 +1 @@ +function hello(arguments) {'use strict';} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/expected.json new file mode 100644 index 0000000000..5fbf9ec4b8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "BlockStatement", + "start": 26, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 27, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expression": { + "type": "Literal", + "start": 27, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/options.json new file mode 100644 index 0000000000..e2b36a2437 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0213/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/actual.js new file mode 100644 index 0000000000..25ed54273b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/actual.js @@ -0,0 +1 @@ +function hello() { 'use strict'; function inner(eval) {} } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/options.json new file mode 100644 index 0000000000..d6f5d89ca6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:48)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/actual.js new file mode 100644 index 0000000000..2862cd1587 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/actual.js @@ -0,0 +1 @@ +function hello() { 'use strict'; function inner(arguments) {} } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/options.json new file mode 100644 index 0000000000..8ee11e66ca --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:48)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/actual.js new file mode 100644 index 0000000000..23a8ca47f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/actual.js @@ -0,0 +1 @@ +"\1"; 'use strict'; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/expected.json new file mode 100644 index 0000000000..77fb11145f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "value": "\u0001", + "rawValue": "\u0001", + "raw": "\"\\1\"" + } + }, + { + "type": "ExpressionStatement", + "start": 6, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "expression": { + "type": "Literal", + "start": 6, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "'use strict'" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json new file mode 100644 index 0000000000..e68fbb6aec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:2)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/actual.js new file mode 100644 index 0000000000..1f718ed734 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/actual.js @@ -0,0 +1 @@ +function hello() { 'use strict'; "\1"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json new file mode 100644 index 0000000000..68bfd75832 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Octal literal in strict mode (1:34)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/actual.js new file mode 100644 index 0000000000..f18ece6395 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/actual.js @@ -0,0 +1 @@ +function hello() { 'use strict'; 021; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json new file mode 100644 index 0000000000..3711f38eef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:33)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/actual.js new file mode 100644 index 0000000000..24426d5e8d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/actual.js @@ -0,0 +1 @@ +function hello() { 'use strict'; ({ "\1": 42 }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json new file mode 100644 index 0000000000..fa3a33b55e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Octal literal in strict mode (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/actual.js new file mode 100644 index 0000000000..b6ab67b4f3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/actual.js @@ -0,0 +1 @@ +function hello() { 'use strict'; ({ 021: 42 }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json new file mode 100644 index 0000000000..a864ada0fe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Invalid number (1:36)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/actual.js new file mode 100644 index 0000000000..7f3ba60659 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/actual.js @@ -0,0 +1 @@ +function hello() { "octal directive\1"; "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/expected.json new file mode 100644 index 0000000000..b8a30a0e6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "Literal", + "start": 19, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "value": "octal directive\u0001", + "rawValue": "octal directive\u0001", + "raw": "\"octal directive\\1\"" + } + }, + { + "type": "ExpressionStatement", + "start": 40, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "expression": { + "type": "Literal", + "start": 40, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/actual.js new file mode 100644 index 0000000000..01cf42721c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/actual.js @@ -0,0 +1 @@ +function hello() { "octal directive\1"; "octal directive\2"; "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/expected.json new file mode 100644 index 0000000000..61e775efcf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/expected.json @@ -0,0 +1,183 @@ +{ + "type": "File", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "Literal", + "start": 19, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "value": "octal directive\u0001", + "rawValue": "octal directive\u0001", + "raw": "\"octal directive\\1\"" + } + }, + { + "type": "ExpressionStatement", + "start": 40, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "expression": { + "type": "Literal", + "start": 40, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "value": "octal directive\u0002", + "rawValue": "octal directive\u0002", + "raw": "\"octal directive\\2\"" + } + }, + { + "type": "ExpressionStatement", + "start": 61, + "end": 74, + "loc": { + "start": { + "line": 1, + "column": 61 + }, + "end": { + "line": 1, + "column": 74 + } + }, + "expression": { + "type": "Literal", + "start": 61, + "end": 73, + "loc": { + "start": { + "line": 1, + "column": 61 + }, + "end": { + "line": 1, + "column": 73 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json new file mode 100644 index 0000000000..aca079ee39 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:20)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/actual.js new file mode 100644 index 0000000000..106319650b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; function inner() { "octal directive\1"; } } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json new file mode 100644 index 0000000000..e689079a79 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Octal literal in strict mode (1:68)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/actual.js new file mode 100644 index 0000000000..a24a2f642e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var implements; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json new file mode 100644 index 0000000000..a130c92268 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'implements' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/actual.js new file mode 100644 index 0000000000..c8ac6e7c06 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var interface; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json new file mode 100644 index 0000000000..c70c06968d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'interface' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/actual.js new file mode 100644 index 0000000000..ed58aa94a7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var package; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json new file mode 100644 index 0000000000..ac7ab9bdb7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'package' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/actual.js new file mode 100644 index 0000000000..3c63082b72 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var private; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json new file mode 100644 index 0000000000..735d540526 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'private' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/actual.js new file mode 100644 index 0000000000..ffb8aa0cb9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var protected; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json new file mode 100644 index 0000000000..a8145dcb6a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'protected' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/actual.js new file mode 100644 index 0000000000..929f62327f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var public; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json new file mode 100644 index 0000000000..232b3cba94 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'public' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/actual.js new file mode 100644 index 0000000000..fcbef3215a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var static; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json new file mode 100644 index 0000000000..47fe5aafaf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'static' is reserved (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/actual.js new file mode 100644 index 0000000000..7f5d158aa2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var yield; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/options.json new file mode 100644 index 0000000000..22d103a833 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/actual.js new file mode 100644 index 0000000000..40e528cda3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/actual.js @@ -0,0 +1 @@ +function hello() { "use strict"; var let; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json new file mode 100644 index 0000000000..22d103a833 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0232/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:37)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/actual.js new file mode 100644 index 0000000000..9989eb6e06 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/actual.js @@ -0,0 +1 @@ +function hello(static) { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/expected.json new file mode 100644 index 0000000000..9454908513 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "static" + } + ], + "body": { + "type": "BlockStatement", + "start": 23, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 25, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "expression": { + "type": "Literal", + "start": 25, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/options.json new file mode 100644 index 0000000000..07a8c1c0f1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0233/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding static in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/actual.js new file mode 100644 index 0000000000..5a6fe505bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/actual.js @@ -0,0 +1 @@ +function static() { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/expected.json new file mode 100644 index 0000000000..42dbd8e915 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "static" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "Literal", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/options.json new file mode 100644 index 0000000000..f7524a3327 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0234/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding static in strict mode (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/actual.js new file mode 100644 index 0000000000..95b11685e4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/actual.js @@ -0,0 +1 @@ +function eval(a) { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/expected.json new file mode 100644 index 0000000000..ae4c951249 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "a" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "Literal", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/options.json new file mode 100644 index 0000000000..a49374fb46 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0235/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/actual.js new file mode 100644 index 0000000000..304c94536b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/actual.js @@ -0,0 +1 @@ +function arguments(a) { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/expected.json new file mode 100644 index 0000000000..4bd552372c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "a" + } + ], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 24, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expression": { + "type": "Literal", + "start": 24, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/options.json new file mode 100644 index 0000000000..8a3871a0d1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0236/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding arguments in strict mode (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/actual.js new file mode 100644 index 0000000000..c87b8eaaf4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/actual.js @@ -0,0 +1 @@ +var let diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/expected.json new file mode 100644 index 0000000000..f5cbcbeb1d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "let" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json new file mode 100644 index 0000000000..9f7910a413 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0238/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/actual.js new file mode 100644 index 0000000000..d38b6bace9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/actual.js @@ -0,0 +1 @@ +"use strict"; function static() { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json new file mode 100644 index 0000000000..07d74757d4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json @@ -0,0 +1,3 @@ +{ + "throws": "The keyword 'static' is reserved (1:23)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/actual.js new file mode 100644 index 0000000000..bd0106ab72 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/actual.js @@ -0,0 +1 @@ +function a(t, t) { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json new file mode 100644 index 0000000000..421c28bbd6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/actual.js new file mode 100644 index 0000000000..cb2f36487e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/actual.js @@ -0,0 +1 @@ +function a(eval) { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/expected.json new file mode 100644 index 0000000000..14824eac9f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "Literal", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/options.json new file mode 100644 index 0000000000..301643713f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0241/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/actual.js new file mode 100644 index 0000000000..4c24f21c91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/actual.js @@ -0,0 +1 @@ +function a(package) { "use strict"; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/expected.json new file mode 100644 index 0000000000..b18233c76a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "package" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 22, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "Literal", + "start": 22, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/options.json new file mode 100644 index 0000000000..31ebd9508d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0242/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding package in strict mode (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/actual.js new file mode 100644 index 0000000000..830cb897d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/actual.js @@ -0,0 +1 @@ +function a() { "use strict"; function b(t, t) { }; } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json new file mode 100644 index 0000000000..9db3dfc50c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:43)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/actual.js new file mode 100644 index 0000000000..9fa07b0a2a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/actual.js @@ -0,0 +1 @@ +(function a(t, t) { "use strict"; }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json new file mode 100644 index 0000000000..13e320a983 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:15)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/actual.js new file mode 100644 index 0000000000..424f432ff6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/actual.js @@ -0,0 +1 @@ +function a() { "use strict"; (function b(t, t) { }); } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json new file mode 100644 index 0000000000..0e4f27a823 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:44)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/actual.js new file mode 100644 index 0000000000..340ca59613 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/actual.js @@ -0,0 +1 @@ +(function a(eval) { "use strict"; }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/expected.json new file mode 100644 index 0000000000..a4e3e8cbd5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "Literal", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/options.json new file mode 100644 index 0000000000..c9df15d6ef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0246/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding eval in strict mode (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/actual.js new file mode 100644 index 0000000000..2d07eeebbf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/actual.js @@ -0,0 +1 @@ +(function a(package) { "use strict"; }) diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/expected.json new file mode 100644 index 0000000000..63264f0559 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "package" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 23, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "Literal", + "start": 23, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/options.json new file mode 100644 index 0000000000..87abf59529 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0247/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Binding package in strict mode (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/actual.js new file mode 100644 index 0000000000..3d2f790772 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/actual.js @@ -0,0 +1 @@ +__proto__: __proto__: 42; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json new file mode 100644 index 0000000000..bb0741872a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0248/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Label '__proto__' is already declared (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/actual.js new file mode 100644 index 0000000000..6d657e5531 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/actual.js @@ -0,0 +1 @@ +"use strict"; function t(__proto__, __proto__) { } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json new file mode 100644 index 0000000000..e887380a58 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:36)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/actual.js new file mode 100644 index 0000000000..b38460128f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/actual.js @@ -0,0 +1 @@ +x = { __proto__: 42, __proto__: 43 } diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json new file mode 100644 index 0000000000..ae09c6ae48 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:21)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/actual.js new file mode 100644 index 0000000000..186857b9e8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/actual.js @@ -0,0 +1 @@ +var diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0252/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/actual.js new file mode 100644 index 0000000000..564a1caa1c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/actual.js @@ -0,0 +1 @@ +let diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/expected.json new file mode 100644 index 0000000000..51d622d320 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/expected.json @@ -0,0 +1,64 @@ +{ + "type": "File", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "expression": { + "type": "Identifier", + "start": 0, + "end": 3, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 3 + } + }, + "name": "let" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json new file mode 100644 index 0000000000..3b5e811628 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0253/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:3)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/actual.js new file mode 100644 index 0000000000..aaae4e1105 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/actual.js @@ -0,0 +1 @@ +const diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0254/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/actual.js new file mode 100644 index 0000000000..1349ddc4b7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/actual.js @@ -0,0 +1 @@ +{ ; ; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json new file mode 100644 index 0000000000..515b971673 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0255/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/actual.js new file mode 100644 index 0000000000..7a651b7dab --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/actual.js @@ -0,0 +1 @@ +function t() { ; ; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json new file mode 100644 index 0000000000..1e730e1707 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0256/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:19)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/actual.js new file mode 100644 index 0000000000..d05111f2b1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/actual.js @@ -0,0 +1 @@ +'use strict'; a package diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json new file mode 100644 index 0000000000..89e36d9013 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0257/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/actual.js new file mode 100644 index 0000000000..efd31c6d91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/actual.js @@ -0,0 +1 @@ +function f(a, ...b, c){} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0258/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/actual.js new file mode 100644 index 0000000000..e632766388 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/actual.js @@ -0,0 +1 @@ +function x(...{ a }){} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0259/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/actual.js new file mode 100644 index 0000000000..ce8895825f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/actual.js @@ -0,0 +1 @@ +function x(...a = 1){} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/options.json new file mode 100644 index 0000000000..89e36d9013 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0260/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/actual.js new file mode 100644 index 0000000000..b544cd3a5a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/actual.js @@ -0,0 +1 @@ +class diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0261/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/actual.js new file mode 100644 index 0000000000..b544cd3a5a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/actual.js @@ -0,0 +1 @@ +class diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0262/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/actual.js new file mode 100644 index 0000000000..5514733de2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/actual.js @@ -0,0 +1 @@ +class; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/options.json new file mode 100644 index 0000000000..0ab445fe47 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0263/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:5)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/actual.js new file mode 100644 index 0000000000..377c52d036 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/actual.js @@ -0,0 +1 @@ +class A extends a + b {} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0264/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/actual.js new file mode 100644 index 0000000000..83d15dc739 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/actual.js @@ -0,0 +1 @@ +class A diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0265/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/actual.js new file mode 100644 index 0000000000..352b0f29c9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/actual.js @@ -0,0 +1 @@ +class A { diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json new file mode 100644 index 0000000000..93db7641c7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0266/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:9)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/actual.js new file mode 100644 index 0000000000..a8921ee1b1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/actual.js @@ -0,0 +1 @@ +class A; diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/options.json new file mode 100644 index 0000000000..167116741e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0267/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/actual.js new file mode 100644 index 0000000000..a90634119b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/actual.js @@ -0,0 +1 @@ +class A {a:0} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/options.json new file mode 100644 index 0000000000..328b1ddde8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0268/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:10)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/actual.js new file mode 100644 index 0000000000..5168697dfb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/actual.js @@ -0,0 +1 @@ +class A {a(){},b(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json new file mode 100644 index 0000000000..51c483f3d3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0269/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/actual.js new file mode 100644 index 0000000000..1dd45cdc92 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/actual.js @@ -0,0 +1 @@ +class A {static prototype(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json new file mode 100644 index 0000000000..5830cef10e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "prototype" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 25, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/actual.js new file mode 100644 index 0000000000..1eda932405 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/actual.js @@ -0,0 +1 @@ +class A {static "prototype"(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json new file mode 100644 index 0000000000..6cc3ea74c2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json @@ -0,0 +1,153 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "computed": false, + "key": { + "type": "Literal", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "value": "prototype", + "rawValue": "prototype", + "raw": "\"prototype\"" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json new file mode 100644 index 0000000000..8bb9a5f99b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/actual.js new file mode 100644 index 0000000000..819ff281ef --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/actual.js @@ -0,0 +1 @@ +class A {get constructor(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json new file mode 100644 index 0000000000..cbb8e10c8d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0272/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Constructor can't have get/set modifier (1:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/actual.js new file mode 100644 index 0000000000..b92c5fd75f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/actual.js @@ -0,0 +1 @@ +class A {set constructor(m){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json new file mode 100644 index 0000000000..cbb8e10c8d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0273/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Constructor can't have get/set modifier (1:13)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/actual.js new file mode 100644 index 0000000000..dd0fd8728d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/actual.js @@ -0,0 +1 @@ +class A {constructor(){} "constructor"(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json new file mode 100644 index 0000000000..cf2d761794 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0274/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Duplicate constructor in the same class (1:25)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/actual.js new file mode 100644 index 0000000000..9db4aa8388 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/actual.js @@ -0,0 +1 @@ +class A {a static(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/options.json new file mode 100644 index 0000000000..3e33f7730f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0275/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/actual.js new file mode 100644 index 0000000000..baca917bf1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/actual.js @@ -0,0 +1 @@ +class A {static static static(){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/options.json new file mode 100644 index 0000000000..2ddc9e708f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0276/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:23)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/actual.js new file mode 100644 index 0000000000..72959842be --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/actual.js @@ -0,0 +1 @@ +class A {a(enum){}} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json new file mode 100644 index 0000000000..0fa4cd9032 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "static": false, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 10, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "enum" + } + ], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/options.json new file mode 100644 index 0000000000..358068a16a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:12)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/actual.js new file mode 100644 index 0000000000..bdd71a4d67 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/actual.js @@ -0,0 +1 @@ +class A {static [static](){};} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json new file mode 100644 index 0000000000..966e05ade4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "A" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 8, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "MethodDefinition", + "start": 9, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "computed": true, + "key": { + "type": "Identifier", + "start": 17, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "static" + }, + "static": true, + "kind": "method", + "value": { + "type": "FunctionExpression", + "start": 24, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [] + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json new file mode 100644 index 0000000000..2a73699bc2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:18)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/actual.js new file mode 100644 index 0000000000..7a5352faf7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/actual.js @@ -0,0 +1 @@ +{ foo } diff --git a/packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/expected.json new file mode 100644 index 0000000000..5d5053da91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0000/expected.json @@ -0,0 +1,81 @@ +{ + "type": "File", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 2, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "expression": { + "type": "Identifier", + "start": 2, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "foo" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/actual.js new file mode 100644 index 0000000000..50a6ea322a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/actual.js @@ -0,0 +1 @@ +{ doThis(); doThat(); } diff --git a/packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/expected.json new file mode 100644 index 0000000000..eec6775871 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0001/expected.json @@ -0,0 +1,144 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 2, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "expression": { + "type": "CallExpression", + "start": 2, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "callee": { + "type": "Identifier", + "start": 2, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "doThis" + }, + "arguments": [] + } + }, + { + "type": "ExpressionStatement", + "start": 12, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "CallExpression", + "start": 12, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "callee": { + "type": "Identifier", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "doThat" + }, + "arguments": [] + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/actual.js new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/actual.js @@ -0,0 +1 @@ +{} diff --git a/packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/expected.json new file mode 100644 index 0000000000..5792211240 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-block/migrated_0002/expected.json @@ -0,0 +1,49 @@ +{ + "type": "File", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "body": [] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/actual.js new file mode 100644 index 0000000000..c566e0aa46 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/actual.js @@ -0,0 +1 @@ +while (true) { break } diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json new file mode 100644 index 0000000000..1d9fe4c071 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "label": null + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/actual.js new file mode 100644 index 0000000000..9758f464a9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/actual.js @@ -0,0 +1 @@ +done: while (true) { break done } diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json new file mode 100644 index 0000000000..de1ad554fa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json @@ -0,0 +1,145 @@ +{ + "type": "File", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": { + "type": "WhileStatement", + "start": 6, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "test": { + "type": "Literal", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 21, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "label": { + "type": "Identifier", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "done" + } + } + ] + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "done" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/actual.js new file mode 100644 index 0000000000..6e1ec8b25b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/actual.js @@ -0,0 +1 @@ +done: while (true) { break done; } diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json new file mode 100644 index 0000000000..62a3160e6e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json @@ -0,0 +1,145 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": { + "type": "WhileStatement", + "start": 6, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "test": { + "type": "Literal", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 21, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "label": { + "type": "Identifier", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "done" + } + } + ] + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "done" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/actual.js new file mode 100644 index 0000000000..baafda3b83 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/actual.js @@ -0,0 +1 @@ +__proto__: while (true) { break __proto__; } diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json new file mode 100644 index 0000000000..afc5d3b147 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json @@ -0,0 +1,145 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "body": { + "type": "WhileStatement", + "start": 11, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "test": { + "type": "Literal", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 24, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "body": [ + { + "type": "BreakStatement", + "start": 26, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "label": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "__proto__" + } + } + ] + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "__proto__" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/actual.js new file mode 100644 index 0000000000..f0c83b8f3d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/actual.js @@ -0,0 +1 @@ +while (true) { continue; } diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json new file mode 100644 index 0000000000..9ea0854331 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "label": null + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/actual.js new file mode 100644 index 0000000000..211bd08851 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/actual.js @@ -0,0 +1 @@ +while (true) { continue } diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json new file mode 100644 index 0000000000..3cadc13b16 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json @@ -0,0 +1,99 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 13, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 15, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "label": null + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/actual.js new file mode 100644 index 0000000000..aefcf0471a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/actual.js @@ -0,0 +1 @@ +done: while (true) { continue done } diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json new file mode 100644 index 0000000000..661b7b9d0a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json @@ -0,0 +1,145 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": { + "type": "WhileStatement", + "start": 6, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "test": { + "type": "Literal", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 21, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "label": { + "type": "Identifier", + "start": 30, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "done" + } + } + ] + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "done" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/actual.js new file mode 100644 index 0000000000..c2c6225464 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/actual.js @@ -0,0 +1 @@ +done: while (true) { continue done; } diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json new file mode 100644 index 0000000000..3c06ab2a96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json @@ -0,0 +1,145 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": { + "type": "WhileStatement", + "start": 6, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "test": { + "type": "Literal", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 21, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "label": { + "type": "Identifier", + "start": 30, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "done" + } + } + ] + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "done" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/actual.js new file mode 100644 index 0000000000..c431504a7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/actual.js @@ -0,0 +1 @@ +__proto__: while (true) { continue __proto__; } diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json new file mode 100644 index 0000000000..9df58ecc04 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json @@ -0,0 +1,145 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": { + "type": "WhileStatement", + "start": 11, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "test": { + "type": "Literal", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BlockStatement", + "start": 24, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": [ + { + "type": "ContinueStatement", + "start": 26, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "label": { + "type": "Identifier", + "start": 35, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "__proto__" + } + } + ] + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "__proto__" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/actual.js new file mode 100644 index 0000000000..eab7469213 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/actual.js @@ -0,0 +1 @@ +debugger; diff --git a/packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/expected.json new file mode 100644 index 0000000000..bf36100cfe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-debugger/migrated_0000/expected.json @@ -0,0 +1,48 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "DebuggerStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/actual.js new file mode 100644 index 0000000000..092bc2b041 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/expected.json new file mode 100644 index 0000000000..d76894f1aa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-empty/migrated_0000/expected.json @@ -0,0 +1,48 @@ +{ + "type": "File", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "EmptyStatement", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/actual.js new file mode 100644 index 0000000000..587be6b4c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/actual.js @@ -0,0 +1 @@ +x diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/expected.json new file mode 100644 index 0000000000..470ad995ab --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0000/expected.json @@ -0,0 +1,64 @@ +{ + "type": "File", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "expression": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/actual.js new file mode 100644 index 0000000000..b1c634757a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/actual.js @@ -0,0 +1 @@ +x, y diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/expected.json new file mode 100644 index 0000000000..a1f0e67018 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0001/expected.json @@ -0,0 +1,97 @@ +{ + "type": "File", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expression": { + "type": "SequenceExpression", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "expressions": [ + { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "y" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/actual.js new file mode 100644 index 0000000000..389d745825 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/actual.js @@ -0,0 +1 @@ +var source = '\\u0061'; diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json new file mode 100644 index 0000000000..6ba5acf72c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": "\\u0061", + "rawValue": "\\u0061", + "raw": "'\\\\u0061'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/actual.js new file mode 100644 index 0000000000..6524a1c4cf --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/actual.js @@ -0,0 +1 @@ +var source = 'a\\u0061'; diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json new file mode 100644 index 0000000000..f78a5fc028 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "a\\u0061", + "rawValue": "a\\u0061", + "raw": "'a\\\\u0061'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/actual.js new file mode 100644 index 0000000000..d4941e9313 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/actual.js @@ -0,0 +1 @@ +var source = '\\u0061a'; diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json new file mode 100644 index 0000000000..cf73b407c2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": "\\u0061a", + "rawValue": "\\u0061a", + "raw": "'\\\\u0061a'" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/actual.js new file mode 100644 index 0000000000..8e5a088c93 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/actual.js @@ -0,0 +1 @@ +var source = '\\u0061a '; diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json new file mode 100644 index 0000000000..ab84cdb1ac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "source" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": "\\u0061a ", + "rawValue": "\\u0061a ", + "raw": "'\\\\u0061a '" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/actual.js new file mode 100644 index 0000000000..a9fa4ad3a8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/actual.js @@ -0,0 +1 @@ +if (morning) goodMorning() diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/expected.json new file mode 100644 index 0000000000..61f0887961 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0000/expected.json @@ -0,0 +1,112 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "IfStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "test": { + "type": "Identifier", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "morning" + }, + "consequent": { + "type": "ExpressionStatement", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "CallExpression", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "callee": { + "type": "Identifier", + "start": 13, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "goodMorning" + }, + "arguments": [] + } + }, + "alternate": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/actual.js new file mode 100644 index 0000000000..ceaffa6308 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/actual.js @@ -0,0 +1 @@ +if (morning) (function(){}) diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json new file mode 100644 index 0000000000..97e2c0b335 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "IfStatement", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "test": { + "type": "Identifier", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "morning" + }, + "consequent": { + "type": "ExpressionStatement", + "start": 13, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 14, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + }, + "alternate": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/actual.js new file mode 100644 index 0000000000..8bc4513d98 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/actual.js @@ -0,0 +1 @@ +if (morning) var x = 0; diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json new file mode 100644 index 0000000000..c1930814e6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "IfStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "test": { + "type": "Identifier", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "morning" + }, + "consequent": { + "type": "VariableDeclaration", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 17, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "var" + }, + "alternate": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0003/actual.js new file mode 100644 index 0000000000..04cb30d31b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0003/actual.js @@ -0,0 +1 @@ +if (morning) function a(){} diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/actual.js new file mode 100644 index 0000000000..e7e476724b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/actual.js @@ -0,0 +1 @@ +if (morning) goodMorning(); else goodDay() diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/expected.json new file mode 100644 index 0000000000..720f53798d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0004/expected.json @@ -0,0 +1,158 @@ +{ + "type": "File", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "sourceType": "script", + "body": [ + { + "type": "IfStatement", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "test": { + "type": "Identifier", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "morning" + }, + "consequent": { + "type": "ExpressionStatement", + "start": 13, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "CallExpression", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "callee": { + "type": "Identifier", + "start": 13, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "goodMorning" + }, + "arguments": [] + } + }, + "alternate": { + "type": "ExpressionStatement", + "start": 33, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "expression": { + "type": "CallExpression", + "start": 33, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "callee": { + "type": "Identifier", + "start": 33, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "goodDay" + }, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/actual.js new file mode 100644 index 0000000000..893e85746c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/actual.js @@ -0,0 +1,2 @@ +if (true) that() +; else; diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json new file mode 100644 index 0000000000..bede5565cc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "sourceType": "script", + "body": [ + { + "type": "IfStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 7 + } + }, + "test": { + "type": "Literal", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "consequent": { + "type": "ExpressionStatement", + "start": 10, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 2, + "column": 1 + } + }, + "expression": { + "type": "CallExpression", + "start": 10, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "callee": { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "that" + }, + "arguments": [] + } + }, + "alternate": { + "type": "EmptyStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 6 + }, + "end": { + "line": 2, + "column": 7 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/actual.js new file mode 100644 index 0000000000..4253fa10bc --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/actual.js @@ -0,0 +1 @@ +if (true) that(); else; diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json new file mode 100644 index 0000000000..79b23952bd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "IfStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "test": { + "type": "Literal", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "consequent": { + "type": "ExpressionStatement", + "start": 10, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "expression": { + "type": "CallExpression", + "start": 10, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "callee": { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "that" + }, + "arguments": [] + } + }, + "alternate": { + "type": "EmptyStatement", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/actual.js new file mode 100644 index 0000000000..48da176a2b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/actual.js @@ -0,0 +1 @@ +for (const x in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/expected.json new file mode 100644 index 0000000000..24f754ab5a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/const_forin/expected.json @@ -0,0 +1,178 @@ +{ + "type": "File", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "id": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "const" + }, + "right": { + "type": "Identifier", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "list" + }, + "body": { + "type": "ExpressionStatement", + "start": 22, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "expression": { + "type": "CallExpression", + "start": 22, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "callee": { + "type": "Identifier", + "start": 22, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 30, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/actual.js new file mode 100644 index 0000000000..b44b084362 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/actual.js @@ -0,0 +1 @@ +for(a,b,c;;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/expected.json new file mode 100644 index 0000000000..caaf4a9a96 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/for-statement-with-seq/expected.json @@ -0,0 +1,130 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "init": { + "type": "SequenceExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expressions": [ + { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "b" + }, + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "c" + } + ] + }, + "test": null, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/actual.js new file mode 100644 index 0000000000..02e1c8fda3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/actual.js @@ -0,0 +1 @@ +do keep(); while (true) diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json new file mode 100644 index 0000000000..a065c54055 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "DoWhileStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": { + "type": "ExpressionStatement", + "start": 3, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "CallExpression", + "start": 3, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 3, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "keep" + }, + "arguments": [] + } + }, + "test": { + "type": "Literal", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/actual.js new file mode 100644 index 0000000000..25668b5db4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/actual.js @@ -0,0 +1 @@ +do keep(); while (true); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json new file mode 100644 index 0000000000..bcc441a257 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "DoWhileStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": { + "type": "ExpressionStatement", + "start": 3, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "CallExpression", + "start": 3, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 3, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "keep" + }, + "arguments": [] + } + }, + "test": { + "type": "Literal", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/actual.js new file mode 100644 index 0000000000..7c6b478431 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/actual.js @@ -0,0 +1 @@ +do { x++; y--; } while (x < 10) diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json new file mode 100644 index 0000000000..09c2e86050 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json @@ -0,0 +1,211 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "DoWhileStatement", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": { + "type": "BlockStatement", + "start": 3, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "x" + } + } + }, + { + "type": "ExpressionStatement", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 10, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "y" + } + } + } + ] + }, + "test": { + "type": "BinaryExpression", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "left": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Literal", + "start": 28, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/actual.js new file mode 100644 index 0000000000..d766db4e65 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/actual.js @@ -0,0 +1 @@ +{ do { } while (false) false } diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json new file mode 100644 index 0000000000..7a2fd03273 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "BlockStatement", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "DoWhileStatement", + "start": 2, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 2 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": { + "type": "BlockStatement", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "body": [] + }, + "test": { + "type": "Literal", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": false, + "rawValue": false, + "raw": "false" + } + }, + { + "type": "ExpressionStatement", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "Literal", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": false, + "rawValue": false, + "raw": "false" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/actual.js new file mode 100644 index 0000000000..d36ffddeff --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/actual.js @@ -0,0 +1 @@ +do that();while (true) diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json new file mode 100644 index 0000000000..a3c55814f4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "DoWhileStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": { + "type": "ExpressionStatement", + "start": 3, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "expression": { + "type": "CallExpression", + "start": 3, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 3, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "that" + }, + "arguments": [] + } + }, + "test": { + "type": "Literal", + "start": 17, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/actual.js new file mode 100644 index 0000000000..4977449830 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/actual.js @@ -0,0 +1,2 @@ +do that() +;while (true) diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json new file mode 100644 index 0000000000..1ee7296f46 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "DoWhileStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "body": { + "type": "ExpressionStatement", + "start": 3, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 2, + "column": 1 + } + }, + "expression": { + "type": "CallExpression", + "start": 3, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 3, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "that" + }, + "arguments": [] + } + }, + "test": { + "type": "Literal", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 8 + }, + "end": { + "line": 2, + "column": 12 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/actual.js new file mode 100644 index 0000000000..850fa0626e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/actual.js @@ -0,0 +1 @@ +while (true) doSomething() diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json new file mode 100644 index 0000000000..e3ddda1e17 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "test": { + "type": "Literal", + "start": 7, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "ExpressionStatement", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "CallExpression", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "callee": { + "type": "Identifier", + "start": 13, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "doSomething" + }, + "arguments": [] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/actual.js new file mode 100644 index 0000000000..fdf7b8865e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/actual.js @@ -0,0 +1 @@ +while (x < 10) { x++; y--; } diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json new file mode 100644 index 0000000000..bf0cf79afd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json @@ -0,0 +1,211 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WhileStatement", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "test": { + "type": "BinaryExpression", + "start": 7, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "left": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Literal", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + }, + "body": { + "type": "BlockStatement", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 17, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + } + } + }, + { + "type": "ExpressionStatement", + "start": 22, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 22, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "y" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/actual.js new file mode 100644 index 0000000000..4ab96f0961 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/actual.js @@ -0,0 +1 @@ +for(;;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/expected.json new file mode 100644 index 0000000000..9474ed02f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0008/expected.json @@ -0,0 +1,66 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "init": null, + "test": null, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/actual.js new file mode 100644 index 0000000000..2454953cbe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/actual.js @@ -0,0 +1 @@ +for(;;){} diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/expected.json new file mode 100644 index 0000000000..ee4511c5df --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0009/expected.json @@ -0,0 +1,67 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "init": null, + "test": null, + "update": null, + "body": { + "type": "BlockStatement", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/actual.js new file mode 100644 index 0000000000..0031d64209 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/actual.js @@ -0,0 +1 @@ +for(x = 0;;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json new file mode 100644 index 0000000000..0221127370 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "init": { + "type": "AssignmentExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "test": null, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/actual.js new file mode 100644 index 0000000000..efc0f031b7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/actual.js @@ -0,0 +1 @@ +for(var x = 0;;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json new file mode 100644 index 0000000000..46c4e44c8f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "init": { + "type": "VariableDeclaration", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "var" + }, + "test": null, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/actual.js new file mode 100644 index 0000000000..cec50c4b9c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/actual.js @@ -0,0 +1 @@ +for(let x = 0;;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json new file mode 100644 index 0000000000..5f7188a434 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json @@ -0,0 +1,132 @@ +{ + "type": "File", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "init": { + "type": "VariableDeclaration", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + } + ], + "kind": "let" + }, + "test": null, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/actual.js new file mode 100644 index 0000000000..97a393701c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/actual.js @@ -0,0 +1 @@ +for(var x = 0, y = 1;;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json new file mode 100644 index 0000000000..20b89977b6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json @@ -0,0 +1,181 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "init": { + "type": "VariableDeclaration", + "start": 4, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + { + "type": "VariableDeclarator", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "y" + }, + "init": { + "type": "Literal", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + } + } + ], + "kind": "var" + }, + "test": null, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/actual.js new file mode 100644 index 0000000000..bfa5a751d8 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/actual.js @@ -0,0 +1 @@ +for(x = 0; x < 42;); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json new file mode 100644 index 0000000000..66dff360f5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "init": { + "type": "AssignmentExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "test": { + "type": "BinaryExpression", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "left": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Literal", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + }, + "update": null, + "body": { + "type": "EmptyStatement", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/actual.js new file mode 100644 index 0000000000..252fa9391b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/actual.js @@ -0,0 +1 @@ +for(x = 0; x < 42; x++); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json new file mode 100644 index 0000000000..1943c72a2e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json @@ -0,0 +1,196 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "init": { + "type": "AssignmentExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "test": { + "type": "BinaryExpression", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "left": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Literal", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + }, + "update": { + "type": "UpdateExpression", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "x" + } + }, + "body": { + "type": "EmptyStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/actual.js new file mode 100644 index 0000000000..3c1e6af8df --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/actual.js @@ -0,0 +1 @@ +for(x = 0; x < 42; x++) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json new file mode 100644 index 0000000000..ea41666efe --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json @@ -0,0 +1,245 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForStatement", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "init": { + "type": "AssignmentExpression", + "start": 4, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "right": { + "type": "Literal", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + } + }, + "test": { + "type": "BinaryExpression", + "start": 11, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "left": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + "operator": "<", + "right": { + "type": "Literal", + "start": 15, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + }, + "update": { + "type": "UpdateExpression", + "start": 19, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "x" + } + }, + "body": { + "type": "ExpressionStatement", + "start": 24, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "expression": { + "type": "CallExpression", + "start": 24, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "callee": { + "type": "Identifier", + "start": 24, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/actual.js new file mode 100644 index 0000000000..5b8cba78ae --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/actual.js @@ -0,0 +1 @@ +for(x in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/expected.json new file mode 100644 index 0000000000..f95b2f15a7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0017/expected.json @@ -0,0 +1,144 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "left": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "right": { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "list" + }, + "body": { + "type": "ExpressionStatement", + "start": 15, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "CallExpression", + "start": 15, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "callee": { + "type": "Identifier", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/actual.js new file mode 100644 index 0000000000..f3649e96e1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/actual.js @@ -0,0 +1 @@ +for (var x in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/expected.json new file mode 100644 index 0000000000..50d29b5d32 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0018/expected.json @@ -0,0 +1,178 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "list" + }, + "body": { + "type": "ExpressionStatement", + "start": 20, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "CallExpression", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "callee": { + "type": "Identifier", + "start": 20, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 28, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js new file mode 100644 index 0000000000..406a3a3c22 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js @@ -0,0 +1 @@ +for (var x = 42 in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json new file mode 100644 index 0000000000..7b65e7a6c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json @@ -0,0 +1,195 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 19, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "list" + }, + "body": { + "type": "ExpressionStatement", + "start": 25, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "CallExpression", + "start": 25, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "callee": { + "type": "Identifier", + "start": 25, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 33, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/actual.js new file mode 100644 index 0000000000..ef04e49f91 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/actual.js @@ -0,0 +1 @@ +for (let x in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/expected.json new file mode 100644 index 0000000000..12d30b3dd3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0020/expected.json @@ -0,0 +1,178 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "let" + }, + "right": { + "type": "Identifier", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "list" + }, + "body": { + "type": "ExpressionStatement", + "start": 20, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "CallExpression", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "callee": { + "type": "Identifier", + "start": 20, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 28, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/actual.js new file mode 100644 index 0000000000..01e8d6930a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/actual.js @@ -0,0 +1 @@ +for (var x = y = z in q); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/expected.json new file mode 100644 index 0000000000..20d1b7032f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/expected.json @@ -0,0 +1,176 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "x" + }, + "init": { + "type": "AssignmentExpression", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "y" + }, + "right": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "z" + } + } + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "q" + }, + "body": { + "type": "EmptyStatement", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js new file mode 100644 index 0000000000..e10579bece --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js @@ -0,0 +1 @@ +for (var a = b = c = (d in e) in z); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json new file mode 100644 index 0000000000..f08be47cf5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json @@ -0,0 +1,241 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "init": { + "type": "AssignmentExpression", + "start": 13, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "b" + }, + "right": { + "type": "AssignmentExpression", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "c" + }, + "right": { + "type": "BinaryExpression", + "start": 22, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "left": { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "d" + }, + "operator": "in", + "right": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "e" + }, + "parenthesizedExpression": true + } + } + } + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 33, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "z" + }, + "body": { + "type": "EmptyStatement", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js new file mode 100644 index 0000000000..dbbe45041a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js @@ -0,0 +1 @@ +for (var i = function() { return 10 in [] } in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json new file mode 100644 index 0000000000..b0f5f0232d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json @@ -0,0 +1,278 @@ +{ + "type": "File", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "left": { + "type": "VariableDeclaration", + "start": 5, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 9, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "i" + }, + "init": { + "type": "FunctionExpression", + "start": 13, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 26, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "argument": { + "type": "BinaryExpression", + "start": 33, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "left": { + "type": "Literal", + "start": 33, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + }, + "operator": "in", + "right": { + "type": "ArrayExpression", + "start": 39, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "elements": [] + } + } + } + ] + } + } + } + ], + "kind": "var" + }, + "right": { + "type": "Identifier", + "start": 47, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "list" + }, + "body": { + "type": "ExpressionStatement", + "start": 53, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "expression": { + "type": "CallExpression", + "start": 53, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "callee": { + "type": "Identifier", + "start": 53, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "name": "process" + }, + "arguments": [ + { + "type": "Identifier", + "start": 61, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 61 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "name": "x" + } + ] + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/actual.js new file mode 100644 index 0000000000..6d08a0e3ac --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/actual.js @@ -0,0 +1 @@ +for (a[b in c] in d); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/expected.json new file mode 100644 index 0000000000..5eba72f1c0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0024/expected.json @@ -0,0 +1,159 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "left": { + "type": "MemberExpression", + "start": 5, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "object": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + "property": { + "type": "BinaryExpression", + "start": 7, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "left": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "b" + }, + "operator": "in", + "right": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "c" + } + }, + "computed": true + }, + "right": { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "d" + }, + "body": { + "type": "EmptyStatement", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/actual.js new file mode 100644 index 0000000000..74abefc28d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/actual.js @@ -0,0 +1 @@ +for (a(b in c)[0] in d); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json new file mode 100644 index 0000000000..eac72f5d2b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json @@ -0,0 +1,194 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "left": { + "type": "MemberExpression", + "start": 5, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "object": { + "type": "CallExpression", + "start": 5, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "callee": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + "arguments": [ + { + "type": "BinaryExpression", + "start": 7, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "left": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "b" + }, + "operator": "in", + "right": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "c" + } + } + ] + }, + "property": { + "type": "Literal", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "value": 0, + "rawValue": 0, + "raw": "0" + }, + "computed": true + }, + "right": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "d" + }, + "body": { + "type": "EmptyStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/actual.js new file mode 100644 index 0000000000..6c141a0c23 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/actual.js @@ -0,0 +1 @@ +for (a.in in a); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/expected.json new file mode 100644 index 0000000000..df5bd2f21b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0026/expected.json @@ -0,0 +1,127 @@ +{ + "type": "File", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ForInStatement", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "left": { + "type": "MemberExpression", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "object": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "a" + }, + "property": { + "type": "Identifier", + "start": 7, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "in" + }, + "computed": false + }, + "right": { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "a" + }, + "body": { + "type": "EmptyStatement", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/pattern-in-for-in/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/pattern-in-for-in/actual.js new file mode 100644 index 0000000000..7bfdb2f282 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/pattern-in-for-in/actual.js @@ -0,0 +1 @@ +for([a,b[a],{c,d=e,[f]:[g,h().a,(0).k,...i[0]]}] in 0); diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/actual.js new file mode 100644 index 0000000000..925da26ad6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/actual.js @@ -0,0 +1 @@ +start: for (;;) break start diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/expected.json new file mode 100644 index 0000000000..ea2201a00e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0000/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "body": { + "type": "ForStatement", + "start": 7, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "init": null, + "test": null, + "update": null, + "body": { + "type": "BreakStatement", + "start": 16, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "label": { + "type": "Identifier", + "start": 22, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "start" + } + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "start" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/actual.js new file mode 100644 index 0000000000..c9f77462c3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/actual.js @@ -0,0 +1 @@ +start: while (true) break start diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json new file mode 100644 index 0000000000..cddf16fc26 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": { + "type": "WhileStatement", + "start": 7, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "test": { + "type": "Literal", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "value": true, + "rawValue": true, + "raw": "true" + }, + "body": { + "type": "BreakStatement", + "start": 20, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "label": { + "type": "Identifier", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "start" + } + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "start" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/actual.js new file mode 100644 index 0000000000..3b8d12bfe3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/actual.js @@ -0,0 +1 @@ +__proto__: test diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/expected.json new file mode 100644 index 0000000000..c1996f9d1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0002/expected.json @@ -0,0 +1,95 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "script", + "body": [ + { + "type": "LabeledStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": { + "type": "ExpressionStatement", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "Identifier", + "start": 11, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "test" + } + }, + "label": { + "type": "Identifier", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "__proto__" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/actual.js new file mode 100644 index 0000000000..75545f4ec5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/actual.js @@ -0,0 +1 @@ +(function(){ return }) diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json new file mode 100644 index 0000000000..3f86692dc7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "argument": null + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/actual.js new file mode 100644 index 0000000000..775341351c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/actual.js @@ -0,0 +1 @@ +(function(){ return; }) diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json new file mode 100644 index 0000000000..f66370e4d6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json @@ -0,0 +1,101 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "argument": null + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/actual.js new file mode 100644 index 0000000000..c641c6eba2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/actual.js @@ -0,0 +1 @@ +(function(){ return x; }) diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json new file mode 100644 index 0000000000..864565296e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json @@ -0,0 +1,116 @@ +{ + "type": "File", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "argument": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "x" + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/actual.js new file mode 100644 index 0000000000..81b8918812 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/actual.js @@ -0,0 +1 @@ +(function(){ return x * y }) diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json new file mode 100644 index 0000000000..9c0041eb71 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json @@ -0,0 +1,148 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "body": [ + { + "type": "ReturnStatement", + "start": 13, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "argument": { + "type": "BinaryExpression", + "start": 20, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "left": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "y" + } + } + } + ] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/actual.js new file mode 100644 index 0000000000..25005bdb2a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/actual.js @@ -0,0 +1 @@ +switch (x) {} diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/expected.json new file mode 100644 index 0000000000..e48fd0f035 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0000/expected.json @@ -0,0 +1,65 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "SwitchStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "discriminant": { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + "cases": [] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/actual.js new file mode 100644 index 0000000000..412007b26f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/actual.js @@ -0,0 +1 @@ +switch (answer) { case 42: hi(); break; } diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json new file mode 100644 index 0000000000..62e79f338e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json @@ -0,0 +1,164 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "SwitchStatement", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "discriminant": { + "type": "Identifier", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "answer" + }, + "cases": [ + { + "type": "SwitchCase", + "start": 18, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "consequent": [ + { + "type": "ExpressionStatement", + "start": 27, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "CallExpression", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "callee": { + "type": "Identifier", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "hi" + }, + "arguments": [] + } + }, + { + "type": "BreakStatement", + "start": 33, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "label": null + } + ], + "test": { + "type": "Literal", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/actual.js new file mode 100644 index 0000000000..dcf477dadd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/actual.js @@ -0,0 +1 @@ +switch (answer) { case 42: hi(); break; default: break } diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json new file mode 100644 index 0000000000..b29ad0f66d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "sourceType": "script", + "body": [ + { + "type": "SwitchStatement", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "discriminant": { + "type": "Identifier", + "start": 8, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "answer" + }, + "cases": [ + { + "type": "SwitchCase", + "start": 18, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "consequent": [ + { + "type": "ExpressionStatement", + "start": 27, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "CallExpression", + "start": 27, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "callee": { + "type": "Identifier", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "hi" + }, + "arguments": [] + } + }, + { + "type": "BreakStatement", + "start": 33, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "label": null + } + ], + "test": { + "type": "Literal", + "start": 23, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + }, + { + "type": "SwitchCase", + "start": 40, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "consequent": [ + { + "type": "BreakStatement", + "start": 49, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "label": null + } + ], + "test": null + } + ] + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/actual.js new file mode 100644 index 0000000000..c7426bffc6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/actual.js @@ -0,0 +1 @@ +throw x; diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/expected.json new file mode 100644 index 0000000000..0e9f3c0da0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0000/expected.json @@ -0,0 +1,64 @@ +{ + "type": "File", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ThrowStatement", + "start": 0, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "argument": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/actual.js new file mode 100644 index 0000000000..22d107700d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/actual.js @@ -0,0 +1 @@ +throw x * y diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/expected.json new file mode 100644 index 0000000000..91f3d0ffa7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0001/expected.json @@ -0,0 +1,96 @@ +{ + "type": "File", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ThrowStatement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "argument": { + "type": "BinaryExpression", + "start": 6, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "left": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "operator": "*", + "right": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "y" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/actual.js new file mode 100644 index 0000000000..b1590926c9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/actual.js @@ -0,0 +1 @@ +throw { message: "Error" } diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json new file mode 100644 index 0000000000..fe437eefa7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ThrowStatement", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "argument": { + "type": "ObjectExpression", + "start": 6, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "properties": [ + { + "type": "Property", + "start": 8, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 8, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "message" + }, + "value": { + "type": "Literal", + "start": 17, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": "Error", + "rawValue": "Error", + "raw": "\"Error\"" + }, + "kind": "init" + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/actual.js new file mode 100644 index 0000000000..f264c628b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/actual.js @@ -0,0 +1 @@ +try { } catch (e) { } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/expected.json new file mode 100644 index 0000000000..49a3324324 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0000/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "param": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "e" + }, + "body": { + "type": "BlockStatement", + "start": 18, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/actual.js new file mode 100644 index 0000000000..5d9613956b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/actual.js @@ -0,0 +1 @@ +try { } catch (eval) { } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/expected.json new file mode 100644 index 0000000000..4fa8f999b5 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0001/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "param": { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + }, + "body": { + "type": "BlockStatement", + "start": 21, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/actual.js new file mode 100644 index 0000000000..b2a574c326 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/actual.js @@ -0,0 +1 @@ +try { } catch (arguments) { } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/expected.json new file mode 100644 index 0000000000..42cc2e8bf7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0002/expected.json @@ -0,0 +1,113 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "param": { + "type": "Identifier", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "arguments" + }, + "body": { + "type": "BlockStatement", + "start": 26, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "body": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/actual.js new file mode 100644 index 0000000000..83fb8d6e80 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/actual.js @@ -0,0 +1 @@ +try { } catch (e) { say(e) } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/expected.json new file mode 100644 index 0000000000..bb353db32f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0003/expected.json @@ -0,0 +1,178 @@ +{ + "type": "File", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": { + "type": "CatchClause", + "start": 8, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "param": { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "e" + }, + "body": { + "type": "BlockStatement", + "start": 18, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 20, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "CallExpression", + "start": 20, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "callee": { + "type": "Identifier", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "say" + }, + "arguments": [ + { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "e" + } + ] + } + } + ] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/actual.js new file mode 100644 index 0000000000..6c596bdefb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/actual.js @@ -0,0 +1 @@ +try { } finally { cleanup(stuff) } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/expected.json new file mode 100644 index 0000000000..ca8f6bd080 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0004/expected.json @@ -0,0 +1,147 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "body": [] + }, + "handler": null, + "guardedHandlers": [], + "finalizer": { + "type": "BlockStatement", + "start": 16, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 18, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "CallExpression", + "start": 18, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "callee": { + "type": "Identifier", + "start": 18, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "cleanup" + }, + "arguments": [ + { + "type": "Identifier", + "start": 26, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "stuff" + } + ] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/actual.js new file mode 100644 index 0000000000..ea86126dc6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/actual.js @@ -0,0 +1 @@ +try { doThat(); } catch (e) { say(e) } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/expected.json new file mode 100644 index 0000000000..291705c18b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0005/expected.json @@ -0,0 +1,226 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 6, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "CallExpression", + "start": 6, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "callee": { + "type": "Identifier", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "doThat" + }, + "arguments": [] + } + } + ] + }, + "handler": { + "type": "CatchClause", + "start": 18, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "param": { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "e" + }, + "body": { + "type": "BlockStatement", + "start": 28, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "CallExpression", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "callee": { + "type": "Identifier", + "start": 30, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "say" + }, + "arguments": [ + { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "e" + } + ] + } + } + ] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/actual.js new file mode 100644 index 0000000000..2557ec761a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/actual.js @@ -0,0 +1 @@ +try { doThat(); } catch (e) { say(e) } finally { cleanup(stuff) } diff --git a/packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/expected.json new file mode 100644 index 0000000000..9dd799f3ee --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-try/migrated_0006/expected.json @@ -0,0 +1,306 @@ +{ + "type": "File", + "start": 0, + "end": 65, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 65 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 65, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 65 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 0, + "end": 65, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 65 + } + }, + "block": { + "type": "BlockStatement", + "start": 4, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 6, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "CallExpression", + "start": 6, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "callee": { + "type": "Identifier", + "start": 6, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "doThat" + }, + "arguments": [] + } + } + ] + }, + "handler": { + "type": "CatchClause", + "start": 18, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "param": { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "e" + }, + "body": { + "type": "BlockStatement", + "start": 28, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "CallExpression", + "start": 30, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "callee": { + "type": "Identifier", + "start": 30, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "say" + }, + "arguments": [ + { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "e" + } + ] + } + } + ] + } + }, + "guardedHandlers": [], + "finalizer": { + "type": "BlockStatement", + "start": 47, + "end": 65, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 65 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 49, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "expression": { + "type": "CallExpression", + "start": 49, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "callee": { + "type": "Identifier", + "start": 49, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "name": "cleanup" + }, + "arguments": [ + { + "type": "Identifier", + "start": 57, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 57 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "name": "stuff" + } + ] + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/actual.js new file mode 100644 index 0000000000..9fc941b2c1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/actual.js @@ -0,0 +1 @@ +var [] diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json b/packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json new file mode 100644 index 0000000000..8cb567ee77 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/complex-pattern-requires-init/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Complex binding patterns require an initialization value (1:6)" +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/actual.js new file mode 100644 index 0000000000..2660e277b1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/actual.js @@ -0,0 +1 @@ +var x diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/expected.json new file mode 100644 index 0000000000..ec2dadfcf0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0000/expected.json @@ -0,0 +1,83 @@ +{ + "type": "File", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/actual.js new file mode 100644 index 0000000000..fecb2697c9 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/actual.js @@ -0,0 +1 @@ +var x, y; diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/expected.json new file mode 100644 index 0000000000..4ed5077fe0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0001/expected.json @@ -0,0 +1,115 @@ +{ + "type": "File", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "id": { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "y" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/actual.js new file mode 100644 index 0000000000..9a3e04e016 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/actual.js @@ -0,0 +1 @@ +var x = 42 diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json new file mode 100644 index 0000000000..a5b0f49382 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json @@ -0,0 +1,100 @@ +{ + "type": "File", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 8, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/actual.js new file mode 100644 index 0000000000..52b77fe20a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/actual.js @@ -0,0 +1 @@ +var eval = 42, arguments = 42 diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json new file mode 100644 index 0000000000..6ed6cc90fa --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "eval" + }, + "init": { + "type": "Literal", + "start": 11, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + }, + { + "type": "VariableDeclarator", + "start": 15, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": { + "type": "Identifier", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "arguments" + }, + "init": { + "type": "Literal", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/actual.js new file mode 100644 index 0000000000..ac20052692 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/actual.js @@ -0,0 +1 @@ +var x = 14, y = 3, z = 1977 diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json new file mode 100644 index 0000000000..6b9e9e3f3a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json @@ -0,0 +1,198 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 8, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "value": 14, + "rawValue": 14, + "raw": "14" + } + }, + { + "type": "VariableDeclarator", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "id": { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "y" + }, + "init": { + "type": "Literal", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 3, + "rawValue": 3, + "raw": "3" + } + }, + { + "type": "VariableDeclarator", + "start": 19, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "z" + }, + "init": { + "type": "Literal", + "start": 23, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "value": 1977, + "rawValue": 1977, + "raw": "1977" + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/actual.js new file mode 100644 index 0000000000..db88914197 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/actual.js @@ -0,0 +1 @@ +var implements, interface, package diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/expected.json new file mode 100644 index 0000000000..17a5559327 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0005/expected.json @@ -0,0 +1,147 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "implements" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 16, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 16, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "interface" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 27, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 27, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "package" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/actual.js b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/actual.js new file mode 100644 index 0000000000..5d2ca7181e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/actual.js @@ -0,0 +1 @@ +var private, protected, public, static diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/expected.json new file mode 100644 index 0000000000..8744560249 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0006/expected.json @@ -0,0 +1,179 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "private" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": { + "type": "Identifier", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "protected" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": { + "type": "Identifier", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "name": "public" + }, + "init": null + }, + { + "type": "VariableDeclarator", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "id": { + "type": "Identifier", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "static" + }, + "init": null + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/actual.js b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/actual.js new file mode 100644 index 0000000000..b3f4ca4b0d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/actual.js @@ -0,0 +1 @@ +with (x) foo = bar diff --git a/packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/expected.json new file mode 100644 index 0000000000..f4e3da9d15 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0000/expected.json @@ -0,0 +1,127 @@ +{ + "type": "File", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WithStatement", + "start": 0, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "object": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "body": { + "type": "ExpressionStatement", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 9, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "foo" + }, + "right": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "bar" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/actual.js b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/actual.js new file mode 100644 index 0000000000..66310a50db --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/actual.js @@ -0,0 +1 @@ +with (x) foo = bar; diff --git a/packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/expected.json new file mode 100644 index 0000000000..9e895a7f45 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0001/expected.json @@ -0,0 +1,127 @@ +{ + "type": "File", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WithStatement", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "object": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "body": { + "type": "ExpressionStatement", + "start": 9, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 9, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 9, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "foo" + }, + "right": { + "type": "Identifier", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "bar" + } + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/actual.js b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/actual.js new file mode 100644 index 0000000000..9a8f202108 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/actual.js @@ -0,0 +1 @@ +with (x) { foo = bar } diff --git a/packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/expected.json new file mode 100644 index 0000000000..d9e30cca90 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/statement-with/migrated_0002/expected.json @@ -0,0 +1,144 @@ +{ + "type": "File", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "sourceType": "script", + "body": [ + { + "type": "WithStatement", + "start": 0, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "object": { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "x" + }, + "body": { + "type": "BlockStatement", + "start": 9, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 11, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 11, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "foo" + }, + "right": { + "type": "Identifier", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "bar" + } + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/actual.js b/packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/actual.js new file mode 100644 index 0000000000..facf8ca53c --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/actual.js @@ -0,0 +1 @@ +var foo = async ((foo)) => {}; diff --git a/packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/options.json b/packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/options.json new file mode 100644 index 0000000000..fa579aa831 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/async-functions/illegal-parens/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:24)" +} diff --git a/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/actual.js b/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/actual.js new file mode 100644 index 0000000000..0d85be0d03 --- /dev/null +++ b/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/actual.js @@ -0,0 +1 @@ +var foo = ((foo)): string => {}; diff --git a/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/expected.json b/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/expected.json new file mode 100644 index 0000000000..4fba0bba88 --- /dev/null +++ b/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/expected.json @@ -0,0 +1,166 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "module", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 7 + } + }, + "name": "foo" + }, + "init": { + "type": "ArrowFunctionExpression", + "start": 10, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "foo", + "parenthesizedExpression": true + } + ], + "body": { + "type": "BlockStatement", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "body": [] + }, + "returnType": { + "type": "TypeAnnotation", + "start": 17, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "typeAnnotation": { + "type": "StringTypeAnnotation", + "start": 19, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 25 + } + } + } + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/options.json b/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/options.json new file mode 100644 index 0000000000..e806dd7b3a --- /dev/null +++ b/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:17)" +} diff --git a/packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/actual.js b/packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/actual.js new file mode 100644 index 0000000000..9f3d7cb5de --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/actual.js @@ -0,0 +1 @@ +var foo = ((foo)) => {}; diff --git a/packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/options.json b/packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/options.json new file mode 100644 index 0000000000..cb6c66081e --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/arrow-functions/inner-parens/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:11)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/289/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/289/expected.json new file mode 100644 index 0000000000..6db69cefb7 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/289/expected.json @@ -0,0 +1,187 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "t" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 4, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 5, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 11, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 13, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "Literal", + "start": 13, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + } + ] + } + } + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/297/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/297/expected.json new file mode 100644 index 0000000000..338190dde1 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/297/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 0, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 1, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 10, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "expression": { + "type": "Literal", + "start": 12, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + }, + { + "type": "ExpressionStatement", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "expression": { + "type": "Literal", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ] + } + } + } + ] + } +} \ No newline at end of file From d0729fc7317776cf994ddef9a5e31cc1e92084e7 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 11 Aug 2015 00:59:22 +0100 Subject: [PATCH 006/174] add t.directive --- packages/babel/src/types/index.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/babel/src/types/index.js b/packages/babel/src/types/index.js index 2f9bd85aeb..c89df77750 100644 --- a/packages/babel/src/types/index.js +++ b/packages/babel/src/types/index.js @@ -364,6 +364,14 @@ export function inherits(child: Object, parent: Object): Object { return child; } +/** + * Description + */ + +export function directive(value) { + return t.expressionStatement(t.literal(value)); +} + // Optimize property access. toFastProperties(t); toFastProperties(t.VISITOR_KEYS); From 1a4f18aab7810280655b674a638ae3e2cf6b966a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 11 Aug 2015 16:57:51 +0100 Subject: [PATCH 007/174] inline traceur tests, removing git submodules --- .gitmodules | 3 - packages/babel/test/fixtures/traceur | 1 - .../ArgumentsInComprehension.js | 12 + .../traceur/ArrayComprehension/Closure.js | 11 + .../ArrayComprehension/Error_Disabled.js | 4 + .../ArrayComprehension/Error_NotDefined.js | 5 + .../traceur/ArrayComprehension/Simple.js | 32 +++ .../ArrayComprehension/ThisInComprehension.js | 14 + .../test/fixtures/traceur/ArrayExtras/Fill.js | 47 ++++ .../test/fixtures/traceur/ArrayExtras/Find.js | 88 +++++++ .../fixtures/traceur/ArrayExtras/FindIndex.js | 47 ++++ .../test/fixtures/traceur/ArrayExtras/From.js | 158 ++++++++++++ .../test/fixtures/traceur/ArrayExtras/Of.js | 37 +++ .../test/fixtures/traceur/ArrayIterator.js | 27 ++ .../traceur/ArrowFunctions/AlphaRename.js | 22 ++ .../AlphaRenameThisArguments.js | 42 +++ .../traceur/ArrowFunctions/Arguments.js | 6 + .../traceur/ArrowFunctions/ArrowFunctions.js | 52 ++++ .../ArrowFunctions/CoverInitializer.js | 5 + .../ArrowFunctions/Error_CoverInitializer.js | 5 + .../ArrowFunctions/Error_CoverInitializer2.js | 3 + .../ArrowFunctions/Error_CoverInitializer3.js | 3 + .../traceur/ArrowFunctions/Error_Disabled.js | 4 + .../Error_FreeVariableChecker.js | 3 + .../Error_InvalidFormalParameters.js | 3 + .../ArrowFunctions/Error_LineTerminator.js | 4 + .../ArrowFunctions/Error_Precedence.js | 3 + .../ArrowFunctions/Error_Precedence2.js | 4 + .../ArrowFunctions/Error_Precedence3.js | 4 + .../ArrowFunctions/Error_SpreadNotLast.js | 6 + .../Error_SpreadOutsideFormals.js | 3 + .../ArrowFunctions/FreeVariableChecker.js | 2 + .../fixtures/traceur/ArrowFunctions/Parens.js | 19 ++ .../traceur/ArrowFunctions/Skip_Frozen.js | 39 +++ .../Skip_InitializerShorthand.js | 19 ++ .../traceur/ArrowFunctions/Skip_SoftBind.js | 14 + .../traceur/ArrowFunctions/SloppyArguments.js | 15 ++ .../ThisBindingInPropertyName.js | 15 ++ .../traceur/ArrowFunctions/ThisBindings.js | 18 ++ .../traceur/AsyncFunctions/AlphaRenaming.js | 21 ++ .../traceur/AsyncFunctions/AsyncArrow.js | 9 + .../traceur/AsyncFunctions/AsyncArrow2.js | 9 + .../AsyncFunctions/AsyncArrowArguments.js | 16 ++ .../traceur/AsyncFunctions/AsyncArrowThis.js | 15 ++ .../traceur/AsyncFunctions/AsyncMethod.js | 31 +++ .../AsyncMethodObjectLiteral.js | 21 ++ .../traceur/AsyncFunctions/AsyncSyntax.js | 18 ++ .../fixtures/traceur/AsyncFunctions/Basics.js | 46 ++++ .../traceur/AsyncFunctions/Complete.js | 16 ++ .../fixtures/traceur/AsyncFunctions/Empty.js | 10 + .../AsyncFunctions/Error_AsyncArrow.js | 7 + .../AsyncFunctions/Error_AsyncArrow2.js | 6 + .../traceur/AsyncFunctions/Error_Disabled.js | 15 ++ .../traceur/AsyncFunctions/Export.module.js | 18 ++ .../traceur/AsyncFunctions/Finally.js | 25 ++ .../traceur/AsyncFunctions/Finally2.js | 21 ++ .../traceur/AsyncFunctions/PromiseCast.js | 12 + .../traceur/AsyncFunctions/Prototype.js | 7 + .../traceur/AsyncFunctions/Rethrow.js | 13 + .../fixtures/traceur/AsyncFunctions/Return.js | 16 ++ .../fixtures/traceur/AsyncFunctions/Throw.js | 30 +++ .../traceur/AsyncFunctions/Timeout.js | 21 ++ .../fixtures/traceur/AsyncFunctions/Value.js | 24 ++ .../fixtures/traceur/AsyncFunctions/Yield.js | 17 ++ .../resources/async-function.js | 7 + .../fixtures/traceur/AsyncGenerators/Array.js | 14 + .../traceur/AsyncGenerators/AsyncGenerator.js | 18 ++ .../AsyncGenerators/AsyncObservable.js | 21 ++ .../fixtures/traceur/AsyncGenerators/Demo.js | 29 +++ .../traceur/AsyncGenerators/ForOn.module.js | 75 ++++++ .../traceur/AsyncGenerators/ForOnBody.js | 14 + .../traceur/AsyncGenerators/Method.js | 20 ++ .../traceur/AsyncGenerators/Property.js | 20 ++ .../AsyncGenerators/ReturnAsyncGenerator.js | 24 ++ .../AsyncGenerators/ThisAndArguments.js | 19 ++ .../AsyncGenerators/ThrowInAsyncGenerator.js | 28 ++ .../traceur/AsyncGenerators/YieldFor.js | 25 ++ .../traceur/AsyncGenerators/YieldForOn.js | 24 ++ .../AsyncGenerators/resources/observable.js | 71 ++++++ .../traceur/Classes/ClassMethodInheritance.js | 23 ++ .../traceur/Classes/ClassNameBinding.js | 41 +++ .../traceur/Classes/ClassNameInStack.js | 29 +++ .../fixtures/traceur/Classes/Constructor.js | 34 +++ .../traceur/Classes/ConstructorChaining.js | 22 ++ .../traceur/Classes/ConstructorMember.js | 27 ++ .../traceur/Classes/DefaultConstructor.js | 31 +++ .../traceur/Classes/DeriveFromObject.js | 6 + .../fixtures/traceur/Classes/EmptyClass.js | 29 +++ .../traceur/Classes/Error_Disabled.js | 4 + .../fixtures/traceur/Classes/Error_GH1556.js | 5 + .../Classes/Error_NestedFunctionSuper.js | 22 ++ .../traceur/Classes/Error_NewSuper.js | 7 + .../traceur/Classes/Error_NewSuper2.js | 7 + .../Classes/Error_NoSuperInDerivedClass.js | 9 + .../fixtures/traceur/Classes/Error_Super.js | 10 + .../Classes/Error_SuperAsTemplateTag.js | 10 + .../Classes/Error_SuperCallInNonDerived.js | 7 + .../traceur/Classes/Error_SuperNestedClass.js | 15 ++ .../Error_SuperPropertyOutsideMethod.js | 10 + .../traceur/Classes/ExtendCoverFormals.js | 10 + .../Classes/ExtendNonConstructableFunction.js | 11 + .../fixtures/traceur/Classes/ExtendObject.js | 4 + .../fixtures/traceur/Classes/ExtendStrange.js | 54 ++++ .../traceur/Classes/FieldInheritance.js | 26 ++ .../traceur/Classes/FieldInitializers.js | 23 ++ .../fixtures/traceur/Classes/FieldLookup.js | 47 ++++ .../test/fixtures/traceur/Classes/Fields.js | 19 ++ .../test/fixtures/traceur/Classes/Getters.js | 20 ++ .../fixtures/traceur/Classes/Inheritance.js | 9 + .../InheritanceFromMemberExpression.js | 31 +++ .../Classes/InheritanceFromNonclass.js | 17 ++ .../traceur/Classes/InheritanceNameBinding.js | 11 + .../test/fixtures/traceur/Classes/Method.js | 21 ++ .../traceur/Classes/MethodInheritance.js | 32 +++ .../fixtures/traceur/Classes/MethodLookup.js | 34 +++ .../fixtures/traceur/Classes/NameBinding.js | 36 +++ .../traceur/Classes/NestedClassSuper.js | 104 ++++++++ .../traceur/Classes/NestedClassSuperAnimal.js | 45 ++++ .../traceur/Classes/NewClassExpression.js | 18 ++ .../test/fixtures/traceur/Classes/NonEnum.js | 23 ++ .../traceur/Classes/OptionalParams.js | 18 ++ .../traceur/Classes/PropertyAccessors.js | 59 +++++ .../traceur/Classes/PrototypeDescriptor.js | 7 + .../fixtures/traceur/Classes/RestParams.js | 15 ++ .../fixtures/traceur/Classes/SemiColon.js | 3 + .../fixtures/traceur/Classes/SimpleSuper.js | 31 +++ .../traceur/Classes/Skip_DerivedButton.js | 39 +++ .../Classes/Skip_HTMLBlockquoteElement.js | 16 ++ .../test/fixtures/traceur/Classes/Static.js | 70 +++++ .../fixtures/traceur/Classes/StaticSuper.js | 35 +++ .../traceur/Classes/StaticSuperNoExtends.js | 47 ++++ .../fixtures/traceur/Classes/StaticSymbol.js | 7 + .../test/fixtures/traceur/Classes/Strict.js | 36 +++ .../fixtures/traceur/Classes/SuperChaining.js | 28 ++ .../traceur/Classes/SuperChangeProto.js | 20 ++ .../fixtures/traceur/Classes/SuperInArrow.js | 19 ++ .../fixtures/traceur/Classes/SuperMissing.js | 40 +++ .../traceur/Classes/SuperNestedClass.js | 21 ++ .../fixtures/traceur/Classes/SuperPostfix.js | 23 ++ .../test/fixtures/traceur/Classes/SuperSet.js | 56 ++++ .../fixtures/traceur/Classes/SuperUnary.js | 26 ++ .../traceur/Classes/SuperWithoutExtends.js | 15 ++ .../test/fixtures/traceur/Classes/Types.js | 26 ++ .../test/fixtures/traceur/Collections/Map.js | 240 ++++++++++++++++++ .../test/fixtures/traceur/Collections/Set.js | 145 +++++++++++ .../traceur/Collections/SetWithSymbols.js | 2 + .../traceur/ComputedPropertyNames/Class.js | 48 ++++ .../ComputedPropertyNames.js | 35 +++ .../ComputedPropertyNames/Error_Disabled.js | 6 + .../traceur/ComputedPropertyNames/Symbol.js | 7 + .../DefaultParameters/Error_SetAccessor.js | 6 + .../traceur/DefaultParameters/Simple.js | 45 ++++ .../traceur/DefaultParameters/Strict.js | 6 + .../traceur/Destructuring/Arguments.js | 8 + .../fixtures/traceur/Destructuring/Array.js | 25 ++ .../ArrayPatternTrailingComma.js | 8 + .../ArrayPatternWithCoverInitializedName.js | 5 + .../ArrayPatternWithInitializer.js | 5 + .../traceur/Destructuring/ArrowFunction.js | 17 ++ .../fixtures/traceur/Destructuring/Catch.js | 30 +++ .../fixtures/traceur/Destructuring/Class.js | 28 ++ .../Destructuring/CoverInitializedName.js | 4 + .../traceur/Destructuring/CoverInitializer.js | 9 + .../Destructuring/CoverInitializerInForOf.js | 9 + .../traceur/Destructuring/DefaultParams.js | 5 + .../fixtures/traceur/Destructuring/Empty.js | 32 +++ .../traceur/Destructuring/Error_Disabled.js | 4 + .../Error_ForInWithInitializer.js | 4 + .../Error_ForOfWithInitializer.js | 4 + .../Destructuring/Error_InvalidArrowRest.js | 3 + .../Error_InvalidCoverInitializedName.js | 3 + .../Destructuring/EvaluatesToRvalue.js | 9 + .../traceur/Destructuring/EvaluationOrder.js | 10 + .../traceur/Destructuring/ForInLoop.js | 28 ++ .../traceur/Destructuring/ForOfLoop.js | 28 ++ .../Destructuring/FunctionArrayPattern.js | 14 + .../Destructuring/FunctionObjectPattern.js | 5 + .../traceur/Destructuring/Initializer.js | 74 ++++++ .../Destructuring/InitializerObject.js | 12 + .../fixtures/traceur/Destructuring/Method.js | 14 + ...ultipleCoverInitializersInArrowFunction.js | 4 + .../Destructuring/NestedScopeArguments.js | 11 + .../fixtures/traceur/Destructuring/Object.js | 42 +++ .../fixtures/traceur/Destructuring/Rest.js | 19 ++ .../traceur/Destructuring/RestIterator.js | 45 ++++ .../traceur/Destructuring/ScopeThis.js | 19 ++ .../traceur/Destructuring/SetAccessor.js | 14 + .../traceur/Destructuring/Simplify.js | 167 ++++++++++++ .../Destructuring/StrangeProperties.js | 17 ++ .../fixtures/traceur/Destructuring/Strict.js | 6 + .../traceur/Destructuring/TopLevel.js | 9 + .../traceur/Destructuring/ValueTypes.js | 58 +++++ .../fixtures/traceur/Destructuring/VarDecl.js | 27 ++ .../fixtures/traceur/Exponentiation/Basics.js | 42 +++ .../fixtures/traceur/ForOf/NewNoParens.js | 21 ++ .../GeneratorComprehension/Error_Disabled.js | 4 + .../Error_NotDefined.js | 5 + .../traceur/GeneratorComprehension/Simple.js | 40 +++ .../GeneratorComprehension/Skip_Closure.js | 23 ++ packages/babel/test/fixtures/traceur/LICENSE | 202 +++++++++++++++ .../fixtures/traceur/Math/acosh.module.js | 8 + .../fixtures/traceur/Math/asinh.module.js | 8 + .../fixtures/traceur/Math/atanh.module.js | 8 + .../test/fixtures/traceur/Math/cbrt.module.js | 8 + .../fixtures/traceur/Math/clz32.module.js | 9 + .../test/fixtures/traceur/Math/cosh.module.js | 11 + .../fixtures/traceur/Math/expm1.module.js | 9 + .../fixtures/traceur/Math/fround.module.js | 22 ++ .../fixtures/traceur/Math/hypot.module.js | 9 + .../test/fixtures/traceur/Math/imul.module.js | 8 + .../fixtures/traceur/Math/log10.module.js | 9 + .../fixtures/traceur/Math/log1p.module.js | 8 + .../test/fixtures/traceur/Math/log2.module.js | 9 + .../test/fixtures/traceur/Math/sign.module.js | 11 + .../test/fixtures/traceur/Math/sinh.module.js | 11 + .../test/fixtures/traceur/Math/tanh.module.js | 11 + .../fixtures/traceur/Math/trunc.module.js | 14 + .../Modules/EmptyNamedImport.module.js | 1 + .../Modules/Error_DuplicateImport.module.js | 10 + .../Modules/Error_ExportKeyword.module.js | 3 + .../Modules/Error_ExportKeyword2.module.js | 3 + .../Error_ExportStarConflict.module.js | 3 + .../Error_ExportStarDuplicateExport.module.js | 6 + .../Modules/Error_ImportDefault.module.js | 3 + .../Modules/Error_ImportStar.module.js | 4 + .../Modules/Error_InvalidExport.module.js | 3 + .../Modules/Error_InvalidExport2.module.js | 3 + .../Modules/Error_InvalidExport3.module.js | 3 + .../Error_InvalidModuleDeclaration.module.js | 7 + .../Error_InvalidModuleDeclaration2.module.js | 3 + .../Modules/Error_MissingExport.module.js | 7 + .../Modules/ExportDestructuring.module.js | 4 + .../Modules/ExportForwardDefault.module.js | 7 + .../traceur/Modules/ExportStar.module.js | 7 + .../traceur/Modules/ExportStarAs.module.js | 6 + .../traceur/Modules/Exports.module.js | 17 ++ .../Modules/ImportAsExportAs.module.js | 2 + .../traceur/Modules/ImportBasic.module.js | 3 + .../traceur/Modules/ImportCircular.module.js | 6 + .../traceur/Modules/ImportDefault.module.js | 17 ++ .../Modules/ImportEmptyImportClause.module.js | 4 + .../Modules/ImportFromModule.module.js | 17 ++ .../Modules/ImportNoImportClause.module.js | 4 + .../traceur/Modules/ImportPair.module.js | 10 + .../Modules/ImportReExportDefault.module.js | 2 + .../Modules/ImportReExportDefaultAs.module.js | 2 + .../traceur/Modules/ModuleDefault.module.js | 3 + .../traceur/Modules/ModuleName.module.js | 3 + .../traceur/Modules/StaticMethod.module.js | 2 + .../traceur/Modules/ThisInModules.module.js | 4 + .../traceur/Modules/resources/TestClass.js | 5 + .../fixtures/traceur/Modules/resources/a.js | 1 + .../fixtures/traceur/Modules/resources/a2.js | 1 + .../fixtures/traceur/Modules/resources/b.js | 1 + .../fixtures/traceur/Modules/resources/c.js | 1 + .../traceur/Modules/resources/clockwise.js | 4 + .../fixtures/traceur/Modules/resources/d.js | 1 + .../Modules/resources/default-and-named.js | 2 + .../resources/default-class-expression.js | 5 + .../Modules/resources/default-class.js | 7 + .../resources/default-function-expression.js | 3 + .../Modules/resources/default-function.js | 5 + .../traceur/Modules/resources/default-name.js | 2 + .../traceur/Modules/resources/default.js | 1 + .../Modules/resources/export-conflict.js | 2 + .../Modules/resources/export-destructuring.js | 1 + .../resources/export-forward-default-as.js | 3 + .../Modules/resources/export-star-as.js | 2 + .../fixtures/traceur/Modules/resources/f.js | 1 + .../fixtures/traceur/Modules/resources/i.js | 4 + .../fixtures/traceur/Modules/resources/m.js | 2 + .../fixtures/traceur/Modules/resources/m2.js | 2 + .../fixtures/traceur/Modules/resources/m3.js | 2 + .../fixtures/traceur/Modules/resources/n.js | 3 + .../fixtures/traceur/Modules/resources/o.js | 2 + .../fixtures/traceur/Modules/resources/p.js | 2 + .../Modules/resources/re-export-default-as.js | 1 + .../Modules/resources/re-export-default.js | 1 + .../traceur/Modules/resources/side-effect.js | 1 + .../traceur/Modules/resources/side-effect2.js | 3 + .../fixtures/traceur/Modules/resources/x.js | 1 + .../fixtures/traceur/Number/EPSILON.module.js | 10 + .../traceur/Number/MAX_SAFE_INTEGER.module.js | 4 + .../traceur/Number/MIN_SAFE_INTEGER.module.js | 4 + .../traceur/Number/isFinite.module.js | 30 +++ .../traceur/Number/isInteger.module.js | 30 +++ .../fixtures/traceur/Number/isNaN.module.js | 30 +++ .../traceur/Number/isSafeInteger.module.js | 33 +++ .../traceur/NumericLiteral/Error_Disabled.js | 4 + .../NumericLiteral/Error_NoBinaryDigits.js | 4 + .../NumericLiteral/Error_NoOctalDigits.js | 4 + .../fixtures/traceur/NumericLiteral/Simple.js | 101 ++++++++ .../test/fixtures/traceur/ObjectAssign.js | 11 + .../Error_Disabled.js | 5 + .../Error_Keyword.js | 3 + .../Error_MissingVar.js | 3 + .../Error_StrictKeyword.js | 12 + .../traceur/ObjectInitializerShorthand/Ok.js | 8 + .../StrictKeyword.js | 14 + .../babel/test/fixtures/traceur/ObjectIs.js | 34 +++ .../test/fixtures/traceur/PrependStatement.js | 18 ++ .../babel/test/fixtures/traceur/Promise.js | 9 + .../babel/test/fixtures/traceur/PromiseAll.js | 17 ++ .../test/fixtures/traceur/PromiseResolve.js | 3 + .../fixtures/traceur/PromiseThrowInResolve.js | 15 ++ .../Error_Disabled.js | 8 + .../Error_NotNamed.js | 8 + .../PropertyMethodAssignment.js | 71 ++++++ .../traceur/PureES6Transformer/Basic.js | 3 + .../traceur/RegularExpression/Simple.js | 12 + .../fixtures/traceur/Rest/Error_NotLast.js | 6 + .../traceur/Rest/Error_SetAccessor.js | 7 + .../test/fixtures/traceur/Rest/Simple.js | 16 ++ .../test/fixtures/traceur/Rest/Strict.js | 6 + .../fixtures/traceur/Scope/BlockBinding10.js | 15 ++ .../fixtures/traceur/Scope/BlockBinding11.js | 18 ++ .../fixtures/traceur/Scope/BlockBinding2.js | 15 ++ .../fixtures/traceur/Scope/BlockBinding3.js | 17 ++ .../fixtures/traceur/Scope/BlockBinding4.js | 14 + .../fixtures/traceur/Scope/BlockBinding5.js | 18 ++ .../fixtures/traceur/Scope/BlockBinding6.js | 14 + .../fixtures/traceur/Scope/BlockBinding7.js | 15 ++ .../fixtures/traceur/Scope/BlockBinding8.js | 15 ++ .../fixtures/traceur/Scope/BlockBinding9.js | 15 ++ .../Scope/BlockBindingHiddenOuterLet.js | 9 + .../Scope/BlockBindingSiblingRefenceError.js | 6 + .../Scope/DeconstructingBlockBinding.js | 12 + .../fixtures/traceur/Scope/DeepNestedLet.js | 12 + .../traceur/Scope/DeepNestedLetConst.js | 14 + .../traceur/Scope/DeepNestedLetVar.js | 14 + .../traceur/Scope/DeepNestedLetVarNoInit.js | 14 + .../Scope/Error_ConstMissingInitializer.js | 4 + .../fixtures/traceur/Scope/Error_Disabled.js | 6 + .../Scope/Error_ForInWithInitializerConst.js | 5 + .../Scope/Error_ForInWithInitializerLet.js | 5 + .../Scope/Error_ForInWithInitializerVar.js | 10 + .../Scope/Error_ForOfWithInitializerConst.js | 9 + .../Scope/Error_ForOfWithInitializerLet.js | 9 + .../Scope/Error_ForOfWithInitializerVar.js | 9 + .../Scope/Error_ForWithoutInitializerConst.js | 7 + .../Scope/Error_FunctionExpressionInBlock.js | 10 + .../traceur/Scope/ForInInitializers.js | 10 + .../fixtures/traceur/Scope/FunctionInBlock.js | 14 + .../traceur/Scope/LetForInInitializers1.js | 22 ++ .../traceur/Scope/LetForInitializers1.js | 14 + .../test/fixtures/traceur/Scope/LetInClass.js | 19 ++ .../fixtures/traceur/Scope/LetInClosure.js | 25 ++ .../test/fixtures/traceur/Scope/LetInFor.js | 7 + .../fixtures/traceur/Scope/LetInForBreak.js | 10 + .../traceur/Scope/LetInForBreakInner.js | 12 + .../traceur/Scope/LetInForBreakNamed.js | 13 + .../traceur/Scope/LetInForContinue.js | 10 + .../traceur/Scope/LetInForContinueInner.js | 12 + .../traceur/Scope/LetInForContinueNamed.js | 13 + .../fixtures/traceur/Scope/LetInGenerators.js | 15 ++ .../fixtures/traceur/Scope/LetInProperties.js | 19 ++ .../fixtures/traceur/Scope/LetInWhileLoop.js | 5 + .../traceur/Scope/LetInitializerFor1.js | 7 + .../traceur/Scope/LetInitializerFor2.js | 8 + .../traceur/Scope/LetInitializerFor3.js | 9 + .../traceur/Scope/LetInitializerForIn.js | 9 + .../traceur/Scope/LetNoInitializer.js | 10 + .../traceur/Scope/LetNoInitializerGlobal.js | 6 + .../traceur/Scope/LetReinitializeInLoop.js | 9 + .../test/fixtures/traceur/Scope/LetWithFor.js | 10 + .../fixtures/traceur/Scope/LetWithForIn.js | 10 + .../fixtures/traceur/Scope/LetWithSwitch.js | 16 ++ .../fixtures/traceur/Scope/LetWithSwitch2.js | 16 ++ .../traceur/Scope/NameBindingInFunction.js | 10 + .../fixtures/traceur/Scope/NestedForLoops.js | 40 +++ .../fixtures/traceur/Scope/NestedFunction1.js | 9 + .../fixtures/traceur/Scope/NestedFunction2.js | 10 + .../fixtures/traceur/Scope/NestedFunction3.js | 8 + .../test/fixtures/traceur/Scope/NestedLet.js | 11 + .../traceur/Scope/NestedLetConflict.js | 12 + .../fixtures/traceur/Scope/Regress1381.js | 8 + .../traceur/Scope/RenameFunctionBlock.js | 11 + .../fixtures/traceur/Scope/SiblingScopes.js | 15 ++ .../fixtures/traceur/Scope/TopLevelLet.js | 7 + .../traceur/Scope/TopLevelLetConst.js | 9 + .../fixtures/traceur/Scope/TopLevelLetVar.js | 9 + .../test/fixtures/traceur/Spread/Array.js | 14 + .../test/fixtures/traceur/Spread/Call.js | 22 ++ .../traceur/Spread/CallWithUndefined.js | 8 + .../test/fixtures/traceur/Spread/Class.js | 17 ++ .../fixtures/traceur/Spread/Error_Disabled.js | 4 + .../test/fixtures/traceur/Spread/Iterators.js | 17 ++ .../fixtures/traceur/Spread/MethodCall.js | 18 ++ .../traceur/Spread/MethodCallQuotedName.js | 18 ++ .../babel/test/fixtures/traceur/Spread/New.js | 26 ++ .../test/fixtures/traceur/Spread/New2.js | 23 ++ .../fixtures/traceur/Spread/NewBuiltin.js | 7 + .../fixtures/traceur/Spread/NoIterator.js | 1 + .../fixtures/traceur/Spread/NotAnObject.js | 1 + .../test/fixtures/traceur/Spread/String.js | 13 + .../test/fixtures/traceur/Spread/Type.js | 29 +++ .../traceur/StringExtras/CodePointAt.js | 76 ++++++ .../fixtures/traceur/StringExtras/EndsWith.js | 217 ++++++++++++++++ .../traceur/StringExtras/FromCodePoint.js | 25 ++ .../fixtures/traceur/StringExtras/Includes.js | 114 +++++++++ .../fixtures/traceur/StringExtras/Repeat.js | 33 +++ .../traceur/StringExtras/StartsWith.js | 210 +++++++++++++++ .../test/fixtures/traceur/StringIterator.js | 15 ++ .../traceur/SuperObjectLiteral/Error_Super.js | 10 + .../SuperObjectLiteral/SuperChaining.js | 30 +++ .../SuperObjectLiteral/SuperChangeProto.js | 22 ++ .../SuperObjectLiteral/SuperInArrow.js | 20 ++ .../SuperObjectLiteral/SuperNestedObject.js | 37 +++ .../SuperObjectLiteral/SuperPostfix.js | 22 ++ .../traceur/SuperObjectLiteral/SuperSet.js | 51 ++++ .../traceur/SuperObjectLiteral/SuperUnary.js | 25 ++ .../SuperObjectLiteral/SuperWithoutProto.js | 8 + .../traceur/Symbol/GetOwnPropertySymbols.js | 7 + .../test/fixtures/traceur/Symbol/Inherited.js | 27 ++ .../test/fixtures/traceur/Symbol/Object.js | 29 +++ .../fixtures/traceur/Symbol/ObjectModel.js | 13 + .../traceur/Symbol/TransformationOff.js | 8 + .../fixtures/traceur/Syntax/ArrayWithHoles.js | 10 + .../CaseClauseShouldBeStatementListItem.js | 14 + .../test/fixtures/traceur/Syntax/Empty.js | 0 .../traceur/Syntax/Error_Arguments.js | 6 + .../Syntax/Error_DeclarationInDoWhileClass.js | 4 + .../Syntax/Error_DeclarationInDoWhileConst.js | 4 + .../Error_DeclarationInDoWhileFunction.js | 4 + .../Syntax/Error_DeclarationInDoWhileLet.js | 4 + ...Error_DeclarationInDoWhileLetOpenSquare.js | 4 + .../traceur/Syntax/Error_DeclarationInElse.js | 22 ++ .../traceur/Syntax/Error_DeclarationInFor.js | 21 ++ .../Syntax/Error_DeclarationInForIn.js | 21 ++ .../Syntax/Error_DeclarationInForOf.js | 21 ++ .../traceur/Syntax/Error_DeclarationInIf.js | 21 ++ .../Syntax/Error_DeclarationInWhile.js | 21 ++ ...or_ForInLoopTooManyVariableDeclarations.js | 3 + ...or_ForOfLoopTooManyVariableDeclarations.js | 3 + .../traceur/Syntax/Error_FunctionParam.js | 5 + .../traceur/Syntax/Error_IllegalReturn.js | 3 + .../Syntax/Error_IllegalReturn.module.js | 3 + .../Error_IsValidSimpleAssignmentTarget.js | 41 +++ .../traceur/Syntax/Error_MultipleDefault.js | 12 + .../Syntax/Error_NoLineTerminatorPostfix.js | 7 + .../Syntax/Error_ParamDuplicateCheck.js | 27 ++ .../Error_ParamDuplicateCheckNonSimple.js | 64 +++++ .../traceur/Syntax/Error_RegExpNotClosed.js | 3 + .../Syntax/Error_StrictKeywordsInArguments.js | 14 + .../Error_StrictKeywordsInArgumentsPattern.js | 6 + ...InPropertyDefinitionIdentifierReference.js | 6 + .../Syntax/Error_StrictKeywordsInStrict.js | 6 + .../Error_UnicodeEscapeSequenceInName.js | 3 + .../traceur/Syntax/Error_WithInClass.js | 7 + .../Syntax/Error_WithInModule.module.js | 3 + .../Syntax/Error_WithInStrictFunction.js | 7 + .../Syntax/Error_WithInStrictProgram.js | 5 + .../traceur/Syntax/Error_YieldStarNewLine.js | 6 + .../traceur/Syntax/ExpressionValidation.js | 29 +++ .../traceur/Syntax/ImplicitSemiColon.js | 6 + .../traceur/Syntax/ImportFromTypo.module.js | 3 + .../fixtures/traceur/Syntax/InInBinding.js | 2 + .../Syntax/IsValidSimpleAssignmentTarget.js | 38 +++ .../Syntax/MultlineCommentIsNewLine.js | 28 ++ .../traceur/Syntax/NoNewLineHereEndOfFile.js | 3 + .../Syntax/NumberLiteralMemberExpression.js | 4 + .../Syntax/ParamDuplicateCheckNonSimpleOk.js | 15 ++ .../traceur/Syntax/ParamDuplicateCheckOk.js | 18 ++ .../traceur/Syntax/RegularExpression.js | 10 + .../fixtures/traceur/Syntax/StrictKeywords.js | 47 ++++ .../traceur/Syntax/StrictKeywordsInPattern.js | 39 +++ .../fixtures/traceur/Syntax/StringEscapes.js | 13 + .../Syntax/UnicodeEscapeSequenceInName.js | 5 + .../traceur/Syntax/UseStrictEscapeSequence.js | 7 + .../Syntax/UseStrictLineContinuation.js | 7 + .../test/fixtures/traceur/Syntax/null.js | 1 + .../TemplateLiterals/CallExpression.js | 18 ++ .../TemplateLiterals/CommaExpression.js | 10 + .../traceur/TemplateLiterals/Default.js | 95 +++++++ .../TemplateLiterals/Error_Disabled.js | 9 + .../Error_InvalidSubstitution.js | 5 + .../Error_InvalidSubstitution2.js | 5 + .../TemplateLiterals/Error_NotClosed.js | 5 + .../traceur/TemplateLiterals/InBlock.js | 9 + .../TemplateLiterals/InModule.module.js | 2 + .../TemplateLiterals/MemberExpression.js | 25 ++ .../traceur/TemplateLiterals/NewExpression.js | 44 ++++ .../traceur/TemplateLiterals/Strict.js | 7 + .../traceur/TemplateLiterals/StringRaw.js | 10 + .../fixtures/traceur/TemplateLiterals/Tag.js | 87 +++++++ .../TemplateObjectCaching.module.js | 17 ++ .../traceur/TemplateLiterals/resources/f.js | 3 + .../traceur/TemplateLiterals/resources/m.js | 3 + .../traceur/TemplateLiterals/resources/n.js | 3 + .../resources/template-objects.js | 13 + .../Error_CodePointTooHigh.js | 4 + .../UnicodeEscapeSequence/Error_Disabled.js | 4 + .../Error_HexDigitExpected.js | 4 + .../Error_HexDigitExpected2.js | 4 + .../Error_HexDigitExpected3.js | 4 + .../Error_HexDigitExpected4.js | 4 + .../traceur/UnicodeEscapeSequence/Simple.js | 15 ++ .../test/fixtures/traceur/Yield/Arguments.js | 8 + .../fixtures/traceur/Yield/BadIterable.js | 44 ++++ .../fixtures/traceur/Yield/BinaryOperator.js | 9 + .../test/fixtures/traceur/Yield/Break.js | 48 ++++ .../test/fixtures/traceur/Yield/BreakForOf.js | 54 ++++ .../fixtures/traceur/Yield/CommaOperator.js | 9 + .../test/fixtures/traceur/Yield/Continue.js | 18 ++ .../traceur/Yield/DefaultArguments.js | 7 + .../fixtures/traceur/Yield/DoGenerator.js | 19 ++ .../Yield/DoWhileStatementWithYield.js | 33 +++ .../fixtures/traceur/Yield/EmptyGenerator.js | 5 + .../fixtures/traceur/Yield/Error_Disabled.js | 8 + .../fixtures/traceur/Yield/Error_Disabled2.js | 7 + .../traceur/Yield/Error_MissingStar.js | 5 + .../test/fixtures/traceur/Yield/Finally.js | 22 ++ .../traceur/Yield/ForEmptyGenerator.js | 15 ++ .../fixtures/traceur/Yield/ForGenerator.js | 25 ++ .../fixtures/traceur/Yield/ForInGenerator.js | 27 ++ .../fixtures/traceur/Yield/ForInGenerator2.js | 28 ++ .../fixtures/traceur/Yield/ForInGenerator3.js | 27 ++ .../Yield/ForLexicallyNestedGenerator.js | 15 ++ .../fixtures/traceur/Yield/ForMissingParts.js | 95 +++++++ .../fixtures/traceur/Yield/ForOfGenerator.js | 49 ++++ .../traceur/Yield/ForOfIteratorException.js | 27 ++ .../fixtures/traceur/Yield/ForStatement.js | 46 ++++ .../traceur/Yield/FunctionDeclaration.js | 12 + .../fixtures/traceur/Yield/GeneratorReturn.js | 86 +++++++ .../fixtures/traceur/Yield/GeneratorSend.js | 232 +++++++++++++++++ .../fixtures/traceur/Yield/GeneratorThrow.js | 153 +++++++++++ .../Yield/GeneratorWithoutYieldOrReturn.js | 10 + .../test/fixtures/traceur/Yield/Hoisting.js | 13 + .../traceur/Yield/HoistingBlockbinding.js | 21 ++ .../fixtures/traceur/Yield/IfGenerator.js | 26 ++ .../traceur/Yield/IfStatementWithYield.js | 14 + .../traceur/Yield/LabelledBlockGenerator.js | 20 ++ .../traceur/Yield/LabelledBreakGenerator.js | 34 +++ .../traceur/Yield/MapFilterGenerator.js | 31 +++ .../fixtures/traceur/Yield/ObjectModel.js | 41 +++ .../traceur/Yield/OverrideGenerator.js | 14 + .../fixtures/traceur/Yield/ReturnCatch.js | 16 ++ .../fixtures/traceur/Yield/ReturnGenerator.js | 227 +++++++++++++++++ .../fixtures/traceur/Yield/ReturnInFinally.js | 33 +++ .../fixtures/traceur/Yield/ReturnYield.js | 55 ++++ .../fixtures/traceur/Yield/ReturnYieldFor.js | 15 ++ .../traceur/Yield/SequenceGenerator.js | 23 ++ .../fixtures/traceur/Yield/SimpleGenerator.js | 15 ++ .../traceur/Yield/StatementTestGenerator.js | 37 +++ .../fixtures/traceur/Yield/SwitchGenerator.js | 37 +++ .../traceur/Yield/SwitchStatementWithYield.js | 23 ++ .../babel/test/fixtures/traceur/Yield/This.js | 8 + .../fixtures/traceur/Yield/ThrowInCatch.js | 15 ++ .../fixtures/traceur/Yield/ThrowInIterator.js | 34 +++ .../babel/test/fixtures/traceur/Yield/Tree.js | 73 ++++++ .../babel/test/fixtures/traceur/Yield/Try.js | 52 ++++ .../test/fixtures/traceur/Yield/Try10.js | 90 +++++++ .../test/fixtures/traceur/Yield/Try11.js | 106 ++++++++ .../test/fixtures/traceur/Yield/Try12.js | 111 ++++++++ .../babel/test/fixtures/traceur/Yield/Try2.js | 57 +++++ .../babel/test/fixtures/traceur/Yield/Try3.js | 56 ++++ .../babel/test/fixtures/traceur/Yield/Try4.js | 80 ++++++ .../babel/test/fixtures/traceur/Yield/Try5.js | 95 +++++++ .../babel/test/fixtures/traceur/Yield/Try6.js | 74 ++++++ .../babel/test/fixtures/traceur/Yield/Try7.js | 78 ++++++ .../babel/test/fixtures/traceur/Yield/Try8.js | 83 ++++++ .../babel/test/fixtures/traceur/Yield/Try9.js | 90 +++++++ .../traceur/Yield/TryCatchGenerator.js | 153 +++++++++++ .../traceur/Yield/TryCatchYieldGenerator.js | 21 ++ .../traceur/Yield/TryFinallyGenerator.js | 39 +++ .../fixtures/traceur/Yield/WhileGenerator.js | 25 ++ .../traceur/Yield/WhileStatementWithYield.js | 33 +++ .../traceur/Yield/YieldAssignThrow.js | 18 ++ .../fixtures/traceur/Yield/YieldIdentifier.js | 29 +++ .../fixtures/traceur/Yield/YieldInFinally.js | 41 +++ .../traceur/Yield/YieldNoExpression.js | 19 ++ .../traceur/Yield/YieldUndefinedGenerator.js | 24 ++ .../test/fixtures/traceur/Yield/YieldYield.js | 19 ++ .../Yield/tryFinallyFinallyGenerator.js | 29 +++ packages/babel/test/traceur.js | 26 +- scripts/bootstrap.js | 1 - vendor/.babelrc | 3 - vendor/traceur | 1 - 578 files changed, 12430 insertions(+), 34 deletions(-) delete mode 100644 .gitmodules delete mode 120000 packages/babel/test/fixtures/traceur create mode 100644 packages/babel/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayComprehension/Closure.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayComprehension/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayExtras/Fill.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayExtras/Find.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayExtras/FindIndex.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayExtras/From.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayExtras/Of.js create mode 100644 packages/babel/test/fixtures/traceur/ArrayIterator.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRename.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Arguments.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Parens.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js create mode 100644 packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindings.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Basics.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Complete.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Empty.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Export.module.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Finally.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Finally2.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/PromiseCast.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Prototype.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Rethrow.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Return.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Throw.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Timeout.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Value.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/Yield.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncFunctions/resources/async-function.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/Array.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/Demo.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/ForOn.module.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/ForOnBody.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/Method.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/Property.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/YieldFor.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/YieldForOn.js create mode 100644 packages/babel/test/fixtures/traceur/AsyncGenerators/resources/observable.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ClassMethodInheritance.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ClassNameBinding.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ClassNameInStack.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Constructor.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ConstructorChaining.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ConstructorMember.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/DefaultConstructor.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/DeriveFromObject.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/EmptyClass.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_GH1556.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_NewSuper.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_NewSuper2.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_Super.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_SuperNestedClass.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ExtendCoverFormals.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ExtendObject.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/ExtendStrange.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/FieldInheritance.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/FieldInitializers.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/FieldLookup.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Fields.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Getters.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Inheritance.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/InheritanceFromNonclass.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/InheritanceNameBinding.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Method.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/MethodInheritance.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/MethodLookup.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/NameBinding.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/NestedClassSuper.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/NewClassExpression.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/NonEnum.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/OptionalParams.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/PropertyAccessors.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/PrototypeDescriptor.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/RestParams.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SemiColon.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SimpleSuper.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Skip_DerivedButton.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Static.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/StaticSuper.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/StaticSuperNoExtends.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/StaticSymbol.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Strict.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperChaining.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperChangeProto.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperInArrow.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperMissing.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperNestedClass.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperPostfix.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperSet.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperUnary.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/SuperWithoutExtends.js create mode 100644 packages/babel/test/fixtures/traceur/Classes/Types.js create mode 100644 packages/babel/test/fixtures/traceur/Collections/Map.js create mode 100644 packages/babel/test/fixtures/traceur/Collections/Set.js create mode 100644 packages/babel/test/fixtures/traceur/Collections/SetWithSymbols.js create mode 100644 packages/babel/test/fixtures/traceur/ComputedPropertyNames/Class.js create mode 100644 packages/babel/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js create mode 100644 packages/babel/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/ComputedPropertyNames/Symbol.js create mode 100644 packages/babel/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js create mode 100644 packages/babel/test/fixtures/traceur/DefaultParameters/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/DefaultParameters/Strict.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Arguments.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Array.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ArrowFunction.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Catch.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Class.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/CoverInitializedName.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/CoverInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/DefaultParams.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Empty.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/EvaluationOrder.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ForInLoop.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ForOfLoop.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Initializer.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/InitializerObject.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Method.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/NestedScopeArguments.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Object.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Rest.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/RestIterator.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ScopeThis.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/SetAccessor.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Simplify.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/StrangeProperties.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/Strict.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/TopLevel.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/ValueTypes.js create mode 100644 packages/babel/test/fixtures/traceur/Destructuring/VarDecl.js create mode 100644 packages/babel/test/fixtures/traceur/Exponentiation/Basics.js create mode 100644 packages/babel/test/fixtures/traceur/ForOf/NewNoParens.js create mode 100644 packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js create mode 100644 packages/babel/test/fixtures/traceur/GeneratorComprehension/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js create mode 100644 packages/babel/test/fixtures/traceur/LICENSE create mode 100644 packages/babel/test/fixtures/traceur/Math/acosh.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/asinh.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/atanh.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/cbrt.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/clz32.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/cosh.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/expm1.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/fround.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/hypot.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/imul.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/log10.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/log1p.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/log2.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/sign.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/sinh.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/tanh.module.js create mode 100644 packages/babel/test/fixtures/traceur/Math/trunc.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/EmptyNamedImport.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_ImportDefault.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_ImportStar.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Error_MissingExport.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ExportDestructuring.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ExportForwardDefault.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ExportStar.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ExportStarAs.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/Exports.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportAsExportAs.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportBasic.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportCircular.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportDefault.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportFromModule.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportNoImportClause.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportPair.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportReExportDefault.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ModuleDefault.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ModuleName.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/StaticMethod.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/ThisInModules.module.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/TestClass.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/a.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/a2.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/b.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/c.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/clockwise.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/d.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default-and-named.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default-class-expression.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default-class.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default-function-expression.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default-function.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default-name.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/default.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/export-conflict.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/export-destructuring.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/export-forward-default-as.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/export-star-as.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/f.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/i.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/m.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/m2.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/m3.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/n.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/o.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/p.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/re-export-default-as.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/re-export-default.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/side-effect.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/side-effect2.js create mode 100644 packages/babel/test/fixtures/traceur/Modules/resources/x.js create mode 100644 packages/babel/test/fixtures/traceur/Number/EPSILON.module.js create mode 100644 packages/babel/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js create mode 100644 packages/babel/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js create mode 100644 packages/babel/test/fixtures/traceur/Number/isFinite.module.js create mode 100644 packages/babel/test/fixtures/traceur/Number/isInteger.module.js create mode 100644 packages/babel/test/fixtures/traceur/Number/isNaN.module.js create mode 100644 packages/babel/test/fixtures/traceur/Number/isSafeInteger.module.js create mode 100644 packages/babel/test/fixtures/traceur/NumericLiteral/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js create mode 100644 packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js create mode 100644 packages/babel/test/fixtures/traceur/NumericLiteral/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectAssign.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js create mode 100644 packages/babel/test/fixtures/traceur/ObjectIs.js create mode 100644 packages/babel/test/fixtures/traceur/PrependStatement.js create mode 100644 packages/babel/test/fixtures/traceur/Promise.js create mode 100644 packages/babel/test/fixtures/traceur/PromiseAll.js create mode 100644 packages/babel/test/fixtures/traceur/PromiseResolve.js create mode 100644 packages/babel/test/fixtures/traceur/PromiseThrowInResolve.js create mode 100644 packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js create mode 100644 packages/babel/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js create mode 100644 packages/babel/test/fixtures/traceur/PureES6Transformer/Basic.js create mode 100644 packages/babel/test/fixtures/traceur/RegularExpression/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/Rest/Error_NotLast.js create mode 100644 packages/babel/test/fixtures/traceur/Rest/Error_SetAccessor.js create mode 100644 packages/babel/test/fixtures/traceur/Rest/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/Rest/Strict.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding10.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding11.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding2.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding3.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding4.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding5.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding6.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding7.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding8.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBinding9.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/DeepNestedLet.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/DeepNestedLetConst.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVar.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/ForInInitializers.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/FunctionInBlock.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetForInInitializers1.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetForInitializers1.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInClass.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInClosure.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInFor.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInForBreak.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInForBreakInner.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInForBreakNamed.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInForContinue.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInForContinueInner.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInForContinueNamed.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInGenerators.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInProperties.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInWhileLoop.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInitializerFor1.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInitializerFor2.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInitializerFor3.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetInitializerForIn.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetNoInitializer.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetReinitializeInLoop.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetWithFor.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetWithForIn.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetWithSwitch.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/LetWithSwitch2.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NameBindingInFunction.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NestedForLoops.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NestedFunction1.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NestedFunction2.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NestedFunction3.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NestedLet.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/NestedLetConflict.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/Regress1381.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/RenameFunctionBlock.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/SiblingScopes.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/TopLevelLet.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/TopLevelLetConst.js create mode 100644 packages/babel/test/fixtures/traceur/Scope/TopLevelLetVar.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/Array.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/Call.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/CallWithUndefined.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/Class.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/Iterators.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/MethodCall.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/MethodCallQuotedName.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/New.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/New2.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/NewBuiltin.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/NoIterator.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/NotAnObject.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/String.js create mode 100644 packages/babel/test/fixtures/traceur/Spread/Type.js create mode 100644 packages/babel/test/fixtures/traceur/StringExtras/CodePointAt.js create mode 100644 packages/babel/test/fixtures/traceur/StringExtras/EndsWith.js create mode 100644 packages/babel/test/fixtures/traceur/StringExtras/FromCodePoint.js create mode 100644 packages/babel/test/fixtures/traceur/StringExtras/Includes.js create mode 100644 packages/babel/test/fixtures/traceur/StringExtras/Repeat.js create mode 100644 packages/babel/test/fixtures/traceur/StringExtras/StartsWith.js create mode 100644 packages/babel/test/fixtures/traceur/StringIterator.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js create mode 100644 packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js create mode 100644 packages/babel/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js create mode 100644 packages/babel/test/fixtures/traceur/Symbol/Inherited.js create mode 100644 packages/babel/test/fixtures/traceur/Symbol/Object.js create mode 100644 packages/babel/test/fixtures/traceur/Symbol/ObjectModel.js create mode 100644 packages/babel/test/fixtures/traceur/Symbol/TransformationOff.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/ArrayWithHoles.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Empty.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_Arguments.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_FunctionParam.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_MultipleDefault.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_WithInClass.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_WithInModule.module.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/ExpressionValidation.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/ImplicitSemiColon.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/ImportFromTypo.module.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/InInBinding.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/RegularExpression.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/StrictKeywords.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/StringEscapes.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js create mode 100644 packages/babel/test/fixtures/traceur/Syntax/null.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/CallExpression.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/CommaExpression.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Default.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/InBlock.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/InModule.module.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/MemberExpression.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/NewExpression.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Strict.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/StringRaw.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/Tag.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/resources/f.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/resources/m.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/resources/n.js create mode 100644 packages/babel/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js create mode 100644 packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Arguments.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/BadIterable.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/BinaryOperator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Break.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/BreakForOf.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/CommaOperator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Continue.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/DefaultArguments.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/DoGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/EmptyGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Error_Disabled.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Error_Disabled2.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Error_MissingStar.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Finally.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForEmptyGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForInGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForInGenerator2.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForInGenerator3.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForMissingParts.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForOfGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForOfIteratorException.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ForStatement.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/FunctionDeclaration.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/GeneratorReturn.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/GeneratorSend.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/GeneratorThrow.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Hoisting.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/HoistingBlockbinding.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/IfGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/IfStatementWithYield.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/LabelledBlockGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/LabelledBreakGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/MapFilterGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ObjectModel.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/OverrideGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ReturnCatch.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ReturnGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ReturnInFinally.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ReturnYield.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ReturnYieldFor.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/SequenceGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/SimpleGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/StatementTestGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/SwitchGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/SwitchStatementWithYield.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/This.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ThrowInCatch.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/ThrowInIterator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Tree.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try10.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try11.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try12.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try2.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try3.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try4.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try5.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try6.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try7.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try8.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/Try9.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/TryCatchGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/TryFinallyGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/WhileGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/WhileStatementWithYield.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/YieldAssignThrow.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/YieldIdentifier.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/YieldInFinally.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/YieldNoExpression.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/YieldYield.js create mode 100644 packages/babel/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js delete mode 100644 vendor/.babelrc delete mode 160000 vendor/traceur diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index d5327c7e27..0000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "vendor/traceur"] - path = vendor/traceur - url = https://github.com/google/traceur-compiler diff --git a/packages/babel/test/fixtures/traceur b/packages/babel/test/fixtures/traceur deleted file mode 120000 index 6a1d2c380d..0000000000 --- a/packages/babel/test/fixtures/traceur +++ /dev/null @@ -1 +0,0 @@ -../../../../vendor/traceur/test/feature \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js b/packages/babel/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js new file mode 100644 index 0000000000..531f540a16 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js @@ -0,0 +1,12 @@ +// Options: --array-comprehension +// https://github.com/google/traceur-compiler/issues/1086 + +function f() { + var a = [for (x of [1]) arguments[0]]; + var b = [for (x of [1]) arguments[0]]; + assert.deepEqual(a, [arguments[0]]); + assert.deepEqual(a, [42]); + assert.deepEqual(a, b); +} + +f(42); diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Closure.js b/packages/babel/test/fixtures/traceur/ArrayComprehension/Closure.js new file mode 100644 index 0000000000..ed29b0b1fe --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayComprehension/Closure.js @@ -0,0 +1,11 @@ +// Options: --array-comprehension --block-binding +// Block binding is needed to get the right scoping semantics inside the arrow +// function in the comprehension. + +var res = [for (x of [0, 1]) for (y of [2, 3]) () => [x, y]]; + +assert.equal(4, res.length); +assertArrayEquals([0, 2], res[0]()); +assertArrayEquals([0, 3], res[1]()); +assertArrayEquals([1, 2], res[2]()); +assertArrayEquals([1, 3], res[3]()); diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js b/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js new file mode 100644 index 0000000000..2d02e90841 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --array-comprehension=false +// Error: :4:14: Unexpected reserved word for + +var array = [for (x of [0, 1, 2, 3, 4]) x]; diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js b/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js new file mode 100644 index 0000000000..ab0f5f9872 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js @@ -0,0 +1,5 @@ +// Options: --array-comprehension --free-variable-checker +// Error: :5:1: notDefined is not defined + +var array = [for (notDefined of [0]) notDefined]; +notDefined; diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Simple.js b/packages/babel/test/fixtures/traceur/ArrayComprehension/Simple.js new file mode 100644 index 0000000000..92fcdf0ab3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayComprehension/Simple.js @@ -0,0 +1,32 @@ +// Options: --array-comprehension + +function* range() { + for (var i = 0; i < 5; i++) { + yield i; + } +} + +var array = [for (x of [0, 1, 2, 3]) x]; +assertArrayEquals([0, 1, 2, 3], array); + +var array2 = [for (x of [0, 1, 2]) for (y of [0, 1, 2]) x + '' + y]; +assertArrayEquals(['00', '01', '02', '10', '11', '12', '20', '21', '22'], + array2); + +var array3 = [ + for (x of [0, 1, 2, 3, 4]) + for (y of range()) + if (x === y) + x + '' + y]; +assertArrayEquals(['00', '11', '22', '33', '44'], array3); + +// Ensure this works as expression statement +[for (testVar of []) testVar]; + +var array4 = [ + for (x of range()) + if (x % 2 === 0) + for (y of range()) + if (y % 2 === 1) + x + '' + y]; +assertArrayEquals(['01', '03', '21', '23', '41', '43'], array4); diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js b/packages/babel/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js new file mode 100644 index 0000000000..d2ffba4c71 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js @@ -0,0 +1,14 @@ +// Options: --array-comprehension +// https://github.com/google/traceur-compiler/issues/1086 + +var object = {}; + +function f() { + var a = [for (x of [1]) this]; + var b = [for (x of [1]) this]; + assert.deepEqual(a, [this]); + assert.deepEqual(a, [object]); + assert.deepEqual(a, b); +} + +f.call(object); diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/Fill.js b/packages/babel/test/fixtures/traceur/ArrayExtras/Fill.js new file mode 100644 index 0000000000..e90f7262e3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayExtras/Fill.js @@ -0,0 +1,47 @@ +// should have a length of 1 +assert.equal(Array.prototype.fill.length, 1); + +// should fill from basic case +assert.deepEqual([1, 2, 3].fill(5), [5, 5, 5]); + +// should fill from start +assert.deepEqual([1, 2, 3].fill(5, 1), [1, 5, 5]); + +// should fill from start to end +assert.deepEqual([1, 2, 3].fill(5, 1, 2), [1, 5, 3]); + +// should fill from negative start +assert.deepEqual([1, 2, 3].fill(5, -1), [1, 2, 5]); + +// should fill from negative start to positive end +assert.deepEqual([1, 2, 3].fill(5, -2, 3), [1, 5, 5]); + +// should fill from negative start to negative end +assert.deepEqual([1, 2, 3].fill(5, -3, -1), [5, 5, 3]); + +// should fill from positive start to negative end +assert.deepEqual([1, 2, 3].fill(5, 1, -1), [1, 5, 3]); + +// should fill custom object +assert.deepEqual(Array.prototype.fill.call({'0': 1, 'length': 3}, 5), {'0': 5, '1': 5, '2': 5, 'length': 3}); + +// should handle custom object with negative length +assert.deepEqual(Array.prototype.fill.call({'0': 2, 'length': -1}, 5), {'0': 2, 'length': -1}); + +// should handle no elements +assert.deepEqual([].fill(5), []); + +// should handle bad start +assert.deepEqual([1, 2, 3].fill(5, 'hello'), [5, 5, 5]); + +// should handle bad end +assert.deepEqual([1, 2, 3].fill(5, 1, {}), [1, 2, 3]); + +// should handle bad start and end +assert.deepEqual([1, 2, 3].fill(5, 'hello', {}), [1, 2, 3]); + + +// should handle bad this +assert.throws(function() { + Array.prototype.fill.call(null, 5) +}, TypeError); diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/Find.js b/packages/babel/test/fixtures/traceur/ArrayExtras/Find.js new file mode 100644 index 0000000000..123da41810 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayExtras/Find.js @@ -0,0 +1,88 @@ +// should have a length of 1 +assert.equal(Array.prototype.find.length, 1); + +// should handle basic case +assert.equal([1, 2, 3].find(function(v) { + return v * v === 4; +}), 2); + +// should handle arrow functions +assert.equal([1, 2, 3].find(v => v * v === 4), 2); + +// should return undefined when not found +assert.equal([1, 2, 3].find(v => v > 10), undefined); + +// should return first match +assert.equal([2, 2, 3].find(v => v * v === 4), 2); + +// should handle custom objects +assert.equal(Array.prototype.find.call({ + 'length': 2, + '0': false, + '1': true +}, v => v), true); + +// should handle bad predicate +assert.throws(function() { + [1, 2, 3].find(1) +}, TypeError); + +// should handle bad this +assert.throws(function() { + Array.prototype.find.call(null, function() {}) +}, TypeError); + +// should correctly handle this +var global = this; +({ + assert: function() { + var self = this; + + // should be global this + [1, 2, 3].find(function() { + assert.notEqual(this, self); + assert.equal(this, global); + }); + + // should be the same this + [1, 2, 3].find(function() { + assert.equal(this, self); + }, self); + + // should not have an effect on arrow functions + [1, 2, 3].find(() => assert.equal(this, self)); + [1, 2, 3].find(() => assert.equal(this, self), self); + + // should call with correct args + var arr = [5]; + arr.find(function(value, i, object) { + assert.equal(value, 5); + assert.equal(i, 0); + assert.equal(arr, object); + }); + } +}).assert(); + +var lengthCalls = 0; +var itemCalls = 0; +var callbackCalls = 0; +var object = { + length: { + valueOf() { + lengthCalls++; + return 3; + } + }, + get 2() { + itemCalls++; + return 'a'; + } +}; + +assert.equal(Array.prototype.find.call(object, (v) => { + callbackCalls++; + return v === 'a'; +}), 'a'); +assert.equal(lengthCalls, 1); +assert.equal(itemCalls, 1); +assert.equal(callbackCalls, 3); diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/FindIndex.js b/packages/babel/test/fixtures/traceur/ArrayExtras/FindIndex.js new file mode 100644 index 0000000000..f572f7b1e9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayExtras/FindIndex.js @@ -0,0 +1,47 @@ +// should have a length of 1 +assert.equal(Array.prototype.findIndex.length, 1); + +// should handle basic case +assert.equal([1, 2, 3].findIndex(function(v) { + return v * v === 4; +}), 1); + +// should handle arrow functions +assert.equal([1, 2, 3].findIndex(v => v * v === 4), 1); + +// should return -1 when not found +assert.equal([1, 2, 3].findIndex(v => v > 10), -1); + +// should return first match +assert.equal([2, 2, 3].findIndex(v => v * v === 4), 0); + +// should handle custom objects +assert.equal(Array.prototype.findIndex.call({ + 'length': 2, + '0': false, + '1': true +}, v => v), 1); + +var lengthCalls = 0; +var itemCalls = 0; +var callbackCalls = 0; +var object = { + length: { + valueOf() { + lengthCalls++; + return 3; + } + }, + get 2() { + itemCalls++; + return 'a'; + } +}; + +assert.equal(Array.prototype.findIndex.call(object, (v) => { + callbackCalls++; + return v === 'a'; +}), 2); +assert.equal(lengthCalls, 1); +assert.equal(itemCalls, 1); +assert.equal(callbackCalls, 3); diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/From.js b/packages/babel/test/fixtures/traceur/ArrayExtras/From.js new file mode 100644 index 0000000000..590f14261c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayExtras/From.js @@ -0,0 +1,158 @@ +// should have a length of 1 +assert.equal(Array.from.length, 1); +var arr; +var obj; + +// should make an array from arguments +function arrayFromArgs() { + return Array.from(arguments); +} +arr = arrayFromArgs('a', 1); + +assert.equal(arr.length, 2); +assert.deepEqual(arr, ['a', 1]); +assert.isTrue(Array.isArray(arr)); + +// should handle undefined values +var arrayLike = {0: 'a', 2: 'c', length: 3}; +arr = Array.from(arrayLike); + +assert.equal(arr.length, 3); +assert.deepEqual(arr, ['a', undefined, 'c']); +assert.isTrue(Array.isArray(arr)); + +// should use a mapFn +arr = Array.from([{'a': 1}, {'a': 2}], function(item, i) { + return item.a + i; +}); + +assert.deepEqual(arr, [1, 3]); + +// should set this in mapFn +var thisObj = {a: 10}; +arr = Array.from([{'a': 1}, {'a': 2}], function(item, i) { + return this.a + item.a + i; +}, thisObj); + +assert.deepEqual(arr, [11, 13]); + +// should map on array-like object +arr = Array.from({0: {'a': 5}, length: 1}, function(item, i) { + return item.a + i; +}); + +assert.deepEqual(arr, [5]); + +// should throw on bad map fn +assert.throws(function() { + Array.from([], null) +}, TypeError); + +// should make from an array-like object +var arrayLikeObj = function(len) { + this.length = len; +}; +arrayLikeObj.from = Array.from; +obj = arrayLikeObj.from(['a', 'b', 'c']); + +assert.equal(obj.length, 3); +assert.deepEqual(obj, {0: 'a', 1: 'b', 2: 'c', length: 3}); + +// should make from a non-array iterable +var calledIterator = 0; +var Iterable = function(len) { + var self = this; + + self.length = len; + self[Symbol.iterator] = function*() { + for (var i = 0; i < self.length; i++) { + calledIterator++; + yield self[i]; + } + }; +}; +var it = new Iterable(3); +it[0] = 'a'; +it[1] = 'b'; +it[2] = 'c'; +obj = Array.from(it); + +assert.equal(obj.length, 3); +assert.equal(obj[0], 'a'); +assert.equal(obj[1], 'b'); +assert.equal(obj[2], 'c'); +assert.equal(calledIterator, 3); + +// should make from a sub-classed array +var length = 0; +var constructorCounter = 0; +var lengthSetCounter = 0; +var lengthGetCounter = 0; + +class MyArray extends Array { + constructor(v) { + super(); + constructorCounter++; + assert.isUndefined(v); + } + + set length(v) { + lengthSetCounter++; + length = v; + } + + get length() { + lengthGetCounter++; + return length; + } +} + +var ma = MyArray.from(['a', 'b']); +assert.instanceOf(ma, MyArray); +assert.equal(constructorCounter, 1); +assert.equal(lengthSetCounter, 1); +assert.equal(lengthGetCounter, 0); +assert.isTrue(ma.hasOwnProperty('0')); +assert.isTrue(ma.hasOwnProperty('1')); +assert.isFalse(ma.hasOwnProperty('length')); +assert.equal(ma[0], 'a'); +assert.equal(ma[1], 'b'); +assert.equal(ma.length, 2); + +// should make from a sub-classed array without iterable +length = 0; +constructorCounter = 0; +lengthSetCounter = 0; +lengthGetCounter = 0; + +class MyArray2 extends MyArray { + constructor(v) { + super(); + constructorCounter++; + assert.equal(v, 2); + } +}; +MyArray2.prototype[Symbol.iterator] = undefined; + +class MyArray3 extends Array { + constructor(v) { + super(); + this.length = v; + } +} +MyArray3.prototype[Symbol.iterator] = undefined; + +var ma3 = new MyArray3(2); +ma3[0] = 'a'; +ma3[1] = 'b'; +ma = MyArray2.from(ma3); +assert.instanceOf(ma, MyArray2); +assert.equal(constructorCounter, 2); +assert.equal(lengthSetCounter, 1); +assert.equal(lengthGetCounter, 0); +assert.isTrue(ma.hasOwnProperty('0')); +assert.isTrue(ma.hasOwnProperty('1')); +assert.isFalse(ma.hasOwnProperty('length')); +assert.equal(ma[0], 'a'); +assert.equal(ma[1], 'b'); +assert.equal(ma.length, 2); diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/Of.js b/packages/babel/test/fixtures/traceur/ArrayExtras/Of.js new file mode 100644 index 0000000000..0616705b43 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayExtras/Of.js @@ -0,0 +1,37 @@ +var arr; + +// should have a length of 0 +assert.equal(Array.of.length, 0); + +//should return an array from arguments +arr = Array.of(1, 'a', 3); +assert.deepEqual(arr, [1, 'a', 3]); +assert.isTrue(arr instanceof Array); + +//should work with no arguments +arr = Array.of(); +assert.deepEqual(arr, []); +assert.isTrue(arr instanceof Array); + +//should work with sub-classed array +class MyArray extends Array {} + +arr = MyArray.of(4, 'b'); +assert.equal(arr[0], 4); +assert.equal(arr[1], 'b'); +assert.equal(arr.length, 2); +assert.isTrue(arr instanceof MyArray); + +//should call with exotic array +class ExoticArray { + constructor(len) { + this.length = len; + } +} +arr = Array.of.call(ExoticArray, 5, 'c', 6, 'd'); +assert.equal(arr[0], 5); +assert.equal(arr[1], 'c'); +assert.equal(arr[2], 6); +assert.equal(arr[3], 'd'); +assert.equal(arr.length, 4); +assert.isTrue(arr instanceof ExoticArray); diff --git a/packages/babel/test/fixtures/traceur/ArrayIterator.js b/packages/babel/test/fixtures/traceur/ArrayIterator.js new file mode 100644 index 0000000000..f9cc9d2ae4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrayIterator.js @@ -0,0 +1,27 @@ +var a = ['a', 'b', 'c']; + +var res = []; +for (var x of a) { + res.push(x); +} +assert.deepEqual(res, ['a', 'b', 'c']); + +assert.equal(a[Symbol.iterator], a.values); + +res = []; +for (var x of a.values()) { + res.push(x); +} +assert.deepEqual(res, ['a', 'b', 'c']); + +res = []; +for (var x of a.keys()) { + res.push(x); +} +assert.deepEqual(res, [0, 1, 2]); + +res = []; +for (var x of a.entries()) { + res.push(x); +} +assert.deepEqual(res, [[0, 'a'], [1, 'b'], [2, 'c']]); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRename.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRename.js new file mode 100644 index 0000000000..1c181f684e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRename.js @@ -0,0 +1,22 @@ +var global = this; +var self = {}; + +function outer() { + var f = () => { + assert.equal(this, self); + + var g = () => { + assert.equal(this, self); + }; + g(); + + var h = function() { + assert.equal(this, global); + }; + h(); + }; + + f(); +} + +outer.call(self); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js new file mode 100644 index 0000000000..11d03c767f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js @@ -0,0 +1,42 @@ + +var self = {}; + +function f() { + (() => { + assert.equal(self, this); + assert.equal(1, arguments.length); + assert.equal(42, arguments[0]); + + var THIS = 0; + var ARGUMENTS = 1; + + var object = { + function: function() { + return [this, arguments]; + }, + method() { + return [this, arguments]; + }, + arrow: () => { + return [this, arguments]; + } + }; + + assert.equal(object, object.function()[THIS]); + assert.equal(2, object.function('a', 'b')[ARGUMENTS].length); + assert.equal('a', object.function('a', 'b')[ARGUMENTS][0]); + assert.equal('b', object.function('a', 'b')[ARGUMENTS][1]); + + assert.equal(object, object.method()[THIS]); + assert.equal(3, object.method('c', 'd', 'e')[ARGUMENTS].length); + assert.equal('c', object.method('c', 'd', 'e')[ARGUMENTS][0]); + assert.equal('d', object.method('c', 'd', 'e')[ARGUMENTS][1]); + assert.equal('e', object.method('c', 'd', 'e')[ARGUMENTS][2]); + + assert.equal(self, object.arrow()[THIS]); + assert.equal(1, object.arrow('f', 'g')[ARGUMENTS].length); + assert.equal(42, object.arrow('f', 'g')[ARGUMENTS][0]); + })(); +} + +f.call(self, 42); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Arguments.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Arguments.js new file mode 100644 index 0000000000..ad94aa2b4f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Arguments.js @@ -0,0 +1,6 @@ +function f() { + var args = (() => arguments)(); + assert.equal(args, arguments); +} + +f(); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js new file mode 100644 index 0000000000..2aa3255ccd --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js @@ -0,0 +1,52 @@ +// Options: --block-binding + +// These tests are from: +// http://wiki.ecmascript.org/doku.php?id=strawman:arrow_function_syntax + +let empty = () => undefined; +assert.equal(empty(), undefined); + +// Expression bodies needs no parentheses or braces +let identity = (x) => x; +assert.equal(identity(empty), empty); + +// Object literals needs to be wrapped in parens. +let keyMaker = (val) => ({key: val}); +assert.equal(keyMaker(empty).key, empty); + +// => { starts a block. +let emptyBlock = () => {a: 42}; +assert.equal(emptyBlock(), undefined); + +// Nullary arrow function starts with arrow (cannot begin statement) +const preamble = 'hello'; +const body = 'world'; +let nullary = () => preamble + ': ' + body; +assert.equal('hello: world', nullary()); + +// No need for parens even for lower-precedence expression body +let square = x => x * x; +assert.equal(81, square(9)); + +let oddArray = []; +let array = [2, 3, 4, 5, 6, 7]; +array.forEach((v, i) => { if (i & 1) oddArray[i >>> 1] = v; }); +assert.equal('3,5,7', oddArray.toString()); + +var f = (x = 42) => x; +assert.equal(42, f()); + +{ + let g = (...xs) => xs; + assertArrayEquals([0, 1, true], g(0, 1, true)); +} + +var h = (x, ...xs) => xs; +assertArrayEquals([0, 1, true], h(-1, 0, 1, true)); + +assert.equal(typeof (() => {}), 'function'); +assert.equal(Object.getPrototypeOf(() => {}), Function.prototype); + +var i = ({a = 1}) => a; +assert.equal(i({}), 1); +assert.equal(i({a: 2}), 2); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js new file mode 100644 index 0000000000..f461959aaa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js @@ -0,0 +1,5 @@ +// https://github.com/google/traceur-compiler/issues/478 + +function f() { + (1 ? ({a=0}) => {} : 1); +} diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js new file mode 100644 index 0000000000..b342823845 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js @@ -0,0 +1,5 @@ +// Error: :4:16: Unexpected token = + +function f() { + ({a = (0, {a = 0})} = {}) +} diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js new file mode 100644 index 0000000000..6252ef4fcc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js @@ -0,0 +1,3 @@ +// Error: :3:5: Unexpected token = + +({a = 0}); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js new file mode 100644 index 0000000000..a5d260c392 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js @@ -0,0 +1,3 @@ +// Error: :3:18: Unexpected token = + +var f = ({x = {y = 1}) => 2; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js new file mode 100644 index 0000000000..a0c05a6f30 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --arrow-functions=false +// Error: :4:21: Unexpected token > + +var identity = (x) => x; diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js new file mode 100644 index 0000000000..4db02378a2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js @@ -0,0 +1,3 @@ +// Options: --arrow-functions --free-variable-checker +// Error: :3:35: missingIdentifier is not defined +var identity = (identityParam) => missingIdentifier; diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js new file mode 100644 index 0000000000..b0b6078c15 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js @@ -0,0 +1,3 @@ +// Error: :3:15: Unexpected token + + +var f = (a, b + 5) => a + b; diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js new file mode 100644 index 0000000000..f6f2497767 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js @@ -0,0 +1,4 @@ +// Error: :4:1: Unexpected token => + +x +=>1 diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js new file mode 100644 index 0000000000..932532c4b3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js @@ -0,0 +1,3 @@ +// Error: :3:26: Semi-colon expected + +var identity = (x) => {x}.bind({}); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js new file mode 100644 index 0000000000..b064f6d29d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js @@ -0,0 +1,4 @@ +// Error: :4:11: Semi-colon expected +// Error: :4:11: Unexpected token => + +(x) + (y) => y; diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js new file mode 100644 index 0000000000..c3e1bb2b8c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js @@ -0,0 +1,4 @@ +// Error: :4:9: Semi-colon expected +// Error: :4:9: Unexpected token => + +(x) + y => y; diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js new file mode 100644 index 0000000000..7276b3b180 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js @@ -0,0 +1,6 @@ +// Error: :5:17: Unexpected token , +// Error: :5:12: Unexpected token ... + +{ + let f = (...xs, x) => xs; +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js new file mode 100644 index 0000000000..7884adf087 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js @@ -0,0 +1,3 @@ +// Error: :3:13: Unexpected token ... + +var f = (x, ...xs); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js new file mode 100644 index 0000000000..d3681bd6b9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js @@ -0,0 +1,2 @@ +var identity = (identityParam) => identityParam; +assert.equal(1234, identity(1234)); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Parens.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Parens.js new file mode 100644 index 0000000000..1eae88e41e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Parens.js @@ -0,0 +1,19 @@ +class C { + constructor() { + } +} + +class D extends C { + constructor() { + super(); + this.x = { + y: () => { + return this; + } + }; + } +} + +var o = new D(); +assert.equal(typeof o.x.y, 'function'); +assert.equal(o.x.y(), o); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js new file mode 100644 index 0000000000..de7f381055 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js @@ -0,0 +1,39 @@ +// Skip. Not implemented. + +// TODO: needs # prefix implemented for freezing +// Use # to freeze and join to nearest relevant closure +function return_pure() { + return #(a) -> a * a; +} + +let p = return_pure(), + q = return_pure(); +assert(p === q); + +function check_frozen(o) { + try { + o.x = "expando"; + assert(! "reached"); + } catch (e) { + // e is something like "TypeError: o is not extensible" + assert(e.name == "TypeError"); + } +} + +check_frozen(p); + +function partial_mul(a) { + return #(b) -> a * b; +} + +let x = partial_mul(3), + y = partial_mul(4), + z = partial_mul(3); + +assert(x !== y); +assert(x !== z); +assert(y !== z); + +check_frozen(x); +check_frozen(y); +check_frozen(z); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js new file mode 100644 index 0000000000..27548d0d58 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js @@ -0,0 +1,19 @@ +// Skip. Not implemented. + +// TODO: needs the intializer shorthand implemented for arrow functions + +// Object intializer shorthand: "method" = function-valued property with dynamic ''this'' +const obj = { + method() -> { + return => this; + } +}; + +assert(obj.method() === obj); +assert(obj.method.call(u) === u); + +// Name binding forms hoist to body (var) or block (let, const) top +var warmer(a) -> { return a; }; +let warm(b) -> { return b; }; +const colder(c) -> { return c; }; +const #coldest(d) -> {...}; diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js new file mode 100644 index 0000000000..0ef4fd6835 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js @@ -0,0 +1,14 @@ +// Skip. Not implemented. + +// TODO: needs soft bind and ??= implemented + +// A special form based on the default operator proposal +const self_default_bound = (this ??= self, a, b) -> { + this.c = a * b; +} +self_default_bound(6, 7); +assert(self.c === 42); + +self_default_bound.call(other, 8, 9); +assert(other.c === 72); +assert(self.c === 42); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js new file mode 100644 index 0000000000..a00746bc7e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js @@ -0,0 +1,15 @@ + +var f1 = implements => implements; +var f2 = implements => { return implements; }; +var f3 = (implements) => { return implements; }; +assert.equal(1, f1(1)); +assert.equal(2, f2(2)); +assert.equal(3, f1(3)); + +var g = ({static}) => static; +assert.equal(4, g({static: 4})); + +var h1 = ([protected]) => protected; +var h2 = ([...protected]) => protected[0]; +assert.equal(5, h1([5])); +assert.equal(6, h2([6])); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js new file mode 100644 index 0000000000..4d2751ec7e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js @@ -0,0 +1,15 @@ +var obj = { + name: 'x', + method() { + var f = (x) => ({[this.name]: x}); + + var o = f(1); + assert.equal(1, o.x); + + this.name = 2; + o = f(3); + assert.equal(3, o[2]); + } +}; + +obj.method(); diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindings.js b/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindings.js new file mode 100644 index 0000000000..c3aee86629 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindings.js @@ -0,0 +1,18 @@ +// Options: --block-binding + +// These tests are from: +// http://wiki.ecmascript.org/doku.php?id=strawman:arrow_function_syntax + +const obj = { + method: function () { + return () => this; + } +}; +assert.equal(obj.method()(), obj); + +let fake = {steal: obj.method()}; +assert.equal(fake.steal(), obj); + +let real = {borrow: obj.method}; +assert.equal(real.borrow()(), real); + diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js new file mode 100644 index 0000000000..6525b1cc98 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js @@ -0,0 +1,21 @@ +// Options: --async-functions +// Async. + +function asyncComplete(self, arg) { + return new Promise((resolve) => { + resolve([self, arg]); + }); +} + +var self = {}; +var obj = {}; +var value; + +async function A() { + assert.equal(this, self); + var value = await asyncComplete(this, arguments[0]); + assert.deepEqual([self, obj], value); + done(); +} + +A.call(self, obj); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js new file mode 100644 index 0000000000..c02247d217 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js @@ -0,0 +1,9 @@ +// Options: --async-functions +// Async. + +var f = async () => 1; + +f().then((result) => { + assert.equal(result, 1); + done(); +}).catch(done); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js new file mode 100644 index 0000000000..289ba80d60 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js @@ -0,0 +1,9 @@ +// Options: --async-functions +// Async. + +var f = async x => x; + +f(1).then((result) => { + assert.equal(result, 1); + done(); +}).catch(done); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js new file mode 100644 index 0000000000..42e3f472b4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js @@ -0,0 +1,16 @@ +// Options: --async-functions +// Async. + +function g() { + var f = async (x = arguments) => [x, arguments]; + + f().then((result) => { + assert.equal(result[0][0], 1); + assert.equal(result[1][0], 1); + assert.equal(result[0][1], 2); + assert.equal(result[1][1], 2); + done(); + }).catch(done); +} + +g(1, 2); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js new file mode 100644 index 0000000000..d4d0f64028 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js @@ -0,0 +1,15 @@ +// Options: --async-functions +// Async. + +function g() { + var f = async (x = this) => [x, this]; + var p = {}; + f.call(p).then((result) => { + assert.equal(result[0], o); + assert.equal(result[1], o); + done(); + }).catch(done); +} + +var o = {}; +g.call(o); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js new file mode 100644 index 0000000000..4c9444da90 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js @@ -0,0 +1,31 @@ +// Options: --async-functions +// Async. + +function asyncTimeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +class C { + async test() { + var x = 0; + await asyncTimeout(1); + assert.equal(1, ++x); + await asyncTimeout(1); + assert.equal(2, ++x); + C.test(); + } + + static async test() { + var x = 0; + await asyncTimeout(1); + assert.equal(1, ++x); + await asyncTimeout(1); + assert.equal(2, ++x); + + done(); + } +} + +new C().test(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js new file mode 100644 index 0000000000..7020a6978d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js @@ -0,0 +1,21 @@ +// Options: --async-functions +// Async. + +function asyncTimeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +var object = { + async test() { + var x = 0; + await asyncTimeout(1); + assert.equal(1, ++x); + await asyncTimeout(1); + assert.equal(2, ++x); + done(); + } +} + +object.test(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js new file mode 100644 index 0000000000..75be014bc0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js @@ -0,0 +1,18 @@ +// Options: --async-functions + +var async; +async +function f() { + return async + async; +} + +async = 1; +assert.equal(async, 1); +assert.equal(f(), 2); + +async = async +function g() { + +} + +assert.equal(async, 1); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Basics.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Basics.js new file mode 100644 index 0000000000..9592812858 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Basics.js @@ -0,0 +1,46 @@ +// Options: --async-functions --generators=false +// Async. +// +// The --generators=false part is to test #1231 + +var f = (x, y) => ({x, y}); + +(async function() { + var x = await 1; + assert.equal(1, x); + x = await (await 2); + assert.equal(2, x); + x = (await 3, await 4); + assert.equal(4, x); + + x = f(await 5, await 6); + assert.deepEqual({x: 5, y: 6}, x); + x = await f(await 7, await 8); + assert.deepEqual({x: 7, y: 8}, x); + + if (await true) { + x = 9; + } else { + x = 10; + } + assert.equal(9, x); + if (await false) { + x = 11; + } else { + x = 12; + } + assert.equal(12, x); + + var j = 0; + for (var i = await 0; (await i) < (await 3); await i++) { + assert.equal(i, j++); + } + assert.equal(3, j); + + var g = (x) => x; + var h = () => 13; + x = await g({z: await h()}); + assert.deepEqual({z: 13}, x); + + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Complete.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Complete.js new file mode 100644 index 0000000000..948e11142a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Complete.js @@ -0,0 +1,16 @@ +// Options: --async-functions +// Async. + +function asyncComplete() { + return new Promise((resolve) => { + resolve('complete'); + }); +} + +// ---------------------------------------------------------------------------- + +(async function() { + var value = await asyncComplete(); + assert.equal('complete', value); + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Empty.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Empty.js new file mode 100644 index 0000000000..4cd44b74c9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Empty.js @@ -0,0 +1,10 @@ +// Options: --async-functions +// Async. + +async function empty() { +} + +empty().then((v) => { + assert.isUndefined(v); + done(); +}); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js new file mode 100644 index 0000000000..3973c62fc5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js @@ -0,0 +1,7 @@ +// Options: --async-functions +// Error: :7:5: Semi-colon expected +// Error: :7:5: Unexpected token => + +var async = () => 1; +var x = async +(y) => y; diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js new file mode 100644 index 0000000000..b48847aa1d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js @@ -0,0 +1,6 @@ +// Options: --async-functions +// Error: :6:1: Unexpected token => + +var async = () => 1; +var x = async (y) +=> y; diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js new file mode 100644 index 0000000000..ccfde7dd72 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js @@ -0,0 +1,15 @@ +// Disabled by default. +// Error: :13:21: Semi-colon expected + +function asyncComplete() { + return new Promise((resolve) => { + resolve('complete'); + }); +} + +// ---------------------------------------------------------------------------- + +(async function() { + var value = async asyncComplete(); + assert.equal('complete', value); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Export.module.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Export.module.js new file mode 100644 index 0000000000..cd23d5a62b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Export.module.js @@ -0,0 +1,18 @@ +// Options: --async-functions +// Async. + +import {asyncFunction} from './resources/async-function.js'; +import asyncFunctionDefault from './resources/async-function.js'; + +assert.instanceOf(asyncFunction(), Promise); +assert.instanceOf(asyncFunctionDefault(), Promise); + +(async function() { + var x = await asyncFunction(); + assert.equal(x, 1); + + var y = await asyncFunctionDefault(); + assert.equal(y, 2); + + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally.js new file mode 100644 index 0000000000..4e9f603625 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally.js @@ -0,0 +1,25 @@ +// Options: --async-functions +// Async. + +var finallyVisited = false; + +var resolve; +var p = new Promise((r) => { + resolve = r; +}); +var v; + +async function test() { + try { + v = await p; + } finally { + finallyVisited = true; + } + assert.equal(42, v); + assert.isTrue(finallyVisited); + done(); +} + +test(); +assert.isFalse(finallyVisited); +resolve(42); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally2.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally2.js new file mode 100644 index 0000000000..63cf8e1240 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally2.js @@ -0,0 +1,21 @@ +// Options: --async-functions +// Async. + +var finallyVisited = false; +var resolve; + +async function test() { + try { + await new Promise((r) => { + resolve = r; + }); + } finally { + finallyVisited = true; + } + assert.isTrue(finallyVisited); + done(); +} + +test(); +assert.isFalse(finallyVisited); +resolve(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/PromiseCast.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/PromiseCast.js new file mode 100644 index 0000000000..aabac1d0bb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/PromiseCast.js @@ -0,0 +1,12 @@ +// Options: --async-functions +// Async. + +async function f() { + var x = await 1; + assert.equal(x, 1); + x = await undefined; + assert.equal(x, undefined); + done(); +} + +f(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Prototype.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Prototype.js new file mode 100644 index 0000000000..cbdc07aeaa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Prototype.js @@ -0,0 +1,7 @@ +// Options: --async-functions + +async function f() { +} + +assert.equal(Object.getPrototypeOf(f), Function.prototype); +assert.instanceOf(f(), Promise); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Rethrow.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Rethrow.js new file mode 100644 index 0000000000..253b9ddfdf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Rethrow.js @@ -0,0 +1,13 @@ +// Options: --async-functions +// Async. + +async function rethrow(x) { + 1; + throw x; + 2; +} + +rethrow(2).catch((err) => { + assert.equal(err, 2) + done(); +}); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Return.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Return.js new file mode 100644 index 0000000000..fa98200106 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Return.js @@ -0,0 +1,16 @@ +// Options: --async-functions +// Async. + +async function ret(x) { + if (x > 1) + return x - 2; + return x + 3; +} + +(async function() { + var v = await ret(4); + assert.equal(v, 2); + v = await ret(0); + assert.equal(v, 3); + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Throw.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Throw.js new file mode 100644 index 0000000000..452312fae9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Throw.js @@ -0,0 +1,30 @@ +// Options: --async-functions +// Async. + +async function asyncThrow(e) { + if (true) + throw e; + await asyncYield(); +} + +function asyncYield() { + return asyncTimeout(0); +} + +function asyncTimeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +(async function() { + var value; + try { + value = await asyncThrow(1); + fail("shouldn't get here"); + } catch (e) { + assert.equal(1, e); + } + + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Timeout.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Timeout.js new file mode 100644 index 0000000000..a0803b1716 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Timeout.js @@ -0,0 +1,21 @@ +// Options: --async-functions +// Async. + +function asyncTimeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +(async function() { + var x = 0; + await asyncTimeout(1); + assert.equal(1, ++x); + await asyncTimeout(1); + assert.equal(2, ++x); + await asyncTimeout(1); + assert.equal(3, ++x); + await asyncTimeout(1); + assert.equal(4, ++x); + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Value.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Value.js new file mode 100644 index 0000000000..1a1aaf5f8c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Value.js @@ -0,0 +1,24 @@ +// Options: --async-functions +// Async. + +async function asyncValue(value) { + if (true) + return value; + await asyncYield(); +} + +function asyncYield() { + return asyncTimeout(0); +} + +function asyncTimeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +(async function() { + var value = await asyncValue(42); + assert.equal(42, value); + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Yield.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/Yield.js new file mode 100644 index 0000000000..dfb4bba86a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/Yield.js @@ -0,0 +1,17 @@ +// Options: --async-functions +// Async. + +function asyncYield() { + return asyncTimeout(0); +} + +function asyncTimeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +(async function() { + await asyncYield(); + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/resources/async-function.js b/packages/babel/test/fixtures/traceur/AsyncFunctions/resources/async-function.js new file mode 100644 index 0000000000..3431ca98d4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncFunctions/resources/async-function.js @@ -0,0 +1,7 @@ +export async function asyncFunction() { + return 1; +} + +export default async function() { + return 2; +}; diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Array.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/Array.js new file mode 100644 index 0000000000..e3c2359302 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/Array.js @@ -0,0 +1,14 @@ +// Options: --for-on --async-functions +// Async. + +(async function() { + const list = []; + const g = [1, 2, 3]; + for (var i on g) { + list.push(i); + } + assert.deepEqual(list, [1, 2, 3]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js new file mode 100644 index 0000000000..a04d7239b9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js @@ -0,0 +1,18 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f() { + yield 1; +} + +(async function() { + var list = []; + var g = f(); + for (var i on g) { + list.push(i); + } + assert.deepEqual(list, [1]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js new file mode 100644 index 0000000000..cb31ec9a54 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js @@ -0,0 +1,21 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f() { + await yield 1; + await yield 2; + await yield 3; +} + +(async function() { + var list = []; + var g = f(); + for (var i on g) { + list.push(i); + await Promise.resolve().then(() => list.push(i + 3)); + } + assert.deepEqual(list, [1, 4, 2, 5, 3, 6]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Demo.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/Demo.js new file mode 100644 index 0000000000..a9a854ce70 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/Demo.js @@ -0,0 +1,29 @@ +// Options: --async-functions --async-generators --for-on +// Async. + +function timeout(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +} + +async function* asyncStream() { + var i = 0; + while (true) { + await timeout(5); + yield i; + ++i; + } +} + +(async function() { + var count = 0; + for (value on asyncStream()) { + count += value; + if (value === 3) { + break; // stops the async generator as well + } + } + assert.equal(count, 6); // 6 = 1 + 2 + 3 + done(); +})(); diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOn.module.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOn.module.js new file mode 100644 index 0000000000..6ba98faaf5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOn.module.js @@ -0,0 +1,75 @@ +// Async. +// Options: --async-functions --for-on + +import {AsyncGeneratorFunction} from './resources/observable.js'; + +var o1 = new AsyncGeneratorFunction(function* () { + // TODO(mnieper): As soon as proper async generators are implemented, they + // should be used here. + yield 1; + yield 2; + yield 3; + return 4; +}); + +(async function () { + + // test for on + var squares = []; + for (var i on o1) { + squares.push(i * i); + } + assert.deepEqual(squares, [1, 4, 9]); + + // test break + var cubes = []; + for (var i on o1) { + if (i > 2) { + break; + } + cubes.push(i * i * i); + } + assert.deepEqual(cubes, [1, 8]); + + // test continue + var list = []; + for (var i on o1) { + if (i === 2) { + continue; + } + list.push(i); + } + assert.deepEqual(list, [1, 3]); + + // test outer continue + var almostEmpty = []; + label: do { + for (var i on o1) { + if (i === 2) { + continue label; + } + almostEmpty.push(i); + } + } while (false); + assert.deepEqual(almostEmpty, [1]); + + // test return + var value = await (async function () { + for (var i on o1) { + if (i === 1) { + return 42; + } + } + })(); + assert.equal(value, 42); + + // test asynchronous loop body + var sum = 0; + for (var i on o1) { + sum += i; + await Promise.resolve(); + } + assert.equal(sum, 6); + + done(); +}()).catch(done); diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOnBody.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOnBody.js new file mode 100644 index 0000000000..2d90d1fd8e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOnBody.js @@ -0,0 +1,14 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* x() { +} + +async function y() { + for (let a on x()) + break; +} + +y() + +done(); diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Method.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/Method.js new file mode 100644 index 0000000000..de739c2d4d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/Method.js @@ -0,0 +1,20 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +class C { + static async* f() { + yield 1; + } +} + +(async function() { + var list = []; + var g = C.f(); + for (var i on g) { + list.push(i); + } + assert.deepEqual(list, [1]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Property.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/Property.js new file mode 100644 index 0000000000..53e926ac3a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/Property.js @@ -0,0 +1,20 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +var C = { + async* f() { + yield 1; + } +}; + +(async function() { + var list = []; + var g = C.f(); + for (var i on g) { + list.push(i); + } + assert.deepEqual(list, [1]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js new file mode 100644 index 0000000000..08e40ca5ab --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js @@ -0,0 +1,24 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f() { + yield 1; + yield 2; + yield 3; +} + + +(async function() { + var list = []; + var g = f(); + for (var i on g) { + if (i === 2) { + break; + } + list.push(i); + } + assert.deepEqual(list, [1]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js new file mode 100644 index 0000000000..346ddcf9c8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js @@ -0,0 +1,19 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f(a) { + yield this[0]; + yield arguments[0]; +} + +(async function() { + var list = []; + var g = f.call([1], 2); + for (var i on g) { + list.push(i); + } + assert.deepEqual(list, [1, 2]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js new file mode 100644 index 0000000000..633baf4a62 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js @@ -0,0 +1,28 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f() { + for (var i = 1; i < 4; ++i) { + yield i; + } +} + + +(async function() { + var list = []; + var g = f(); + try { + for (var i on g) { + if (i == 2) { + throw 'ex'; + } + list.push(i); + } + } catch (ex) { + assert.equal(ex, 'ex'); + } + assert.deepEqual(list, [1]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldFor.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldFor.js new file mode 100644 index 0000000000..497b4e9fec --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldFor.js @@ -0,0 +1,25 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f1() { + yield 1; + yield* f2(); + yield 4; +} + +async function* f2() { + yield 2; + yield 3; +} + +(async function() { + var list = []; + var g = f1(); + for (var i on g) { + list.push(i); + } + assert.deepEqual(list, [1, 2, 3, 4]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldForOn.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldForOn.js new file mode 100644 index 0000000000..4f25f39719 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldForOn.js @@ -0,0 +1,24 @@ +// Options: --async-generators --for-on --async-functions +// Async. + +async function* f() { + yield 1; + yield 2; +} + +async function* g() { + for (i on f()) { + yield 2 * i; + } +} + +(async function() { + var list = []; + for (var i on g()) { + list.push(i); + } + assert.deepEqual(list, [2, 4]); + + done(); +})().catch(done); + diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/resources/observable.js b/packages/babel/test/fixtures/traceur/AsyncGenerators/resources/observable.js new file mode 100644 index 0000000000..bc401dd208 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/AsyncGenerators/resources/observable.js @@ -0,0 +1,71 @@ +const generator = Symbol(); +const onDone = Symbol(); +const generatorFunction = Symbol(); + +function schedule(asyncF) { + return Promise.resolve().then(asyncF); +} + +class DecoratedGenerator { + constructor(_generator, _onDone) { + this[generator] = _generator; + this[onDone] = _onDone; + } + + next(value) { + var result = this[generator].next(); + if (result.done) { + this[onDone].call(this); + } + return result; + } + + throw(error) { + this[onDone].call(this); + return this[generator].throw(error); + } + + return(value) { + this[onDone].call(this); + return this[generator].return(value); + } +} + + +export class AsyncGeneratorFunction { + constructor(_generatorFunction) { + this[generatorFunction] = _generatorFunction; + } + + [Symbol.observer](observer) { + var generator = this[generatorFunction].call(this); + var done = false; + schedule(async function () { + var result; + while (!done) { + try { + result = generator.next(); + } catch (e) { + observer.throw(e); + return; + } + if (result.done) { + observer.return(result.value); + return; + } + try { + result = observer.next(result.value); + } catch (e) { + generator.throw(e); + } + if (result.done) { + generator.return(); + return; + } + await result.value; + } + generator.return(); + }); + return new DecoratedGenerator(observer, () => { done = true }); + } +} diff --git a/packages/babel/test/fixtures/traceur/Classes/ClassMethodInheritance.js b/packages/babel/test/fixtures/traceur/Classes/ClassMethodInheritance.js new file mode 100644 index 0000000000..c957d1188e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ClassMethodInheritance.js @@ -0,0 +1,23 @@ +function B() {} +B.b = function() { + return 'B.b'; +}; + +class C extends B {} + +assert.equal(Object.getPrototypeOf(C), B); +assert.equal(Object.getPrototypeOf(C.prototype), B.prototype); + +assert.equal(C.b(), 'B.b'); + +class D extends Object {} + +assert.equal(Object.getPrototypeOf(D), Object); +assert.equal(Object.getPrototypeOf(D.prototype), Object.prototype); +assert.equal(D.keys, Object.keys); + +class E {} + +assert.equal(Object.getPrototypeOf(E), Function.prototype); +assert.equal(Object.getPrototypeOf(E.prototype), Object.prototype); +assert.isFalse('keys' in E); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Classes/ClassNameBinding.js b/packages/babel/test/fixtures/traceur/Classes/ClassNameBinding.js new file mode 100644 index 0000000000..de7df429f9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ClassNameBinding.js @@ -0,0 +1,41 @@ + +var ClassExpr = class { + m() { + return ClassExpr; + } +} + +var TempClass = ClassExpr; +ClassExpr = 42; + +assert.equal(42, new TempClass().m()); +assert.equal(TempClass.name, ''); + +////////////////////////////////////////////////////////////////////////////// + +var ClassExpr2 = class ClassExprInner { + m() { + return ClassExprInner; + } +} + +TempClass = ClassExpr2; +ClassExpr2 = 42; + +assert.equal(TempClass, new TempClass().m()); +assert.equal(TempClass.name, 'ClassExprInner'); + +////////////////////////////////////////////////////////////////////////////// + +class ClassDef { + m() { + return ClassDef; + } +} + +var TempClass = ClassDef; +ClassDef = 42; + +assert.equal(TempClass, new TempClass().m()); +// IE does not have a name property on functions. +assert.isTrue(TempClass.name === 'ClassDef' || TempClass.name === undefined); diff --git a/packages/babel/test/fixtures/traceur/Classes/ClassNameInStack.js b/packages/babel/test/fixtures/traceur/Classes/ClassNameInStack.js new file mode 100644 index 0000000000..41d1fe4a3f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ClassNameInStack.js @@ -0,0 +1,29 @@ +class MyClassName { + m() { + throw new Error(); + } +} + +try { + new MyClassName().m(); + fail('Should have thrown'); +} catch (ex) { + if (ex.stack) + assert.isTrue(String(ex.stack).indexOf('MyClassName') >= 0); +} + +////////////////////////////////////////////////////////////////////////////// + +class MySecondClass extends MyClassName{ + m() { + throw new Error(); + } +} + +try { + new MySecondClass().m(); + fail('Should have thrown'); +} catch (ex) { + if (ex.stack) + assert.isTrue(String(ex.stack).indexOf('MySecondClass') >= 0); +} diff --git a/packages/babel/test/fixtures/traceur/Classes/Constructor.js b/packages/babel/test/fixtures/traceur/Classes/Constructor.js new file mode 100644 index 0000000000..ce76af6bef --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Constructor.js @@ -0,0 +1,34 @@ +class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } +} + +class A { + classRef() { + return A; + } +}; + +var p = new Point(1, 2); +assert.equal(1, p.x); +assert.equal(2, p.y); + +var p2 = new Point(3, 4); +assert.equal(3, p2.x); +assert.equal(4, p2.y); +assert.equal(1, p.x); +assert.equal(2, p.y); + +for (var element in Point) { + fail('Point contains static member : ' + element); +} + +// Tests to ensure that we're not binding function identifier per class +var a = new A(); +var tmpA = A; +A = 42; +assert.equal(tmpA, a.classRef()); +// IE does not have a name property on functions. +assert.isTrue(tmpA.name === 'A' || tmpA.name === undefined); diff --git a/packages/babel/test/fixtures/traceur/Classes/ConstructorChaining.js b/packages/babel/test/fixtures/traceur/Classes/ConstructorChaining.js new file mode 100644 index 0000000000..7d2a4bd936 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ConstructorChaining.js @@ -0,0 +1,22 @@ +class ConstructorA { + constructor(x) { + this.x = x; + } +} + +class ConstructorB extends ConstructorA { + constructor(x, y) { + super(x); + this.y = y; + } +} + +// ---------------------------------------------------------------------------- + +var a = new ConstructorA('ax'); +assert.equal('ax', a.x); +assert.isFalse(a.hasOwnProperty('y')); + +var b = new ConstructorB('bx', 'by'); +assert.equal('bx', b.x); +assert.equal('by', b.y); diff --git a/packages/babel/test/fixtures/traceur/Classes/ConstructorMember.js b/packages/babel/test/fixtures/traceur/Classes/ConstructorMember.js new file mode 100644 index 0000000000..d437456e1e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ConstructorMember.js @@ -0,0 +1,27 @@ +class ConstructorMember { + constructor() {} +} + +class DerivedConstructorMember extends ConstructorMember { + constructor() { + super(); + } +} + +// ---------------------------------------------------------------------------- + +var cm = new ConstructorMember; +assert.equal(cm.constructor, ConstructorMember.prototype.constructor); +assert.isTrue(ConstructorMember.prototype.hasOwnProperty('constructor')); + +for (var key in ConstructorMember) { + assert.notEqual('constructor should not be enumerable', 'constructor', key); +} + +var dcm = new DerivedConstructorMember; +assert.equal(dcm.constructor, DerivedConstructorMember.prototype.constructor); +assert.isTrue(DerivedConstructorMember.prototype.hasOwnProperty('constructor')); + +for (var key in DerivedConstructorMember) { + assert.notEqual('constructor should not be enumerable', 'constructor', key); +} diff --git a/packages/babel/test/fixtures/traceur/Classes/DefaultConstructor.js b/packages/babel/test/fixtures/traceur/Classes/DefaultConstructor.js new file mode 100644 index 0000000000..057d30e24e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/DefaultConstructor.js @@ -0,0 +1,31 @@ +class B { + constructor(x, y) { + this.x = x; + this.y = y; + } +} + +class C extends B { + // No constructor +} + +var c = new B(1, 2); +assert.equal(1, c.x); +assert.equal(2, c.y); + +assert.isFalse( + Object.getOwnPropertyDescriptor(B.prototype, 'constructor').enumerable); +assert.isFalse( + Object.getOwnPropertyDescriptor(C.prototype, 'constructor').enumerable); + +// Ensure that we don't try to call super() in the default constructor. +class D extends null {} +var d = new D(); + + +class E extends function(x) { + this.x = x; +} {} + +var e = new E(42) +assert.equal(42, e.x); diff --git a/packages/babel/test/fixtures/traceur/Classes/DeriveFromObject.js b/packages/babel/test/fixtures/traceur/Classes/DeriveFromObject.js new file mode 100644 index 0000000000..852ca2b0fc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/DeriveFromObject.js @@ -0,0 +1,6 @@ +class DerivedFromObject extends Object { +} + +// ---------------------------------------------------------------------------- + +// TODO(rnystrom): No tests for this? diff --git a/packages/babel/test/fixtures/traceur/Classes/EmptyClass.js b/packages/babel/test/fixtures/traceur/Classes/EmptyClass.js new file mode 100644 index 0000000000..733584a99b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/EmptyClass.js @@ -0,0 +1,29 @@ +class Empty {} + +class EmptyB extends Empty { +} + +// ---------------------------------------------------------------------------- + +var e = new Empty(); +assert.isNotNull(e); + +for (var element in e) { + assert.equal('constructor', element); +} + +for (var element in Empty) { + fail('Empty contains static member : ' + element); +} + +// Instances should be different. +var e2 = new Empty(); +assert.notEqual(e, e2); + +assert.isTrue(e instanceof Empty); +assert.isFalse(e instanceof EmptyB); + +var b = new EmptyB(); + +assert.isTrue(b instanceof Empty); +assert.isTrue(b instanceof EmptyB); diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_Disabled.js b/packages/babel/test/fixtures/traceur/Classes/Error_Disabled.js new file mode 100644 index 0000000000..8735ad59c0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --classes=false +// Error: :4:1: Unexpected reserved word + +class C {} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_GH1556.js b/packages/babel/test/fixtures/traceur/Classes/Error_GH1556.js new file mode 100644 index 0000000000..88f0c96893 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_GH1556.js @@ -0,0 +1,5 @@ +// Error: :5:19: Unexpected token = + +// extends LeftHandSideExpression +// see https://github.com/google/traceur-compiler/issues/1556 +class A extends B = C {} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js b/packages/babel/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js new file mode 100644 index 0000000000..4171a7daa5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js @@ -0,0 +1,22 @@ +// Error: :8:14: super is only allowed in methods +// Error: :14:16: super is only allowed in methods +// Error: :19:19: super is only allowed in methods + +class C { + superM() { + return (function() { + return super.m(); + })(); + } + superX2() { + return (function() { + return (function() { + return super.x; + })(); + })(); + } + constructor() { + (function() { super(); })(); + } +} + diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper.js b/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper.js new file mode 100644 index 0000000000..abbfa06a88 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper.js @@ -0,0 +1,7 @@ +// Error: :5:14: Unexpected token ( + +class C { + m() { + new super(); + } +} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper2.js b/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper2.js new file mode 100644 index 0000000000..40622d3632 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper2.js @@ -0,0 +1,7 @@ +// Error: :6:3: Unexpected token } + +class C { + m() { + new super + } +} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js b/packages/babel/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js new file mode 100644 index 0000000000..184a79a41d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js @@ -0,0 +1,9 @@ +// Error: :6:3: Derived constructor must call super() + +class B {} + +class C extends B { + constructor() { + // no super call + } +} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_Super.js b/packages/babel/test/fixtures/traceur/Classes/Error_Super.js new file mode 100644 index 0000000000..9855970fb1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_Super.js @@ -0,0 +1,10 @@ +// Error: :7:17: Unexpected token ; + +class A {} + +class ImproperSuper extends A { + method() { + return super; + } +} + diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js b/packages/babel/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js new file mode 100644 index 0000000000..0947e2ad35 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js @@ -0,0 +1,10 @@ +// Error: :7:18: Unexpected token ` + +class A {} + +class ImproperSuper extends A { + method() { + return super ``; + } +} + diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js b/packages/babel/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js new file mode 100644 index 0000000000..1c936ac286 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js @@ -0,0 +1,7 @@ +// Error: :5:5: super call is only allowed in derived constructor + +class C { + constructor() { + super(); + } +} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperNestedClass.js b/packages/babel/test/fixtures/traceur/Classes/Error_SuperNestedClass.js new file mode 100644 index 0000000000..2ad46de00a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_SuperNestedClass.js @@ -0,0 +1,15 @@ +// Error: :12:5: 'this' is not allowed before super() + +class Animal {} + +class Roo extends Animal { + constructor() { + class Koala extends Animal { + constructor() { + super(); + } + } + this.a = new Koala; + super(); + } +} diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js b/packages/babel/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js new file mode 100644 index 0000000000..923804325c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js @@ -0,0 +1,10 @@ +// Error: :6:3: super is only allowed in methods +// Error: :9:15: super is only allowed in methods +// Error: :10:17: super is only allowed in methods + +function f() { + super.x; +} + +var g = () => super.y; +var h = () => { super.z; } diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendCoverFormals.js b/packages/babel/test/fixtures/traceur/Classes/ExtendCoverFormals.js new file mode 100644 index 0000000000..bebe84c82c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ExtendCoverFormals.js @@ -0,0 +1,10 @@ +class C {} + +var x = 1; +var y = C; +class D extends (x, y) { + +} + +assert.instanceOf(new D(), C); +assert.instanceOf(new D(), D); diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js b/packages/babel/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js new file mode 100644 index 0000000000..8093c9534a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js @@ -0,0 +1,11 @@ + +assert.throw(function() { + class C extends Math {} +}, 'Super expression must either be null or a function'); + +assert.throw(function() { + function f() {} + // prototype needs to be an Object or null. + f.prototype = 42; + class C extends f {} +}, 'super prototype must be an Object or null'); diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendObject.js b/packages/babel/test/fixtures/traceur/Classes/ExtendObject.js new file mode 100644 index 0000000000..e5b11ffe2d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ExtendObject.js @@ -0,0 +1,4 @@ +// Can no longer extend objects. +assert.throw(function() { + class C extends {} {} +}, TypeError); diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendStrange.js b/packages/babel/test/fixtures/traceur/Classes/ExtendStrange.js new file mode 100644 index 0000000000..3911d03ddb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/ExtendStrange.js @@ -0,0 +1,54 @@ +class C extends null {} + +var c = new C; +assert.isTrue(c instanceof C); +assert.isFalse(c instanceof Object); + +// Closure testing framework tries to toString the object and fails. +assert.isTrue(Object.getPrototypeOf(c) === C.prototype); +assert.isTrue(Object.getPrototypeOf(Object.getPrototypeOf(c)) === null); + +assert.equal(c.toString, undefined); + +class D extends null { + constructor(...args) { + super(...args); + } +} + +// super() does not depend on the [HomeObject]. It just calls the [Prototype] +// of the function. +new D(); + +class E extends function() { return null }() { + constructor(...args) { + super(...args); + } +} + +// super() does not depend on the [HomeObject]. It just calls the [Prototype] +// of the function. +new E(); + +function f() {}; +f.prototype = null; + +class F extends f { + get x() { + return 1; + } +} + +assert.equal(1, new F().x); + + +function g() {} +function h() {} +g.prototype = h; +class G extends g { + get x() { + return 2; + } +} + +assert.equal(2, new G().x); diff --git a/packages/babel/test/fixtures/traceur/Classes/FieldInheritance.js b/packages/babel/test/fixtures/traceur/Classes/FieldInheritance.js new file mode 100644 index 0000000000..c9b863aaee --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/FieldInheritance.js @@ -0,0 +1,26 @@ +class Point2D { + constructor() { + this.x = 1; + this.y = 2; + } +} + +class Point3D extends Point2D { + constructor() { + super(); + this.z = 3; + } +} + +// ---------------------------------------------------------------------------- + +var a = new Point2D(); +assert.isTrue(a.hasOwnProperty('x')); +assert.isTrue(a.hasOwnProperty('y')); +assert.isFalse(a.hasOwnProperty('z')); +assert.isUndefined(a.z); + +var b = new Point3D(); +assert.isTrue(b.hasOwnProperty('x')); +assert.isTrue(b.hasOwnProperty('y')); +assert.isTrue(b.hasOwnProperty('z')); diff --git a/packages/babel/test/fixtures/traceur/Classes/FieldInitializers.js b/packages/babel/test/fixtures/traceur/Classes/FieldInitializers.js new file mode 100644 index 0000000000..dcd938fc00 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/FieldInitializers.js @@ -0,0 +1,23 @@ +class Point { + constructor() { + this.x = 0; + this.y = 0; + } +} + +// ---------------------------------------------------------------------------- + +var p = new Point(); +assert.equal(0, p.x); +assert.equal(0, p.y); +p.x = 1; +assert.equal(1, p.x); + +var p2 = new Point(); +assert.equal(0, p2.x); +assert.equal(0, p2.y); +assert.equal(1, p.x); + +for (var element in Point) { + fail('Point contains static member : ' + element); +} diff --git a/packages/babel/test/fixtures/traceur/Classes/FieldLookup.js b/packages/babel/test/fixtures/traceur/Classes/FieldLookup.js new file mode 100644 index 0000000000..6afad51a9e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/FieldLookup.js @@ -0,0 +1,47 @@ +// This requires manually constructed classes. + +function fieldLookupA() { } +fieldLookupA.prototype = { + foo : "A.value", + get bar() { + return "A.get.bar"; + }, + set bar(value) { }, + boo : "A.boo.value", + baz : undefined +} + +function fieldLookupB() { } +fieldLookupB.prototype = { + __proto__ : fieldLookupA.prototype, + get foo() { + return "B.get.foo"; + }, + set foo(value) { }, + bar: "B.value", + boo: undefined, + baz: "B.baz.value", +} + +class FieldLookupC extends fieldLookupB { + x() { + return super.foo; + } + y() { + return super.bar; + } + z() { + return super.boo; + } + w() { + return super.baz; + } +} + +// ---------------------------------------------------------------------------- + +var c = new FieldLookupC(); +assert.equal("B.get.foo", c.x()); +assert.equal("B.value", c.y()); +assert.isUndefined(c.z()); +assert.equal("B.baz.value", c.w()); diff --git a/packages/babel/test/fixtures/traceur/Classes/Fields.js b/packages/babel/test/fixtures/traceur/Classes/Fields.js new file mode 100644 index 0000000000..70848ed8fe --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Fields.js @@ -0,0 +1,19 @@ +class Point { + constructor() { + this.x = 0; + this.y = 0; + } +} + +// ---------------------------------------------------------------------------- + +var p = new Point(); + +var keys = []; +for (var key in p) { + keys.push(key); +} + +assert.isTrue(keys.indexOf('x') !== -1); +assert.isTrue(keys.indexOf('y') !== -1); +assert.isTrue(keys.indexOf('constructor') === -1); diff --git a/packages/babel/test/fixtures/traceur/Classes/Getters.js b/packages/babel/test/fixtures/traceur/Classes/Getters.js new file mode 100644 index 0000000000..06bd252815 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Getters.js @@ -0,0 +1,20 @@ +class GetterA { + get x() { return 'getter x'; } + get y() { return 'getter y'; } +} + +class GetterB extends GetterA { + get x() { return super.x; } +} + +class GetterC extends GetterB { + get y() { return super.y; } +} + +// ---------------------------------------------------------------------------- + +var b = new GetterB(); +var c = new GetterC(); + +assert.equal('getter x', b.x); +assert.equal('getter y', c.y); diff --git a/packages/babel/test/fixtures/traceur/Classes/Inheritance.js b/packages/babel/test/fixtures/traceur/Classes/Inheritance.js new file mode 100644 index 0000000000..562e12dadb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Inheritance.js @@ -0,0 +1,9 @@ +class SimpleBase {} +class SimpleDerived extends SimpleBase {} + +// ---------------------------------------------------------------------------- + +var derived = new SimpleDerived(); +assert.isTrue(derived instanceof SimpleDerived); +assert.isTrue(derived instanceof SimpleBase); +assert.isTrue(derived instanceof Object); diff --git a/packages/babel/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js b/packages/babel/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js new file mode 100644 index 0000000000..4b8722655d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js @@ -0,0 +1,31 @@ +var baseContainer = { + base: function() { + this.yyy = 'base constructor'; + } +}; + +baseContainer.base.prototype = { + x: 'proto x', + constructor: function() { + this.y = 'base y'; + } +} + +class MemberExprBase extends baseContainer.base { + constructor(w) { + super(); + this.z = 'var z'; + this.w = w; + } +} + +// ---------------------------------------------------------------------------- + +var a = new MemberExprBase('w value'); +var pa = Object.getPrototypeOf(a); +var ppa = Object.getPrototypeOf(pa); + +assertHasOwnProperty(a, 'yyy', 'w', 'z'); +assertLacksOwnProperty(a, 'x'); +assertHasOwnProperty(pa, 'constructor'); +assertHasOwnProperty(ppa, 'x', 'constructor'); diff --git a/packages/babel/test/fixtures/traceur/Classes/InheritanceFromNonclass.js b/packages/babel/test/fixtures/traceur/Classes/InheritanceFromNonclass.js new file mode 100644 index 0000000000..67b767156f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/InheritanceFromNonclass.js @@ -0,0 +1,17 @@ +function noClassA() {} +noClassA.prototype = { + ma: function() { return 'ma'; } +} + +class NoClassB extends noClassA { + mb() { + return 'mb ' + super.ma(); + } +} + +// ---------------------------------------------------------------------------- + +var b = new NoClassB; +assert.isTrue(b instanceof noClassA); +assert.equal('ma', b.ma()); +assert.equal('mb ma', b.mb()); diff --git a/packages/babel/test/fixtures/traceur/Classes/InheritanceNameBinding.js b/packages/babel/test/fixtures/traceur/Classes/InheritanceNameBinding.js new file mode 100644 index 0000000000..d39468d855 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/InheritanceNameBinding.js @@ -0,0 +1,11 @@ +class NameBindingBase {} + +class NameBindingDerived extends NameBindingBase { + getX() { return this.x; } +} + +// ---------------------------------------------------------------------------- + +var derived = new NameBindingDerived(); +derived.x = 12; +assert.equal(12, derived.getX()); diff --git a/packages/babel/test/fixtures/traceur/Classes/Method.js b/packages/babel/test/fixtures/traceur/Classes/Method.js new file mode 100644 index 0000000000..a73c3fc4ac --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Method.js @@ -0,0 +1,21 @@ +class Universe { + answer() { + return 42; + } +} + +// ---------------------------------------------------------------------------- + +var universe = new Universe(); +assert.equal(42, universe.answer()); + +var keys = []; +for (var key in universe) { + keys.push(key); +} +assert.equal(keys.indexOf('answer'), -1); +assert.equal(keys.indexOf('constructor'), -1); + +for (var key in Universe) { + fail('Universe contains static member : ' + key); +} diff --git a/packages/babel/test/fixtures/traceur/Classes/MethodInheritance.js b/packages/babel/test/fixtures/traceur/Classes/MethodInheritance.js new file mode 100644 index 0000000000..c9e0f63baa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/MethodInheritance.js @@ -0,0 +1,32 @@ +class MethodsA { + ma() {} +} + +class MethodsB extends MethodsA { + mb() {} +} + +class MethodsC extends MethodsB { + mc() {} +} + +// ---------------------------------------------------------------------------- + +var a = new MethodsA(); +var b = new MethodsB(); +var c = new MethodsC(); + +var pa = Object.getPrototypeOf(a); +var pb = Object.getPrototypeOf(b); +var pc = Object.getPrototypeOf(c); + +assertNoOwnProperties(a); +assertNoOwnProperties(b); +assertNoOwnProperties(c); + +assertHasOwnProperty(pa, 'ma'); +assertLacksOwnProperty(pa, 'mb', 'mc'); +assertHasOwnProperty(pb, 'mb'); +assertLacksOwnProperty(pb, 'ma', 'mc'); +assertHasOwnProperty(pc, 'mc'); +assertLacksOwnProperty(pc, 'ma', 'mb'); diff --git a/packages/babel/test/fixtures/traceur/Classes/MethodLookup.js b/packages/babel/test/fixtures/traceur/Classes/MethodLookup.js new file mode 100644 index 0000000000..2a11cc3be3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/MethodLookup.js @@ -0,0 +1,34 @@ +class MethodLookupA { + foo() { + return 'A.foo()'; + } + get bar() { + return 'A.get.bar'; + } + set bar(value) { } +} + +class MethodLookupB extends MethodLookupA { + get foo() { + return 'B.foo.get'; + } + set foo(value) { } + bar() { + return 'B.bar()'; + } +} + +class MethodLookupC extends MethodLookupB { + x() { + return super.foo; + } + y() { + return super.bar(); + } +} + +// ---------------------------------------------------------------------------- + +var c = new MethodLookupC(); +assert.equal('B.foo.get', c.x()); +assert.equal('B.bar()', c.y()); diff --git a/packages/babel/test/fixtures/traceur/Classes/NameBinding.js b/packages/babel/test/fixtures/traceur/Classes/NameBinding.js new file mode 100644 index 0000000000..38a6be7c4d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/NameBinding.js @@ -0,0 +1,36 @@ +class ElementHolder { + getElement() { return this.element; } + + makeFilterCapturedThis() { + var capturedThis = this; + return function (x) { + return x == capturedThis.element; + } + } + + makeFilterLostThis() { + return function () { return this; } + } + + makeFilterHidden(element) { + return function (x) { return x == element; } + } +} + +// ---------------------------------------------------------------------------- + +var obj = new ElementHolder(); + +obj.element = 40; +assert.equal(40, obj.getElement()); +assert.isTrue(obj.makeFilterCapturedThis()(40)); + +// http://code.google.com/p/v8/issues/detail?id=1381 +// assert.isUndefined(obj.makeFilterLostThis()()); + +obj.element = 39; +assert.isFalse(obj.makeFilterCapturedThis()(40)); +assert.isTrue(obj.makeFilterCapturedThis()(39)); + +assert.isFalse(obj.makeFilterHidden(41)(40)); +assert.isTrue(obj.makeFilterHidden(41)(41)); diff --git a/packages/babel/test/fixtures/traceur/Classes/NestedClassSuper.js b/packages/babel/test/fixtures/traceur/Classes/NestedClassSuper.js new file mode 100644 index 0000000000..9efce298ce --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/NestedClassSuper.js @@ -0,0 +1,104 @@ +class One { + constructor(o) { o.r = 'c1'; } + m() { return 'm1'; } + get g() { return 'g1'; } + set x(v) { this.x_ = v+1; } + get x() { return this.x_; } +} + +// All OneExt class decls are identical. +// +// Just testing identical behavior in the different contexts: +// constructor, method, method with inner func, getter, setter. +class OneExtWrapper { + constructor() { + class OneExt extends One { + constructor() { + var o = {}; + super(o); + assert.equal('c1', o.r); + } + m() { return super.m(); } + get g() { return super.g; } + set x(v) { super.x = v; } + get x() { return super.x; } + } + this.Cconstr = OneExt; + } + m() { + class OneExt extends One { + constructor() { + var o = {}; + super(o); + assert.equal('c1', o.r); + } + m() { return super.m(); } + get g() { return super.g; } + set x(v) { super.x = v; } + get x() { return super.x; } + } + return OneExt; + } + mf() { + return (function(){ + class OneExt extends One { + constructor() { + var o = {}; + super(o); + assert.equal('c1', o.r); + } + m() { return super.m(); } + get g() { return super.g; } + set x(v) { super.x = v; } + get x() { return super.x; } + } + return OneExt; + })(); + } + get g() { + class OneExt extends One { + constructor() { + var o = {}; + super(o); + assert.equal('c1', o.r); + } + m() { return super.m(); } + get g() { return super.g; } + set x(v) { super.x = v; } + get x() { return super.x; } + } + return OneExt; + } + set Cprop(v) { + class OneExt extends One { + constructor() { + var o = {}; + super(o); + assert.equal('c1', o.r); + } + m() { return super.m(); } + get g() { return super.g; } + set x(v) { super.x = v; } + get x() { return super.x; } + } + this.C = OneExt; + } + get Cprop() { + return this.C; + } +} + +// ---------------------------------------------------------------------------- + +function checkClass(C) { + var o = new C(); + assert.equal('m1', o.m()); + assert.equal('g1', o.g); + o.x = 'x'; + assert.equal('x1', o.x); +} + +var o = new OneExtWrapper(); +o.Cprop = 'dummy value'; + +[o.Cconstr, o.m(), o.mf(), o.g, o.Cprop].forEach(checkClass); diff --git a/packages/babel/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js b/packages/babel/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js new file mode 100644 index 0000000000..f96787256b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js @@ -0,0 +1,45 @@ +// a = animal, n = name, sn = super name, fn = full name, wn = with name + +class Animal { + constructor(n) { + this.n1 = n + ' Animal'; + } + get n() { return this.n1; } +} + +class Roo extends Animal { + constructor(n) { + class Koala extends Animal { + constructor(n) { + super(n); + this.n2 = n + ' Koala'; + } + get n() { return this.n2; } + get sn() { return super.n; } + get fn() { return this.n + ' aka ' + this.sn; } + } + + super(n); + this.a = new Koala(n + ' II'); + this.n2 = n + ' Roo'; + } + wn(n) { + return ' (with ' + n + ')'; + } + get n() { return this.n2 + this.wn(this.a.n); } + get sn() { return super.n + this.wn(this.a.sn); } + get fn() { return this.n + ' aka ' + this.sn + this.wn(this.a.fn); } +} + +// ---------------------------------------------------------------------------- + +var o = new Roo('Kanga'); +assert.equal('Kanga II Koala', o.a.n); +assert.equal('Kanga II Animal', o.a.sn); +assert.equal('Kanga II Koala aka Kanga II Animal', o.a.fn); + +assert.equal('Kanga Roo (with Kanga II Koala)', o.n); +assert.equal('Kanga Animal (with Kanga II Animal)', o.sn); +assert.equal('Kanga Roo (with Kanga II Koala) aka ' + + 'Kanga Animal (with Kanga II Animal) ' + + '(with Kanga II Koala aka Kanga II Animal)', o.fn); diff --git a/packages/babel/test/fixtures/traceur/Classes/NewClassExpression.js b/packages/babel/test/fixtures/traceur/Classes/NewClassExpression.js new file mode 100644 index 0000000000..a08d0ff8eb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/NewClassExpression.js @@ -0,0 +1,18 @@ + +assert.equal((new class { + get x() { + return 'x'; + } + getX() { + return this.x; + } +}).getX(), 'x'); + +assert.equal(new class { + get y() { + return 'y'; + } + getY() { + return this.y; + } +}().getY(), 'y'); diff --git a/packages/babel/test/fixtures/traceur/Classes/NonEnum.js b/packages/babel/test/fixtures/traceur/Classes/NonEnum.js new file mode 100644 index 0000000000..243bb30bbf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/NonEnum.js @@ -0,0 +1,23 @@ +class B { + a() {} + get b() {} + set c(v) {} + static d() {} + static get e() {} + static set f(v) {} +} + +class D extends B { + g() {} + get h() {} + set i(v) {} + static j() {} + static get k() {} + static set l(v) {} +} + +assert.equal(0, Object.keys(B).length); +assert.equal(0, Object.keys(B.prototype).length); + +assert.equal(0, Object.keys(D).length); +assert.equal(0, Object.keys(D.prototype).length); diff --git a/packages/babel/test/fixtures/traceur/Classes/OptionalParams.js b/packages/babel/test/fixtures/traceur/Classes/OptionalParams.js new file mode 100644 index 0000000000..4040e25bf9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/OptionalParams.js @@ -0,0 +1,18 @@ +class OptionalParams { + constructor(opt = 1) { + this.opt = opt; + } + instanceMethod(opt = 2) { + return opt; + } +} + +// ---------------------------------------------------------------------------- + +var obj = new OptionalParams(); +assert.equal(1, obj.opt); +assert.equal(2, obj.instanceMethod()); +assert.equal(3, obj.instanceMethod(3)); + +var obj2 = new OptionalParams(2); +assert.equal(2, obj2.opt); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Classes/PropertyAccessors.js b/packages/babel/test/fixtures/traceur/Classes/PropertyAccessors.js new file mode 100644 index 0000000000..94f0028504 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/PropertyAccessors.js @@ -0,0 +1,59 @@ +class ImmutablePoint { + get x () { return this.x_; } + get y () { return this.y_; } +} + +class MutablePoint { + get x () { return this.x_; } + set x (x) { this.x_ = x; } + get y () { return this.y_; } + set y (y) { this.y_ = y; } +} + +// ---------------------------------------------------------------------------- + +var immutable = new ImmutablePoint(); +assert.equal(undefined, immutable.x); +assert.equal(undefined, immutable.y); +immutable.x_ = 10; +immutable.y_ = 20; +assert.equal(10, immutable.x); +assert.equal(20, immutable.y); +assert.equal(10, immutable.x_); +assert.equal(20, immutable.y_); + +try { + immutable.x = 11; + fail('should not be able to set a get only property'); +} catch (except) { +} +try { + immutable.y = 11; + fail('should not be able to set a get only property'); +} catch (except) { +} +assert.equal(10, immutable.x); +assert.equal(20, immutable.y); + +var mutable = new MutablePoint(); +assert.equal(undefined, mutable.x); +assert.equal(undefined, mutable.y); +mutable.x_ = 10; +mutable.y_ = 20; +assert.equal(10, mutable.x); +assert.equal(20, mutable.y); +assert.equal(10, mutable.x_); +assert.equal(20, mutable.y_); + +try { + mutable.x = 11; +} catch (except) { + fail('should be able to set a read/write property'); +} +try { + mutable.y = 12; +} catch (except) { + fail('should be able to set a read/write property'); +} +assert.equal(11, mutable.x); +assert.equal(12, mutable.y); diff --git a/packages/babel/test/fixtures/traceur/Classes/PrototypeDescriptor.js b/packages/babel/test/fixtures/traceur/Classes/PrototypeDescriptor.js new file mode 100644 index 0000000000..1be4d32b2a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/PrototypeDescriptor.js @@ -0,0 +1,7 @@ +class C {} + +var descr = Object.getOwnPropertyDescriptor(C, 'prototype'); +assert.isFalse(descr.enumerable); +assert.isFalse(descr.configurable); +assert.isFalse(descr.writable); +assert.equal(descr.value, C.prototype); diff --git a/packages/babel/test/fixtures/traceur/Classes/RestParams.js b/packages/babel/test/fixtures/traceur/Classes/RestParams.js new file mode 100644 index 0000000000..4720e962b1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/RestParams.js @@ -0,0 +1,15 @@ +class RestParams { + constructor(...rest) { + this.rest = rest; + } + instanceMethod(...rest) { + return rest; + } +} + +// ---------------------------------------------------------------------------- + +var obj = new RestParams(0, 1, 2); +assertArrayEquals([0, 1, 2], obj.rest); +assertArrayEquals([3, 4, 5], obj.instanceMethod(3, 4, 5)); + diff --git a/packages/babel/test/fixtures/traceur/Classes/SemiColon.js b/packages/babel/test/fixtures/traceur/Classes/SemiColon.js new file mode 100644 index 0000000000..64c076d705 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SemiColon.js @@ -0,0 +1,3 @@ +class SemiColon { + ; +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Classes/SimpleSuper.js b/packages/babel/test/fixtures/traceur/Classes/SimpleSuper.js new file mode 100644 index 0000000000..dd5e0a243e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SimpleSuper.js @@ -0,0 +1,31 @@ +class SuperBase { + m() { return 40; } + get x () { return this.baseX; } + set x (value) { this.baseX = value; } + constructor() { + this.baseC = 2; + this.baseX = 4; + } +} + +class SuperDerived extends SuperBase { + m() { return 41; } + superM() { return super.m(); } + superX() { return super.x; } + constructor() { + super(); + this.x = 10; + this.derC = 3; + } +} + +// ---------------------------------------------------------------------------- + +var obj = new SuperDerived(); +assert.equal(41, obj.m()); +assert.equal(40, obj.superM()); +assert.equal(10, obj.baseX); +assert.equal(10, obj.x); +assert.equal(10, obj.superX()); +assert.equal(2, obj.baseC); +assert.equal(3, obj.derC); diff --git a/packages/babel/test/fixtures/traceur/Classes/Skip_DerivedButton.js b/packages/babel/test/fixtures/traceur/Classes/Skip_DerivedButton.js new file mode 100644 index 0000000000..15f63caf26 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Skip_DerivedButton.js @@ -0,0 +1,39 @@ +// Skip. Not implemented. +// Only in browser. + +class CustomButton extends HTMLButtonElement { + constructor() { + this.value = 'Custom Button'; + } +} + +class CustomSelect extends HTMLSelectElement {} +class CustomInput extends HTMLInputElement {} +class CustomDiv extends HTMLDivElement {} +class CustomUIEvent extends UIEvent {} +// class CustomSpan extends HTMLSpanElement {} +class CustomTableRow extends HTMLTableRowElement {} +class CustomHeading extends HTMLHeadingElement {} +class CustomElement extends HTMLElement {} +class CustomUList extends HTMLUListElement {} +class CustomLI extends HTMLLIElement {} +class CustomMenu extends HTMLMenuElement {} +class CustomTextArea extends HTMLTextAreaElement {} + +// ---------------------------------------------------------------------------- + +var button = new CustomButton(); +document.body.appendChild(button); +document.body.appendChild(new CustomSelect()); +document.body.appendChild(new CustomInput()); +document.body.appendChild(new CustomDiv()); +// document.body.appendChild(new CustomSpan()); +document.body.appendChild(new CustomTableRow()); +document.body.appendChild(new CustomHeading()); +document.body.appendChild(new CustomElement()); +document.body.appendChild(new CustomUList()); +document.body.appendChild(new CustomLI()); +document.body.appendChild(new CustomMenu()); +document.body.appendChild(new CustomTextArea()); + +// TODO(rnystrom): Test these. diff --git a/packages/babel/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js b/packages/babel/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js new file mode 100644 index 0000000000..8841875d64 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js @@ -0,0 +1,16 @@ +// Skip. Not implemented. +// Only in browser. + +class CustomBlockquote extends HTMLBlockquoteElement { + constructor() { + this.custom = 42; + } +} + +var customBlockquote = new CustomBlockquote; +assert.equal(42, customBlockquote.custom); +assert.equal('BLOCKQUOTE', customBlockquote.tagName); +assert.isTrue(customBlockquote instanceof CustomBlockquote); +assert.isTrue(customBlockquote instanceof HTMLBlockquoteElement); +assert.isTrue(customBlockquote instanceof HTMLQuoteElement); +assert.isTrue(customBlockquote instanceof HTMLElement); diff --git a/packages/babel/test/fixtures/traceur/Classes/Static.js b/packages/babel/test/fixtures/traceur/Classes/Static.js new file mode 100644 index 0000000000..08e9228253 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Static.js @@ -0,0 +1,70 @@ +var x = 42; + +class B { + static m() { + return this; + } + + static get x() { + return x; + } + + static set x(value) { + x = value; + } +} + +assert.equal(B, B.m()); +assert.equal(42, B.x); +B.x = 1; +assert.equal(1, x); + +class StaticMethod { + static static() { + return 'static method'; + } +} + +assert.equal('static method', StaticMethod.static()); + +class StaticGetter { + static get static() { + return 'static getter'; + } +} + +assert.equal('static getter', StaticGetter.static); + +class StaticSetter { + static set static(value) { + x = value; + } +} + +StaticSetter.static = 'static setter'; +assert.equal('static setter', x); + +class MethodNamedStatic { + static() { + return this; + } +} + +var c = new MethodNamedStatic(); +assert.equal(c, c.static()); + +class AccessorNamedStatic { + get static() { + return [this, x]; + } + + set static(value) { + x = [this, value]; + } +} + +x = 2; +c = new AccessorNamedStatic(); +assertArrayEquals([c, 2], c.static); +c.static = 3; +assertArrayEquals([c, 3], x); diff --git a/packages/babel/test/fixtures/traceur/Classes/StaticSuper.js b/packages/babel/test/fixtures/traceur/Classes/StaticSuper.js new file mode 100644 index 0000000000..558c5bb334 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/StaticSuper.js @@ -0,0 +1,35 @@ +var x = 'B.getter'; + +class B { + static method() { + return [this, 'B.method']; + } + + static get getter() { + return [this, x]; + } + + static set setter(value) { + x = [this, value]; + } +} + +class C extends B { + static method() { + return super.method(); + } + + static get getter() { + return super.getter; + } + + static set setter(value) { + super.setter = value; + } +} + +assertArrayEquals([C, 'B.method'], C.method()); +assertArrayEquals([C, 'B.getter'], C.getter); + +C.setter = 'B.setter'; +assertArrayEquals([C, 'B.setter'], x); diff --git a/packages/babel/test/fixtures/traceur/Classes/StaticSuperNoExtends.js b/packages/babel/test/fixtures/traceur/Classes/StaticSuperNoExtends.js new file mode 100644 index 0000000000..58c369a789 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/StaticSuperNoExtends.js @@ -0,0 +1,47 @@ +var x = 42; + +Function.prototype.testFunction = function() { + return [this, 42, this.call]; +}; + +Object.defineProperty(Function.prototype, 'testGetter', { + get: function() { + return [this, x, this.call]; + }, + configurable: true +}); + + +Object.defineProperty(Function.prototype, 'testSetter', { + set: function(value) { + x = [this, value, this.call]; + }, + configurable: true +}); + + +class NoExtends { + static method() { + return super.testFunction(); + } + + static get getter() { + return super.testGetter; + } + + static set setter(value) { + super.testSetter = value; + } +} + +var call = Function.prototype.call; +assertArrayEquals([NoExtends, 42, call], NoExtends.method()); + +assertArrayEquals([NoExtends, 42, call], NoExtends.getter); + +NoExtends.setter = 1; +assertArrayEquals([NoExtends, 1, call], x); + +delete Function.prototype.testFunction; +delete Function.prototype.testGetter; +delete Function.prototype.testSetter; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Classes/StaticSymbol.js b/packages/babel/test/fixtures/traceur/Classes/StaticSymbol.js new file mode 100644 index 0000000000..22214d8b37 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/StaticSymbol.js @@ -0,0 +1,7 @@ +var sym = Symbol(); +class C { + static [sym]() { + return 42; + } +} +assert.equal(C[sym](), 42); diff --git a/packages/babel/test/fixtures/traceur/Classes/Strict.js b/packages/babel/test/fixtures/traceur/Classes/Strict.js new file mode 100644 index 0000000000..27e3f43757 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Strict.js @@ -0,0 +1,36 @@ +class C1 { + m() { + return function() { + return this; + }(); + } +} + +class C2 extends C1 { + m() { + return function() { + return this; + }(); + } +} + +var C3 = class { + m() { + return function() { + return this; + }(); + } +}; + +var C4 = class extends C3 { + m() { + return function() { + return this; + }(); + } +}; + +assert.isUndefined(new C1().m()); +assert.isUndefined(new C2().m()); +assert.isUndefined(new C3().m()); +assert.isUndefined(new C4().m()); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperChaining.js b/packages/babel/test/fixtures/traceur/Classes/SuperChaining.js new file mode 100644 index 0000000000..5688aa62fd --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperChaining.js @@ -0,0 +1,28 @@ +class ChainA { + foo() { + return 'A'; + } +} + +class ChainB extends ChainA { + foo() { + return super.foo() + ' B'; + } +} + +class ChainC extends ChainB { + foo() { + return super.foo() + ' C'; + } +} + +class ChainD extends ChainC { + foo() { + return super.foo() + ' D'; + } +} + +// ---------------------------------------------------------------------------- + +var d = new ChainD(); +assert.equal('A B C D', d.foo()); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperChangeProto.js b/packages/babel/test/fixtures/traceur/Classes/SuperChangeProto.js new file mode 100644 index 0000000000..6bf02b2620 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperChangeProto.js @@ -0,0 +1,20 @@ +var log = ''; + +class Base { + p() { log += '[Base]'; } +} + +class OtherBase { + p() { log += '[OtherBase]'; } +} +class Derived extends Base { + p() { + log += '[Derived]'; + super.p(); + Derived.prototype.__proto__ = OtherBase.prototype; + super.p(); + } +} + +new Derived().p(); +assert.equal(log, '[Derived][Base][OtherBase]'); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperInArrow.js b/packages/babel/test/fixtures/traceur/Classes/SuperInArrow.js new file mode 100644 index 0000000000..4b0b62fff8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperInArrow.js @@ -0,0 +1,19 @@ +var x; + +class B { + m(v) { + x = v; + } +} + +class D extends B { + n(x) { + var f = (x) => { + super.m(x); + }; + f(x); + } +} + +new D().n(42); +assert.equal(x, 42); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperMissing.js b/packages/babel/test/fixtures/traceur/Classes/SuperMissing.js new file mode 100644 index 0000000000..6eb4f8679f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperMissing.js @@ -0,0 +1,40 @@ +class MissingSuperA {} + +class MissingSuperB extends MissingSuperA { + method() { + return super.foo(); + } + field() { + return super.foo; + } +} + +// ---------------------------------------------------------------------------- + +// Collect the expected values. +var expectedF; +var expectedM; +var actualF; +var actualM; + +expectedF = ({}).x; +try { + ({}).method(); +} catch (e) { + expectedM = e; +} + +// Test against those. +var b = new MissingSuperB(); +var actualF = b.field(); +var actualM; +try { + b.method(); +} catch (e) { + actualM = e; +} + +assert.equal(actualF, expectedF); +assert.instanceOf(expectedM, TypeError); +assert.instanceOf(actualM, TypeError); +assert.equal(Object.getPrototypeOf(actualM), Object.getPrototypeOf(expectedM)); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperNestedClass.js b/packages/babel/test/fixtures/traceur/Classes/SuperNestedClass.js new file mode 100644 index 0000000000..61c4632799 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperNestedClass.js @@ -0,0 +1,21 @@ +class Animal { + constructor(name) { + this.name = name; + } +} + +class Roo extends Animal { + constructor() { + class Koala extends (super('R'), Animal) { + constructor() { + super('K'); + } + } + this.a = new Koala; + } +} + + +var r = new Roo(); +assert.equal('R', r.name); +assert.equal('K', r.a.name); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperPostfix.js b/packages/babel/test/fixtures/traceur/Classes/SuperPostfix.js new file mode 100644 index 0000000000..843c26891e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperPostfix.js @@ -0,0 +1,23 @@ +class B { + constructor() { + this._x = 0; + } + get x() { + return this._x; + } + set x(x) { + this._x = x; + } +} + +class C extends B { + m() { + assert.equal(this.x, 0); + assert.equal(super.x++, 0); + assert.equal(this.x, 1); + assert.equal(super.x--, 1); + assert.equal(this.x, 0); + } +} + +new C().m(); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperSet.js b/packages/babel/test/fixtures/traceur/Classes/SuperSet.js new file mode 100644 index 0000000000..cb612b9fe0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperSet.js @@ -0,0 +1,56 @@ +class B { + constructor() { + this._y = {v: 321}; + this._z = 1; + } + set x(value) { + this._x = value; + } + get x() { + return this._y; + } + getX() { + return this._x; + } + getV() { + return this._y.v + } + + set z(v) { + this._z = v; + } + get z() { + return this._z; + } +} + +class C extends B { + constructor() { + super(); + } + set x(value) { + assert.equal(super.x = value, value); + } + set v(value) { + return super.x.v = value; + } + inc(val) { + assert.equal(super.z += val, 4); + } + incLookup(val) { + assert.equal(super['z'] += val, 9); + } +} + +var c = new C; +c.x = 42; +assert.equal(42, c.getX()); + +c.v = 123; +assert.equal(123, c.getV()); + +c.inc(3); +assert.equal(4, c.z); + +c.incLookup(5); +assert.equal(9, c.z); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperUnary.js b/packages/babel/test/fixtures/traceur/Classes/SuperUnary.js new file mode 100644 index 0000000000..310041e220 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperUnary.js @@ -0,0 +1,26 @@ +class B { + constructor() { + this._x = 0; + } + get x() { + return this._x; + } + set x(x) { + this._x = x; + } +} + +class C extends B { + m() { + assert.equal(this.x, 0); + assert.equal(++super.x, 1); + assert.equal(this.x, 1); + assert.equal(--super.x, 0); + assert.equal(this.x, 0); + + // Don't use assert.typeOf since we are testing typeof. + assert.equal(typeof super.x, 'number'); + } +} + +new C().m(); diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperWithoutExtends.js b/packages/babel/test/fixtures/traceur/Classes/SuperWithoutExtends.js new file mode 100644 index 0000000000..5b2546b084 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/SuperWithoutExtends.js @@ -0,0 +1,15 @@ +class C { + constructor() { + this.x = true; + } + static m() { + return super.hasOwnProperty('m'); + } + + m() { + return super.hasOwnProperty('x'); + } +} + +assert.isTrue(new C().m()); +assert.isTrue(C.m()); diff --git a/packages/babel/test/fixtures/traceur/Classes/Types.js b/packages/babel/test/fixtures/traceur/Classes/Types.js new file mode 100644 index 0000000000..dbdfd6e262 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Classes/Types.js @@ -0,0 +1,26 @@ +// Options: --types + +class Typed { + constructor(x : number) { + this.x_ = x; + } + + addTo(y : number) : number { + this.x += y; + return this.x; + } + + get x() : number { + return this.x_; + } + + set x(x : number) { + this.x_ = x; + } +} + +// Generics, ClassExpression +var C = class ClassExpression {}; + +assert.equal(1, new Typed(1).x); +assert.equal(2, new Typed(1).addTo(1)); diff --git a/packages/babel/test/fixtures/traceur/Collections/Map.js b/packages/babel/test/fixtures/traceur/Collections/Map.js new file mode 100644 index 0000000000..8dd3004e0c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Collections/Map.js @@ -0,0 +1,240 @@ +var t = new Map(); + +var objectKey = {}; +var stringKey = 'keykeykey'; +var numberKey = 42.24; +var booleanKey = true; +var undefinedKey = undefined; +var nullKey = null; +var nanKey = NaN; +var zeroKey = 0; + + +assert.equal(t.size, 0); + +t.set(undefinedKey, 'value8'); +t.set(nullKey, 'value9'); +t.set(stringKey, 'value5'); +t.set(numberKey, 'value6'); +t.set(booleanKey, 'value7'); +t.set(objectKey, 'value1'); +t.set(nanKey, 'value10'); +t.set(zeroKey, 'value11'); + +assert.equal(t.size, 8); + +assert.equal(t.get(objectKey), 'value1'); +assert.equal(t.get(stringKey), 'value5'); +assert.equal(t.get(numberKey), 'value6'); +assert.equal(t.get(booleanKey), 'value7'); +assert.equal(t.get(undefinedKey), 'value8'); +assert.equal(t.get(nullKey), 'value9'); +assert.equal(t.get(nanKey), 'value10'); +assert.equal(t.get(zeroKey), 'value11'); + +assert.equal(t.get({}), undefined); +assert.equal(t.get('keykeykey'), 'value5'); +assert.equal(t.get(42.24), 'value6'); +assert.equal(t.get(true), 'value7'); +assert.equal(t.get(undefined), 'value8'); +assert.equal(t.get(null), 'value9'); +assert.equal(t.get(NaN), 'value10'); +assert.equal(t.get(0), 'value11'); +assert.equal(t.get(1 / Infinity), 'value11'); + +// V8 is broken for -0 +// https://code.google.com/p/v8/issues/detail?id=3906 +// assert.equal(t.get(-1 / Infinity), 'value11'); + +assert.isTrue(!t.has({})); + +assert.isTrue(t.has(objectKey)); +assert.isTrue(t.has(stringKey)); +assert.isTrue(t.has(numberKey)); +assert.isTrue(t.has(booleanKey)); +assert.isTrue(t.has(undefinedKey)); +assert.isTrue(t.has(nullKey)); +assert.isTrue(t.has(nanKey)); +assert.isTrue(t.has(zeroKey)); + +assert.isTrue(t.has('keykeykey')); +assert.isTrue(t.has(42.24)); +assert.isTrue(t.has(true)); +assert.isTrue(t.has(undefined)); +assert.isTrue(t.has(null)); +assert.isTrue(t.has(NaN)); +assert.isTrue(t.has(0)); + +// V8 is broken for -0 +// https://code.google.com/p/v8/issues/detail?id=3906 +// assert.isTrue(t.has(-0)); + + +// forEach +var arrKeys = []; +var arr = []; +var cnt = 0; +t.forEach(function (value, key, map) { + if (cnt === 0) { + t.set('foo', 42); + } + assert.equal(map, t); + arrKeys.push(key); + arr.push(value); + cnt++; +}); +assert.equal(cnt, 9); +t.delete('foo'); + +assertArrayEquals(arrKeys, [ + undefinedKey, + nullKey, + stringKey, + numberKey, + booleanKey, + objectKey, + nanKey, + zeroKey, + 'foo' +]); +assertArrayEquals(arr, [ + 'value8', + 'value9', + 'value5', + 'value6', + 'value7', + 'value1', + 'value10', + 'value11', + 42 +]); + +// iterator +arrKeys = []; +arr = []; +cnt = 0; + +for (var mapIterItem of t) { + if (cnt === 0) { + t.set('foo', 42); + } + var [mapIterItemKey, mapIterItemVal] = mapIterItem; + arrKeys.push(mapIterItemKey); + arr.push(mapIterItemVal); + cnt++; +} +assert.equal(cnt, 9); +t.delete('foo'); + +assertArrayEquals(arrKeys, [ undefinedKey, nullKey, stringKey, + numberKey, booleanKey, objectKey, + nanKey, zeroKey, 'foo' ]); +assertArrayEquals(arr, [ + 'value8', + 'value9', + 'value5', + 'value6', + 'value7', + 'value1', + 'value10', + 'value11', + 42 +]); + + +// .entries() +arrKeys = []; +arr = []; +cnt = 0; + +for (var mapIterItem of t.entries()) { + var [mapIterItemKey, mapIterItemVal] = mapIterItem; + arrKeys.push(mapIterItemKey); + arr.push(mapIterItemVal); + cnt++; +} +assert.equal(cnt, 8); + +assertArrayEquals(arrKeys, [ + undefinedKey, + nullKey, + stringKey, + numberKey, + booleanKey, + objectKey, + nanKey, + zeroKey +]); +assertArrayEquals(arr, [ + 'value8', + 'value9', + 'value5', + 'value6', + 'value7', + 'value1', + 'value10', + 'value11' +]); + + +// .keys() +arrKeys = []; +cnt = 0; + +for (var mapIterKey of t.keys()) { + arrKeys.push(mapIterKey); + cnt++; +} +assert.equal(cnt, 8); + +assertArrayEquals(arrKeys, [ + undefinedKey, + nullKey, + stringKey, + numberKey, + booleanKey, + objectKey, + nanKey, + zeroKey +]); + + +// .values() +arr = []; +cnt = 0; + +for (var mapIterVal of t.values()) { + arr.push(mapIterVal); + cnt++; +} +assert.equal(cnt, 8); + +assertArrayEquals(arr, [ + 'value8', + 'value9', + 'value5', + 'value6', + 'value7', + 'value1', + 'value10', + 'value11' +]); + + +var t3 = new Map([ [[],[]], [{},{}], [NaN,NaN] ]); +var deleteReturnValue; + +assert.equal(t3.size, 3); +assert.isTrue(t3.has(NaN)); +assert.isTrue(isNaN(t3.get(NaN))); +assert.equal(t3.set(NaN, NaN), t3); // test of 23.1.3.9.11 +deleteReturnValue = t3.delete(NaN); +assert.equal(t3.size, 2); +assert.isTrue(deleteReturnValue); +deleteReturnValue = t3.delete(NaN); +assert.equal(t3.size, 2); +assert.isFalse(deleteReturnValue); +t3.clear(); +assert.equal(t3.size, 0); + +assert.equal(Map.prototype[Symbol.iterator], Map.prototype.entries); diff --git a/packages/babel/test/fixtures/traceur/Collections/Set.js b/packages/babel/test/fixtures/traceur/Collections/Set.js new file mode 100644 index 0000000000..460253a857 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Collections/Set.js @@ -0,0 +1,145 @@ +var t = new Set(); + +var objectKey = {}; +var stringKey = 'keykeykey'; +var numberKey = 42.24; +var booleanKey = true; +var undefinedKey = undefined; +var nullKey = null; +var nanKey = NaN; +var zeroKey = 0; +var addReturnValue; + +t.add(objectKey); +t.add(stringKey); +t.add(numberKey); +t.add(booleanKey); +t.add(undefinedKey); +t.add(nullKey); +t.add(nanKey); +addReturnValue = t.add(zeroKey); + +assert.equal(t.size, 8); +assert.equal(t, addReturnValue); + +assert.isTrue(!t.has({})); + +assert.isTrue(t.has(objectKey)); +assert.isTrue(t.has(stringKey)); +assert.isTrue(t.has(numberKey)); +assert.isTrue(t.has(booleanKey)); +assert.isTrue(t.has(undefinedKey)); +assert.isTrue(t.has(nullKey)); +assert.isTrue(t.has(nanKey)); +assert.isTrue(t.has(zeroKey)); + +assert.isTrue(t.has('keykeykey')); +assert.isTrue(t.has(42.24)); +assert.isTrue(t.has(true)); +assert.isTrue(t.has(undefined)); +assert.isTrue(t.has(null)); +assert.isTrue(t.has(NaN)); +assert.isTrue(t.has(0)); + +// V8 is broken for -0 +// https://code.google.com/p/v8/issues/detail?id=3906 +// assert.isTrue(t.has(-0)); + +var expected = [ + undefinedKey, + nullKey, + stringKey, + numberKey, + booleanKey, + objectKey, + nanKey, + zeroKey +]; +expected.sort(); + + +// forEach +var arr = []; +var cnt = 0; +var context = {}; + +t.forEach(function(val, val2, obj) { + if (isNaN(val)) { + assert.isTrue(isNaN(val2)); + } else { + assert.equal(val, val2); + } + assert.equal(obj, t); + assert.equal(this, context) + arr.push(val); + cnt++; +}, context); + +assert.equal(cnt, 8); + +arr.sort(); +assertArrayEquals(arr, expected); + +// iterator +arr = []; +cnt = 0; + +for (var setIterVal of t) { + arr.push(setIterVal); + cnt++; +} +assert.equal(cnt, 8); + + +arr.sort(); +assertArrayEquals(arr, expected); + +// .values() +arr = []; +cnt = 0; + +for (var setIterVal of t.values()) { + arr.push(setIterVal); + cnt++; +} +assert.equal(cnt, 8); + + +arr.sort(); +assertArrayEquals(arr, expected); + +var t3 = new Set([[], {}, NaN]); +assert.equal(t3.size, 3); +assert.isTrue(t3.has(NaN)); +t3.delete(NaN); +assert.equal(t3.size, 2); +t3.delete(NaN); +assert.equal(t3.size, 2); +t3.clear(); +assert.equal(t3.size, 0); + +// .keys() +var t4 = new Set(); +var iter = t4.keys(); +t4.add(objectKey); +t4.add(stringKey); +t4.add(nanKey); +assert.deepEqual(iter.next(), {value: objectKey, done: false}); +assert.deepEqual(iter.next(), {value: stringKey, done: false}); +t4.delete(nanKey); +assert.deepEqual(iter.next(), {value: undefined, done: true}); + +assert.equal(Set.prototype.keys, Set.prototype.values); + +// .entries() +var t5 = new Set(); +var iter = t5.entries(); +t5.add(objectKey); +t5.add(stringKey); +t5.add(nanKey); +assert.deepEqual(iter.next(), {value: [objectKey, objectKey], done: false}); +assert.deepEqual(iter.next(), {value: [stringKey, stringKey], done: false}); +t5.delete(nanKey); +assert.deepEqual(iter.next(), {value: undefined, done: true}); + +assert.equal(Set.prototype[Symbol.iterator], Set.prototype.values); diff --git a/packages/babel/test/fixtures/traceur/Collections/SetWithSymbols.js b/packages/babel/test/fixtures/traceur/Collections/SetWithSymbols.js new file mode 100644 index 0000000000..a454bf6bf7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Collections/SetWithSymbols.js @@ -0,0 +1,2 @@ +var s = new Set(['Banana', 'Orange', 'Apple', 'Mango', 'Apple', 'Apple']); +assert.equal(s.size, 4); diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Class.js b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Class.js new file mode 100644 index 0000000000..c9900c48ca --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Class.js @@ -0,0 +1,48 @@ +var x = '0'; +var y; + +class C { + [x]() { + return 0; + } + get [1]() { + return 1; + } + set [2](v) { + y = v; + } + *[3]() { + yield 3; + } + + static [4]() { + return 4; + } + static get [5]() { + return 5; + } + static set [6](v) { + y = v; + } + static *[7]() { + yield 7; + } +} + +var object = new C; +assert.equal(object[0](), 0); +assert.equal(object[1], 1); +object[2] = 2; +assert.equal(y, 2); +var g = object[3](); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); + + +assert.equal(C[4](), 4); +assert.equal(C[5], 5); +C[6] = 6; +assert.equal(y, 6); +var g = C[7](); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js new file mode 100644 index 0000000000..722c0fc180 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js @@ -0,0 +1,35 @@ +var x = '0'; +var y; +var object = { + [x]: 0, + [1]: 1, + [2]() { + return 2; + }, + get [3]() { + return 3; + }, + set [4](v) { + y = v; + }, + *[5]() { + yield 5; + } +}; + +assert.equal(object[0], 0); +assert.equal(object[1], 1); +assert.equal(object[2](), 2); +object[4] = 4; +assert.equal(y, 4); +var g = object[5](); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); + +var object2 = { + __proto__: object, + [6]: 6 +}; + +assert.equal(object2[6], 6); +assert.equal(object2[0], 0); diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js new file mode 100644 index 0000000000..099c8907e3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js @@ -0,0 +1,6 @@ +// Options: --computed-property-names=false +// Error: :5:3: Unexpected token [ + +var object = { + [1]: 2 +}; diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Symbol.js b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Symbol.js new file mode 100644 index 0000000000..9f4aad203c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Symbol.js @@ -0,0 +1,7 @@ +var s = Symbol(); + +var object = { + [s]: 42 +}; + +assert.equal(object[s], 42); diff --git a/packages/babel/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js b/packages/babel/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js new file mode 100644 index 0000000000..039a0fc438 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js @@ -0,0 +1,6 @@ +// Error: :5:15: Unexpected token = + +var object = { + // Default parameters are not allowed on setters. + set x(value = 42) {} +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/DefaultParameters/Simple.js b/packages/babel/test/fixtures/traceur/DefaultParameters/Simple.js new file mode 100644 index 0000000000..0f2b26b2c6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/DefaultParameters/Simple.js @@ -0,0 +1,45 @@ +function f(a = 1, b = 2) { + return a + b; +} + +assert.equal(0, f.length); +assert.equal(3, f()); +assert.equal(6, f(4)); +assert.equal(24, f(8, 16)); + +assert.equal(3, f(undefined, undefined)); +assert.equal(33, f(undefined, 32)); + +function g(a, b = a) { + return a + b; +} + +assert.equal(1, g.length); +assert.equal(4, g(2)); +assert.equal(4, g(2, undefined)); +assert.equal(5, g(2, 3)); + +function C(obj = this) { + this.obj = obj; +} + +assert.equal(0, C.length); + +var c = new C; +assert.equal(c, c.obj); + +var c2 = new C(undefined); +assert.equal(c2, c2.obj); + +var c3 = new C(42); +assert.equal(42, c3.obj); + +function h(a = 1, b) { + return {a: a, b: b}; +} + +assert.equal(1, h().a); +assert.equal(2, h(2).a); +assert.isUndefined(h().b); +assert.isUndefined(h(2).b); +assert.equal(4, h(3, 4).b); diff --git a/packages/babel/test/fixtures/traceur/DefaultParameters/Strict.js b/packages/babel/test/fixtures/traceur/DefaultParameters/Strict.js new file mode 100644 index 0000000000..f35bad3590 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/DefaultParameters/Strict.js @@ -0,0 +1,6 @@ +function f(a = 1) { + 'use strict'; + return this; +} + +assert.isUndefined(f()); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Arguments.js b/packages/babel/test/fixtures/traceur/Destructuring/Arguments.js new file mode 100644 index 0000000000..7046316663 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Arguments.js @@ -0,0 +1,8 @@ +function destructureArguments(x, y) { + [arguments[0], [arguments[1]]] = [1, [2]] + return x + y; +} + +// ---------------------------------------------------------------------------- + +assert.equal(3, destructureArguments(1, 2)); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Array.js b/packages/babel/test/fixtures/traceur/Destructuring/Array.js new file mode 100644 index 0000000000..6f6d979e59 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Array.js @@ -0,0 +1,25 @@ +function destructArray() { + var a, b, c, d; + [a, [b], c, d] = ['hello', [',', 'junk'], ['world']]; + return { + a: a, + b: b, + c: c, + d: d + }; +} + +// ---------------------------------------------------------------------------- + +var result = destructArray(); +assert.equal('hello', result.a); +assert.equal(',', result.b); +assertArrayEquals(['world'], result.c); +assert.isUndefined(result.d); + +function testNested() { + var a; + [[a] = ['b']] = []; + return a; +} +assert.equal(testNested(), 'b'); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js b/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js new file mode 100644 index 0000000000..26dcf17f1b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js @@ -0,0 +1,8 @@ +var [a, b, , ] = [0, 1, , ]; +assert.equal(a, 0); +assert.equal(b, 1); + +var c, d; +[c, d, , ] = [0, 1, , ]; +assert.equal(c, 0); +assert.equal(d, 1); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js b/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js new file mode 100644 index 0000000000..89269b0000 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js @@ -0,0 +1,5 @@ +var x, y; +[x, {y = 1}] = [0, {}]; + +assert.equal(x, 0); +assert.equal(y, 1); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js b/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js new file mode 100644 index 0000000000..6a97645aae --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js @@ -0,0 +1,5 @@ +// https://github.com/google/traceur-compiler/issues/969 + +var x; +[x = 1] = []; +assert.equal(x, 1); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrowFunction.js b/packages/babel/test/fixtures/traceur/Destructuring/ArrowFunction.js new file mode 100644 index 0000000000..bbc7a75b66 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ArrowFunction.js @@ -0,0 +1,17 @@ +var f = ({x}) => x; +assert.equal(42, f({x: 42})); + +var g = ({x: y, z: [a, b, ...c]}) => [y, a, b, c]; +assertArrayEquals([1, 2, 3, [4, 5]], g({x: 1, z: [2, 3, 4, 5]})); + +var h = ([a, {b: c, d}]) => [a, c, d]; +assertArrayEquals([1, 2, 3], h([1, {b: 2, d: 3}])); + +var i = ([, a]) => a; +assert.equal(i([0, 1]), 1); + +var j = ([, [, a]]) => a; +assert.equal(j([0, [1, 2]]), 2); + +var k = ([a] = new String('b')) => a; +assert.equal(k(), 'b'); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Catch.js b/packages/babel/test/fixtures/traceur/Destructuring/Catch.js new file mode 100644 index 0000000000..6b110c025f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Catch.js @@ -0,0 +1,30 @@ +var head = 'head'; +var tail = 'tail'; +var name = 'name'; + +function MyError(s) { + this.message = new String(s); + this.name = 'Error'; +} + +try { + throw new MyError('abc'); +} catch ({message: [head, ...tail], name}) { + assert.equal('a', head); + assertArrayEquals(['b', 'c'], tail); + assert.equal('Error', name); +} + +assert.equal('head', head); +assert.equal('tail', tail); +assert.equal('name', name); + +assert.throws(() => { + try { + throw [0]; + } catch ([innerX]) { + + } + + innerX; +}, ReferenceError); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Class.js b/packages/babel/test/fixtures/traceur/Destructuring/Class.js new file mode 100644 index 0000000000..c699d39c4c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Class.js @@ -0,0 +1,28 @@ +function MyError(s) { + this.message = new String(s); + this.name = 'Error'; +} + +class C { + constructor({message: [head, ...tail], name}) { + assert.equal('a', head); + assertArrayEquals(['b', 'c'], tail); + assert.equal('Error', name); + } + + method({message: [head, ...tail], name}) { + assert.equal('a', head); + assertArrayEquals(['b', 'c'], tail); + assert.equal('Error', name); + } + + set x({message: [head, ...tail], name}) { + assert.equal('a', head); + assertArrayEquals(['b', 'c'], tail); + assert.equal('Error', name); + } +} + +var c = new C(new MyError('abc')); +c.method(new MyError('abc')); +c.x = new MyError('abc'); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializedName.js b/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializedName.js new file mode 100644 index 0000000000..1b91bd3a8d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializedName.js @@ -0,0 +1,4 @@ +// https://github.com/google/traceur-compiler/issues/183 + +var f = ({x = 42}) => x; +assert.equal(f({}), 42); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializer.js b/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializer.js new file mode 100644 index 0000000000..ed37f7257d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializer.js @@ -0,0 +1,9 @@ +// https://github.com/google/traceur-compiler/issues/1015 + +var x, y; +({x = 1, y = 2} = {}); +assert.equal(x, 1); +assert.equal(y, 2); + +({x: {x = 3}} = {x: {}}); +assert.equal(x, 3); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js b/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js new file mode 100644 index 0000000000..eb0a9781d3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js @@ -0,0 +1,9 @@ +// https://github.com/google/traceur-compiler/issues/836 + +var count = 0; +for ({a = 0} of [{}]) { + count++; + assert.equal(a, 0); +} + +assert.equal(count, 1); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/DefaultParams.js b/packages/babel/test/fixtures/traceur/Destructuring/DefaultParams.js new file mode 100644 index 0000000000..e6a1670b75 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/DefaultParams.js @@ -0,0 +1,5 @@ +function f([x] = [1], {y} = {y: 2}) { + return x + y; +} + +assert.equal(3, f()); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Empty.js b/packages/babel/test/fixtures/traceur/Destructuring/Empty.js new file mode 100644 index 0000000000..275534362b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Empty.js @@ -0,0 +1,32 @@ +var calls = 0; + +var {} = Object(calls++); +assert.equal(calls, 1); + +assert.throw(function() { + var [] = Object(calls++); +}, TypeError); +assert.equal(calls, 2); + +assert.throw(function() { + var {} = Object(calls++), [] = Object(calls++); +}); +assert.equal(calls, 4); + + +/////////////////////// + +calls = 0; + +({} = Object(calls++)); +assert.equal(calls, 1); + +assert.throw(function() { + [] = Object(calls++); +}, TypeError); +assert.equal(calls, 2); + +assert.throw(function() { + ({} = Object(calls++), [] = Object(calls++)); +}, TypeError); +assert.equal(calls, 4); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_Disabled.js b/packages/babel/test/fixtures/traceur/Destructuring/Error_Disabled.js new file mode 100644 index 0000000000..f177fe43b3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --destructuring=false +// Error: 4:5: Unexpected token [ + +var [x, y] = [0, 1]; diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js b/packages/babel/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js new file mode 100644 index 0000000000..ea9c29c5f7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js @@ -0,0 +1,4 @@ +// Error: :3:19: Unexpected token in + +for (var {k} = {} in {}) { +} diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js b/packages/babel/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js new file mode 100644 index 0000000000..6a15645310 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js @@ -0,0 +1,4 @@ +// Error: :3:19: Unexpected token of + +for (var {k} = {} of []) { +} diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js b/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js new file mode 100644 index 0000000000..c7eca5a9d6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js @@ -0,0 +1,3 @@ +// Error: :3:16: Unexpected token , + +var f = ([...xs, ys]) => xs; diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js b/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js new file mode 100644 index 0000000000..441d53c8d1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js @@ -0,0 +1,3 @@ +// Error: :3:5: Unexpected token = + +({x = 42}); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js b/packages/babel/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js new file mode 100644 index 0000000000..9027f27207 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js @@ -0,0 +1,9 @@ +function destructEvaluatesToRvalue() { + var a; + return [a] = [1, 2, 3]; +} + +// ---------------------------------------------------------------------------- + +var result = destructEvaluatesToRvalue(); +assertArrayEquals([1, 2, 3], result); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/EvaluationOrder.js b/packages/babel/test/fixtures/traceur/Destructuring/EvaluationOrder.js new file mode 100644 index 0000000000..50df75e13e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/EvaluationOrder.js @@ -0,0 +1,10 @@ +function destructEvaluationOrder() { + var a; + [a, a, a] = [1, 2, 3, 4]; + return a; +} + +// ---------------------------------------------------------------------------- + +var result = destructEvaluationOrder(); +assert.equal(3, result); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ForInLoop.js b/packages/babel/test/fixtures/traceur/Destructuring/ForInLoop.js new file mode 100644 index 0000000000..42aadf4239 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ForInLoop.js @@ -0,0 +1,28 @@ +// Options: --block-binding + +var object = { + abc: 0, // Keep all the keys at length 3. + def: 1 +}; + +var expectedHeads = ['a', 'd']; +var expectedTails = [['b', 'c'], ['e','f']]; +var i = 0; +for (var [head, ...tail] in object) { + assert.equal(expectedHeads[i], head); + assertArrayEquals(expectedTails[i], tail); + i++; +} +assert.equal(2, i); + +{ + let x = 42; + for (let {length: x} in object) { + assert.equal(3, x); + } + assert.equal(42, x); +} + +var k; +for ({length: k} in {abc: 3}) // No block + assert.equal(3, k); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ForOfLoop.js b/packages/babel/test/fixtures/traceur/Destructuring/ForOfLoop.js new file mode 100644 index 0000000000..cc9260c166 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ForOfLoop.js @@ -0,0 +1,28 @@ +// Options: --block-binding + +function* gen() { + yield new String('abc'); + yield new String('def'); +} + +var expectedHeads = ['a', 'd']; +var expectedTails = [['b', 'c'], ['e','f']]; +var i = 0; +for (var [head, ...tail] of gen()) { + assert.equal(expectedHeads[i], head); + assertArrayEquals(expectedTails[i], tail); + i++; +} +assert.equal(2, i); + +{ + let x = 42; + for (let {length: x} of gen()) { + assert.equal(3, x); + } + assert.equal(42, x); +} + +var k; +for ({length: k} of [new String('abc')]) // No block + assert.equal(3, k); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js b/packages/babel/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js new file mode 100644 index 0000000000..9af424c550 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js @@ -0,0 +1,14 @@ +function f([a, b, ...c], d) { + return [a, b, c, d]; +} +assertArrayEquals([1, 2, [3, 4], 5], f([1, 2, 3, 4], 5)); + +function g([, a]) { + return a; +} +assert.equal(g([0, 1]), 1); + +function h([, [, a]]) { + return a; +} +assert.equal(h([0, [1, 2]]), 2); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js b/packages/babel/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js new file mode 100644 index 0000000000..612ae47dd2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js @@ -0,0 +1,5 @@ +function f({a, b: {c}}, d) { + return [a, c, d]; +} + +assertArrayEquals([1, 2, 3], f({a: 1, b: {c: 2}}, 3)); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Initializer.js b/packages/babel/test/fixtures/traceur/Destructuring/Initializer.js new file mode 100644 index 0000000000..ce8a9caa97 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Initializer.js @@ -0,0 +1,74 @@ +var [a = 0] = []; +assert.equal(0, a); + +var {b = 1} = {}; +assert.equal(1, b); + +var {c = 2} = {c: 3}; +assert.equal(3, c); + +var {d = 4} = Object.create({d: 5}); +assert.equal(5, d); + +var {e: f = 6} = {}; +assert.equal(6, f); + +var {g: h = 7} = {h: 8}; +assert.equal(7, h); + +var [, , , i = 9] = [10, 11, 12]; +assert.equal(9, i); + +function j({x = 42}, expected) { + assert.equal(expected, x); +} + +j({}, 42); +j({x: 43}, 43); + +var count = 0; +var [k = 42] = (count++, [21]); +assert.equal(21, k); +assert.equal(1, count); + +var {x = 1} = {x: undefined}; +assert.equal(x, 1); + +var {'x': x = 2} = {x: undefined}; +assert.equal(x, 2); + +var {['x']: x = 3} = {x: undefined}; +assert.equal(x, 3); + +var [y = 4] = [undefined]; +assert.equal(y, 4); + + +var xCount = 0; +var yCount = 0; +var zCount = 0; + +var object = { + get x() { + xCount++; + return { + get y() { + yCount++; + return { + get z() { + zCount++; + return undefined; + } + }; + } + }; + } +}; + +var {y: {z = 5, w = 6}, v = 7} = object.x; +assert.equal(z, 5); +assert.equal(w, 6); +assert.equal(v, 7); +assert.equal(xCount, 1); +assert.equal(yCount, 1); +assert.equal(zCount, 1); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/InitializerObject.js b/packages/babel/test/fixtures/traceur/Destructuring/InitializerObject.js new file mode 100644 index 0000000000..946b0e2a2d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/InitializerObject.js @@ -0,0 +1,12 @@ +var x, z; + +({x = {y: 1}} = {}); +assert.deepEqual(x, {y: 1}); + +({x = {y: {z = 2} = {}}} = {}); +assert.equal(z, 2); +assert.deepEqual(x, {y: {}}); + +({x = {y: {z = 3} = {z: 4}}} = {}); +assert.equal(z, 4); +assert.deepEqual(x, {y: {z: 4}}); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Method.js b/packages/babel/test/fixtures/traceur/Destructuring/Method.js new file mode 100644 index 0000000000..604bdc09fb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Method.js @@ -0,0 +1,14 @@ +function MyError(s) { + this.message = new String(s); + this.name = 'Error'; +} + +var object = { + method({message: [head, ...tail], name}) { + assert.equal('a', head); + assertArrayEquals(['b', 'c'], tail); + assert.equal('Error', name); + } +}; + +object.method(new MyError('abc')); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js b/packages/babel/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js new file mode 100644 index 0000000000..f980a8fbd8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js @@ -0,0 +1,4 @@ +// https://github.com/google/traceur-compiler/issues/838 + +var f = ({a = 0}, {b = 1}) => ({a, b}); +assert.deepEqual(f({}, {}), {a: 0, b: 1}); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/NestedScopeArguments.js b/packages/babel/test/fixtures/traceur/Destructuring/NestedScopeArguments.js new file mode 100644 index 0000000000..692a1bcfd4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/NestedScopeArguments.js @@ -0,0 +1,11 @@ +// Destructuring bind alpha-renames 'arguments'; this ensures that +// renaming doesn't rename in nested scopes. +function destructNestedScopeArguments(x) { + [(function () { return arguments[1]; })(null, x)[0]] = [42]; +} + +// ---------------------------------------------------------------------------- + +var result = []; +destructNestedScopeArguments(result); +assert.equal(42, result[0]); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Object.js b/packages/babel/test/fixtures/traceur/Destructuring/Object.js new file mode 100644 index 0000000000..562f24d4e6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Object.js @@ -0,0 +1,42 @@ +function destructObject() { + var a, b, c, d; + ({a, x: b, y: {c, z: [,d]}} = { + a: 7, // field with shorthand a => a: a syntax + x: 8, // typical syntax + y: { // nested object destructuring + // missing binding 'c' + z: [10, 11, 12] // nested array destructuring + } + }); + return { + a: a, + b: b, + c: c, + d: d + }; +} + +// ---------------------------------------------------------------------------- + +var result = destructObject(); +assert.equal(7, result.a); +assert.equal(8, result.b); +assert.isUndefined(result.c); +assert.equal(11, result.d); + +var {0: x, '1': y, length: z} = [0, 1, 2, 3]; +assert.equal(0, x); +assert.equal(1, y); +assert.equal(4, z); + +var {x: y,} = {x: 5}; +assert.equal(5, y); + +var x; +({x = 6} = {}); +assert.equal(x, 6); + +var z; +({x: {y = 7}, z = 8} = {x: {}}); +assert.equal(y, 7); +assert.equal(z, 8); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Rest.js b/packages/babel/test/fixtures/traceur/Destructuring/Rest.js new file mode 100644 index 0000000000..6000165cf4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Rest.js @@ -0,0 +1,19 @@ +function destructRest() { + var a, b, c, d; + [...a] = [1, 2, 3]; + [b, ...c] = [1, 2, 3]; + [,,, ...d] = [1, 2, 3]; + return {a: a, b: b, c: c, d: d}; +} + +var result = destructRest(); +assertArrayEquals([1, 2, 3], result.a); +assert.equal(1, result.b); +assertArrayEquals([2, 3], result.c); +assertArrayEquals([], result.d); + +assert.throw(function() { + var e; + // No iterator. + [...e] = {x: 'boom'}; +}, TypeError); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/RestIterator.js b/packages/babel/test/fixtures/traceur/Destructuring/RestIterator.js new file mode 100644 index 0000000000..2963e51ed2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/RestIterator.js @@ -0,0 +1,45 @@ +(function() { + var i; + + function* f() { + for (i = 0; i < 8; i++) { + yield i; + } + } + var x, x2, xs; + [, x, , x2, , ...xs] = f(); + assert.equal(1, x); + assert.equal(3, x2); + assertArrayEquals([5, 6, 7], xs); + + [] = f(); + assert.equal(8, i); // Since we never call next(). + + x = -1; + [x] = f(); + assert.equal(0, x); + assert.equal(0, i); // Since we called next once. +})(); + +// Same but with VariableDeclarations instead of AssignmenExpressions. +(function() { + var i; + + function* f() { + for (i = 0; i < 8; i++) { + yield i; + } + } + + var [, x, , x2, , ...xs] = f(); + assert.equal(1, x); + assert.equal(3, x2); + assertArrayEquals([5, 6, 7], xs); + + var [] = f(); + assert.equal(8, i); // Since we never call next(). + + var [y] = f(); + assert.equal(0, y); + assert.equal(0, i); // Since we called next once. +})(); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ScopeThis.js b/packages/babel/test/fixtures/traceur/Destructuring/ScopeThis.js new file mode 100644 index 0000000000..c2f8c80087 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ScopeThis.js @@ -0,0 +1,19 @@ +function destructScopeThis() { + var x; + var o = { + f: function() { + [this.x] = [1]; + } + }; + o.f(); + return { + x: x, + o_x: o.x + }; +} + +// ---------------------------------------------------------------------------- + +var result = destructScopeThis(); +assert.isUndefined(result.x); +assert.equal(1, result.o_x); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/SetAccessor.js b/packages/babel/test/fixtures/traceur/Destructuring/SetAccessor.js new file mode 100644 index 0000000000..2273925139 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/SetAccessor.js @@ -0,0 +1,14 @@ +function MyError(s) { + this.message = new String(s); + this.name = 'Error'; +} + +var object = { + set x({message: [head, ...tail], name}) { + assert.equal('a', head); + assertArrayEquals(['b', 'c'], tail); + assert.equal('Error', name); + } +}; + +object.x = new MyError('abc'); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Simplify.js b/packages/babel/test/fixtures/traceur/Destructuring/Simplify.js new file mode 100644 index 0000000000..0a78850324 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Simplify.js @@ -0,0 +1,167 @@ +// It probably doesn't make a difference to the results, but the private name +// transformation turns array lookup and member access into function calls, and +// I'd like to keep that from being a confounding factor. + +'use strict'; + +var a, b, c, x, y, z; +a = b = c = x = y = z = undefined; + +// ---------------------------------------------------------------------------- + +function checkA() { + assert.equal(1, a); + assert.isUndefined(b); + assert.isUndefined(c); + a = b = c = undefined; +} + +function checkAb() { + assert.equal(1, a); + assert.equal(2, b); + assert.isUndefined(c); + a = b = c = undefined; +} + +function checkAbc() { + assert.equal(1, a); + assert.equal(2, b); + assert.equal(3, c); + a = b = c = undefined; +} + +// ---------------------------------------------------------------------------- + +// misc single assignment +var [a] = 42 === 42 ? [1] : [42]; +checkA(); +[a] = 42 === 42 ? [1] : [42]; +checkA(); + +var [a] = null || [1]; +checkA(); +[a] = null || [1]; +checkA(); + +// ParseTreeType.MEMBER_EXPRESSION +x = {x: {a: 1, b: 2, c: 3}}; +var {a, b, c} = x.x; +checkAbc(); + +var {a} = x.x; +checkA(); + +x = {x: [1, 2, 3]}; +var [a] = x.x; +checkA(); +[a] = x.x; +checkA(); + +// ParseTreeType.MEMBER_LOOKUP_EXPRESSION +x = [[1,2,3]]; +var [a] = x[0]; +checkA(); +[a] = x[0]; +checkA(); +var [a, b, c] = x[0]; +checkAbc(); +[a, b, c] = x[0]; +checkAbc(); + + +// ParseTreeType.PAREN_EXPRESSION +var [a] = 42 === 42 ? [1] : [42]; +checkA(); +[a] = 42 === 42 ? [1] : [42]; +checkA(); + +var [a] = null || [1]; +checkA(); +[a] = null || [1]; +checkA(); + +// ParseTreeType.ARRAY_LITERAL +var [a] = [1, 2, 3]; +checkA(); +[a] = [1, 2, 3]; +checkA(); +var [[a]] = [[1], 2, 3]; +checkA(); +[[a]] = [[1], 2, 3]; +checkA(); + +// ParseTreeType.OBJECT_LITERAL +var {a} = {a: 1, b: 2, c: 3}; +checkA(); +var {x: {a}} = {x: {a: 1, b: 2}, c: 3}; +checkA(); + +// ParseTreeType.CALL_EXPRESSION +x = function() { + return [1, 2, 3]; +}; +var [a, b, c] = x(); +checkAbc(); +[a, b, c] = x(); +checkAbc(); + +x = function() { + return {a: 1, b: 2, c: 3}; +}; +var {a, b, c} = x(); +checkAbc(); +// ParseTreeType.IDENTIFIER_EXPRESSION + +// arrays +x = [1, 2, 3]; +var [a] = x; +checkA(); +[a] = x; +checkA(); + +x = [[1], 2, 3]; +var [[a]] = x; +checkA(); +[[a]] = x; +checkA(); + +x = [[1, 2, 3]]; +var [[a, b, c]] = x; +checkAbc(); +[[a, b, c]] = x; +checkAbc(); + +x = [1, [2, 3]]; +var [ a, [b, c] ] = x; +checkAbc(); +[ a, [b, c] ] = x; +checkAbc(); + +x = [[1, 2], 3]; +var [[a, b], c] = x; +checkAbc(); +[[a, b], c] = x; +checkAbc(); + +x = [[1], 2, [3]]; +var [[a], b, [c]] = x; +checkAbc(); +[[a], b, [c]] = x; +checkAbc(); + +// objects +x = {a: 1, b: 2, c: 3}; +var {a, b, c} = x; +checkAbc(); + +x = {a: 1, b: 2, c: 3}; +var {a} = x; +checkA(); + +x = {a: 1, b: 2, c: 3}; +var {a, b, c} = x; +checkAbc(); + +x = {x: {a: 1, b: 2}, c: 3}; +var {x: {a}} = x; +checkA(); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/StrangeProperties.js b/packages/babel/test/fixtures/traceur/Destructuring/StrangeProperties.js new file mode 100644 index 0000000000..487cbd055d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/StrangeProperties.js @@ -0,0 +1,17 @@ +var x, y; + +({if: x = 1, else: y} = {else: 2}); +assert.equal(x, 1); +assert.equal(y, 2); + +({'': x = 3, ' ': y} = {' ': 4}); +assert.equal(x, 3); +assert.equal(y, 4); + +({true: x = 5, false: y} = {false: 6}); +assert.equal(x, 5); +assert.equal(y, 6); + +({0: x = 7, 1: y} = {1: 8}); +assert.equal(x, 7); +assert.equal(y, 8); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Strict.js b/packages/babel/test/fixtures/traceur/Destructuring/Strict.js new file mode 100644 index 0000000000..d2b56659ce --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/Strict.js @@ -0,0 +1,6 @@ +function f({x}) { + 'use strict'; + return this; +} + +assert.isUndefined(f({x: 42})); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Destructuring/TopLevel.js b/packages/babel/test/fixtures/traceur/Destructuring/TopLevel.js new file mode 100644 index 0000000000..6409d45b91 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/TopLevel.js @@ -0,0 +1,9 @@ +var a, b, c, d; +[a, [b, c], d] = ['hello', [',', 'junk'], ['world']]; + +// ---------------------------------------------------------------------------- + +assert.equal('hello', a); +assert.equal(',', b); +assert.equal('junk', c); +assertArrayEquals(['world'], d); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ValueTypes.js b/packages/babel/test/fixtures/traceur/Destructuring/ValueTypes.js new file mode 100644 index 0000000000..b76d12cc6c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/ValueTypes.js @@ -0,0 +1,58 @@ +(function() { + var {toFixed} = 42; + assert.equal(Number.prototype.toFixed, toFixed); + + var {toString, toLocaleString} = 42; + assert.equal(Number.prototype.toString, toString); + assert.equal(Number.prototype.toLocaleString, toLocaleString); + + var [x] = 'string'; + assert.equal('s', x); + + var [x, y] = 'string'; + assert.equal('s', x); + assert.equal('t', y); + + var [x, ...xs] = 'string'; + assert.equal('s', x); + assert.deepEqual(['t', 'r', 'i', 'n', 'g'], xs); + + var {toFixed: {length}} = 42; + assert.equal(1, length); + + var {x: {toString}} = {x: true}; + assert.equal(Boolean.prototype.toString, toString); + + var [[x]] = ['string']; + assert.equal('s', x); + + // Same with assignment expression + + ({toFixed} = 42); + assert.equal(Number.prototype.toFixed, toFixed); + + ({toString, toLocaleString} = 42); + assert.equal(Number.prototype.toString, toString); + assert.equal(Number.prototype.toLocaleString, toLocaleString); + + [x] = 'string'; + assert.equal('s', x); + + [x, y] = 'string'; + assert.equal('s', x); + assert.equal('t', y); + + [x, ...xs] = 'string'; + assert.equal('s', x); + assert.deepEqual(['t', 'r', 'i', 'n', 'g'], xs); + + ({toFixed: {length}} = 42); + assert.equal(1, length); + + ({x: {toString}} = {x: true}); + assert.equal(Boolean.prototype.toString, toString); + + [[x]] = ['string']; + assert.equal('s', x); + +})(); diff --git a/packages/babel/test/fixtures/traceur/Destructuring/VarDecl.js b/packages/babel/test/fixtures/traceur/Destructuring/VarDecl.js new file mode 100644 index 0000000000..ec77aff801 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Destructuring/VarDecl.js @@ -0,0 +1,27 @@ +// Options: --block-binding + +function destructVarDecl() { + // Const; and an array inside an object literal inside an array. + const a = 0, [b, {c, x: [d]}] = [1, {c: 2, x: [3]}]; + + // Now an object literal inside an array inside an object literal. + var {x: [{e}, f], g} = {x: [{e:4}, 5], g: 6}; + + // Two patterns in one var. + var {h} = {h: 7}, {i} = {i: 8}; + + return { a: a, b: b, c: c, d: d, e: e, f: f, g: g, h: h, i: i }; +} + +// ---------------------------------------------------------------------------- + +var result = destructVarDecl(); +assert.equal(0, result.a); +assert.equal(1, result.b); +assert.equal(2, result.c); +assert.equal(3, result.d); +assert.equal(4, result.e); +assert.equal(5, result.f); +assert.equal(6, result.g); +assert.equal(7, result.h); +assert.equal(8, result.i); diff --git a/packages/babel/test/fixtures/traceur/Exponentiation/Basics.js b/packages/babel/test/fixtures/traceur/Exponentiation/Basics.js new file mode 100644 index 0000000000..c6a775f489 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Exponentiation/Basics.js @@ -0,0 +1,42 @@ +// Options: --exponentiation + +(function() { + assert.equal(8, 2 ** 3); + assert.equal(24, 3 * 2 ** 3); + var x = 2; + assert.equal(8, 2 ** ++x); + assert.equal(1, 2 ** -1 * 2); + + var calls = 0; + var q = {q: 3}; + var o = { + get p() { + calls++; + return q; + } + }; + + o.p.q **= 2; + assert.equal(1, calls); + assert.equal(9, o.p.q); + + assert.equal(512, 2 ** (3 ** 2)); + assert.equal(512, 2 ** 3 ** 2); + + var y = 4; + var z = y **= 2; + assert.equal(16, z); + + function f(x) { + assert.equal(1, arguments.length); + return x; + } + var a = 2; + var b = [a **= 2]; + assert.equal(4, a); + assert.equal(1, b.length); + assert.equal(4, b[0]); + + assert.equal(64, f(a **= 3)); + assert.equal(64, a); +})(); diff --git a/packages/babel/test/fixtures/traceur/ForOf/NewNoParens.js b/packages/babel/test/fixtures/traceur/ForOf/NewNoParens.js new file mode 100644 index 0000000000..19e564ac08 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ForOf/NewNoParens.js @@ -0,0 +1,21 @@ +function C() {} +C.prototype[Symbol.iterator] = function() { + var n = 0; + return { + next() { + return {value: n++, done: n > 3}; + } + }; +}; + +var s = ''; +for (var x of new C()) { + s += x; +} +assert.equal(s, '012'); + +s = ''; +for (var x of new C) { + s += x; +} +assert.equal(s, '012'); diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js new file mode 100644 index 0000000000..e87ed8b891 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --generator-comprehension=false +// Error: :4:13: Unexpected reserved word for + +var iter = (for (x of [0, 1, 2, 3, 4]) x); diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js new file mode 100644 index 0000000000..66c7e28002 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js @@ -0,0 +1,5 @@ +// Options: --generator-comprehension --free-variable-checker +// Error: :5:1: notDefined is not defined + +var iter = (for (notDefined of [0]) notDefined); +notDefined; diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Simple.js b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Simple.js new file mode 100644 index 0000000000..ffeae46555 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Simple.js @@ -0,0 +1,40 @@ +// Options: --generator-comprehension + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +function* range() { + for (var i = 0; i < 5; i++) { + yield i; + } +} + +var iter = (for (x of [0, 1, 2, 3, 4]) x); +assert.equal('01234', accumulate(iter)); + +var iter2 = (for (x of [0, 1, 2, 3, 4]) for (y of [0, 1, 2, 3, 4]) x + '' + y ); +assert.equal('00010203041011121314202122232430313233344041424344', + accumulate(iter2)); + +var iter3 = ( + for (x of [0, 1, 2, 3, 4]) + for (y of range()) + if (x === y) + x + '' + y); +assert.equal('0011223344', accumulate(iter3)); + +// Ensure this works as expression statement +(for (testVar of []) testVar); + +var iter4 = ( + for (x of range()) + if (x % 2 === 0) + for (y of range()) + if (y % 2 === 1) + x + '' + y); +assert.equal('010321234143', accumulate(iter4)); diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js new file mode 100644 index 0000000000..5442161373 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js @@ -0,0 +1,23 @@ +// Options: --generator-comprehension +// Skip. The sugaring uses var instead of let which leads to wrong closure. + +var iter = (for (x of [0, 1]) for (y of [2, 3]) () => [x, y] ); + +assert.isTrue(iter.moveNext()); +var f1 = iter.current; + +assert.isTrue(iter.moveNext()); +var f2 = iter.current; + +assert.isTrue(iter.moveNext()); +var f3 = iter.current; + +assert.isTrue(iter.moveNext()); +var f4 = iter.current; + +assert.isFalse(iter.moveNext()); + +assertArrayEquals([0, 2], f1()); +assertArrayEquals([0, 3], f2()); +assertArrayEquals([1, 2], f3()); +assertArrayEquals([1, 3], f4()); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/LICENSE b/packages/babel/test/fixtures/traceur/LICENSE new file mode 100644 index 0000000000..6d00d2ecac --- /dev/null +++ b/packages/babel/test/fixtures/traceur/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2011 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/babel/test/fixtures/traceur/Math/acosh.module.js b/packages/babel/test/fixtures/traceur/Math/acosh.module.js new file mode 100644 index 0000000000..716e3c02bc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/acosh.module.js @@ -0,0 +1,8 @@ +import {acosh} from '../../../src/runtime/polyfills/Math.js'; + +function testAcosh(acosh) { + assert.equal(0, acosh(1)); +} + +testAcosh(acosh); +testAcosh(Math.acosh); diff --git a/packages/babel/test/fixtures/traceur/Math/asinh.module.js b/packages/babel/test/fixtures/traceur/Math/asinh.module.js new file mode 100644 index 0000000000..2590ef121d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/asinh.module.js @@ -0,0 +1,8 @@ +import {asinh} from '../../../src/runtime/polyfills/Math.js'; + +function testAsinh(asinh) { + assert.equal(0, asinh(0)); +} + +testAsinh(asinh); +testAsinh(Math.asinh); diff --git a/packages/babel/test/fixtures/traceur/Math/atanh.module.js b/packages/babel/test/fixtures/traceur/Math/atanh.module.js new file mode 100644 index 0000000000..0a96869e6b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/atanh.module.js @@ -0,0 +1,8 @@ +import {atanh} from '../../../src/runtime/polyfills/Math.js'; + +function testAtanh(atanh) { + assert.equal(0, atanh(0)); +} + +testAtanh(atanh); +testAtanh(Math.atanh); diff --git a/packages/babel/test/fixtures/traceur/Math/cbrt.module.js b/packages/babel/test/fixtures/traceur/Math/cbrt.module.js new file mode 100644 index 0000000000..726ff94e2a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/cbrt.module.js @@ -0,0 +1,8 @@ +import {cbrt} from '../../../src/runtime/polyfills/Math.js'; + +function testCbrt(cbrt) { + assert.equal(0, cbrt(0)); +} + +testCbrt(cbrt); +testCbrt(Math.cbrt); diff --git a/packages/babel/test/fixtures/traceur/Math/clz32.module.js b/packages/babel/test/fixtures/traceur/Math/clz32.module.js new file mode 100644 index 0000000000..2d21aaeaa9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/clz32.module.js @@ -0,0 +1,9 @@ +import {clz32} from '../../../src/runtime/polyfills/Math.js'; + +function testClz32(clz32) { + [NaN, Infinity, -Infinity, 0, -0, 'abc', 'Infinity', '-Infinity', {}].forEach( + (x) => assert.equal(32, clz32(x))); +} + +testClz32(clz32); +testClz32(Math.clz32); diff --git a/packages/babel/test/fixtures/traceur/Math/cosh.module.js b/packages/babel/test/fixtures/traceur/Math/cosh.module.js new file mode 100644 index 0000000000..c61ab85d06 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/cosh.module.js @@ -0,0 +1,11 @@ +import {cosh} from '../../../src/runtime/polyfills/Math.js'; + +function testCosh(cosh) { + assert.equal(Infinity, cosh(-Infinity)); + assert.equal(Infinity, cosh(Infinity)); + assert.equal(1, cosh(0)); + assert.equal(1, cosh(-0)); +} + +testCosh(cosh); +testCosh(Math.cosh); diff --git a/packages/babel/test/fixtures/traceur/Math/expm1.module.js b/packages/babel/test/fixtures/traceur/Math/expm1.module.js new file mode 100644 index 0000000000..0bbeb63d26 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/expm1.module.js @@ -0,0 +1,9 @@ +import {expm1} from '../../../src/runtime/polyfills/Math.js'; + +function testExpm1(expm1) { + assert.equal(Infinity, expm1(Infinity)); + assert.equal(-1, expm1(-Infinity)); +} + +testExpm1(expm1); +testExpm1(Math.expm1); diff --git a/packages/babel/test/fixtures/traceur/Math/fround.module.js b/packages/babel/test/fixtures/traceur/Math/fround.module.js new file mode 100644 index 0000000000..65fe328483 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/fround.module.js @@ -0,0 +1,22 @@ +import {fround} from '../../../src/runtime/polyfills/Math.js'; +import {fround as jsFround} from '../../../src/runtime/polyfills/fround.js'; + +function testFround(x, expected) { + assert.strictEqual(expected, Math.fround(x)); + assert.strictEqual(expected, fround(x)); + assert.strictEqual(expected, jsFround(x)); +} + +testFround(0, 0); +testFround(-0, -0); +testFround(Infinity, Infinity); +testFround(-Infinity, -Infinity); + +assert.isTrue(isNaN(Math.fround(NaN))); +assert.isTrue(isNaN(fround(NaN))); +assert.isTrue(isNaN(jsFround(NaN))); + +testFround(1, 1); +testFround(1.5, 1.5); +testFround(1.6, 1.600000023841858); +testFround(1.337, 1.3370000123977661); diff --git a/packages/babel/test/fixtures/traceur/Math/hypot.module.js b/packages/babel/test/fixtures/traceur/Math/hypot.module.js new file mode 100644 index 0000000000..097e5b5318 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/hypot.module.js @@ -0,0 +1,9 @@ +import {hypot} from '../../../src/runtime/polyfills/Math.js'; + +function testHypot(hypot) { + assert.equal(1, hypot(1)); + assert.equal(Math.PI, hypot(Math.PI)); +} + +testHypot(hypot); +testHypot(Math.hypot); diff --git a/packages/babel/test/fixtures/traceur/Math/imul.module.js b/packages/babel/test/fixtures/traceur/Math/imul.module.js new file mode 100644 index 0000000000..e67624dca2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/imul.module.js @@ -0,0 +1,8 @@ +import {imul} from '../../../src/runtime/polyfills/Math.js'; + +function testImul(imul) { + assert.equal(8, imul(2, 4)); +} + +testImul(imul); +testImul(Math.imul); diff --git a/packages/babel/test/fixtures/traceur/Math/log10.module.js b/packages/babel/test/fixtures/traceur/Math/log10.module.js new file mode 100644 index 0000000000..64cae99669 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/log10.module.js @@ -0,0 +1,9 @@ +import {log10} from '../../../src/runtime/polyfills/Math.js'; + +function testLog10(log10) { + assert.equal(1, log10(10)); + assert.equal(2, log10(100)); +} + +testLog10(log10); +testLog10(Math.log10); diff --git a/packages/babel/test/fixtures/traceur/Math/log1p.module.js b/packages/babel/test/fixtures/traceur/Math/log1p.module.js new file mode 100644 index 0000000000..2fd94cbf2f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/log1p.module.js @@ -0,0 +1,8 @@ +import {log1p} from '../../../src/runtime/polyfills/Math.js'; + +function testLog1p(log1p) { + assert.equal(0, log1p(0)); +} + +// testLog1p(log1p); +testLog1p(Math.log1p); diff --git a/packages/babel/test/fixtures/traceur/Math/log2.module.js b/packages/babel/test/fixtures/traceur/Math/log2.module.js new file mode 100644 index 0000000000..fc5935d091 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/log2.module.js @@ -0,0 +1,9 @@ +import {log2} from '../../../src/runtime/polyfills/Math.js'; + +function testLog2(log2) { + assert.equal(1, log2(2)); + assert.equal(2, log2(4)); +} + +testLog2(log2); +testLog2(Math.log2); diff --git a/packages/babel/test/fixtures/traceur/Math/sign.module.js b/packages/babel/test/fixtures/traceur/Math/sign.module.js new file mode 100644 index 0000000000..35c816a583 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/sign.module.js @@ -0,0 +1,11 @@ +import {sign} from '../../../src/runtime/polyfills/Math.js'; + +function testSign(sign) { + assert.equal(1, sign(1)); + assert.equal(-1, sign(-1)); + assert.equal(0, sign(0)); + assert.equal(-0, sign(-0)); +} + +testSign(sign); +testSign(Math.sign); diff --git a/packages/babel/test/fixtures/traceur/Math/sinh.module.js b/packages/babel/test/fixtures/traceur/Math/sinh.module.js new file mode 100644 index 0000000000..c09335be35 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/sinh.module.js @@ -0,0 +1,11 @@ +import {sinh} from '../../../src/runtime/polyfills/Math.js'; + +function testSinh(sinh) { + assert.equal(0, sinh(0)); + assert.equal(-0, sinh(-0)); + assert.equal(Infinity, sinh(Infinity)); + assert.equal(-Infinity, sinh(-Infinity)); +} + +testSinh(sinh); +testSinh(Math.sinh); diff --git a/packages/babel/test/fixtures/traceur/Math/tanh.module.js b/packages/babel/test/fixtures/traceur/Math/tanh.module.js new file mode 100644 index 0000000000..056ce2fa32 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/tanh.module.js @@ -0,0 +1,11 @@ +import {tanh} from '../../../src/runtime/polyfills/Math.js'; + +function testTanh(tanh) { + assert.equal(0, tanh(0)); + assert.equal(-0, tanh(-0)); + assert.equal(1, tanh(Infinity)); + assert.equal(-1, tanh(-Infinity)); +} + +testTanh(tanh); +testTanh(Math.tanh); diff --git a/packages/babel/test/fixtures/traceur/Math/trunc.module.js b/packages/babel/test/fixtures/traceur/Math/trunc.module.js new file mode 100644 index 0000000000..c9841d70ef --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Math/trunc.module.js @@ -0,0 +1,14 @@ +import {trunc} from '../../../src/runtime/polyfills/Math.js'; + +function testTrunc(trunc) { + assert.equal(0, trunc(0)); + assert.equal(-0, trunc(-0)); + assert.equal(Infinity, trunc(Infinity)); + assert.equal(-Infinity, trunc(-Infinity)); + assert.equal(42, trunc(42)); + assert.equal(2, trunc(2.5)); + assert.equal(-2, trunc(-2.5)); +} + +testTrunc(trunc); +testTrunc(Math.trunc); diff --git a/packages/babel/test/fixtures/traceur/Modules/EmptyNamedImport.module.js b/packages/babel/test/fixtures/traceur/Modules/EmptyNamedImport.module.js new file mode 100644 index 0000000000..866efd0a87 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/EmptyNamedImport.module.js @@ -0,0 +1 @@ +import {} from './resources/m.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js new file mode 100644 index 0000000000..1b8242c196 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js @@ -0,0 +1,10 @@ +// Error: test/feature/Modules/Error_DuplicateImport.module.js:6:9: 'a' was previously imported at test/feature/Modules/Error_DuplicateImport.module.js:5:9 +// Error: test/feature/Modules/Error_DuplicateImport.module.js:9:8: 'd' was previously imported at test/feature/Modules/Error_DuplicateImport.module.js:8:8 +// Error: test/feature/Modules/Error_DuplicateImport.module.js:10:9: 'd' was previously imported at test/feature/Modules/Error_DuplicateImport.module.js:8:8 + +import {a} from './resources/a.js'; +import {c as a} from './resources/c.js'; + +import d from './resources/default-class.js'; +import d from './resources/default-name.js'; +import {a as d} from './resources/a2.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js new file mode 100644 index 0000000000..be6eb05625 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js @@ -0,0 +1,3 @@ +// Error: :3:9: Unexpected token if + +export {if}; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js new file mode 100644 index 0000000000..ac5e6de748 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js @@ -0,0 +1,3 @@ +// Error: :3:9: Unexpected token if + +export {if as x}; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js new file mode 100644 index 0000000000..da408f30cb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js @@ -0,0 +1,3 @@ +// Error: test/feature/Modules/resources/export-conflict.js:2:8: Duplicate export. 'a' was previously exported at test/feature/Modules/resources/export-conflict.js:1:12 + +import {a} from './resources/export-conflict.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js new file mode 100644 index 0000000000..2e9c0cea53 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js @@ -0,0 +1,6 @@ +// Error: test/feature/Modules/Error_ExportStarDuplicateExport.module.js:4:8: Duplicate export. 'a' was previously exported at test/feature/Modules/Error_ExportStarDuplicateExport.module.js:3:8 + +export * from './resources/a.js'; +export * from './resources/a2.js'; + +assert.equal(1, 2); diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ImportDefault.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_ImportDefault.module.js new file mode 100644 index 0000000000..45f14c2c5a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_ImportDefault.module.js @@ -0,0 +1,3 @@ +// Error: test/feature/Modules/Error_ImportDefault.module.js:3:8: 'default' is not exported by 'test/feature/Modules/resources/a.js' + +import error from './resources/a.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ImportStar.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_ImportStar.module.js new file mode 100644 index 0000000000..e13fb713fe --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_ImportStar.module.js @@ -0,0 +1,4 @@ +// Error: :3:10: Unexpected token from + +import * from './resources/m.js'; +assert.equal(3, a + b); diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport.module.js new file mode 100644 index 0000000000..85fa2002dc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport.module.js @@ -0,0 +1,3 @@ +// Error: :3:9: 'c' is not exported by 'test/feature/Modules/resources/a.js' + +export {c} from './resources/a.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js new file mode 100644 index 0000000000..25554def04 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js @@ -0,0 +1,3 @@ +// Error: :3:9: 'c' is not exported by 'test/feature/Modules/resources/a.js' + +export {c as d} from './resources/a.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js new file mode 100644 index 0000000000..0617075628 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js @@ -0,0 +1,3 @@ +// Error: test/feature/Modules/Error_InvalidExport3.module.js:3:9: 'c' is not exported by 'test/feature/Modules/resources/b.js' + +export {c as d} from './resources/b.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js new file mode 100644 index 0000000000..d44ede0b29 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js @@ -0,0 +1,7 @@ +// Error: 'test/feature/Modules/resources/no_such_file.js' +// Error: Specified as ./resources/no_such_file.js. +// Error: Imported by test/feature/Modules/Error_InvalidModuleDeclaration.module.js. +// Error: Normalizes to test/feature/Modules/resources/no_such_file.js +// Error: locate resolved against base + +import * as b from './resources/no_such_file.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js new file mode 100644 index 0000000000..7702371f2d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js @@ -0,0 +1,3 @@ +// Error: 3:38: Unexpected token . + +import * as b from './resources/a.js'.c; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_MissingExport.module.js b/packages/babel/test/fixtures/traceur/Modules/Error_MissingExport.module.js new file mode 100644 index 0000000000..9328df7011 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Error_MissingExport.module.js @@ -0,0 +1,7 @@ +// Error: :5:12: 'y' is not exported by 'test/feature/Modules/resources/x.js' +// Error: :5:15: 'z' is not exported by 'test/feature/Modules/resources/x.js' +// Error: :6:9: 'w' is not exported by 'test/feature/Modules/resources/x.js' + +import {x, y, z} from './resources/x.js'; +import {w} from './resources/x.js'; + diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportDestructuring.module.js b/packages/babel/test/fixtures/traceur/Modules/ExportDestructuring.module.js new file mode 100644 index 0000000000..414a577f1d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ExportDestructuring.module.js @@ -0,0 +1,4 @@ +import {x, y} from './resources/export-destructuring.js'; + +assert.equal(x, 1); +assert.equal(y, 2); diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportForwardDefault.module.js b/packages/babel/test/fixtures/traceur/Modules/ExportForwardDefault.module.js new file mode 100644 index 0000000000..eaaf689394 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ExportForwardDefault.module.js @@ -0,0 +1,7 @@ +// Options: --export-from-extended + +import {a, b, default as C} from './resources/export-forward-default-as.js'; + +assert.equal(42, a); +assert.equal(123, b()); +assert.equal('m', new C().m()); diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportStar.module.js b/packages/babel/test/fixtures/traceur/Modules/ExportStar.module.js new file mode 100644 index 0000000000..72ddf57887 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ExportStar.module.js @@ -0,0 +1,7 @@ +import * as o from './resources/o.js'; + +assert.equal(1, o.a); +assert.equal(2, o.b); +assert.equal(3, o.c); +assert.equal(4, o.d); +assert.equal(undefined, o.default); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportStarAs.module.js b/packages/babel/test/fixtures/traceur/Modules/ExportStarAs.module.js new file mode 100644 index 0000000000..9fc38c8ead --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ExportStarAs.module.js @@ -0,0 +1,6 @@ +import {a, b} from './resources/export-star-as.js'; + +assert.equal(1, a.a); +assert.equal(2, a.b); +assert.equal(3, b.c); +assert.equal(4, b.d); diff --git a/packages/babel/test/fixtures/traceur/Modules/Exports.module.js b/packages/babel/test/fixtures/traceur/Modules/Exports.module.js new file mode 100644 index 0000000000..10a4d9a5d0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/Exports.module.js @@ -0,0 +1,17 @@ +import * as a from './resources/i.js'; + +(function() { + 'use strict'; + assert.equal(0, a.i); + a.inc(); + assert.equal(1, a.i); + + assert.throws(function() { + a.i = 2; + }, TypeError); +})(); + +assert.equal(1, a.i); + +import * as d from './resources/d.js'; +assert.equal('A', d.a); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportAsExportAs.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportAsExportAs.module.js new file mode 100644 index 0000000000..148782a5d0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportAsExportAs.module.js @@ -0,0 +1,2 @@ +import * as m from './resources/m3.js'; +assert.equal(m.x, 'z'); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportBasic.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportBasic.module.js new file mode 100644 index 0000000000..b30516766c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportBasic.module.js @@ -0,0 +1,3 @@ +import {p} from './resources/p.js'; +assert.equal('P', p); +assert(typeof q === 'undefined'); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportCircular.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportCircular.module.js new file mode 100644 index 0000000000..200b0d798a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportCircular.module.js @@ -0,0 +1,6 @@ +// Error: Unsupported circular dependency between test/feature/Modules/ImportCircular.module.js and test/feature/Modules/resources/clockwise.js + +import {clockwise} from './resources/clockwise.js'; +export function counterclockwise() { + return clockwise(); +} diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportDefault.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportDefault.module.js new file mode 100644 index 0000000000..2dfc7591cb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportDefault.module.js @@ -0,0 +1,17 @@ +import x from './resources/default.js'; +assert.equal(x, 42); + +import C from './resources/default-class.js'; +assert.equal(new C().m(), 'm'); + +import {default as D} from './resources/default-name.js'; +assert.equal(D, 4); + +import f from './resources/default-function.js'; +assert.equal(f(), 123); + +import E from './resources/default-class-expression.js'; +assert.equal(new E().n(), 'n'); + +import g from './resources/default-function-expression.js'; +assert.equal(g(), 456); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js new file mode 100644 index 0000000000..865e5c437e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js @@ -0,0 +1,4 @@ +this.sideEffect = 1; +import {} from './resources/side-effect2.js'; +assert.equal(2, this.sideEffect); +this.sideEffect = 1; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportFromModule.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportFromModule.module.js new file mode 100644 index 0000000000..99ac97a287 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportFromModule.module.js @@ -0,0 +1,17 @@ +import {a as renamedX, b} from './resources/m.js'; +import {a} from './resources/m.js'; +import * as m2 from './resources/m.js'; + +assert.equal(1, a); +assert.equal(1, renamedX); +assert.equal(2, b); + +import * as m from './resources/m.js'; + +assert.equal(a, renamedX); +assert.equal(a, m.a); + +import * as m3 from './resources/m.js'; + +assert.isTrue(m === m3); +assert.equal(b, m.b); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportNoImportClause.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportNoImportClause.module.js new file mode 100644 index 0000000000..e83308df8d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportNoImportClause.module.js @@ -0,0 +1,4 @@ +this.sideEffect = 1; +import './resources/side-effect.js'; +assert.equal(2, this.sideEffect); +this.sideEffect = 1; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportPair.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportPair.module.js new file mode 100644 index 0000000000..a02f1039d0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportPair.module.js @@ -0,0 +1,10 @@ +import def, * as m from './resources/default-and-named.js'; +import def2, {x} from './resources/default-and-named.js'; +import def3, {x as y} from './resources/default-and-named.js'; + +assert.equal(def, 'default'); +assert.equal(def2, 'default'); +assert.equal(def3, 'default'); + +assert.equal(x, 'x'); +assert.equal(y, 'x'); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefault.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefault.module.js new file mode 100644 index 0000000000..383f8241c6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefault.module.js @@ -0,0 +1,2 @@ +import x from './resources/re-export-default.js'; +assert.equal(x, 42); diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js b/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js new file mode 100644 index 0000000000..75071473a5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js @@ -0,0 +1,2 @@ +import {x} from './resources/re-export-default-as.js'; +assert.equal(x, 42); diff --git a/packages/babel/test/fixtures/traceur/Modules/ModuleDefault.module.js b/packages/babel/test/fixtures/traceur/Modules/ModuleDefault.module.js new file mode 100644 index 0000000000..e2fe225850 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ModuleDefault.module.js @@ -0,0 +1,3 @@ +import * as m from './resources/default.js'; + +assert.equal(m.default, 42); diff --git a/packages/babel/test/fixtures/traceur/Modules/ModuleName.module.js b/packages/babel/test/fixtures/traceur/Modules/ModuleName.module.js new file mode 100644 index 0000000000..4ce1f52df8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ModuleName.module.js @@ -0,0 +1,3 @@ +var re = /([^\s']+?)(?=test(?:[\/\\])feature(?:[\/\\]))/g; + +assert.equal(__moduleName.replace(re, ''), 'test/feature/Modules/ModuleName.module.js'); diff --git a/packages/babel/test/fixtures/traceur/Modules/StaticMethod.module.js b/packages/babel/test/fixtures/traceur/Modules/StaticMethod.module.js new file mode 100644 index 0000000000..cc37654001 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/StaticMethod.module.js @@ -0,0 +1,2 @@ +import {TestClass} from './resources/TestClass.js'; +assert.equal(TestClass.method(), 42); diff --git a/packages/babel/test/fixtures/traceur/Modules/ThisInModules.module.js b/packages/babel/test/fixtures/traceur/Modules/ThisInModules.module.js new file mode 100644 index 0000000000..0056ac4272 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/ThisInModules.module.js @@ -0,0 +1,4 @@ +var global = this; + +import * as m from './resources/f.js'; +assert.equal(global, m.f()); diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/TestClass.js b/packages/babel/test/fixtures/traceur/Modules/resources/TestClass.js new file mode 100644 index 0000000000..723df2b773 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/TestClass.js @@ -0,0 +1,5 @@ +export class TestClass { + static method() { + return 42; + } +} diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/a.js b/packages/babel/test/fixtures/traceur/Modules/resources/a.js new file mode 100644 index 0000000000..d0ba61cbde --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/a.js @@ -0,0 +1 @@ +export var a = 'A'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/a2.js b/packages/babel/test/fixtures/traceur/Modules/resources/a2.js new file mode 100644 index 0000000000..da6520dad9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/a2.js @@ -0,0 +1 @@ +export var a = 'A2'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/b.js b/packages/babel/test/fixtures/traceur/Modules/resources/b.js new file mode 100644 index 0000000000..e7d0cc71ec --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/b.js @@ -0,0 +1 @@ +import * as c from './c.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/c.js b/packages/babel/test/fixtures/traceur/Modules/resources/c.js new file mode 100644 index 0000000000..fc55ed1488 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/c.js @@ -0,0 +1 @@ +export var c = 'C'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/clockwise.js b/packages/babel/test/fixtures/traceur/Modules/resources/clockwise.js new file mode 100644 index 0000000000..02e22761f8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/clockwise.js @@ -0,0 +1,4 @@ +import {counterclockwise} from '../ImportCircular.module.js'; +export function clockwise() { + return 'The circle is complete'; +} diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/d.js b/packages/babel/test/fixtures/traceur/Modules/resources/d.js new file mode 100644 index 0000000000..4a9ab8813e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/d.js @@ -0,0 +1 @@ +export * from './a.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-and-named.js b/packages/babel/test/fixtures/traceur/Modules/resources/default-and-named.js new file mode 100644 index 0000000000..aa4a2a19e1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default-and-named.js @@ -0,0 +1,2 @@ +export default 'default'; +export var x = 'x'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-class-expression.js b/packages/babel/test/fixtures/traceur/Modules/resources/default-class-expression.js new file mode 100644 index 0000000000..4dcbb96368 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default-class-expression.js @@ -0,0 +1,5 @@ +export default class { + n() { + return 'n'; + } +} diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-class.js b/packages/babel/test/fixtures/traceur/Modules/resources/default-class.js new file mode 100644 index 0000000000..8c1e65c3be --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default-class.js @@ -0,0 +1,7 @@ +export default class C { + m() { + return 'm'; + } +} + +assert.instanceOf(C, Function); diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-function-expression.js b/packages/babel/test/fixtures/traceur/Modules/resources/default-function-expression.js new file mode 100644 index 0000000000..442eb2ccac --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default-function-expression.js @@ -0,0 +1,3 @@ +export default function() { + return 456; +} diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-function.js b/packages/babel/test/fixtures/traceur/Modules/resources/default-function.js new file mode 100644 index 0000000000..3522838092 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default-function.js @@ -0,0 +1,5 @@ +export default function f() { + return 123; +} + +assert.instanceOf(f, Function); diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-name.js b/packages/babel/test/fixtures/traceur/Modules/resources/default-name.js new file mode 100644 index 0000000000..fc9ffb7a38 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default-name.js @@ -0,0 +1,2 @@ +var p = 4; +export {p as default}; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default.js b/packages/babel/test/fixtures/traceur/Modules/resources/default.js new file mode 100644 index 0000000000..7a4e8a723a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/default.js @@ -0,0 +1 @@ +export default 42; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-conflict.js b/packages/babel/test/fixtures/traceur/Modules/resources/export-conflict.js new file mode 100644 index 0000000000..830463412f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/export-conflict.js @@ -0,0 +1,2 @@ +export var a = 'a'; +export * from './a.js'; // also exports a diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-destructuring.js b/packages/babel/test/fixtures/traceur/Modules/resources/export-destructuring.js new file mode 100644 index 0000000000..1c64065e9c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/export-destructuring.js @@ -0,0 +1 @@ +export var {x, y = 2} = {x: 1}; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-forward-default-as.js b/packages/babel/test/fixtures/traceur/Modules/resources/export-forward-default-as.js new file mode 100644 index 0000000000..3a9bce6634 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/export-forward-default-as.js @@ -0,0 +1,3 @@ +export a from './default.js'; +export b from './default-function.js'; +export default from './default-class.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-star-as.js b/packages/babel/test/fixtures/traceur/Modules/resources/export-star-as.js new file mode 100644 index 0000000000..0f92446363 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/export-star-as.js @@ -0,0 +1,2 @@ +export * as a from './m.js'; +export * as b from './n.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/f.js b/packages/babel/test/fixtures/traceur/Modules/resources/f.js new file mode 100644 index 0000000000..dff8ba2f28 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/f.js @@ -0,0 +1 @@ +export var f = () => this; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/i.js b/packages/babel/test/fixtures/traceur/Modules/resources/i.js new file mode 100644 index 0000000000..1096ab76ca --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/i.js @@ -0,0 +1,4 @@ +export var i = 0; +export function inc() { + i++; +} diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/m.js b/packages/babel/test/fixtures/traceur/Modules/resources/m.js new file mode 100644 index 0000000000..0b0c3304ff --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/m.js @@ -0,0 +1,2 @@ +export var a = 1; +export var b = 2; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/m2.js b/packages/babel/test/fixtures/traceur/Modules/resources/m2.js new file mode 100644 index 0000000000..4fce0644f6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/m2.js @@ -0,0 +1,2 @@ +var z = 'z'; +export {z as var}; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/m3.js b/packages/babel/test/fixtures/traceur/Modules/resources/m3.js new file mode 100644 index 0000000000..d0b61d8faf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/m3.js @@ -0,0 +1,2 @@ +import {var as x} from './m2.js'; +export {x}; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/n.js b/packages/babel/test/fixtures/traceur/Modules/resources/n.js new file mode 100644 index 0000000000..6e7457c073 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/n.js @@ -0,0 +1,3 @@ +export var c = 3; +export var d = 4; +export default 5; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/o.js b/packages/babel/test/fixtures/traceur/Modules/resources/o.js new file mode 100644 index 0000000000..e0a1758a6a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/o.js @@ -0,0 +1,2 @@ +export * from './m.js'; +export * from './n.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/p.js b/packages/babel/test/fixtures/traceur/Modules/resources/p.js new file mode 100644 index 0000000000..b85dc962a7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/p.js @@ -0,0 +1,2 @@ +export var p = 'P'; +export var q = 'Q'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default-as.js b/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default-as.js new file mode 100644 index 0000000000..d6ee20f83c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default-as.js @@ -0,0 +1 @@ +export {default as x} from './default.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default.js b/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default.js new file mode 100644 index 0000000000..a2229f0904 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default.js @@ -0,0 +1 @@ +export {default} from './default.js'; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/side-effect.js b/packages/babel/test/fixtures/traceur/Modules/resources/side-effect.js new file mode 100644 index 0000000000..cff3fea11b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/side-effect.js @@ -0,0 +1 @@ +this.sideEffect++; diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/side-effect2.js b/packages/babel/test/fixtures/traceur/Modules/resources/side-effect2.js new file mode 100644 index 0000000000..23cc5b9c39 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/side-effect2.js @@ -0,0 +1,3 @@ +this.sideEffect++; + + diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/x.js b/packages/babel/test/fixtures/traceur/Modules/resources/x.js new file mode 100644 index 0000000000..7e0623ea76 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Modules/resources/x.js @@ -0,0 +1 @@ +export var x = 'X'; diff --git a/packages/babel/test/fixtures/traceur/Number/EPSILON.module.js b/packages/babel/test/fixtures/traceur/Number/EPSILON.module.js new file mode 100644 index 0000000000..8bb6716b37 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/EPSILON.module.js @@ -0,0 +1,10 @@ +import {EPSILON} from '../../../src/runtime/polyfills/Number.js'; + +function testEpsilon(epsilon) { + assert.equal(epsilon, Math.pow(2, -52)); + assert.equal(1 + epsilon - 1, epsilon); + assert.equal(1 + epsilon / 2 - 1, 0); +} + +testEpsilon(EPSILON); +testEpsilon(Number.EPSILON); diff --git a/packages/babel/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js b/packages/babel/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js new file mode 100644 index 0000000000..44f20fb78b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js @@ -0,0 +1,4 @@ +import {MAX_SAFE_INTEGER} from '../../../src/runtime/polyfills/Number.js'; + +assert.equal(MAX_SAFE_INTEGER, Math.pow(2, 53) - 1); +assert.equal(Number.MAX_SAFE_INTEGER, Math.pow(2, 53) - 1); diff --git a/packages/babel/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js b/packages/babel/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js new file mode 100644 index 0000000000..450d5b0b07 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js @@ -0,0 +1,4 @@ +import {MIN_SAFE_INTEGER} from '../../../src/runtime/polyfills/Number.js'; + +assert.equal(MIN_SAFE_INTEGER, -Math.pow(2, 53) + 1); +assert.equal(Number.MIN_SAFE_INTEGER, -Math.pow(2, 53) + 1); diff --git a/packages/babel/test/fixtures/traceur/Number/isFinite.module.js b/packages/babel/test/fixtures/traceur/Number/isFinite.module.js new file mode 100644 index 0000000000..51e5d5d66f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/isFinite.module.js @@ -0,0 +1,30 @@ +import {isFinite} from '../../../src/runtime/polyfills/Number.js'; + +function testIsFinite(isFinite) { + assert.isTrue(isFinite(-0)); + assert.isTrue(isFinite(0)); + assert.isTrue(isFinite(Number.EPSILON)); + assert.isTrue(isFinite(Number.MAX_SAFE_INTEGER + 23)); + assert.isTrue(isFinite(Number.MAX_VALUE)); + assert.isTrue(isFinite(Number.MIN_SAFE_INTEGER - 13)); + assert.isTrue(isFinite(Number.MIN_VALUE)); + + assert.isFalse(isFinite('-0')); + assert.isFalse(isFinite('0')); + assert.isFalse(isFinite('x')); + assert.isFalse(isFinite(-Infinity)); + assert.isFalse(isFinite(-NaN)); + assert.isFalse(isFinite(Infinity)); + assert.isFalse(isFinite(NaN)); + assert.isFalse(isFinite(Number.NEGATIVE_INFINITY)); + assert.isFalse(isFinite(Number.POSITIVE_INFINITY)); + assert.isFalse(isFinite(false)); + assert.isFalse(isFinite(new Number(1))); + assert.isFalse(isFinite(null)); + assert.isFalse(isFinite(true)); + assert.isFalse(isFinite(undefined)); + assert.isFalse(isFinite({valueOf() { return 1; }})); +} + +testIsFinite(isFinite); +testIsFinite(Number.isFinite); diff --git a/packages/babel/test/fixtures/traceur/Number/isInteger.module.js b/packages/babel/test/fixtures/traceur/Number/isInteger.module.js new file mode 100644 index 0000000000..73df049c1d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/isInteger.module.js @@ -0,0 +1,30 @@ +import {isInteger} from '../../../src/runtime/polyfills/Number.js'; + +function testIsInteger(isInteger) { + assert.isTrue(isInteger(-0)); + assert.isTrue(isInteger(0)); + assert.isTrue(isInteger(Number.MAX_SAFE_INTEGER + 23)); + assert.isTrue(isInteger(Number.MAX_VALUE)); + assert.isTrue(isInteger(Number.MIN_SAFE_INTEGER - 13)); + + assert.isFalse(isInteger('-0')); + assert.isFalse(isInteger('0')); + assert.isFalse(isInteger('x')); + assert.isFalse(isInteger(-Infinity)); + assert.isFalse(isInteger(-NaN)); + assert.isFalse(isInteger(Infinity)); + assert.isFalse(isInteger(NaN)); + assert.isFalse(isInteger(Number.EPSILON)); + assert.isFalse(isInteger(Number.MIN_VALUE)); + assert.isFalse(isInteger(Number.NEGATIVE_INFINITY)); + assert.isFalse(isInteger(Number.POSITIVE_INFINITY)); + assert.isFalse(isInteger(false)); + assert.isFalse(isInteger(new Number(1))); + assert.isFalse(isInteger(null)); + assert.isFalse(isInteger(true)); + assert.isFalse(isInteger(undefined)); + assert.isFalse(isInteger({valueOf() { return 1; }})); +} + +testIsInteger(isInteger); +testIsInteger(Number.isInteger); diff --git a/packages/babel/test/fixtures/traceur/Number/isNaN.module.js b/packages/babel/test/fixtures/traceur/Number/isNaN.module.js new file mode 100644 index 0000000000..037696594e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/isNaN.module.js @@ -0,0 +1,30 @@ +import {isNaN} from '../../../src/runtime/polyfills/Number.js'; + +function testIsNaN(isNaN) { + assert.isTrue(isNaN(NaN)); + assert.isTrue(isNaN(-NaN)); + + assert.isFalse(isNaN('-0')); + assert.isFalse(isNaN('0')); + assert.isFalse(isNaN('NaN')); + assert.isFalse(isNaN('x')); + assert.isFalse(isNaN(-0)); + assert.isFalse(isNaN(0)); + assert.isFalse(isNaN(Infinity)); + assert.isFalse(isNaN(Number.EPSILON)); + assert.isFalse(isNaN(Number.MAX_SAFE_INTEGER + 23)); + assert.isFalse(isNaN(Number.MAX_VALUE)); + assert.isFalse(isNaN(Number.MIN_SAFE_INTEGER - 13)); + assert.isFalse(isNaN(Number.MIN_VALUE)); + assert.isFalse(isNaN(Number.NEGATIVE_INFINITY)); + assert.isFalse(isNaN(Number.POSITIVE_INFINITY)); + assert.isFalse(isNaN(false)); + assert.isFalse(isNaN(new Number(NaN))); + assert.isFalse(isNaN(null)); + assert.isFalse(isNaN(true)); + assert.isFalse(isNaN(undefined)); + assert.isFalse(isNaN({valueOf() { return NaN; }})); +} + +testIsNaN(isNaN); +testIsNaN(Number.isNaN); diff --git a/packages/babel/test/fixtures/traceur/Number/isSafeInteger.module.js b/packages/babel/test/fixtures/traceur/Number/isSafeInteger.module.js new file mode 100644 index 0000000000..285ce2a8f2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Number/isSafeInteger.module.js @@ -0,0 +1,33 @@ +import {isSafeInteger} from '../../../src/runtime/polyfills/Number.js'; + +function testIsSafeInteger(isSafeInteger) { + assert.isTrue(isSafeInteger(-0)); + assert.isTrue(isSafeInteger(0)); + assert.isTrue(isSafeInteger(Number.MAX_SAFE_INTEGER - 23)); + assert.isTrue(isSafeInteger(Number.MAX_SAFE_INTEGER)); + assert.isTrue(isSafeInteger(Number.MIN_SAFE_INTEGER + 13)); + + assert.isFalse(isSafeInteger('-0')); + assert.isFalse(isSafeInteger('0')); + assert.isFalse(isSafeInteger('x')); + assert.isFalse(isSafeInteger(-Infinity)); + assert.isFalse(isSafeInteger(-NaN)); + assert.isFalse(isSafeInteger(Infinity)); + assert.isFalse(isSafeInteger(NaN)); + assert.isFalse(isSafeInteger(Number.EPSILON)); + assert.isFalse(isSafeInteger(Number.MAX_SAFE_INTEGER + 23)); + assert.isFalse(isSafeInteger(Number.MAX_VALUE)); + assert.isFalse(isSafeInteger(Number.MIN_SAFE_INTEGER - 13)); + assert.isFalse(isSafeInteger(Number.MIN_VALUE)); + assert.isFalse(isSafeInteger(Number.NEGATIVE_INFINITY)); + assert.isFalse(isSafeInteger(Number.POSITIVE_INFINITY)); + assert.isFalse(isSafeInteger(false)); + assert.isFalse(isSafeInteger(new Number(1))); + assert.isFalse(isSafeInteger(null)); + assert.isFalse(isSafeInteger(true)); + assert.isFalse(isSafeInteger(undefined)); + assert.isFalse(isSafeInteger({valueOf() { return 1; }})); +} + +testIsSafeInteger(isSafeInteger); +testIsSafeInteger(Number.isSafeInteger); diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Error_Disabled.js b/packages/babel/test/fixtures/traceur/NumericLiteral/Error_Disabled.js new file mode 100644 index 0000000000..dd9ad409cd --- /dev/null +++ b/packages/babel/test/fixtures/traceur/NumericLiteral/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --numeric-literals=false +// Error: :4:2: Semi-colon expected + +0b11; diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js b/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js new file mode 100644 index 0000000000..5736588322 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js @@ -0,0 +1,4 @@ +// Options: --numeric-literals +// Error: :4:1: Binary Integer Literal must contain at least one digit + +0b; diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js b/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js new file mode 100644 index 0000000000..4f9b85264e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js @@ -0,0 +1,4 @@ +// Options: --numeric-literals +// Error: :4:1: Octal Integer Literal must contain at least one digit + +0o; diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Simple.js b/packages/babel/test/fixtures/traceur/NumericLiteral/Simple.js new file mode 100644 index 0000000000..651e03c5b5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/NumericLiteral/Simple.js @@ -0,0 +1,101 @@ +// Options: --numeric-literals + +(function() { + assert.equal(0, 0b0); + assert.equal(1, 0b1); + assert.equal(3, 0b11); + assert.equal(3, 0b011); + assert.equal(0, 0B0); + assert.equal(1, 0B1); + assert.equal(3, 0B11); + assert.equal(3, 0B011); + + assert.equal(0, 0o0); + assert.equal(1, 0o1); + assert.equal(7, 0o7); + assert.equal(8, 0o10); + assert.equal(8, 0o010); + assert.equal(63, 0o77); + assert.equal(0, 0O0); + assert.equal(1, 0O1); + assert.equal(7, 0O7); + assert.equal(8, 0O10); + assert.equal(8, 0O010); + assert.equal(63, 0O77); + + var o = { + 0b0: 0, + 0b1: 1, + 0b10: 2, + 0B11: 3, + 0B0100: 4 + }; + assertArrayEquals(['0', '1', '2', '3', '4'], Object.keys(o)); + + var o = { + 0o0: 0, + 0o1: 1, + 0o7: 7, + 0O10: 8, + 0O011: 9 + }; + assertArrayEquals(['0', '1', '7', '8', '9'], Object.keys(o)); + + var o = { + get 0b0() {}, + get 0b1() {}, + get 0b10() {}, + get 0B11() {}, + get 0B0100() {} + }; + assertArrayEquals(['0', '1', '2', '3', '4'], Object.keys(o)); + + var o = { + set 0o0(v) {}, + set 0o1(v) {}, + set 0o7(v) {}, + set 0O10(v) {}, + set 0O011(v) {} + }; + assertArrayEquals(['0', '1', '7', '8', '9'], Object.keys(o)); + + var o = { + 0b0() {}, + 0b1() {}, + 0b10() {}, + 0B11() {}, + 0B0100() {} + }; + assertArrayEquals(['0', '1', '2', '3', '4'], Object.keys(o)); + + class C { + 0b0() {} + get 0b1() {} + set 0b10(v) {} + static 0B11() {} + static get 0B100() {} + static set 0B101(v) {} + + 0o6() {} + get 0o7() {} + set 0o10(v) {} + static 0O11() {} + static get 0O12() {} + static set 0O13(v) {} + } + + assert.isTrue(C.prototype.hasOwnProperty('0')); + assert.isTrue(C.prototype.hasOwnProperty('1')); + assert.isTrue(C.prototype.hasOwnProperty('2')); + assert.isTrue(C.prototype.hasOwnProperty('6')); + assert.isTrue(C.prototype.hasOwnProperty('7')); + assert.isTrue(C.prototype.hasOwnProperty('8')); + + assert.isTrue(C.hasOwnProperty('3')); + assert.isTrue(C.hasOwnProperty('4')); + assert.isTrue(C.hasOwnProperty('5')); + assert.isTrue(C.hasOwnProperty('9')); + assert.isTrue(C.hasOwnProperty('10')); + assert.isTrue(C.hasOwnProperty('11')); + +})(); diff --git a/packages/babel/test/fixtures/traceur/ObjectAssign.js b/packages/babel/test/fixtures/traceur/ObjectAssign.js new file mode 100644 index 0000000000..05841a614c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectAssign.js @@ -0,0 +1,11 @@ +var target = {a: 0, b: 2}; +var source = {a: 1, c: 3, get d() { return this.b || this.a + 64; }}; +var assigned = Object.assign(target, source); + +// ---------------------------------------------------------------------------- + +assert.isTrue(Object.hasOwnProperty("assign")); +assert.equal(assigned.a, source.a); +assert.equal(assigned.b, target.b); +assert.equal(assigned.c, source.c); +assert.equal(assigned.d, source.d); diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js new file mode 100644 index 0000000000..069c869b11 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js @@ -0,0 +1,5 @@ +// Options: --property-name-shorthand=false +// Error: :5:16: Unexpected token x + +var x = 42; +var object = {x}; diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js new file mode 100644 index 0000000000..4d3f5644cb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js @@ -0,0 +1,3 @@ +// Error: :3:18: Unexpected token var + +var object = {var}; diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js new file mode 100644 index 0000000000..e7c4d29fe4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js @@ -0,0 +1,3 @@ +// Error: missingVarObjectInitializerShorthand is not defined + +var object = {missingVarObjectInitializerShorthand}; diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js new file mode 100644 index 0000000000..666ffa7956 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js @@ -0,0 +1,12 @@ +// Error: :6:11: implements is a reserved identifier +// Error: :11:11: yield is a reserved identifier + +function f() { + 'use strict'; + return {implements}; +} + +function g() { + 'use strict'; + return {yield}; +} diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js new file mode 100644 index 0000000000..591866b272 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js @@ -0,0 +1,8 @@ +var x = 42; +var y = 43; +var object = {x, y}; + +// ---------------------------------------------------------------------------- + +assert.equal(42, object.x); +assert.equal(43, object.y); diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js new file mode 100644 index 0000000000..222aec7a88 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js @@ -0,0 +1,14 @@ +// This only tests the parsing. + +function f() { + return {implements}; +} + +function f2() { + return {yield}; +} + +function* g() { + 'use strict'; + return {yield}; +} diff --git a/packages/babel/test/fixtures/traceur/ObjectIs.js b/packages/babel/test/fixtures/traceur/ObjectIs.js new file mode 100644 index 0000000000..2f19b0edda --- /dev/null +++ b/packages/babel/test/fixtures/traceur/ObjectIs.js @@ -0,0 +1,34 @@ +assert.isTrue(Object.is(1, 1)); +assert.isTrue(Object.is(0, 0)); +assert.isTrue(Object.is(-0, -0)); +assert.isTrue(Object.is(NaN, NaN)); +assert.isTrue(Object.is(Infinity, Infinity)); +assert.isTrue(Object.is(-Infinity, -Infinity)); + +assert.isFalse(Object.is(0, -0)); +assert.isFalse(Object.is(-0, 0)); +assert.isFalse(Object.is(Infinity, -Infinity)); +assert.isFalse(Object.is(-Infinity, Infinity)); + +assert.isTrue(Object.is(true, true)); +assert.isTrue(Object.is(false, false)); + +assert.isTrue(Object.is(null, null)); +assert.isTrue(Object.is(undefined, undefined)); + +assert.isTrue(Object.is('', '')); +assert.isTrue(Object.is('a', 'a')); + +{ + var object = {}; + assert.isTrue(Object.is(object, object)); +} + +assert.isFalse(Object.is(new String('a'), new String('a'))); +assert.isFalse(Object.is(new Boolean, new Boolean)); +assert.isFalse(Object.is(new Number, new Number)); +assert.isFalse(Object.is(new Date(0), new Date(0))); +assert.isFalse(Object.is(/re/, /re/)); +assert.isFalse(Object.is({}, {})); +assert.isFalse(Object.is([], [])); +assert.isFalse(Object.is(function() {}, function() {})); diff --git a/packages/babel/test/fixtures/traceur/PrependStatement.js b/packages/babel/test/fixtures/traceur/PrependStatement.js new file mode 100644 index 0000000000..e50fa07ed4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PrependStatement.js @@ -0,0 +1,18 @@ +var count = 0; +var o = { + get x() { + count++; + return 1; + } +}; + +function f({x}) {} +f(o); +assert.equal(1, count); + +count = 0; +function g({x}) { + 'use strict'; +} +g(o); +assert.equal(1, count); diff --git a/packages/babel/test/fixtures/traceur/Promise.js b/packages/babel/test/fixtures/traceur/Promise.js new file mode 100644 index 0000000000..a5f7679209 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Promise.js @@ -0,0 +1,9 @@ +// Async. + +var p = new Promise((resolve, reject) => { + resolve(42); +}); +p.then((v) => { + assert.equal(v, 42); + done(); +}); diff --git a/packages/babel/test/fixtures/traceur/PromiseAll.js b/packages/babel/test/fixtures/traceur/PromiseAll.js new file mode 100644 index 0000000000..92067b82e2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PromiseAll.js @@ -0,0 +1,17 @@ +// Skip. +// Async. + +// V8 does not yet support iterable argument to Promise.all. +// https://code.google.com/p/v8/issues/detail?id=3705 + +function* gen() { + yield 1; + yield 2; +} + +var p2 = Promise.all(gen()); + +p2.then((v) => { + assert.deepEqual(v, [1,2]); + done(); +}); diff --git a/packages/babel/test/fixtures/traceur/PromiseResolve.js b/packages/babel/test/fixtures/traceur/PromiseResolve.js new file mode 100644 index 0000000000..69c9aadd3c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PromiseResolve.js @@ -0,0 +1,3 @@ +var p = Promise.resolve(42); + +assert.equal(p, Promise.resolve(p)); diff --git a/packages/babel/test/fixtures/traceur/PromiseThrowInResolve.js b/packages/babel/test/fixtures/traceur/PromiseThrowInResolve.js new file mode 100644 index 0000000000..e380f26948 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PromiseThrowInResolve.js @@ -0,0 +1,15 @@ +// Async. + +var message = 'testing'; +var throwInResolve = new Promise((resolve, reject) => { + resolve(42); +}); +throwInResolve.then((v) => { + throw new Error(message); +}).catch(function(ex) { + // When catch() is used in testing, these asserts would + // not be called, just the done() to avoid timeout. + assert(ex instanceof Error); + assert(ex.toString().indexOf(message) !== -1); + done(); +}).catch(done); diff --git a/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js b/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js new file mode 100644 index 0000000000..4badc9f2cf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js @@ -0,0 +1,8 @@ +// Options: --property-methods=false +// Error: :5:9: Unexpected token ( + +var object = { + method() { + return 42; + } +}; diff --git a/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js b/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js new file mode 100644 index 0000000000..dbb08846de --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js @@ -0,0 +1,8 @@ +assert.throws(() => { + var object = { + "notNamedField"() { + return notNamedField; + } + }; + object.notNamedField(); +}, ReferenceError); diff --git a/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js b/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js new file mode 100644 index 0000000000..a913227b1b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js @@ -0,0 +1,71 @@ +var object = { + x: { + j() { + return this.j; + } + }, + f() { + return this.f; + }, + 'g'() {}, + "h"() {}, + 42() {}, + null() {}, + true() {}, + false() {}, + function() {}, + var() {}, + 'class'() {} // NodeJS incorrectly flags {class: ...} as an error. +}; + +// ---------------------------------------------------------------------------- + +assertArrayEquals([ + '42', + 'x', + 'f', + 'g', + 'h', + 'null', + 'true', + 'false', + 'function', + 'var', + 'class' +], Object.keys(object)); + +function assertMethod(object, name) { + assert.isTrue(object.hasOwnProperty(name)); + var descriptor = Object.getOwnPropertyDescriptor(object, name); + assert.equal('object', typeof descriptor); + assert.isTrue(descriptor.enumerable); + assert.equal('function', typeof object[name]); + // IE does not have a name property on functions. + assert.isTrue(object[name].name === '' || object[name].name === undefined); +} + +assertMethod(object, 'f'); +assertMethod(object, 'g'); +assertMethod(object, 'h'); +assertMethod(object, '42'); +assertMethod(object, 'null'); +assertMethod(object, 'true'); +assertMethod(object, 'false'); +assertMethod(object, 'function'); +assertMethod(object, 'var'); +assertMethod(object, 'class'); + +assert.equal(object.f, object.f()); + +// Test the nested object. +assertArrayEquals(['j'], Object.keys(object.x)); +assertMethod(object.x, 'j'); + +// Test name binding. +var m = 42; +class C { + m() { + return m; + } +} +assert.equal(42, new C().m()) diff --git a/packages/babel/test/fixtures/traceur/PureES6Transformer/Basic.js b/packages/babel/test/fixtures/traceur/PureES6Transformer/Basic.js new file mode 100644 index 0000000000..e7534d7b18 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/PureES6Transformer/Basic.js @@ -0,0 +1,3 @@ +// Options: --output-language=es6 +// Ironically enough we can't use es6 in this test as node can't eval it. +function foo() {} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/RegularExpression/Simple.js b/packages/babel/test/fixtures/traceur/RegularExpression/Simple.js new file mode 100644 index 0000000000..0e5a4ae451 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/RegularExpression/Simple.js @@ -0,0 +1,12 @@ +// Options: --unicode-expressions + +// Only test if the transformation worked or not. For everything else, defer +// to regexpu's test suite: +// https://github.com/mathiasbynens/regexpu/blob/master/tests/tests.js +(function() { + assert.equal(/a/u.source, 'a'); + assert.equal(/a.b/u.source, + 'a(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|' + + '[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF]' + + '(?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])b'); +})(); diff --git a/packages/babel/test/fixtures/traceur/Rest/Error_NotLast.js b/packages/babel/test/fixtures/traceur/Rest/Error_NotLast.js new file mode 100644 index 0000000000..e6ff97f3cf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Rest/Error_NotLast.js @@ -0,0 +1,6 @@ +// Error: :3:46: Unexpected token , + +function invalidParam(noDefault, ...restParam, noRestAgain) { + // Should fail to parse since non rest param is not allowed after + // param. +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Rest/Error_SetAccessor.js b/packages/babel/test/fixtures/traceur/Rest/Error_SetAccessor.js new file mode 100644 index 0000000000..754e2be8ea --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Rest/Error_SetAccessor.js @@ -0,0 +1,7 @@ +// Error: :4:9: Unexpected token ... + +var object = { + set x(...rest) { + // rest is not allowed for set accessor + } +}; diff --git a/packages/babel/test/fixtures/traceur/Rest/Simple.js b/packages/babel/test/fixtures/traceur/Rest/Simple.js new file mode 100644 index 0000000000..00350014e1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Rest/Simple.js @@ -0,0 +1,16 @@ +function f(...p) { + return p; +} + +function g(a, ...p) { + return p; +} + +assertArrayEquals([], f()); +assertArrayEquals([0], f(0)); +assertArrayEquals([0, 1], f(0, 1)); + +assertArrayEquals([], g()); +assertArrayEquals([], g(0)); +assertArrayEquals([1], g(0, 1)); +assertArrayEquals([1, 2], g(0, 1, 2)); diff --git a/packages/babel/test/fixtures/traceur/Rest/Strict.js b/packages/babel/test/fixtures/traceur/Rest/Strict.js new file mode 100644 index 0000000000..d69126240c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Rest/Strict.js @@ -0,0 +1,6 @@ +function f(...xs) { + 'use strict'; + return this; +} + +assert.isUndefined(f()); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding10.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding10.js new file mode 100644 index 0000000000..d7500efcfd --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding10.js @@ -0,0 +1,15 @@ +// Options: --block-binding + +function f() { + return 'outer'; +} + +{ + var f = function f() { + return 'inner'; + }; + + assert.equal('inner', f()); +} + +assert.equal('inner', f()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding11.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding11.js new file mode 100644 index 0000000000..07ac0a07f1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding11.js @@ -0,0 +1,18 @@ +// Options: --block-binding + +let result = []; +let obj = {a : 'hello a', b : 'hello b', c : 'hello c' }; +let keys = Object.keys(obj); + +// NOTE: Do not fix the deviation from Google JS coding style. This was done in +// order to check codegen for single statements in the body of 'for' loops. +for (let i = 0; i < keys.length; i++) + result.push( + function() { return obj[keys[i]]; } + ); + +// ---------------------------------------------------------------------------- + +assert.equal('hello a', result[0]()); +assert.equal('hello b', result[1]()); +assert.equal('hello c', result[2]()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding2.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding2.js new file mode 100644 index 0000000000..afb64e1664 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding2.js @@ -0,0 +1,15 @@ +// Options: --block-binding + +let result = []; +let obj = {a : 'hello a', b : 'hello b', c : 'hello c' }; +for (let x in obj) { + result.push( + function() { return obj[x]; } + ); +} + +// ---------------------------------------------------------------------------- + +assert.equal('hello a', result[0]()); +assert.equal('hello b', result[1]()); +assert.equal('hello c', result[2]()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding3.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding3.js new file mode 100644 index 0000000000..4d620100ca --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding3.js @@ -0,0 +1,17 @@ +// Options: --block-binding + +var f1, f2; + +{ + let z = 'z1 value'; + f1 = function() { return z; }; +} +{ + let z = 'z2 value'; + f2 = function() { return z; }; +} + +// ---------------------------------------------------------------------------- + +assert.equal('z1 value', f1()); +assert.equal('z2 value', f2()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding4.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding4.js new file mode 100644 index 0000000000..b22f6af158 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding4.js @@ -0,0 +1,14 @@ +// Options: --block-binding + +let result = []; +for (let a = 1; a < 3; a++) { + result.push( + function() { return 'for ' + a; } + ); +} + +// ---------------------------------------------------------------------------- + +assert.equal('for 1', result[0]()); +assert.equal('for 2', result[1]()); +assert.equal(2, result.length); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding5.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding5.js new file mode 100644 index 0000000000..92284dc856 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding5.js @@ -0,0 +1,18 @@ +// Options: --block-binding + +let result = []; +for (let i = 1; i < 3; i ++) { + for (let j = 9; j > 7; j --) { + result.push( + function() { return i + ':' + j; } + ); + } +} + +// ---------------------------------------------------------------------------- + +assert.equal('1:9', result[0]()); +assert.equal('1:8', result[1]()); +assert.equal('2:9', result[2]()); +assert.equal('2:8', result[3]()); +assert.equal(4, result.length); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding6.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding6.js new file mode 100644 index 0000000000..abaf0feb5d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding6.js @@ -0,0 +1,14 @@ +// Options: --block-binding + +function testBlock() { + // Test function expressions. + { + var x = function g() { return 'g'; } || function h() { return 'h'; }; + return x; + } +} + +// ---------------------------------------------------------------------------- + +var result = testBlock(); +assert.equal('g', result()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding7.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding7.js new file mode 100644 index 0000000000..b3fa8ddd15 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding7.js @@ -0,0 +1,15 @@ +// Options: --block-binding + +function blockTest() { + { + let x = 'let x value'; + function g() { + return x; + } + return g; + } +} + +// ---------------------------------------------------------------------------- + +assert.equal('let x value', blockTest()()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding8.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding8.js new file mode 100644 index 0000000000..ed1f6877b0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding8.js @@ -0,0 +1,15 @@ +// Options: --block-binding + +function f() { + return 'outer'; +} + +{ + function f() { + return 'inner'; + } + + assert.equal('inner', f()); +} + +assert.equal('outer', f()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding9.js b/packages/babel/test/fixtures/traceur/Scope/BlockBinding9.js new file mode 100644 index 0000000000..3a88b3b819 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBinding9.js @@ -0,0 +1,15 @@ +// Options: --block-binding + +function f() { + return 'outer'; +} + +{ + (function f() { + return 'inner'; + }); + + assert.equal('outer', f()); +} + +assert.equal('outer', f()); diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js b/packages/babel/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js new file mode 100644 index 0000000000..eae0a1f4f9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js @@ -0,0 +1,9 @@ +// Options: --block-binding + +// See issue #1671. Pass if no exception +let c; + +function f(c) { + var p; + for (p of g(() => c)); +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js b/packages/babel/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js new file mode 100644 index 0000000000..7db18e2948 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js @@ -0,0 +1,6 @@ +assert.throws(() => { + { + let inner = 'inner value'; + } + var x = inner; +}, ReferenceError); diff --git a/packages/babel/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js b/packages/babel/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js new file mode 100644 index 0000000000..3f679a351d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js @@ -0,0 +1,12 @@ +// Options: --block-binding + +if (true) { + let [a,b] = [1,2]; + const [c,d] = [4,5]; +} +if (true) { + let {x: [{e}, f], g} = {x: [{e:4}, 5], g: 6}; + const a = 0, [b, {c, x: [d]}] = [1, {c: 2, x: [3]}]; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLet.js b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLet.js new file mode 100644 index 0000000000..c7433749ca --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLet.js @@ -0,0 +1,12 @@ +// Options: --block-binding + +var a = 'var a'; +{ + var b = 'var b'; + { + var c = 'var c'; + let d = 'let d'; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetConst.js b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetConst.js new file mode 100644 index 0000000000..3bf59e93d6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetConst.js @@ -0,0 +1,14 @@ +// Options: --block-binding + +var a = 'var a'; +{ + var b = 'var b'; + { + let c = 'let c'; + { + const d = 'const d'; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVar.js b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVar.js new file mode 100644 index 0000000000..fb459cb060 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVar.js @@ -0,0 +1,14 @@ +// Options: --block-binding + +var a = 'var a'; +{ + var b = 'var b'; + { + let c = 'let c'; + { + var d = 'var d'; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js new file mode 100644 index 0000000000..e70b8eb3fc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js @@ -0,0 +1,14 @@ +// Options: --block-binding + +var var_a; +{ + var var_b; + { + let let_c = 'let c'; + { + var var_d; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js b/packages/babel/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js new file mode 100644 index 0000000000..5f7c7ccc43 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js @@ -0,0 +1,4 @@ +// Options: --block-binding +// Error: :4:14: const variables must have an initializer + +const x = 1, y; diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_Disabled.js b/packages/babel/test/fixtures/traceur/Scope/Error_Disabled.js new file mode 100644 index 0000000000..d5eeb41b6a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_Disabled.js @@ -0,0 +1,6 @@ +// Options: --block-binding=false +// Error: :5:3: Unexpected reserved word let + +{ + let x = 42; +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js new file mode 100644 index 0000000000..751de8a5d5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js @@ -0,0 +1,5 @@ +// Options: --block-binding +// Error: :4:18: Unexpected token in + +for (const i = 0 in {}) { +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js new file mode 100644 index 0000000000..9f5fb459e6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js @@ -0,0 +1,5 @@ +// Options: --block-binding +// Error: :4:16: Unexpected token in + +for (let i = 0 in {}) { +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js new file mode 100644 index 0000000000..f154d2202e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js @@ -0,0 +1,10 @@ +// Options: --block-binding +// Error: :7:22: Unexpected token in + +var x = 0; + +// ES6 does not allow this. +for (var i = (x = 1) in {}) { +} + +assert.equal(1, x); diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js new file mode 100644 index 0000000000..d6498c8a36 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js @@ -0,0 +1,9 @@ +// Options: --block-binding +// Error: :8:18: Unexpected token of + +function* gen() { + yield 1; +} + +for (const i = 0 of gen()) { +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js new file mode 100644 index 0000000000..b7578b9060 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js @@ -0,0 +1,9 @@ +// Options: --block-binding +// Error: :8:16: Unexpected token of + +function* gen() { + yield 1; +} + +for (let i = 0 of gen()) { +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js new file mode 100644 index 0000000000..c41cf1aff9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js @@ -0,0 +1,9 @@ +// Options: --block-binding +// Error: :8:16: Unexpected token of + +function* gen() { + yield 1; +} + +for (var i = 0 of gen()) { +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js b/packages/babel/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js new file mode 100644 index 0000000000..afd9bce632 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js @@ -0,0 +1,7 @@ +// Options: --block-binding +// Error: :5:12: const variables must have an initializer + +var i = 0; +for (const x; i < 3; i++) { + +} diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js b/packages/babel/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js new file mode 100644 index 0000000000..58ca667d5c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js @@ -0,0 +1,10 @@ +// Options: --block-binding +// Error: functionExpression is not defined + +{ + (function functionExpression() { + return 'inner'; + }); + + functionExpression; // function expression doesn't add name to the scope. +} diff --git a/packages/babel/test/fixtures/traceur/Scope/ForInInitializers.js b/packages/babel/test/fixtures/traceur/Scope/ForInInitializers.js new file mode 100644 index 0000000000..39b9ef829f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/ForInInitializers.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +(function() { + var y; + for (var x in {a: 'A'}) { + assert.equal(x, 'a'); + y = x; + } + assert.equal(y, 'a'); +})(); diff --git a/packages/babel/test/fixtures/traceur/Scope/FunctionInBlock.js b/packages/babel/test/fixtures/traceur/Scope/FunctionInBlock.js new file mode 100644 index 0000000000..3112dc3d66 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/FunctionInBlock.js @@ -0,0 +1,14 @@ +(function() { + 'use strict'; + var x = 1; + { + function f() { + x = 2; + } + + if (false) {} + + f(); + } + assert.equal(2, x); +})(); diff --git a/packages/babel/test/fixtures/traceur/Scope/LetForInInitializers1.js b/packages/babel/test/fixtures/traceur/Scope/LetForInInitializers1.js new file mode 100644 index 0000000000..c4f02e7790 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetForInInitializers1.js @@ -0,0 +1,22 @@ +// Options: --block-binding + +var result; +{ + let let_result = []; + let let_array = ['one', 'two', 'three']; + for (var index in let_array) { + let let_index = index; + let let_value = let_array[let_index]; + let_result.push( + function() { + return [let_index, let_value]; + }); + } + result = let_result; +} + +// ---------------------------------------------------------------------------- + +assertArrayEquals(['0', 'one'], result[0]()); +assertArrayEquals(['1', 'two'], result[1]()); +assertArrayEquals(['2', 'three'], result[2]()); diff --git a/packages/babel/test/fixtures/traceur/Scope/LetForInitializers1.js b/packages/babel/test/fixtures/traceur/Scope/LetForInitializers1.js new file mode 100644 index 0000000000..19dbcfcab4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetForInitializers1.js @@ -0,0 +1,14 @@ +// Options: --block-binding + +var result; +{ + let let_x = 'let x'; + let let_l = []; + for (var var_x = 1, var_y = 2, var_z = 3; var_x < 10; var_x ++) { + let l_x = var_x, l_y = var_y, l_z = var_z; + let_l.push( function() { return [ l_x, l_y, l_z ]; } ); + } + result = let_l; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInClass.js b/packages/babel/test/fixtures/traceur/Scope/LetInClass.js new file mode 100644 index 0000000000..fa248e8257 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInClass.js @@ -0,0 +1,19 @@ +// Options: --block-binding + +class LetInClass { + get z() { + let let_z = 10; + return let_z; + } + + set z(v) { + let let_zv = v; + } + + distance() { + let dist = this.y - this.x; + return dist; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInClosure.js b/packages/babel/test/fixtures/traceur/Scope/LetInClosure.js new file mode 100644 index 0000000000..9d2e89dd76 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInClosure.js @@ -0,0 +1,25 @@ +// Options: --block-binding + +function letInClosure(n) { + var l = []; + for (var i = 0; i < n; i ++) { + let let_i = i; + if (i % 3 == 0) { + continue; + } + l.push(function() { + return let_i; + }); + } + return l; +} + +// ---------------------------------------------------------------------------- + +var result = letInClosure(10); +assert.equal(1, result[0]()); +assert.equal(2, result[1]()); +assert.equal(4, result[2]()); +assert.equal(5, result[3]()); +assert.equal(7, result[4]()); +assert.equal(8, result[5]()); diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInFor.js b/packages/babel/test/fixtures/traceur/Scope/LetInFor.js new file mode 100644 index 0000000000..c7347c3fea --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInFor.js @@ -0,0 +1,7 @@ +// Options: --block-binding + +for (var x = 0; x < 10; x ++) { + let y = 'let y'; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForBreak.js b/packages/babel/test/fixtures/traceur/Scope/LetInForBreak.js new file mode 100644 index 0000000000..5ccde528d6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInForBreak.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +for (var x = 0; x < 10; x ++) { + let y = 'let y'; + if (x % 2 == 0) { + break; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForBreakInner.js b/packages/babel/test/fixtures/traceur/Scope/LetInForBreakInner.js new file mode 100644 index 0000000000..b0374fecac --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInForBreakInner.js @@ -0,0 +1,12 @@ +// Options: --block-binding + +for (var x = 0; x < 10; x ++) { + for (var y = 0; y < 10; y ++) { + let z = 'let z'; + if (x == 7) { + break; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForBreakNamed.js b/packages/babel/test/fixtures/traceur/Scope/LetInForBreakNamed.js new file mode 100644 index 0000000000..4b72973f4a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInForBreakNamed.js @@ -0,0 +1,13 @@ +// Options: --block-binding + +outer: +for (var x = 0; x < 10; x ++) { + for (var y = 0; y < 10; y ++) { + let z = 'let z'; + if (x == 7) { + break outer; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForContinue.js b/packages/babel/test/fixtures/traceur/Scope/LetInForContinue.js new file mode 100644 index 0000000000..0d3e0318f7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInForContinue.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +for (var x = 0; x < 10; x ++) { + let y = 'let y'; + if (x % 2 == 0) { + continue; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForContinueInner.js b/packages/babel/test/fixtures/traceur/Scope/LetInForContinueInner.js new file mode 100644 index 0000000000..7231db3399 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInForContinueInner.js @@ -0,0 +1,12 @@ +// Options: --block-binding + +for (var x = 0; x < 10; x ++) { + for (var y = 0; y < 10; y ++) { + let z = 'let z'; + if (x == 7) { + continue; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForContinueNamed.js b/packages/babel/test/fixtures/traceur/Scope/LetInForContinueNamed.js new file mode 100644 index 0000000000..5907676016 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInForContinueNamed.js @@ -0,0 +1,13 @@ +// Options: --block-binding + +outer: +for (var x = 0; x < 10; x ++) { + for (var y = 0; y < 10; y ++) { + let z = 'let z'; + if (x == 7) { + continue outer; + } + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInGenerators.js b/packages/babel/test/fixtures/traceur/Scope/LetInGenerators.js new file mode 100644 index 0000000000..28ceea17ef --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInGenerators.js @@ -0,0 +1,15 @@ +function h(t) { + return t(); +} + +function* f() { + for (let i = 0; i < 3; ++i) { + yield h(() => i); + } +} + +var g = f(); +assert.deepEqual(g.next(), {value: 0, done: false}); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); + diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInProperties.js b/packages/babel/test/fixtures/traceur/Scope/LetInProperties.js new file mode 100644 index 0000000000..22c2378e9e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInProperties.js @@ -0,0 +1,19 @@ +// Options: --block-binding + +var object = { + get x() { + while (true) { + let let_x = 'let x'; + return let_x; + } + }, + + set x(v) { + do { + let let_v = v; + this.v = let_v; + } while (false); + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInWhileLoop.js b/packages/babel/test/fixtures/traceur/Scope/LetInWhileLoop.js new file mode 100644 index 0000000000..06bdaab3df --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInWhileLoop.js @@ -0,0 +1,5 @@ +while( true ) { + let foo = 1; + assert.equal(1, (() => foo)()); + break; +} diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor1.js b/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor1.js new file mode 100644 index 0000000000..dd3ac7cc70 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor1.js @@ -0,0 +1,7 @@ +// Options: --block-binding + +for (let x = 1; x < 10; x++) { + x; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor2.js b/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor2.js new file mode 100644 index 0000000000..46f0c97ad5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor2.js @@ -0,0 +1,8 @@ +// Options: --block-binding + +for (let x = 1, y = 2, z = 3; x < 10; x ++) { + y++; + z++; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor3.js b/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor3.js new file mode 100644 index 0000000000..ff742b3cdc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor3.js @@ -0,0 +1,9 @@ +// Options: --block-binding + +for (let x = 1, y = x + 1; x < 10 && y != 0; x ++, y *= 2) { + if (y > 300) { + continue; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerForIn.js b/packages/babel/test/fixtures/traceur/Scope/LetInitializerForIn.js new file mode 100644 index 0000000000..8bab17d1a6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetInitializerForIn.js @@ -0,0 +1,9 @@ +// Options: --block-binding + +let sum = 0; +let a = [1,2,3]; +for (let x in a) { + sum = sum + a[x]; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetNoInitializer.js b/packages/babel/test/fixtures/traceur/Scope/LetNoInitializer.js new file mode 100644 index 0000000000..3018218fc8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetNoInitializer.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +var x = 1; +{ + let x; + assert.equal(undefined, x); + x = 2; + assert.equal(2, x); +} +assert.equal(1, x); diff --git a/packages/babel/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js b/packages/babel/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js new file mode 100644 index 0000000000..58426a151e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js @@ -0,0 +1,6 @@ +// Options: --block-binding + +let x2; +assert.equal(undefined, x2); +x2 = 2; +assert.equal(2, x2); diff --git a/packages/babel/test/fixtures/traceur/Scope/LetReinitializeInLoop.js b/packages/babel/test/fixtures/traceur/Scope/LetReinitializeInLoop.js new file mode 100644 index 0000000000..c16bd2326d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetReinitializeInLoop.js @@ -0,0 +1,9 @@ +(function() { + var i = 0; + while (i < 3) { + let x; + assert.equal(undefined, x); + x = i; + i++; + } +})(); diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithFor.js b/packages/babel/test/fixtures/traceur/Scope/LetWithFor.js new file mode 100644 index 0000000000..f6ac1982eb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetWithFor.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +for (var x = 0; x < 10; x++) { + let let_y = 'let y'; + for (var for_z = 0; for_z < 2; for_z ++) { + break; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithForIn.js b/packages/babel/test/fixtures/traceur/Scope/LetWithForIn.js new file mode 100644 index 0000000000..6b75ebf3b9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetWithForIn.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +for (var x in [1,2,3]) { + let let_y = x; + for (var for_in_z in [4,5,6]) { + continue; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch.js b/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch.js new file mode 100644 index 0000000000..756d7ecba7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch.js @@ -0,0 +1,16 @@ +// Options: --block-binding + +for (var i = 0; i < 5; i ++) { + let let_x = 'let x'; + + switch (i) { + case 0: + break; + case 2: + break; + default: + break; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch2.js b/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch2.js new file mode 100644 index 0000000000..ea92dbf7c8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch2.js @@ -0,0 +1,16 @@ +// Options: --block-binding + +for (var i = 0; i < 5; i ++) { + let let_x = 'let x'; + + switch (i) { + case 0: + continue; + case 2: + break; + default: + break; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/NameBindingInFunction.js b/packages/babel/test/fixtures/traceur/Scope/NameBindingInFunction.js new file mode 100644 index 0000000000..3bc7634018 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NameBindingInFunction.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +{ + function f() { + return f; + } + var g = f; + f = 42; + assert.equal(42, g()); +} diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedForLoops.js b/packages/babel/test/fixtures/traceur/Scope/NestedForLoops.js new file mode 100644 index 0000000000..0b4f4a194a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NestedForLoops.js @@ -0,0 +1,40 @@ +// Options: --block-binding --for-of + +(function() { + var count = 0; + for (let x = 0; x < 1; x++) { + for (let x = 1; x < 2; x++) { + for (let x = 2; x < 3; x++) { + count++; + assert.equal(2, x); + } + } + } + assert.equal(1, count); +})(); + +(function() { + var count = 0; + for (let x in {0: 0}) { + for (let x in {1: 1}) { + for (let x in {2: 2}) { + count++; + assert.equal('2', x); + } + } + } + assert.equal(1, count); +})(); + +(function() { + var count = 0; + for (let x of [0]) { + for (let x of [1]) { + for (let x of [2]) { + count++; + assert.equal(2, x); + } + } + } + assert.equal(1, count); +})(); diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedFunction1.js b/packages/babel/test/fixtures/traceur/Scope/NestedFunction1.js new file mode 100644 index 0000000000..297042dd57 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NestedFunction1.js @@ -0,0 +1,9 @@ +// Options: --block-binding + +function nestedFunction1() { + return function() { + let let_x = 'let x'; + } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedFunction2.js b/packages/babel/test/fixtures/traceur/Scope/NestedFunction2.js new file mode 100644 index 0000000000..85238bc29e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NestedFunction2.js @@ -0,0 +1,10 @@ +// Options: --block-binding + +function nestedFunction2() { + let let_func = function() { + let let_x = 'let x'; + } + return let_func; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedFunction3.js b/packages/babel/test/fixtures/traceur/Scope/NestedFunction3.js new file mode 100644 index 0000000000..3ffda64978 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NestedFunction3.js @@ -0,0 +1,8 @@ +// Options: --block-binding + +function nestedFunction3() { + let let_x = 'let x'; + function function_foo() { } +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedLet.js b/packages/babel/test/fixtures/traceur/Scope/NestedLet.js new file mode 100644 index 0000000000..54b2e91afa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NestedLet.js @@ -0,0 +1,11 @@ +// Options: --block-binding + +var x = 'var'; +{ + let y = 'let 1'; +} +{ + let y = 'let 2'; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedLetConflict.js b/packages/babel/test/fixtures/traceur/Scope/NestedLetConflict.js new file mode 100644 index 0000000000..808a556509 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/NestedLetConflict.js @@ -0,0 +1,12 @@ +(function() { + var x = 1; + function f() { + assert.equal(x, 1); + { + let x = 2; + assert.equal(x, 2); + } + assert.equal(x, 1); + } + f(); +})(); diff --git a/packages/babel/test/fixtures/traceur/Scope/Regress1381.js b/packages/babel/test/fixtures/traceur/Scope/Regress1381.js new file mode 100644 index 0000000000..ab64e59a9b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/Regress1381.js @@ -0,0 +1,8 @@ +function test() { + let ret = true; + while (false) + for (let i = 0; i < 1; i++) + ret = () => i; + return ret +} +assert.isTrue(test()); diff --git a/packages/babel/test/fixtures/traceur/Scope/RenameFunctionBlock.js b/packages/babel/test/fixtures/traceur/Scope/RenameFunctionBlock.js new file mode 100644 index 0000000000..90e2035365 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/RenameFunctionBlock.js @@ -0,0 +1,11 @@ +// Options: --block-binding +// Issue #1773 +function when() { + function* where() { + var index = 0; + for (let x of Object) { + index++; + } + } + var x = 5; +} diff --git a/packages/babel/test/fixtures/traceur/Scope/SiblingScopes.js b/packages/babel/test/fixtures/traceur/Scope/SiblingScopes.js new file mode 100644 index 0000000000..c3e230e98c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/SiblingScopes.js @@ -0,0 +1,15 @@ +// Options: --free-variable-checker=false + +assert.throws(() => { + { + let testVariable = 1; + assert.equal(testVariable, 1); + } + + { + let testVariable = 2; + assert.equal(testVariable, 2); + } + + testVariable; +}, ReferenceError); diff --git a/packages/babel/test/fixtures/traceur/Scope/TopLevelLet.js b/packages/babel/test/fixtures/traceur/Scope/TopLevelLet.js new file mode 100644 index 0000000000..0f2db5940b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/TopLevelLet.js @@ -0,0 +1,7 @@ +// Options: --block-binding + +let x = 'let'; + +// ---------------------------------------------------------------------------- + +assert.equal(x, 'let'); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Scope/TopLevelLetConst.js b/packages/babel/test/fixtures/traceur/Scope/TopLevelLetConst.js new file mode 100644 index 0000000000..3b3adfbcfc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/TopLevelLetConst.js @@ -0,0 +1,9 @@ +// Options: --block-binding + +let x = 'let'; +const y = 'const'; + +// ---------------------------------------------------------------------------- + +assert.equal('let', x); +assert.equal('const', y); diff --git a/packages/babel/test/fixtures/traceur/Scope/TopLevelLetVar.js b/packages/babel/test/fixtures/traceur/Scope/TopLevelLetVar.js new file mode 100644 index 0000000000..a90a4d5397 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Scope/TopLevelLetVar.js @@ -0,0 +1,9 @@ +// Options: --block-binding + +let x = 'let'; +var y = 'var'; + +// ---------------------------------------------------------------------------- + +assert.equal('let', x); +assert.equal('var', y); diff --git a/packages/babel/test/fixtures/traceur/Spread/Array.js b/packages/babel/test/fixtures/traceur/Spread/Array.js new file mode 100644 index 0000000000..0819b914e1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/Array.js @@ -0,0 +1,14 @@ +var a = []; +var b = [0, ...a]; +var c = [...b, ...b]; +var d; +var e = [0, ...d = [1, 2], 3]; +var f = [0, ...[[1, 2], [3, 4]], 5]; + +// ---------------------------------------------------------------------------- + +assertArrayEquals([0], b); +assertArrayEquals([0, 0], c); +assertArrayEquals([1, 2], d); +assertArrayEquals([0, 1, 2, 3], e); +assertArrayEquals([0, [1, 2], [3, 4], 5], f); diff --git a/packages/babel/test/fixtures/traceur/Spread/Call.js b/packages/babel/test/fixtures/traceur/Spread/Call.js new file mode 100644 index 0000000000..2560165c93 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/Call.js @@ -0,0 +1,22 @@ +function* G() { + yield 'hi'; + yield 'there'; +} + +function f(...args) { + return args; +} + +var result = f(0, ...[1, 2], 3, ...G()); +assertArrayEquals([0, 1, 2, 3, 'hi', 'there'], result); + +result = f(...G()); +assertArrayEquals(['hi', 'there'], result); + +function g() { + 'use strict'; + assert.strictEqual(undefined, this); +} + +g(); +g(...[]); diff --git a/packages/babel/test/fixtures/traceur/Spread/CallWithUndefined.js b/packages/babel/test/fixtures/traceur/Spread/CallWithUndefined.js new file mode 100644 index 0000000000..1243fa0e79 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/CallWithUndefined.js @@ -0,0 +1,8 @@ +function f(...args) { + return args; +} + +assert.throw(function() { + // Should throw due to ToObject(undefined) + f(0, ...undefined, 1); +}, TypeError) diff --git a/packages/babel/test/fixtures/traceur/Spread/Class.js b/packages/babel/test/fixtures/traceur/Spread/Class.js new file mode 100644 index 0000000000..7d9bafc2d3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/Class.js @@ -0,0 +1,17 @@ +class SpreadTestClass { + constructor(x, y) { + this.SpreadTestClass = SpreadTestClass; + this.self = this; + this.x = x; + this.y = y; + } +} + +var object = new SpreadTestClass(...[0, 1]); + +// ---------------------------------------------------------------------------- + +assert.equal(object.x, 0); +assert.equal(object.y, 1); +assert.equal(object.self, object); +assert.isTrue(object instanceof object.SpreadTestClass); diff --git a/packages/babel/test/fixtures/traceur/Spread/Error_Disabled.js b/packages/babel/test/fixtures/traceur/Spread/Error_Disabled.js new file mode 100644 index 0000000000..75b75b251a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --spread=false +// Error: :4:8: Unexpected token ... + +[0, 1, ...[2, 3]]; diff --git a/packages/babel/test/fixtures/traceur/Spread/Iterators.js b/packages/babel/test/fixtures/traceur/Spread/Iterators.js new file mode 100644 index 0000000000..af5dae5f0b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/Iterators.js @@ -0,0 +1,17 @@ +function* G() { + yield 1; + yield 2; + yield 3; +} + +var a = [...G()]; +var b = [4, ...G()]; +var c = [...G(), 4]; +var d = [4, ...G(), 5]; + +// ---------------------------------------------------------------------------- + +assertArrayEquals([1, 2, 3], a); +assertArrayEquals([4, 1, 2, 3], b); +assertArrayEquals([1, 2, 3, 4], c); +assertArrayEquals([4, 1, 2, 3, 5], d); diff --git a/packages/babel/test/fixtures/traceur/Spread/MethodCall.js b/packages/babel/test/fixtures/traceur/Spread/MethodCall.js new file mode 100644 index 0000000000..72f08531f7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/MethodCall.js @@ -0,0 +1,18 @@ +var obj = { + method: function(...args) { + return { + self: this, + args: args + }; + } +}; + +var result = { + obj: obj, + result: obj.method(0, ...[1, 2], 3) +}; + +// ---------------------------------------------------------------------------- + +assert.equal(result.obj, result.result.self); +assertArrayEquals([0, 1, 2, 3], result.result.args); diff --git a/packages/babel/test/fixtures/traceur/Spread/MethodCallQuotedName.js b/packages/babel/test/fixtures/traceur/Spread/MethodCallQuotedName.js new file mode 100644 index 0000000000..7440fd9b97 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/MethodCallQuotedName.js @@ -0,0 +1,18 @@ +var obj = { + method: function(...args) { + return { + self: this, + args: args + }; + } +}; + +var result = { + obj: obj, + result: obj['meth' + 'od'](0, ...[1, 2], 3) +}; + +// ---------------------------------------------------------------------------- + +assert.equal(result.obj, result.result.self); +assertArrayEquals([0, 1, 2, 3], result.result.args); diff --git a/packages/babel/test/fixtures/traceur/Spread/New.js b/packages/babel/test/fixtures/traceur/Spread/New.js new file mode 100644 index 0000000000..edd3204077 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/New.js @@ -0,0 +1,26 @@ +function* G() { + yield 3; + yield 4; +} + +function F(x, y, z, a, b) { + this.x = x; + this.y = y; + this.z = z; + this.a = a; + this.b = b; + this.self = this; + this.F = F; +} + +var object = new F(0, ...[1, 2], ...G()); + +// ---------------------------------------------------------------------------- + +assert.equal(0, object.x); +assert.equal(1, object.y); +assert.equal(2, object.z); +assert.equal(3, object.a); +assert.equal(4, object.b); +assert.equal(object, object.self); +assert.isTrue(object instanceof object.F); diff --git a/packages/babel/test/fixtures/traceur/Spread/New2.js b/packages/babel/test/fixtures/traceur/Spread/New2.js new file mode 100644 index 0000000000..79e9484727 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/New2.js @@ -0,0 +1,23 @@ +function G() {} + +function F(x, y, z) { + var obj = new G; + obj.x = x; + obj.y = y; + obj.z = z; + obj.f = this; + obj.G = G; + obj.F = F; + return obj; +} + +var object = new F(0, ...[1, 2]); + +// ---------------------------------------------------------------------------- + +assert.equal(0, object.x); +assert.equal(1, object.y); +assert.equal(2, object.z); +assert.isFalse(object instanceof object.F); +assert.isTrue(object instanceof object.G); +assert.isTrue(object.f instanceof object.F); diff --git a/packages/babel/test/fixtures/traceur/Spread/NewBuiltin.js b/packages/babel/test/fixtures/traceur/Spread/NewBuiltin.js new file mode 100644 index 0000000000..c718932b90 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/NewBuiltin.js @@ -0,0 +1,7 @@ +var d = new Date(...[2011, 4, 3]); + +// ---------------------------------------------------------------------------- + +assert.equal(2011, d.getFullYear()); +assert.equal(4, d.getMonth()); +assert.equal(3, d.getDate()); diff --git a/packages/babel/test/fixtures/traceur/Spread/NoIterator.js b/packages/babel/test/fixtures/traceur/Spread/NoIterator.js new file mode 100644 index 0000000000..d9f757f408 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/NoIterator.js @@ -0,0 +1 @@ +assert.throw(() => [...{}], TypeError); diff --git a/packages/babel/test/fixtures/traceur/Spread/NotAnObject.js b/packages/babel/test/fixtures/traceur/Spread/NotAnObject.js new file mode 100644 index 0000000000..4b68c2c9e1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/NotAnObject.js @@ -0,0 +1 @@ +assert.throw(() => [...null], TypeError); diff --git a/packages/babel/test/fixtures/traceur/Spread/String.js b/packages/babel/test/fixtures/traceur/Spread/String.js new file mode 100644 index 0000000000..fcef0b86f5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/String.js @@ -0,0 +1,13 @@ +var a = ''; +var b = ['b', ...a]; +var c = [...b, ...b]; +var d; +var e = [0, ...d = '12', 3]; +var f = [... new String('abc')]; + +// ---------------------------------------------------------------------------- + +assertArrayEquals(['b'], b); +assertArrayEquals(['b', 'b'], c); +assertArrayEquals([0, '1', '2', 3], e); +assertArrayEquals(['a', 'b', 'c'], f); diff --git a/packages/babel/test/fixtures/traceur/Spread/Type.js b/packages/babel/test/fixtures/traceur/Spread/Type.js new file mode 100644 index 0000000000..bd46c4200d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Spread/Type.js @@ -0,0 +1,29 @@ + +assert.throw(() => { + [0, ...{}, 1]; +}, TypeError); + +assert.throw(() => { + [0, ...{0: 1, 1: 2, length: 2}, 3]; +}, TypeError); + +assert.throw(() => { + [0, ...true, 1]; +}, TypeError); + +assert.throw(() => { + [0, ...1, 1]; +}, TypeError); + +assert.throw(() => { + [0, ...function() {}, 1]; +}, TypeError); + +assert.throw(function() { + [0, ...null, 1]; +}, TypeError); + +assert.throw(function() { + [0, ...undefined, 1]; +}, TypeError); + diff --git a/packages/babel/test/fixtures/traceur/StringExtras/CodePointAt.js b/packages/babel/test/fixtures/traceur/StringExtras/CodePointAt.js new file mode 100644 index 0000000000..54369eb5a8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringExtras/CodePointAt.js @@ -0,0 +1,76 @@ +// Tests taken from https://mths.be/codepointat + +assert.equal(String.prototype.codePointAt.length, 1); + +// String that starts with a BMP symbol +assert.equal('abc\uD834\uDF06def'.codePointAt(''), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt('_'), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(-Infinity), undefined); +assert.equal('abc\uD834\uDF06def'.codePointAt(-1), undefined); +assert.equal('abc\uD834\uDF06def'.codePointAt(-0), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(0), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(3), 0x1D306); +assert.equal('abc\uD834\uDF06def'.codePointAt(4), 0xDF06); +assert.equal('abc\uD834\uDF06def'.codePointAt(5), 0x64); +assert.equal('abc\uD834\uDF06def'.codePointAt(42), undefined); +assert.equal('abc\uD834\uDF06def'.codePointAt(Infinity), undefined); +assert.equal('abc\uD834\uDF06def'.codePointAt(Infinity), undefined); +assert.equal('abc\uD834\uDF06def'.codePointAt(NaN), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(false), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(null), 0x61); +assert.equal('abc\uD834\uDF06def'.codePointAt(undefined), 0x61); + +// String that starts with an astral symbol +assert.equal('\uD834\uDF06def'.codePointAt(''), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt('1'), 0xDF06); +assert.equal('\uD834\uDF06def'.codePointAt('_'), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt(), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt(-1), undefined); +assert.equal('\uD834\uDF06def'.codePointAt(-0), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt(0), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt(1), 0xDF06); +assert.equal('\uD834\uDF06def'.codePointAt(42), undefined); +assert.equal('\uD834\uDF06def'.codePointAt(false), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt(null), 0x1D306); +assert.equal('\uD834\uDF06def'.codePointAt(undefined), 0x1D306); + +// Lone high surrogates +assert.equal('\uD834abc'.codePointAt(''), 0xD834); +assert.equal('\uD834abc'.codePointAt('_'), 0xD834); +assert.equal('\uD834abc'.codePointAt(), 0xD834); +assert.equal('\uD834abc'.codePointAt(-1), undefined); +assert.equal('\uD834abc'.codePointAt(-0), 0xD834); +assert.equal('\uD834abc'.codePointAt(0), 0xD834); +assert.equal('\uD834abc'.codePointAt(false), 0xD834); +assert.equal('\uD834abc'.codePointAt(NaN), 0xD834); +assert.equal('\uD834abc'.codePointAt(null), 0xD834); +assert.equal('\uD834abc'.codePointAt(undefined), 0xD834); + +// Lone low surrogates +assert.equal('\uDF06abc'.codePointAt(''), 0xDF06); +assert.equal('\uDF06abc'.codePointAt('_'), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(-1), undefined); +assert.equal('\uDF06abc'.codePointAt(-0), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(0), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(false), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(NaN), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(null), 0xDF06); +assert.equal('\uDF06abc'.codePointAt(undefined), 0xDF06); + +assert.throw(function() { String.prototype.codePointAt.call(undefined); }, TypeError); +assert.throw(function() { String.prototype.codePointAt.call(undefined, 4); }, TypeError); +assert.throw(function() { String.prototype.codePointAt.call(null); }, TypeError); +assert.throw(function() { String.prototype.codePointAt.call(null, 4); }, TypeError); +assert.equal(String.prototype.codePointAt.call(42, 0), 0x34); +assert.equal(String.prototype.codePointAt.call(42, 1), 0x32); +assert.equal(String.prototype.codePointAt.call({ 'toString': function() { return 'abc'; } }, 2), 0x63); + +assert.throw(function() { String.prototype.codePointAt.apply(undefined); }, TypeError); +assert.throw(function() { String.prototype.codePointAt.apply(undefined, [4]); }, TypeError); +assert.throw(function() { String.prototype.codePointAt.apply(null); }, TypeError); +assert.throw(function() { String.prototype.codePointAt.apply(null, [4]); }, TypeError); +assert.equal(String.prototype.codePointAt.apply(42, [0]), 0x34); +assert.equal(String.prototype.codePointAt.apply(42, [1]), 0x32); +assert.equal(String.prototype.codePointAt.apply({ 'toString': function() { return 'abc'; } }, [2]), 0x63); diff --git a/packages/babel/test/fixtures/traceur/StringExtras/EndsWith.js b/packages/babel/test/fixtures/traceur/StringExtras/EndsWith.js new file mode 100644 index 0000000000..b4585b2e8d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringExtras/EndsWith.js @@ -0,0 +1,217 @@ +// Tests taken from https://mths.be/endswith + +assert.equal(String.prototype.endsWith.length, 1); + +assert.equal('undefined'.endsWith(), true); +assert.equal('undefined'.endsWith(undefined), true); +assert.equal('undefined'.endsWith(null), false); +assert.equal('null'.endsWith(), false); +assert.equal('null'.endsWith(undefined), false); +assert.equal('null'.endsWith(null), true); + +assert.equal('abc'.endsWith(), false); +assert.equal('abc'.endsWith(''), true); +assert.equal('abc'.endsWith('\0'), false); +assert.equal('abc'.endsWith('c'), true); +assert.equal('abc'.endsWith('b'), false); +assert.equal('abc'.endsWith('ab'), false); +assert.equal('abc'.endsWith('bc'), true); +assert.equal('abc'.endsWith('abc'), true); +assert.equal('abc'.endsWith('bcd'), false); +assert.equal('abc'.endsWith('abcd'), false); +assert.equal('abc'.endsWith('bcde'), false); + +assert.equal('abc'.endsWith('', NaN), true); +assert.equal('abc'.endsWith('\0', NaN), false); +assert.equal('abc'.endsWith('c', NaN), false); +assert.equal('abc'.endsWith('b', NaN), false); +assert.equal('abc'.endsWith('ab', NaN), false); +assert.equal('abc'.endsWith('bc', NaN), false); +assert.equal('abc'.endsWith('abc', NaN), false); +assert.equal('abc'.endsWith('bcd', NaN), false); +assert.equal('abc'.endsWith('abcd', NaN), false); +assert.equal('abc'.endsWith('bcde', NaN), false); + +assert.equal('abc'.endsWith('', false), true); +assert.equal('abc'.endsWith('\0', false), false); +assert.equal('abc'.endsWith('c', false), false); +assert.equal('abc'.endsWith('b', false), false); +assert.equal('abc'.endsWith('ab', false), false); +assert.equal('abc'.endsWith('bc', false), false); +assert.equal('abc'.endsWith('abc', false), false); +assert.equal('abc'.endsWith('bcd', false), false); +assert.equal('abc'.endsWith('abcd', false), false); +assert.equal('abc'.endsWith('bcde', false), false); + +assert.equal('abc'.endsWith('', undefined), true); +assert.equal('abc'.endsWith('\0', undefined), false); +assert.equal('abc'.endsWith('c', undefined), true); +assert.equal('abc'.endsWith('b', undefined), false); +assert.equal('abc'.endsWith('ab', undefined), false); +assert.equal('abc'.endsWith('bc', undefined), true); +assert.equal('abc'.endsWith('abc', undefined), true); +assert.equal('abc'.endsWith('bcd', undefined), false); +assert.equal('abc'.endsWith('abcd', undefined), false); +assert.equal('abc'.endsWith('bcde', undefined), false); + +assert.equal('abc'.endsWith('', null), true); +assert.equal('abc'.endsWith('\0', null), false); +assert.equal('abc'.endsWith('c', null), false); +assert.equal('abc'.endsWith('b', null), false); +assert.equal('abc'.endsWith('ab', null), false); +assert.equal('abc'.endsWith('bc', null), false); +assert.equal('abc'.endsWith('abc', null), false); +assert.equal('abc'.endsWith('bcd', null), false); +assert.equal('abc'.endsWith('abcd', null), false); +assert.equal('abc'.endsWith('bcde', null), false); + +assert.equal('abc'.endsWith('', -Infinity), true); +assert.equal('abc'.endsWith('\0', -Infinity), false); +assert.equal('abc'.endsWith('c', -Infinity), false); +assert.equal('abc'.endsWith('b', -Infinity), false); +assert.equal('abc'.endsWith('ab', -Infinity), false); +assert.equal('abc'.endsWith('bc', -Infinity), false); +assert.equal('abc'.endsWith('abc', -Infinity), false); +assert.equal('abc'.endsWith('bcd', -Infinity), false); +assert.equal('abc'.endsWith('abcd', -Infinity), false); +assert.equal('abc'.endsWith('bcde', -Infinity), false); + +assert.equal('abc'.endsWith('', -1), true); +assert.equal('abc'.endsWith('\0', -1), false); +assert.equal('abc'.endsWith('c', -1), false); +assert.equal('abc'.endsWith('b', -1), false); +assert.equal('abc'.endsWith('ab', -1), false); +assert.equal('abc'.endsWith('bc', -1), false); +assert.equal('abc'.endsWith('abc', -1), false); +assert.equal('abc'.endsWith('bcd', -1), false); +assert.equal('abc'.endsWith('abcd', -1), false); +assert.equal('abc'.endsWith('bcde', -1), false); + +assert.equal('abc'.endsWith('', -0), true); +assert.equal('abc'.endsWith('\0', -0), false); +assert.equal('abc'.endsWith('c', -0), false); +assert.equal('abc'.endsWith('b', -0), false); +assert.equal('abc'.endsWith('ab', -0), false); +assert.equal('abc'.endsWith('bc', -0), false); +assert.equal('abc'.endsWith('abc', -0), false); +assert.equal('abc'.endsWith('bcd', -0), false); +assert.equal('abc'.endsWith('abcd', -0), false); +assert.equal('abc'.endsWith('bcde', -0), false); + +assert.equal('abc'.endsWith('', +0), true); +assert.equal('abc'.endsWith('\0', +0), false); +assert.equal('abc'.endsWith('c', +0), false); +assert.equal('abc'.endsWith('b', +0), false); +assert.equal('abc'.endsWith('ab', +0), false); +assert.equal('abc'.endsWith('bc', +0), false); +assert.equal('abc'.endsWith('abc', +0), false); +assert.equal('abc'.endsWith('bcd', +0), false); +assert.equal('abc'.endsWith('abcd', +0), false); +assert.equal('abc'.endsWith('bcde', +0), false); + +assert.equal('abc'.endsWith('', 1), true); +assert.equal('abc'.endsWith('\0', 1), false); +assert.equal('abc'.endsWith('c', 1), false); +assert.equal('abc'.endsWith('b', 1), false); +assert.equal('abc'.endsWith('ab', 1), false); +assert.equal('abc'.endsWith('bc', 1), false); +assert.equal('abc'.endsWith('abc', 1), false); +assert.equal('abc'.endsWith('bcd', 1), false); +assert.equal('abc'.endsWith('abcd', 1), false); +assert.equal('abc'.endsWith('bcde', 1), false); + +assert.equal('abc'.endsWith('', 2), true); +assert.equal('abc'.endsWith('\0', 2), false); +assert.equal('abc'.endsWith('c', 2), false); +assert.equal('abc'.endsWith('b', 2), true); +assert.equal('abc'.endsWith('ab', 2), true); +assert.equal('abc'.endsWith('bc', 2), false); +assert.equal('abc'.endsWith('abc', 2), false); +assert.equal('abc'.endsWith('bcd', 2), false); +assert.equal('abc'.endsWith('abcd', 2), false); +assert.equal('abc'.endsWith('bcde', 2), false); + +assert.equal('abc'.endsWith('', +Infinity), true); +assert.equal('abc'.endsWith('\0', +Infinity), false); +assert.equal('abc'.endsWith('c', +Infinity), true); +assert.equal('abc'.endsWith('b', +Infinity), false); +assert.equal('abc'.endsWith('ab', +Infinity), false); +assert.equal('abc'.endsWith('bc', +Infinity), true); +assert.equal('abc'.endsWith('abc', +Infinity), true); +assert.equal('abc'.endsWith('bcd', +Infinity), false); +assert.equal('abc'.endsWith('abcd', +Infinity), false); +assert.equal('abc'.endsWith('bcde', +Infinity), false); + +assert.equal('abc'.endsWith('', true), true); +assert.equal('abc'.endsWith('\0', true), false); +assert.equal('abc'.endsWith('c', true), false); +assert.equal('abc'.endsWith('b', true), false); +assert.equal('abc'.endsWith('ab', true), false); +assert.equal('abc'.endsWith('bc', true), false); +assert.equal('abc'.endsWith('abc', true), false); +assert.equal('abc'.endsWith('bcd', true), false); +assert.equal('abc'.endsWith('abcd', true), false); +assert.equal('abc'.endsWith('bcde', true), false); + +assert.equal('abc'.endsWith('', 'x'), true); +assert.equal('abc'.endsWith('\0', 'x'), false); +assert.equal('abc'.endsWith('c', 'x'), false); +assert.equal('abc'.endsWith('b', 'x'), false); +assert.equal('abc'.endsWith('ab', 'x'), false); +assert.equal('abc'.endsWith('bc', 'x'), false); +assert.equal('abc'.endsWith('abc', 'x'), false); +assert.equal('abc'.endsWith('bcd', 'x'), false); +assert.equal('abc'.endsWith('abcd', 'x'), false); +assert.equal('abc'.endsWith('bcde', 'x'), false); + +assert.equal('[a-z]+(bar)?'.endsWith('(bar)?'), true); +assert.throw(function() { '[a-z]+(bar)?'.endsWith(/(bar)?/); }, TypeError); +assert.equal('[a-z]+(bar)?'.endsWith('[a-z]+', 6), true); +assert.throw(function() { '[a-z]+(bar)?'.endsWith(/(bar)?/); }, TypeError); +assert.throw(function() { '[a-z]+/(bar)?/'.endsWith(/(bar)?/); }, TypeError); + +// https://mathiasbynens.be/notes/javascript-unicode#poo-test +var string = 'I\xF1t\xEBrn\xE2ti\xF4n\xE0liz\xE6ti\xF8n\u2603\uD83D\uDCA9'; +assert.equal(string.endsWith(''), true); +assert.equal(string.endsWith('\xF1t\xEBr'), false); +assert.equal(string.endsWith('\xF1t\xEBr', 5), true); +assert.equal(string.endsWith('\xE0liz\xE6'), false); +assert.equal(string.endsWith('\xE0liz\xE6', 16), true); +assert.equal(string.endsWith('\xF8n\u2603\uD83D\uDCA9'), true); +assert.equal(string.endsWith('\xF8n\u2603\uD83D\uDCA9', 23), true); +assert.equal(string.endsWith('\u2603'), false); +assert.equal(string.endsWith('\u2603', 21), true); +assert.equal(string.endsWith('\uD83D\uDCA9'), true); +assert.equal(string.endsWith('\uD83D\uDCA9', 23), true); + +assert.throw(function() { String.prototype.endsWith.call(undefined); }, TypeError); +assert.throw(function() { String.prototype.endsWith.call(undefined, 'b'); }, TypeError); +assert.throw(function() { String.prototype.endsWith.call(undefined, 'b', 4); }, TypeError); +assert.throw(function() { String.prototype.endsWith.call(null); }, TypeError); +assert.throw(function() { String.prototype.endsWith.call(null, 'b'); }, TypeError); +assert.throw(function() { String.prototype.endsWith.call(null, 'b', 4); }, TypeError); +assert.equal(String.prototype.endsWith.call(42, '2'), true); +assert.equal(String.prototype.endsWith.call(42, '4'), false); +assert.equal(String.prototype.endsWith.call(42, 'b', 4), false); +assert.equal(String.prototype.endsWith.call(42, '2', 1), false); +assert.equal(String.prototype.endsWith.call(42, '2', 4), true); +assert.equal(String.prototype.endsWith.call({ 'toString': function() { return 'abc'; } }, 'b', 0), false); +assert.equal(String.prototype.endsWith.call({ 'toString': function() { return 'abc'; } }, 'b', 1), false); +assert.equal(String.prototype.endsWith.call({ 'toString': function() { return 'abc'; } }, 'b', 2), true); +assert.throw(function() { String.prototype.endsWith.call({ 'toString': function() { throw RangeError(); } }, /./); }, RangeError); + +assert.throw(function() { String.prototype.endsWith.apply(undefined); }, TypeError); +assert.throw(function() { String.prototype.endsWith.apply(undefined, ['b']); }, TypeError); +assert.throw(function() { String.prototype.endsWith.apply(undefined, ['b', 4]); }, TypeError); +assert.throw(function() { String.prototype.endsWith.apply(null); }, TypeError); +assert.throw(function() { String.prototype.endsWith.apply(null, ['b']); }, TypeError); +assert.throw(function() { String.prototype.endsWith.apply(null, ['b', 4]); }, TypeError); +assert.equal(String.prototype.endsWith.apply(42, ['2']), true); +assert.equal(String.prototype.endsWith.apply(42, ['4']), false); +assert.equal(String.prototype.endsWith.apply(42, ['b', 4]), false); +assert.equal(String.prototype.endsWith.apply(42, ['2', 1]), false); +assert.equal(String.prototype.endsWith.apply(42, ['2', 4]), true); +assert.equal(String.prototype.endsWith.apply({ 'toString': function() { return 'abc'; } }, ['b', 0]), false); +assert.equal(String.prototype.endsWith.apply({ 'toString': function() { return 'abc'; } }, ['b', 1]), false); +assert.equal(String.prototype.endsWith.apply({ 'toString': function() { return 'abc'; } }, ['b', 2]), true); +assert.throw(function() { String.prototype.endsWith.apply({ 'toString': function() { throw RangeError(); } }, [/./]); }, RangeError); diff --git a/packages/babel/test/fixtures/traceur/StringExtras/FromCodePoint.js b/packages/babel/test/fixtures/traceur/StringExtras/FromCodePoint.js new file mode 100644 index 0000000000..fc4831f708 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringExtras/FromCodePoint.js @@ -0,0 +1,25 @@ +// Tests taken from https://mths.be/fromcodepoint + +assert.equal(String.fromCodePoint.length, 1); + +assert.equal(String.fromCodePoint(''), '\0'); +assert.equal(String.fromCodePoint(), ''); +assert.equal(String.fromCodePoint(-0), '\0'); +assert.equal(String.fromCodePoint(0), '\0'); +assert.equal(String.fromCodePoint(0x1D306), '\uD834\uDF06'); +assert.equal(String.fromCodePoint(0x1D306, 0x61, 0x1D307), '\uD834\uDF06a\uD834\uDF07'); +assert.equal(String.fromCodePoint(0x61, 0x62, 0x1D307), 'ab\uD834\uDF07'); +assert.equal(String.fromCodePoint(false), '\0'); +assert.equal(String.fromCodePoint(null), '\0'); + +assert.throw(function() { String.fromCodePoint('_'); }, RangeError); +assert.throw(function() { String.fromCodePoint('+Infinity'); }, RangeError); +assert.throw(function() { String.fromCodePoint('-Infinity'); }, RangeError); +assert.throw(function() { String.fromCodePoint(-1); }, RangeError); +assert.throw(function() { String.fromCodePoint(0x10FFFF + 1); }, RangeError); +assert.throw(function() { String.fromCodePoint(3.14); }, RangeError); +assert.throw(function() { String.fromCodePoint(3e-2); }, RangeError); +assert.throw(function() { String.fromCodePoint(Infinity); }, RangeError); +assert.throw(function() { String.fromCodePoint(NaN); }, RangeError); +assert.throw(function() { String.fromCodePoint(undefined); }, RangeError); +assert.throw(function() { String.fromCodePoint({}); }, RangeError); diff --git a/packages/babel/test/fixtures/traceur/StringExtras/Includes.js b/packages/babel/test/fixtures/traceur/StringExtras/Includes.js new file mode 100644 index 0000000000..b5cf58373d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringExtras/Includes.js @@ -0,0 +1,114 @@ +// Tests taken from https://mths.be/includes + +assert.equal(String.prototype.includes.length, 1); +assert.equal(String.prototype.propertyIsEnumerable('includes'), false); + +assert.equal('abc'.includes(), false); +assert.equal('aundefinedb'.includes(), true); +assert.equal('abc'.includes(undefined), false); +assert.equal('aundefinedb'.includes(undefined), true); +assert.equal('abc'.includes(null), false); +assert.equal('anullb'.includes(null), true); +assert.equal('abc'.includes(false), false); +assert.equal('afalseb'.includes(false), true); +assert.equal('abc'.includes(NaN), false); +assert.equal('aNaNb'.includes(NaN), true); +assert.equal('abc'.includes('abc'), true); +assert.equal('abc'.includes('def'), false); +assert.equal('abc'.includes(''), true); +assert.equal(''.includes(''), true); + +assert.equal('abc'.includes('b', -Infinity), true); +assert.equal('abc'.includes('b', -1), true); +assert.equal('abc'.includes('b', -0), true); +assert.equal('abc'.includes('b', +0), true); +assert.equal('abc'.includes('b', NaN), true); +assert.equal('abc'.includes('b', 'x'), true); +assert.equal('abc'.includes('b', false), true); +assert.equal('abc'.includes('b', undefined), true); +assert.equal('abc'.includes('b', null), true); +assert.equal('abc'.includes('b', 1), true); +assert.equal('abc'.includes('b', 2), false); +assert.equal('abc'.includes('b', 3), false); +assert.equal('abc'.includes('b', 4), false); +assert.equal('abc'.includes('b', +Infinity), false); +assert.equal('abc'.includes('bc'), true); +assert.equal('abc'.includes('bc\0'), false); + +assert.equal('abc123def'.includes(1, -Infinity), true); +assert.equal('abc123def'.includes(1, -1), true); +assert.equal('abc123def'.includes(1, -0), true); +assert.equal('abc123def'.includes(1, +0), true); +assert.equal('abc123def'.includes(1, NaN), true); +assert.equal('abc123def'.includes(1, 'x'), true); +assert.equal('abc123def'.includes(1, false), true); +assert.equal('abc123def'.includes(1, undefined), true); +assert.equal('abc123def'.includes(1, null), true); +assert.equal('abc123def'.includes(1, 1), true); +assert.equal('abc123def'.includes(1, 2), true); +assert.equal('abc123def'.includes(1, 3), true); +assert.equal('abc123def'.includes(1, 4), false); +assert.equal('abc123def'.includes(1, 5), false); +assert.equal('abc123def'.includes(1, +Infinity), false); + +assert.equal('abc123def'.includes(9, -Infinity), false); +assert.equal('abc123def'.includes(9, -1), false); +assert.equal('abc123def'.includes(9, -0), false); +assert.equal('abc123def'.includes(9, +0), false); +assert.equal('abc123def'.includes(9, NaN), false); +assert.equal('abc123def'.includes(9, 'x'), false); +assert.equal('abc123def'.includes(9, false), false); +assert.equal('abc123def'.includes(9, undefined), false); +assert.equal('abc123def'.includes(9, null), false); +assert.equal('abc123def'.includes(9, 1), false); +assert.equal('abc123def'.includes(9, 2), false); +assert.equal('abc123def'.includes(9, 3), false); +assert.equal('abc123def'.includes(9, 4), false); +assert.equal('abc123def'.includes(9, 5), false); +assert.equal('abc123def'.includes(9, +Infinity), false); + +assert.equal('foo[a-z]+(bar)?'.includes('[a-z]+'), true); +assert.throw(function() { 'foo[a-z]+(bar)?'.includes(/[a-z]+/); }, TypeError); +assert.throw(function() { 'foo/[a-z]+/(bar)?'.includes(/[a-z]+/); }, TypeError); +assert.equal('foo[a-z]+(bar)?'.includes('(bar)?'), true); +assert.throw(function() { 'foo[a-z]+(bar)?'.includes(/(bar)?/); }, TypeError); +assert.throw(function() { 'foo[a-z]+/(bar)?/'.includes(/(bar)?/); }, TypeError); + +// https://mathiasbynens.be/notes/javascript-unicode#poo-test +var string = 'I\xF1t\xEBrn\xE2ti\xF4n\xE0liz\xE6ti\xF8n\u2603\uD83D\uDCA9'; +assert.equal(string.includes(''), true); +assert.equal(string.includes('\xF1t\xEBr'), true); +assert.equal(string.includes('\xE0liz\xE6'), true); +assert.equal(string.includes('\xF8n\u2603\uD83D\uDCA9'), true); +assert.equal(string.includes('\u2603'), true); +assert.equal(string.includes('\uD83D\uDCA9'), true); + +assert.throw(function() { String.prototype.includes.call(undefined); }, TypeError); +assert.throw(function() { String.prototype.includes.call(undefined, 'b'); }, TypeError); +assert.throw(function() { String.prototype.includes.call(undefined, 'b', 4); }, TypeError); +assert.throw(function() { String.prototype.includes.call(null); }, TypeError); +assert.throw(function() { String.prototype.includes.call(null, 'b'); }, TypeError); +assert.throw(function() { String.prototype.includes.call(null, 'b', 4); }, TypeError); +assert.equal(String.prototype.includes.call(42, '2'), true); +assert.equal(String.prototype.includes.call(42, 'b', 4), false); +assert.equal(String.prototype.includes.call(42, '2', 4), false); +assert.equal(String.prototype.includes.call({ 'toString': function() { return 'abc'; } }, 'b', 0), true); +assert.equal(String.prototype.includes.call({ 'toString': function() { return 'abc'; } }, 'b', 1), true); +assert.equal(String.prototype.includes.call({ 'toString': function() { return 'abc'; } }, 'b', 2), false); +assert.throw(function() { String.prototype.includes.call({ 'toString': function() { throw RangeError(); } }, /./); }, RangeError); +assert.throw(function() { String.prototype.includes.call({ 'toString': function() { return 'abc'; } }, /./); }, TypeError); + +assert.throw(function() { String.prototype.includes.apply(undefined); }, TypeError); +assert.throw(function() { String.prototype.includes.apply(undefined, ['b']); }, TypeError); +assert.throw(function() { String.prototype.includes.apply(undefined, ['b', 4]); }, TypeError); +assert.throw(function() { String.prototype.includes.apply(null); }, TypeError); +assert.throw(function() { String.prototype.includes.apply(null, ['b']); }, TypeError); +assert.throw(function() { String.prototype.includes.apply(null, ['b', 4]); }, TypeError); +assert.equal(String.prototype.includes.apply(42, ['2']), true); +assert.equal(String.prototype.includes.apply(42, ['b', 4]), false); +assert.equal(String.prototype.includes.apply(42, ['2', 4]), false); +assert.equal(String.prototype.includes.apply({ 'toString': function() { return 'abc'; } }, ['b', 0]), true); +assert.equal(String.prototype.includes.apply({ 'toString': function() { return 'abc'; } }, ['b', 1]), true); +assert.equal(String.prototype.includes.apply({ 'toString': function() { return 'abc'; } }, ['b', 2]), false); +assert.throw(function() { String.prototype.includes.apply({ 'toString': function() { throw RangeError(); } }, [/./]); }, RangeError); +assert.throw(function() { String.prototype.includes.apply({ 'toString': function() { return 'abc'; } }, [/./]); }, TypeError); diff --git a/packages/babel/test/fixtures/traceur/StringExtras/Repeat.js b/packages/babel/test/fixtures/traceur/StringExtras/Repeat.js new file mode 100644 index 0000000000..08c5d02ae9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringExtras/Repeat.js @@ -0,0 +1,33 @@ +// Tests taken from https://mths.be/repeat + +assert.equal(String.prototype.repeat.length, 1); + +assert.equal('abc'.repeat(), ''); +assert.equal('abc'.repeat(undefined), ''); +assert.equal('abc'.repeat(null), ''); +assert.equal('abc'.repeat(false), ''); +assert.equal('abc'.repeat(NaN), ''); +assert.equal('abc'.repeat('abc'), ''); +assert.throw(function() { 'abc'.repeat(-Infinity); }, RangeError); +assert.throw(function() { 'abc'.repeat(-1); }, RangeError); +assert.equal('abc'.repeat(-0), ''); +assert.equal('abc'.repeat(+0), ''); +assert.equal('abc'.repeat(1), 'abc'); +assert.equal('abc'.repeat(2), 'abcabc'); +assert.equal('abc'.repeat(3), 'abcabcabc'); +assert.equal('abc'.repeat(4), 'abcabcabcabc'); +assert.throw(function() { 'abc'.repeat(+Infinity); }, RangeError); + +assert.throw(function() { String.prototype.repeat.call(undefined); }, TypeError); +assert.throw(function() { String.prototype.repeat.call(undefined, 4); }, TypeError); +assert.throw(function() { String.prototype.repeat.call(null); }, TypeError); +assert.throw(function() { String.prototype.repeat.call(null, 4); }, TypeError); +assert.equal(String.prototype.repeat.call(42, 4), '42424242'); +assert.equal(String.prototype.repeat.call({ 'toString': function() { return 'abc'; } }, 2), 'abcabc'); + +assert.throw(function() { String.prototype.repeat.apply(undefined); }, TypeError); +assert.throw(function() { String.prototype.repeat.apply(undefined, [4]); }, TypeError); +assert.throw(function() { String.prototype.repeat.apply(null); }, TypeError); +assert.throw(function() { String.prototype.repeat.apply(null, [4]); }, TypeError); +assert.equal(String.prototype.repeat.apply(42, [4]), '42424242'); +assert.equal(String.prototype.repeat.apply({ 'toString': function() { return 'abc'; } }, [2]), 'abcabc'); diff --git a/packages/babel/test/fixtures/traceur/StringExtras/StartsWith.js b/packages/babel/test/fixtures/traceur/StringExtras/StartsWith.js new file mode 100644 index 0000000000..8c71a21f95 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringExtras/StartsWith.js @@ -0,0 +1,210 @@ +// Tests taken from https://mths.be/startswith + +Object.prototype[1] = 2; // try to break `arguments[1]` + +assert.equal(String.prototype.startsWith.length, 1); + +assert.equal('undefined'.startsWith(), true); +assert.equal('undefined'.startsWith(undefined), true); +assert.equal('undefined'.startsWith(null), false); +assert.equal('null'.startsWith(), false); +assert.equal('null'.startsWith(undefined), false); +assert.equal('null'.startsWith(null), true); + +assert.equal('abc'.startsWith(), false); +assert.equal('abc'.startsWith(''), true); +assert.equal('abc'.startsWith('\0'), false); +assert.equal('abc'.startsWith('a'), true); +assert.equal('abc'.startsWith('b'), false); +assert.equal('abc'.startsWith('ab'), true); +assert.equal('abc'.startsWith('bc'), false); +assert.equal('abc'.startsWith('abc'), true); +assert.equal('abc'.startsWith('bcd'), false); +assert.equal('abc'.startsWith('abcd'), false); +assert.equal('abc'.startsWith('bcde'), false); + +assert.equal('abc'.startsWith('', NaN), true); +assert.equal('abc'.startsWith('\0', NaN), false); +assert.equal('abc'.startsWith('a', NaN), true); +assert.equal('abc'.startsWith('b', NaN), false); +assert.equal('abc'.startsWith('ab', NaN), true); +assert.equal('abc'.startsWith('bc', NaN), false); +assert.equal('abc'.startsWith('abc', NaN), true); +assert.equal('abc'.startsWith('bcd', NaN), false); +assert.equal('abc'.startsWith('abcd', NaN), false); +assert.equal('abc'.startsWith('bcde', NaN), false); + +assert.equal('abc'.startsWith('', false), true); +assert.equal('abc'.startsWith('\0', false), false); +assert.equal('abc'.startsWith('a', false), true); +assert.equal('abc'.startsWith('b', false), false); +assert.equal('abc'.startsWith('ab', false), true); +assert.equal('abc'.startsWith('bc', false), false); +assert.equal('abc'.startsWith('abc', false), true); +assert.equal('abc'.startsWith('bcd', false), false); +assert.equal('abc'.startsWith('abcd', false), false); +assert.equal('abc'.startsWith('bcde', false), false); + +assert.equal('abc'.startsWith('', undefined), true); +assert.equal('abc'.startsWith('\0', undefined), false); +assert.equal('abc'.startsWith('a', undefined), true); +assert.equal('abc'.startsWith('b', undefined), false); +assert.equal('abc'.startsWith('ab', undefined), true); +assert.equal('abc'.startsWith('bc', undefined), false); +assert.equal('abc'.startsWith('abc', undefined), true); +assert.equal('abc'.startsWith('bcd', undefined), false); +assert.equal('abc'.startsWith('abcd', undefined), false); +assert.equal('abc'.startsWith('bcde', undefined), false); + +assert.equal('abc'.startsWith('', null), true); +assert.equal('abc'.startsWith('\0', null), false); +assert.equal('abc'.startsWith('a', null), true); +assert.equal('abc'.startsWith('b', null), false); +assert.equal('abc'.startsWith('ab', null), true); +assert.equal('abc'.startsWith('bc', null), false); +assert.equal('abc'.startsWith('abc', null), true); +assert.equal('abc'.startsWith('bcd', null), false); +assert.equal('abc'.startsWith('abcd', null), false); +assert.equal('abc'.startsWith('bcde', null), false); + +assert.equal('abc'.startsWith('', -Infinity), true); +assert.equal('abc'.startsWith('\0', -Infinity), false); +assert.equal('abc'.startsWith('a', -Infinity), true); +assert.equal('abc'.startsWith('b', -Infinity), false); +assert.equal('abc'.startsWith('ab', -Infinity), true); +assert.equal('abc'.startsWith('bc', -Infinity), false); +assert.equal('abc'.startsWith('abc', -Infinity), true); +assert.equal('abc'.startsWith('bcd', -Infinity), false); +assert.equal('abc'.startsWith('abcd', -Infinity), false); +assert.equal('abc'.startsWith('bcde', -Infinity), false); + +assert.equal('abc'.startsWith('', -1), true); +assert.equal('abc'.startsWith('\0', -1), false); +assert.equal('abc'.startsWith('a', -1), true); +assert.equal('abc'.startsWith('b', -1), false); +assert.equal('abc'.startsWith('ab', -1), true); +assert.equal('abc'.startsWith('bc', -1), false); +assert.equal('abc'.startsWith('abc', -1), true); +assert.equal('abc'.startsWith('bcd', -1), false); +assert.equal('abc'.startsWith('abcd', -1), false); +assert.equal('abc'.startsWith('bcde', -1), false); + +assert.equal('abc'.startsWith('', -0), true); +assert.equal('abc'.startsWith('\0', -0), false); +assert.equal('abc'.startsWith('a', -0), true); +assert.equal('abc'.startsWith('b', -0), false); +assert.equal('abc'.startsWith('ab', -0), true); +assert.equal('abc'.startsWith('bc', -0), false); +assert.equal('abc'.startsWith('abc', -0), true); +assert.equal('abc'.startsWith('bcd', -0), false); +assert.equal('abc'.startsWith('abcd', -0), false); +assert.equal('abc'.startsWith('bcde', -0), false); + +assert.equal('abc'.startsWith('', +0), true); +assert.equal('abc'.startsWith('\0', +0), false); +assert.equal('abc'.startsWith('a', +0), true); +assert.equal('abc'.startsWith('b', +0), false); +assert.equal('abc'.startsWith('ab', +0), true); +assert.equal('abc'.startsWith('bc', +0), false); +assert.equal('abc'.startsWith('abc', +0), true); +assert.equal('abc'.startsWith('bcd', +0), false); +assert.equal('abc'.startsWith('abcd', +0), false); +assert.equal('abc'.startsWith('bcde', +0), false); + +assert.equal('abc'.startsWith('', 1), true); +assert.equal('abc'.startsWith('\0', 1), false); +assert.equal('abc'.startsWith('a', 1), false); +assert.equal('abc'.startsWith('b', 1), true); +assert.equal('abc'.startsWith('ab', 1), false); +assert.equal('abc'.startsWith('bc', 1), true); +assert.equal('abc'.startsWith('abc', 1), false); +assert.equal('abc'.startsWith('bcd', 1), false); +assert.equal('abc'.startsWith('abcd', 1), false); +assert.equal('abc'.startsWith('bcde', 1), false); + +assert.equal('abc'.startsWith('', +Infinity), true); +assert.equal('abc'.startsWith('\0', +Infinity), false); +assert.equal('abc'.startsWith('a', +Infinity), false); +assert.equal('abc'.startsWith('b', +Infinity), false); +assert.equal('abc'.startsWith('ab', +Infinity), false); +assert.equal('abc'.startsWith('bc', +Infinity), false); +assert.equal('abc'.startsWith('abc', +Infinity), false); +assert.equal('abc'.startsWith('bcd', +Infinity), false); +assert.equal('abc'.startsWith('abcd', +Infinity), false); +assert.equal('abc'.startsWith('bcde', +Infinity), false); + +assert.equal('abc'.startsWith('', true), true); +assert.equal('abc'.startsWith('\0', true), false); +assert.equal('abc'.startsWith('a', true), false); +assert.equal('abc'.startsWith('b', true), true); +assert.equal('abc'.startsWith('ab', true), false); +assert.equal('abc'.startsWith('bc', true), true); +assert.equal('abc'.startsWith('abc', true), false); +assert.equal('abc'.startsWith('bcd', true), false); +assert.equal('abc'.startsWith('abcd', true), false); +assert.equal('abc'.startsWith('bcde', true), false); + +assert.equal('abc'.startsWith('', 'x'), true); +assert.equal('abc'.startsWith('\0', 'x'), false); +assert.equal('abc'.startsWith('a', 'x'), true); +assert.equal('abc'.startsWith('b', 'x'), false); +assert.equal('abc'.startsWith('ab', 'x'), true); +assert.equal('abc'.startsWith('bc', 'x'), false); +assert.equal('abc'.startsWith('abc', 'x'), true); +assert.equal('abc'.startsWith('bcd', 'x'), false); +assert.equal('abc'.startsWith('abcd', 'x'), false); +assert.equal('abc'.startsWith('bcde', 'x'), false); + +assert.equal('[a-z]+(bar)?'.startsWith('[a-z]+'), true); +assert.throw(function() { '[a-z]+(bar)?'.startsWith(/[a-z]+/); }, TypeError); +assert.equal('[a-z]+(bar)?'.startsWith('(bar)?', 6), true); +assert.throw(function() { '[a-z]+(bar)?'.startsWith(/(bar)?/); }, TypeError); +assert.throw(function() { '[a-z]+/(bar)?/'.startsWith(/(bar)?/); }, TypeError); + +// https://mathiasbynens.be/notes/javascript-unicode#poo-test +var string = 'I\xF1t\xEBrn\xE2ti\xF4n\xE0liz\xE6ti\xF8n\u2603\uD83D\uDCA9'; +assert.equal(string.startsWith(''), true); +assert.equal(string.startsWith('\xF1t\xEBr'), false); +assert.equal(string.startsWith('\xF1t\xEBr', 1), true); +assert.equal(string.startsWith('\xE0liz\xE6'), false); +assert.equal(string.startsWith('\xE0liz\xE6', 11), true); +assert.equal(string.startsWith('\xF8n\u2603\uD83D\uDCA9'), false); +assert.equal(string.startsWith('\xF8n\u2603\uD83D\uDCA9', 18), true); +assert.equal(string.startsWith('\u2603'), false); +assert.equal(string.startsWith('\u2603', 20), true); +assert.equal(string.startsWith('\uD83D\uDCA9'), false); +assert.equal(string.startsWith('\uD83D\uDCA9', 21), true); + +assert.throw(function() { String.prototype.startsWith.call(undefined); }, TypeError); +assert.throw(function() { String.prototype.startsWith.call(undefined, 'b'); }, TypeError); +assert.throw(function() { String.prototype.startsWith.call(undefined, 'b', 4); }, TypeError); +assert.throw(function() { String.prototype.startsWith.call(null); }, TypeError); +assert.throw(function() { String.prototype.startsWith.call(null, 'b'); }, TypeError); +assert.throw(function() { String.prototype.startsWith.call(null, 'b', 4); }, TypeError); +assert.equal(String.prototype.startsWith.call(42, '2'), false); +assert.equal(String.prototype.startsWith.call(42, '4'), true); +assert.equal(String.prototype.startsWith.call(42, 'b', 4), false); +assert.equal(String.prototype.startsWith.call(42, '2', 1), true); +assert.equal(String.prototype.startsWith.call(42, '2', 4), false); +assert.equal(String.prototype.startsWith.call({ 'toString': function() { return 'abc'; } }, 'b', 0), false); +assert.equal(String.prototype.startsWith.call({ 'toString': function() { return 'abc'; } }, 'b', 1), true); +assert.equal(String.prototype.startsWith.call({ 'toString': function() { return 'abc'; } }, 'b', 2), false); +assert.throw(function() { String.prototype.startsWith.call({ 'toString': function() { throw RangeError(); } }, /./); }, RangeError); + +assert.throw(function() { String.prototype.startsWith.apply(undefined); }, TypeError); +assert.throw(function() { String.prototype.startsWith.apply(undefined, ['b']); }, TypeError); +assert.throw(function() { String.prototype.startsWith.apply(undefined, ['b', 4]); }, TypeError); +assert.throw(function() { String.prototype.startsWith.apply(null); }, TypeError); +assert.throw(function() { String.prototype.startsWith.apply(null, ['b']); }, TypeError); +assert.throw(function() { String.prototype.startsWith.apply(null, ['b', 4]); }, TypeError); +assert.equal(String.prototype.startsWith.apply(42, ['2']), false); +assert.equal(String.prototype.startsWith.apply(42, ['4']), true); +assert.equal(String.prototype.startsWith.apply(42, ['b', 4]), false); +assert.equal(String.prototype.startsWith.apply(42, ['2', 1]), true); +assert.equal(String.prototype.startsWith.apply(42, ['2', 4]), false); +assert.equal(String.prototype.startsWith.apply({ 'toString': function() { return 'abc'; } }, ['b', 0]), false); +assert.equal(String.prototype.startsWith.apply({ 'toString': function() { return 'abc'; } }, ['b', 1]), true); +assert.equal(String.prototype.startsWith.apply({ 'toString': function() { return 'abc'; } }, ['b', 2]), false); +assert.throw(function() { String.prototype.startsWith.apply({ 'toString': function() { throw RangeError(); } }, [/./]); }, RangeError); + +delete Object.prototype[1]; diff --git a/packages/babel/test/fixtures/traceur/StringIterator.js b/packages/babel/test/fixtures/traceur/StringIterator.js new file mode 100644 index 0000000000..8b5dc5ccfa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/StringIterator.js @@ -0,0 +1,15 @@ +var s = 'abc 💩 def'; + +var expected = ['a', 'b', 'c', ' ', '💩', ' ', 'd', 'e', 'f']; +var actual = []; +for (var x of s) { + actual.push(x); +} +assert.deepEqual(actual, expected); + +var newS = new String('abc'); +var res = []; +for (var x of newS) { + res.push(x); +} +assert.deepEqual(res, ['a', 'b', 'c']); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js new file mode 100644 index 0000000000..e92759c500 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js @@ -0,0 +1,10 @@ +// Error: :8:17: Unexpected token ; + +var p = {}; + +var o = { + __proto__: p, + method() { + return super; + } +}; diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js new file mode 100644 index 0000000000..9254653816 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js @@ -0,0 +1,30 @@ +var a = { + foo() { + return 'A'; + } +}; + +var b = { + __proto__: a, + foo() { + return super.foo() + ' B'; + } +}; + +var c = { + __proto__: b, + foo() { + return super.foo() + ' C'; + } +}; + +var d = { + __proto__: c, + foo() { + return super.foo() + ' D'; + } +}; + +// ---------------------------------------------------------------------------- + +assert.equal('A B C D', d.foo()); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js new file mode 100644 index 0000000000..592c2078d1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js @@ -0,0 +1,22 @@ +var log = ''; + +var base = { + p() { log += '[base]'; } +}; + +var otherBase = { + p() { log += '[otherBase]'; } +}; + +var derived = { + __proto__: base, + p() { + log += '[derived]'; + super.p(); + derived.__proto__ = otherBase; + super.p(); + } +}; + +derived.p(); +assert.equal(log, '[derived][base][otherBase]'); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js new file mode 100644 index 0000000000..ba826c8ea8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js @@ -0,0 +1,20 @@ +var x; + +var p = { + m(v) { + x = v; + } +}; + +var o = { + __proto__: p, + n(x) { + var f = (x) => { + super.m(x); + }; + f(x); + } +}; + +o.n(42); +assert.equal(x, 42); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js new file mode 100644 index 0000000000..6f719cc10b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js @@ -0,0 +1,37 @@ +var p = { + m() { + this.name = 'p'; + }, + n() { + return 'name'; + } +}; + +var p2 = { + m() { + this.name = 'p2'; + } +}; + +var o = { + __proto__: p, + name: 'o', + m() { + this.inner = { + __proto__: p2, + [super.n()]: 'inner', + m() { + super.m(); + } + }; + super.m(); + } +}; + +o.m(); +assert.equal(o.name, 'p'); +assert.equal(o.inner.name, 'inner'); + +o.inner.m(); +assert.equal(o.name, 'p'); +assert.equal(o.inner.name, 'p2'); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js new file mode 100644 index 0000000000..36b11cd8aa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js @@ -0,0 +1,22 @@ +var p = { + _x: 0, + get x() { + return this._x; + }, + set x(x) { + this._x = x; + } +}; + +var o = { + __proto__: p, + m() { + assert.equal(this.x, 0); + assert.equal(super.x++, 0); + assert.equal(this.x, 1); + assert.equal(super.x--, 1); + assert.equal(this.x, 0); + } +}; + +o.m(); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js new file mode 100644 index 0000000000..2be6e336bf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js @@ -0,0 +1,51 @@ +var p = { + _y: {v: 321}, + _z: 1, + + set x(value) { + this._x = value; + }, + get x() { + return this._y; + }, + getX() { + return this._x; + }, + getV() { + return this._y.v; + }, + set z(v) { + this._z = v; + }, + get z() { + return this._z; + }, +}; + +var o = { + __proto__: p, + set x(value) { + assert.equal(super.x = value, value); + }, + set v(value) { + return super.x.v = value; + }, + inc(val) { + assert.equal(super.z += val, 4); + }, + incLookup(val) { + assert.equal(super['z'] += val, 9); + } +}; + +o.x = 42; +assert.equal(42, o.getX()); + +o.v = 123; +assert.equal(123, o.getV()); + +o.inc(3); +assert.equal(4, o.z); + +o.incLookup(5); +assert.equal(9, o.z); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js new file mode 100644 index 0000000000..54a6bc7405 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js @@ -0,0 +1,25 @@ +var p = { + _x: 0, + get x() { + return this._x; + }, + set x(x) { + this._x = x; + }, +}; + +var o = { + __proto__: p, + m() { + assert.equal(this.x, 0); + assert.equal(++super.x, 1); + assert.equal(this.x, 1); + assert.equal(--super.x, 0); + assert.equal(this.x, 0); + + // Don't use assert.typeOf since we are testing typeof. + assert.equal(typeof super.x, 'number'); + } +}; + +o.m(); diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js new file mode 100644 index 0000000000..416d9f62d5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js @@ -0,0 +1,8 @@ +var o = { + x: true, + m() { + return super.hasOwnProperty('x'); + } +}; + +assert.isTrue(o.m()); diff --git a/packages/babel/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js b/packages/babel/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js new file mode 100644 index 0000000000..75946b17d4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js @@ -0,0 +1,7 @@ +var s1 = Symbol(); +var s2 = Symbol(); +var object = {a: 'a'}; +object[s1] = 's1'; +object.b = 'b'; +object[s2] = 's2'; +assertArrayEquals([s1, s2], Object.getOwnPropertySymbols(object)); diff --git a/packages/babel/test/fixtures/traceur/Symbol/Inherited.js b/packages/babel/test/fixtures/traceur/Symbol/Inherited.js new file mode 100644 index 0000000000..dd31d0e177 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Symbol/Inherited.js @@ -0,0 +1,27 @@ +'use strict'; + +var s = Symbol(); +var p = {}; +Object.defineProperty(p, s, { + get: function() { + return 42; + }, + configurable: true +}); + +var o = Object.create(p); +assert.equal(42, o[s]); +assert.throws(function() { + o[s] = 1; +}, TypeError); + +var val; +Object.defineProperty(p, s, { + set: function(v) { + val = v; + }, + configurable: true +}); + +o[s] = 33; +assert.equal(33, val); diff --git a/packages/babel/test/fixtures/traceur/Symbol/Object.js b/packages/babel/test/fixtures/traceur/Symbol/Object.js new file mode 100644 index 0000000000..6d00300ab4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Symbol/Object.js @@ -0,0 +1,29 @@ +var s = Symbol(); +var object = {}; +object[s] = 42; +assert.equal(42, object[s]); +// Native Symbol throws for ToString. +// assert.isUndefined(object[s + '']); +assertArrayEquals([], Object.getOwnPropertyNames(object)); +assert.isTrue(object.hasOwnProperty(s)); + +assert.equal(32, object[s] -= 10); +assert.equal(16, object[s] /= 2); +assert.equal(16, object[s]); + +var n = Symbol(); +assert.equal(object[n] = 1, 1); +assert.equal(object[n] += 2, 3); + +assert.isTrue(Object.getOwnPropertyDescriptor(object, n).enumerable); + +assert.isTrue(n in object); +assert.isTrue(delete object[n]); +assert.isFalse(n in object); + +var keys = []; +for (var k in object) { + keys.push(k); +} +assert.equal(0, keys.length, keys + ''); +assert.equal(0, Object.keys(object).length); diff --git a/packages/babel/test/fixtures/traceur/Symbol/ObjectModel.js b/packages/babel/test/fixtures/traceur/Symbol/ObjectModel.js new file mode 100644 index 0000000000..a80c496a63 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Symbol/ObjectModel.js @@ -0,0 +1,13 @@ +var s = Symbol('s'); +assert.equal(typeof s, 'symbol'); +assert.equal(s.constructor, Symbol); +assert.isFalse(s instanceof Symbol); + +assert.throws(() => { + new Symbol; +}); + +// TODO(jjb): Our impl not to spec so generators can use Symbols without +// requiring transcoding +// assert.equal(s.toString(), 'Symbol(s)'); +assert.equal(s.valueOf(), s); diff --git a/packages/babel/test/fixtures/traceur/Symbol/TransformationOff.js b/packages/babel/test/fixtures/traceur/Symbol/TransformationOff.js new file mode 100644 index 0000000000..1b0ee783b5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Symbol/TransformationOff.js @@ -0,0 +1,8 @@ +var s = Symbol(); +var s2 = Symbol(); +var object = {}; +object[s] = 1; +object[s2] = 2; + +assert.equal(object[s], 1); +assert.equal(object[s2], 2); diff --git a/packages/babel/test/fixtures/traceur/Syntax/ArrayWithHoles.js b/packages/babel/test/fixtures/traceur/Syntax/ArrayWithHoles.js new file mode 100644 index 0000000000..47477ebe94 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/ArrayWithHoles.js @@ -0,0 +1,10 @@ +var arr = [,1, ,3,]; +assert.equal(4, arr.length); + +var arr2 = [,1, ,...[3],]; +assert.equal(4, arr.length); + +var x, y; +[x, , y] = [0, 1, 2]; +assert.equal(0, x); +assert.equal(2, y); diff --git a/packages/babel/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js b/packages/babel/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js new file mode 100644 index 0000000000..cff0d8269a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js @@ -0,0 +1,14 @@ +switch (1) { + case 2: + let x; + break; + case 3: + const y = 4; + break; + case 5: + function f() {} + break; + default: + class C {} + break; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Empty.js b/packages/babel/test/fixtures/traceur/Syntax/Empty.js new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_Arguments.js b/packages/babel/test/fixtures/traceur/Syntax/Error_Arguments.js new file mode 100644 index 0000000000..bb2d410758 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_Arguments.js @@ -0,0 +1,6 @@ +// Error: :6:6: Unexpected token ) + +function f(x) { +} + +f(x, ); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js new file mode 100644 index 0000000000..5ea5fedfde --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js @@ -0,0 +1,4 @@ +// Options: --block-binding +// Error: :4:4: Unexpected reserved word class + +do class C {} while (false); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js new file mode 100644 index 0000000000..1b509a5550 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js @@ -0,0 +1,4 @@ +// Options: --block-binding +// Error: :4:4: Unexpected reserved word const + +do const y = 1; while (false); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js new file mode 100644 index 0000000000..330b4be080 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js @@ -0,0 +1,4 @@ +// Options: --block-binding +// Error: :4:4: Unexpected reserved word function + +do function f() {} while (false); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js new file mode 100644 index 0000000000..be2fd327d4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js @@ -0,0 +1,4 @@ +// Options: --block-binding +// Error: :4:4: Unexpected reserved word let + +do let x; while (false); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js new file mode 100644 index 0000000000..4f1c7766e9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js @@ -0,0 +1,4 @@ +// Options: --block-binding +// Error: :4:4: A statement cannot start with 'let [' + +do let[0] = 1; while (false); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js new file mode 100644 index 0000000000..cf7db93de4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js @@ -0,0 +1,22 @@ +// Options: --block-binding +// Error: :9:3: Unexpected reserved word let +// Error: :12:3: Unexpected reserved word const +// Error: :15:3: Unexpected reserved word function +// Error: :18:3: Unexpected reserved word class +// Error: :21:3: A statement cannot start with 'let [' + +if (true) {} else + let x; + +if (true) {} else + const y = 1; + +if (true) {} else + function f() {} + +if (true) {} else + class C {} + +if (true) {} else + let[0] = 1; + diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js new file mode 100644 index 0000000000..3f23c1a5c7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js @@ -0,0 +1,21 @@ +// Options: --block-binding +// Error: :9:3: Unexpected reserved word let +// Error: :12:3: Unexpected reserved word const +// Error: :15:3: Unexpected reserved word function +// Error: :18:3: Unexpected reserved word class +// Error: :21:3: A statement cannot start with 'let [' + +for (;;) + let x; + +for (;;) + const y = 1; + +for (;;) + function f() {} + +for (;;) + class C {} + +for (;;) + let[0] = 1; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js new file mode 100644 index 0000000000..a037d53501 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js @@ -0,0 +1,21 @@ +// Options: --block-binding +// Error: :9:3: Unexpected reserved word let +// Error: :12:3: Unexpected reserved word const +// Error: :15:3: Unexpected reserved word function +// Error: :18:3: Unexpected reserved word class +// Error: :21:3: A statement cannot start with 'let [' + +for (var key in {}) + let x; + +for (var key in {}) + const y = 1; + +for (var key in {}) + function f() {} + +for (var key in {}) + class C {} + +for (var key in {}) + let[0] = 1; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js new file mode 100644 index 0000000000..6114e7897c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js @@ -0,0 +1,21 @@ +// Options: --block-binding +// Error: :9:3: Unexpected reserved word let +// Error: :12:3: Unexpected reserved word const +// Error: :15:3: Unexpected reserved word function +// Error: :18:3: Unexpected reserved word class +// Error: :21:3: A statement cannot start with 'let [' + +for (var item of []) + let x; + +for (var item of []) + const y = 1; + +for (var item of []) + function f() {} + +for (var item of []) + class C {} + +for (var item of []) + let[0] = 1; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js new file mode 100644 index 0000000000..84ffdc7df8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js @@ -0,0 +1,21 @@ +// Options: --block-binding +// Error: :9:3: Unexpected reserved word let +// Error: :12:3: Unexpected reserved word const +// Error: :15:3: Unexpected reserved word function +// Error: :18:3: Unexpected reserved word class +// Error: :21:3: A statement cannot start with 'let [' + +if (true) + let x; + +if (true) + const y = 1; + +if (true) + function f() {} + +if (true) + class C {} + +if (true) + let[0] = 1; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js new file mode 100644 index 0000000000..049626f80c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js @@ -0,0 +1,21 @@ +// Options: --block-binding +// Error: :9:3: Unexpected reserved word let +// Error: :12:3: Unexpected reserved word const +// Error: :15:3: Unexpected reserved word function +// Error: :18:3: Unexpected reserved word class +// Error: :21:3: A statement cannot start with 'let [' + +while (false) + let x; + +while (false) + const y = 1; + +while (false) + function f() {} + +while (false) + class C {} + +while (false) + let[0] = 1; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js b/packages/babel/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js new file mode 100644 index 0000000000..39072eeec4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js @@ -0,0 +1,3 @@ +// Error: :3:15: Unexpected token in + +for (var i, j in {}) {} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js b/packages/babel/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js new file mode 100644 index 0000000000..47300cbe20 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js @@ -0,0 +1,3 @@ +// Error: :3:15: Unexpected token of + +for (var i, j of []) {} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_FunctionParam.js b/packages/babel/test/fixtures/traceur/Syntax/Error_FunctionParam.js new file mode 100644 index 0000000000..4f7b7741e5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_FunctionParam.js @@ -0,0 +1,5 @@ +// Error: :3:14: Unexpected token ) + +function f(x,) { + return x; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.js b/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.js new file mode 100644 index 0000000000..fd775a56aa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.js @@ -0,0 +1,3 @@ +// Error: :3:1: Illegal return statement + +return 42; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js b/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js new file mode 100644 index 0000000000..fd775a56aa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js @@ -0,0 +1,3 @@ +// Error: :3:1: Illegal return statement + +return 42; \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js b/packages/babel/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js new file mode 100644 index 0000000000..a978e81cb7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js @@ -0,0 +1,41 @@ +// Options: --async-functions --async-generators --for-on +// Error: :16:1: Invalid left-hand side expression in assignment +// Error: :17:1: Invalid left-hand side expression in assignment +// Error: :18:3: Invalid left-hand side expression in prefix operation +// Error: :19:3: Invalid left-hand side expression in prefix operation +// Error: :20:1: Invalid left-hand side expression in postfix operation +// Error: :21:1: Invalid left-hand side expression in postfix operation +// Error: :25:3: Invalid left-hand side expression in assignment +// Error: :26:3: Invalid left-hand side expression in assignment +// Error: :30:5: Invalid left-hand side expression in assignment +// Error: :33:12: Invalid left-hand side expression in assignment +// Error: :35:6: Invalid left-hand side expression in assignment +// Error: :37:6: Invalid left-hand side expression in assignment +// Error: :40:7: Invalid left-hand side expression in assignment + +this = 1; +42 = 1; +++42 +--42 +42++ +42-- + +function f() { + 'use strict'; + arguments = 1; + eval = 1; +} + +var x; +[x, 42] = [1, 2]; + +var y; +({y, prop: 42} = {y: 2, prop: 3}); + +for (42 in {}) {} + +for (42 of []) {} + +async function* ag() { + for (42 on {}) {} +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_MultipleDefault.js b/packages/babel/test/fixtures/traceur/Syntax/Error_MultipleDefault.js new file mode 100644 index 0000000000..a103f5fe88 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_MultipleDefault.js @@ -0,0 +1,12 @@ +// Error: :9:5: Switch statements may have at most one 'default' clause + +(function() { + switch (42) { + case 1: + return; + default: + return; + default: + return; + } +}); diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js b/packages/babel/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js new file mode 100644 index 0000000000..da9ad46a47 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js @@ -0,0 +1,7 @@ +// Error: 6:7: Unexpected token ; + +function f(x) { + var x = 0; + x + ++; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js b/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js new file mode 100644 index 0000000000..ce6aaf9204 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js @@ -0,0 +1,27 @@ +// Error: :10:18: Duplicate parameter name x +// Error: :10:24: Duplicate parameter name x +// Error: :14:17: Duplicate parameter name x +// Error: :14:23: Duplicate parameter name x +// Error: :20:20: Duplicate parameter name a +// Error: :20:23: Duplicate parameter name a +// Error: :24:19: Duplicate parameter name a +// Error: :24:22: Duplicate parameter name a + +function f(x, y, x, z, x) { + 'use strict'; +} + +var f2 = (x, y, x, z, x) => { + 'use strict'; +}; + +function g() { + 'use strict'; + function h(a, b, a, a) { + + } + + var g2 = (a, b, a, a) => { + + }; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js b/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js new file mode 100644 index 0000000000..6377946c13 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js @@ -0,0 +1,64 @@ +// Error: :24:18: Duplicate parameter name x +// Error: :24:24: Duplicate parameter name x +// Error: :27:19: Duplicate parameter name a +// Error: :27:23: Duplicate parameter name a +// Error: :30:22: Duplicate parameter name c +// Error: :30:25: Duplicate parameter name c +// Error: :33:20: Duplicate parameter name e +// Error: :33:23: Duplicate parameter name e +// Error: :36:15: Duplicate parameter name g +// Error: :39:15: Duplicate parameter name i +// Error: :42:15: Duplicate parameter name k +// Error: :45:17: Duplicate parameter name x +// Error: :45:23: Duplicate parameter name x +// Error: :48:18: Duplicate parameter name a +// Error: :48:22: Duplicate parameter name a +// Error: :51:21: Duplicate parameter name c +// Error: :51:24: Duplicate parameter name c +// Error: :54:19: Duplicate parameter name e +// Error: :54:22: Duplicate parameter name e +// Error: :57:14: Duplicate parameter name g +// Error: :60:14: Duplicate parameter name i +// Error: :63:14: Duplicate parameter name k + +function f(x, y, x, ...x) { +} + +function g([a, b, a], a) { +} + +function h(c = 1, d, c, c) { +} + +function i({e, f}, e, e) { +} + +function j(g, g, [h]) { +} + +function h(i, i, j = 1) { +} + +function i(k, k, ...l) { +} + +var f2 = (x, y, x, ...x) => { +}; + +var g2 = ([a, b, a], a) => { +}; + +var h2 = (c = 1, d, c, c) => { +}; + +var i2 = ({e, f}, e, e) => { +}; + +var j2 = (g, g, [h]) => { +}; + +var h2 = (i, i, j = 1) => { +}; + +var i2 = (k, k, ...l) => { +}; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js b/packages/babel/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js new file mode 100644 index 0000000000..5cd0381dd7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js @@ -0,0 +1,3 @@ +// Error: :3:1: Expected '/' in regular expression literal + +/ \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js new file mode 100644 index 0000000000..2ab9b50a90 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js @@ -0,0 +1,14 @@ +// Error: :8:25: implements is a reserved identifier +// Error :8:25: implements is a reserved identifier +// Error :10:1: implements is a reserved identifier +// Error :11:2: implements is a reserved identifier +// Error :12:3: implements is a reserved identifier +// Error :13:6: implements is a reserved identifier + +function testImplements(implements) { 'use strict'; } + +implements => { 'use strict'; }; +(implements) => { 'use strict'; }; +([implements]) => { 'use strict'; }; +([...implements]) => { 'use strict'; }; +({implements}) => { 'use strict'; }; diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js new file mode 100644 index 0000000000..944f89d8f9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js @@ -0,0 +1,6 @@ +// Error: :3:26: implements is a reserved identifier + +function testImplements({implements}) { + 'use strict'; + return 42; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js new file mode 100644 index 0000000000..fc8a0fefde --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js @@ -0,0 +1,6 @@ +// Error: :5:11: yield is a reserved identifier + +function testStrictKeywordsInPropertyDefinitionIdentifierReference() { + 'use strict'; + return {yield}; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js new file mode 100644 index 0000000000..cb73fa3a3e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js @@ -0,0 +1,6 @@ +// Error: :4:26: implements is a reserved identifier + +'use strict'; +function testImplements({implements}) { + return 42; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js b/packages/babel/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js new file mode 100644 index 0000000000..3e35a4d5cc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js @@ -0,0 +1,3 @@ +// Error: :3:5: Character code '48' is not a valid identifier start char + +var \u0030ab = 42; // 0ab diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInClass.js b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInClass.js new file mode 100644 index 0000000000..3015ee964f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInClass.js @@ -0,0 +1,7 @@ +// Error: :5:5: Strict mode code may not include a with statement + +class C { + method() { + with ({}) {} + } +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInModule.module.js b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInModule.module.js new file mode 100644 index 0000000000..31172a46bc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInModule.module.js @@ -0,0 +1,3 @@ +// Error: :3:1: Strict mode code may not include a with statement + +with ({}) {} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js new file mode 100644 index 0000000000..7510f92ed9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js @@ -0,0 +1,7 @@ +// Error: :6:3: Strict mode code may not include a with statement + +function testWithInStrict() { + 'use foo'; + 'use strict'; + with ({}) {} +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js new file mode 100644 index 0000000000..e9bf1f2440 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js @@ -0,0 +1,5 @@ +// Error: :5:1: Strict mode code may not include a with statement + +'use foo'; +'use strict'; +with ({}) {} diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js b/packages/babel/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js new file mode 100644 index 0000000000..9c7ddee6f1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js @@ -0,0 +1,6 @@ +// Error: :5:7: Unexpected token * + +function* yieldStarNewLine() { + yield + *42; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/ExpressionValidation.js b/packages/babel/test/fixtures/traceur/Syntax/ExpressionValidation.js new file mode 100644 index 0000000000..a217ea9eed --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/ExpressionValidation.js @@ -0,0 +1,29 @@ +'use strict'; + +(function() { + +// test MemberLookupExpression +function f(a) { + var b = [42]; + return (a||b)[0]; +} + +assert.equal(42, f(null)); +assert.equal(43, f([43])); + +// test NewExpression +var a, b = function() { this.ans = 42; }; +assert.equal(new (a||b)().ans, 42); + +a = function() { this.ans = 43; }; +assert.equal(new (a||b)().ans, 43); + +// test CallExpression +a = undefined; +b = function() { return 42; } +assert.equal((a||b)(), 42); + +a = function() { return 43; } +assert.equal((a||b)(), 43); + +})(); diff --git a/packages/babel/test/fixtures/traceur/Syntax/ImplicitSemiColon.js b/packages/babel/test/fixtures/traceur/Syntax/ImplicitSemiColon.js new file mode 100644 index 0000000000..af00da62c4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/ImplicitSemiColon.js @@ -0,0 +1,6 @@ +function f() { + return + 42; +} + +assert.isUndefined(f()); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Syntax/ImportFromTypo.module.js b/packages/babel/test/fixtures/traceur/Syntax/ImportFromTypo.module.js new file mode 100644 index 0000000000..4ae054a80e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/ImportFromTypo.module.js @@ -0,0 +1,3 @@ +// Error: :3:11: Unexpected token FROM + +import {} FROM 'abc'; diff --git a/packages/babel/test/fixtures/traceur/Syntax/InInBinding.js b/packages/babel/test/fixtures/traceur/Syntax/InInBinding.js new file mode 100644 index 0000000000..2d5bd70b44 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/InInBinding.js @@ -0,0 +1,2 @@ +var [x = 'a' in {a: 1}] = []; +assert.equal(true, x); diff --git a/packages/babel/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js b/packages/babel/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js new file mode 100644 index 0000000000..27181066e0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js @@ -0,0 +1,38 @@ +(function() { + var eval = 1; + eval++; + ++eval; + eval--; + --eval; + [eval] = [eval]; + ({eval} = {eval}); + eval += 1; + eval /= 2; + assert.equal(1, eval); +})(); + +(function() { + var arguments = 1; + arguments++; + ++arguments; + arguments--; + --arguments; + [arguments] = [arguments]; + ({arguments} = {arguments}); + arguments += 1; + arguments /= 2; + assert.equal(1, arguments); +})(); + +(function() { + var yield = 1; + yield++; + ++yield; + yield--; + --yield; + [yield] = [yield]; + ({yield} = {yield}); + yield += 1; + yield /= 2; + assert.equal(1, yield); +})(); diff --git a/packages/babel/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js b/packages/babel/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js new file mode 100644 index 0000000000..6de511896e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js @@ -0,0 +1,28 @@ +function f() { + return /* + */ 1; +} +assert.equal(undefined, f()); + +function g() { + return /* */ 1; +} +assert.equal(1, g()); + +function h() { + return /* */ /* + */ 1; +} +assert.equal(undefined, h()); + +function i() { + return /* */ // + 1; +} +assert.equal(undefined, i()); + +function j() { + return // + 1; +} +assert.equal(undefined, j()); diff --git a/packages/babel/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js b/packages/babel/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js new file mode 100644 index 0000000000..c5e9e23bba --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js @@ -0,0 +1,3 @@ +// Comment not closed. +var f = (x) /* + => {} diff --git a/packages/babel/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js b/packages/babel/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js new file mode 100644 index 0000000000..43b6ab7fdf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js @@ -0,0 +1,4 @@ +assert.equal(1 .toString(), '1'); +assert.equal(1.1.toString(), '1.1'); +assert.equal(1e1.toString(), '10'); +assert.equal(1E1.toString(), '10'); diff --git a/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js b/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js new file mode 100644 index 0000000000..e3f5b85e08 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js @@ -0,0 +1,15 @@ +function f(a, b, {c = function(a) {}}) { + +} + +var f2 = (a, b, {c = function(a) {}}) => { + +}; + +function g(d, e, [f = function(d) {}]) { + +} + +var g2 = (d, e, [f = function(d) {}]) => { + +}; diff --git a/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js b/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js new file mode 100644 index 0000000000..ac6df64fcf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js @@ -0,0 +1,18 @@ +function f(x, y = function(x) {}) { + 'use strict'; +} + +var f2 = (x, y = function(x) {}) => { + 'use strict'; +}; + +function g() { + 'use strict'; + function h(x, y = function(x) {}) { + + } + + var h2 = (x, y = function(x) {}) => { + + }; +} diff --git a/packages/babel/test/fixtures/traceur/Syntax/RegularExpression.js b/packages/babel/test/fixtures/traceur/Syntax/RegularExpression.js new file mode 100644 index 0000000000..cc313822a2 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/RegularExpression.js @@ -0,0 +1,10 @@ +var re1 = /a*b/; +var re2 = /=a+/; +var re3 = /\//; +var re4 = /=/; +var re5 = /=*/; +var re6 = /a*b/g; +var re7 = /=a+/g; +var re8 = /\//g; +var re9 = /=/g; +var re10 = /=*/g; diff --git a/packages/babel/test/fixtures/traceur/Syntax/StrictKeywords.js b/packages/babel/test/fixtures/traceur/Syntax/StrictKeywords.js new file mode 100644 index 0000000000..47fdad0db4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/StrictKeywords.js @@ -0,0 +1,47 @@ +function testImplementsVar() { + var implements = 1; + return implements; +} +assert.equal(testImplementsVar(), 1); + +function testInterfaceVar() { + var interface = 1; + return interface; +} +assert.equal(testInterfaceVar(), 1); + +function testPackageVar() { + var package = 1; + return package; +} +assert.equal(testPackageVar(), 1); + +function testPrivateVar() { + var private = 1; + return private; +} +assert.equal(testPrivateVar(), 1); + +function testProtectedVar() { + var protected = 1; + return protected; +} +assert.equal(testProtectedVar(), 1); + +function testPublicVar() { + var public = 1; + return public; +} +assert.equal(testPublicVar(), 1); + +function testStaticVar() { + var static = 1; + return static; +} +assert.equal(testStaticVar(), 1); + +function testYieldVar() { + var yield = 1; + return yield; +} +assert.equal(testYieldVar(), 1); diff --git a/packages/babel/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js b/packages/babel/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js new file mode 100644 index 0000000000..16d407c7f6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js @@ -0,0 +1,39 @@ +function testImplementsInPattern({implements}) { + return implements; +} +assert.equal(testImplementsInPattern({implements: 1}), 1); + +function testInterfaceInPattern({interface}) { + return interface; +} +assert.equal(testInterfaceInPattern({interface: 1}), 1); + +function testPackageInPattern({package}) { + return package; +} +assert.equal(testPackageInPattern({package: 1}), 1); + +function testPrivateInPattern({private}) { + return private; +} +assert.equal(testPrivateInPattern({private: 1}), 1); + +function testProtectedInPattern({protected}) { + return protected; +} +assert.equal(testProtectedInPattern({protected: 1}), 1); + +function testPublicInPattern({public}) { + return public; +} +assert.equal(testPublicInPattern({public: 1}), 1); + +function testStaticInPattern({static}) { + return static; +} +assert.equal(testStaticInPattern({static: 1}), 1); + +function testYieldInPattern({yield}) { + return yield; +} +assert.equal(testYieldInPattern({yield: 1}), 1); diff --git a/packages/babel/test/fixtures/traceur/Syntax/StringEscapes.js b/packages/babel/test/fixtures/traceur/Syntax/StringEscapes.js new file mode 100644 index 0000000000..335c142dbe --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/StringEscapes.js @@ -0,0 +1,13 @@ +var o1 = { + '\\\'': 42, + '\0\b\f\n\r\t\v\x42\u1234': 1234 +}; +var o2 = { + '\\\'\ +': 42, + '\0\b\f\n\r\t\v\x42\u1234': 1234 +}; + +assertArrayEquals(Object.keys(o1), Object.keys(o2)); +assert.equal(42, o1['\\\'']); +assert.equal(42, o2['\\\'']); diff --git a/packages/babel/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js b/packages/babel/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js new file mode 100644 index 0000000000..9f2dd2d23a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js @@ -0,0 +1,5 @@ +var a\u0062c = 1; +assert.equal(1, abc); + +var λ = 2; +assert.equal(2, \u03bb); diff --git a/packages/babel/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js b/packages/babel/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js new file mode 100644 index 0000000000..9ad36444d4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js @@ -0,0 +1,7 @@ +function testUseStrictEscapeSequence() { + 'use str\x69ct'; + return this; +} + +assert.notEqual(testUseStrictEscapeSequence(), undefined); + diff --git a/packages/babel/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js b/packages/babel/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js new file mode 100644 index 0000000000..c312bca40a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js @@ -0,0 +1,7 @@ +function testUseStrictLineContinuation() { + 'use \ +strict'; + return this; +} + +assert.notEqual(testUseStrictLineContinuation(), undefined); diff --git a/packages/babel/test/fixtures/traceur/Syntax/null.js b/packages/babel/test/fixtures/traceur/Syntax/null.js new file mode 100644 index 0000000000..ec747fa47d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Syntax/null.js @@ -0,0 +1 @@ +null \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/CallExpression.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/CallExpression.js new file mode 100644 index 0000000000..69ab401dba --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/CallExpression.js @@ -0,0 +1,18 @@ +// Options: --block-binding + +{ + let i = 0, called = 0; + function f() { + called++; + return function() { + return ++i; + }; + } + + assert.equal(1, f() `whatevs`); + assert.equal(1, called); + assert.equal(2, f `abc` `def`); + assert.equal(2, called); + assert.equal(3, f `ghi` ()); + assert.equal(3, called); +} diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/CommaExpression.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/CommaExpression.js new file mode 100644 index 0000000000..c6749db6db --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/CommaExpression.js @@ -0,0 +1,10 @@ +assert.equal('24', `${ 1, 2 }${ 3, 4 }`); +assert.equal('6', `${ 5, 6 }`); + +function templateLiteralCommaTest(callsite, x, y) { + assert.equal(2, x); + assert.equal(4, y); + return x + y; +} + +assert.equal(6, templateLiteralCommaTest`${ 1, 2 }${ 3, 4 }`); diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Default.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Default.js new file mode 100644 index 0000000000..7b9326f29e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Default.js @@ -0,0 +1,95 @@ +// Options: --block-binding + +assert.equal('', ``); +assert.equal('a', `a`); +assert.equal('"', `"`); +assert.equal("'", `'`); +assert.equal("`", `\``); +assert.equal('"', `\"`); + +assert.equal('\\"', `\\"`); +assert.equal('"\\', `"\\`); + +assert.equal('\n', `\n`); +assert.equal('\r', `\r`); +assert.equal('\r\n', `\r\n`); +assert.equal('\t', `\t`); +assert.equal('\u2028', `\u2028`); +assert.equal('\u2029', `\u2029`); + +assert.equal('$', `$`); +assert.equal('$ a', `$ a`); +assert.equal('$ {a}', `$ {a}`); + +assert.equal('undefined', `${ undefined }`); +assert.equal('null', `${ null }`); + +{ + let $ = 'DOLLAR'; + let $$ = 'DD' + assert.equal('$$', `$$`); + assert.equal('DOLLAR', `${$}`); + assert.equal('$$$', `$$$`); + assert.equal('DOLLARDOLLAR', `${$}${$}`); + assert.equal('DOLLAR$$', `${$}$$`); + assert.equal('$$DOLLAR', `$$${$}`); + assert.equal('$$$', `\$$$`); + + let a = 'A'; + let b = 'B'; + assert.equal('aAbB', `a${a}b${b}`); + assert.equal('aAb$b', `a${a}b$b`); + assert.equal('$a.$b', `$a.$b`); + + let x = 3; + let y = 5; + + assert.equal('3 + 5 = 8', `${x} + ${y} = ${ x + y}`); + + // nested + assert.equal('3 + 5 = 8', `${x} + ${ `${y} = ${ `${x + y}` }` }`); + + assert.equal('3', `${x}`); + assert.equal(' 3', ` ${x}`); + assert.equal('3 ', `${x} `); + assert.equal('35', `${x}${y}`); + assert.equal(' 35', ` ${x}${y}`); + assert.equal('3 5', `${x} ${y}`); + assert.equal('35 ', `${x}${y} `); + assert.equal(' 3 5 ', ` ${x} ${y} `); + + // def s(x): + // return ' ' if x else '' + // for i in range(16): + // v = (s(i&8), s(i&4), s(i&2), s(i&1)) + // print "assert.equal('%s3%s5%s8%s', `%s${x}%s${y}%s${x+y}%s`);" % (v+v) + assert.equal('358', `${x}${y}${x+y}`); + assert.equal('358 ', `${x}${y}${x+y} `); + assert.equal('35 8', `${x}${y} ${x+y}`); + assert.equal('35 8 ', `${x}${y} ${x+y} `); + assert.equal('3 58', `${x} ${y}${x+y}`); + assert.equal('3 58 ', `${x} ${y}${x+y} `); + assert.equal('3 5 8', `${x} ${y} ${x+y}`); + assert.equal('3 5 8 ', `${x} ${y} ${x+y} `); + assert.equal(' 358', ` ${x}${y}${x+y}`); + assert.equal(' 358 ', ` ${x}${y}${x+y} `); + assert.equal(' 35 8', ` ${x}${y} ${x+y}`); + assert.equal(' 35 8 ', ` ${x}${y} ${x+y} `); + assert.equal(' 3 58', ` ${x} ${y}${x+y}`); + assert.equal(' 3 58 ', ` ${x} ${y}${x+y} `); + assert.equal(' 3 5 8', ` ${x} ${y} ${x+y}`); + assert.equal(' 3 5 8 ', ` ${x} ${y} ${x+y} `); +} + +// Line continuations +assert.equal('ab', `a\ +b`); +assert.equal('ab', `a\ +\ +b`); + +assert.equal('\n', ` +`); +assert.equal('\n\n', ` + +`); diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js new file mode 100644 index 0000000000..8d857e11fe --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js @@ -0,0 +1,9 @@ +// Options: --template-literals=false +// Error: :5:1: Unexpected token ` +// Error: :9:5: Unexpected token ` + +`abc`; + +function tag() {} + +tag `def`; diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js new file mode 100644 index 0000000000..781d8d0298 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js @@ -0,0 +1,5 @@ +// Error: :6:1: Unterminated template literal + +function f() {} + +f`a${ ` diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js new file mode 100644 index 0000000000..89df2eb6d3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js @@ -0,0 +1,5 @@ +// Error: :5:7: Unexpected token } + +function f() {} + +f`a${ }` diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js new file mode 100644 index 0000000000..00acb1154a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js @@ -0,0 +1,5 @@ +// Error: :6:1: Unterminated template literal + +function f() {} + +f`not closed \` diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/InBlock.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/InBlock.js new file mode 100644 index 0000000000..61e8073ac3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/InBlock.js @@ -0,0 +1,9 @@ +// This just tests that we do not get any compile errors. + +{ + `abc` +} + +(function() { + `def` +}); \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/InModule.module.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/InModule.module.js new file mode 100644 index 0000000000..73f9339215 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/InModule.module.js @@ -0,0 +1,2 @@ +import * as m from './resources/m.js'; +import * as n from './resources/n.js'; diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/MemberExpression.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/MemberExpression.js new file mode 100644 index 0000000000..dfa14f4661 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/MemberExpression.js @@ -0,0 +1,25 @@ +// Options: --block-binding + +{ + let a = [function() { + return 1; + }]; + + assert.equal(1, a[0] `whatevs`); + + function f() { + return [function() { + return 2; + }]; + } + + assert.equal(2, f `abc` [0] `def`); + + let o = { + g: function() { + return 3; + } + }; + + assert.equal(3, o.g `ghi`); +} diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/NewExpression.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/NewExpression.js new file mode 100644 index 0000000000..0f863428fa --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/NewExpression.js @@ -0,0 +1,44 @@ +// Options: --block-binding + +{ + let i = 0, log = []; + this.logger = function(...e) { + log.push(e.join(' ')); + } + + // https://crbug.com/450942 + assert.equal(typeof new Function`logger('a')`, 'object'); + assert.deepEqual(log, ['a']); + + log.length = 0; + function tag(...e) { + var text = e[0] && String.raw(...e); + if (this instanceof tag) { + log.push('new;' + text); + } else { + log.push('tag;' + text); + return tag; + } + } + + assert.equal(typeof new tag`a``b``c`, 'object'); + assert.deepEqual(log, [ + 'tag;a', + 'tag;b', + 'tag;c', + 'new;undefined' + ]); + + log.length = 0; + function C(cs) { + log.push(cs[0]); + if (this instanceof C) { + this.name = cs; + } else { + return C; + } + } + + assert.deepEqual(new C`a``b``c`('test'), { name: 'test' }); + assert.deepEqual(log, ['a', 'b', 'c', 't']); +} diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Strict.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Strict.js new file mode 100644 index 0000000000..6efd163ea7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Strict.js @@ -0,0 +1,7 @@ +'use strict'; + +function f(...args) { + return this; +} + +assert.equal(undefined, f `a`); diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/StringRaw.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/StringRaw.js new file mode 100644 index 0000000000..29a55675df --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/StringRaw.js @@ -0,0 +1,10 @@ +assert.equal('', String.raw ``); +assert.equal('\n', String.raw ` +`); +assert.equal('\\n', String.raw `\n`); +assert.equal('\\n42\\t', String.raw `\n${ 40 + 2 }\t`); +assert.equal('\n42\t', String.raw ` +${42} `); +assert.equal('\\\n42\\\n', String.raw `\ +${42}\ +`); diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Tag.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/Tag.js new file mode 100644 index 0000000000..727b8a8977 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/Tag.js @@ -0,0 +1,87 @@ +// Options: --block-binding + +{ + function expose(callSite, var_args) { + assert.isTrue(Array.isArray(callSite)); + assert.isTrue(Object.isFrozen(callSite)); + var rawDescr = Object.getOwnPropertyDescriptor(callSite, 'raw'); + assert.isTrue(rawDescr !== undefined); + assert.isTrue('value' in rawDescr); + assert.isFalse(rawDescr.enumerable); + assert.isFalse(rawDescr.writable); + assert.isFalse(rawDescr.configurable); + assert.isTrue(Object.isFrozen(callSite.raw)); + assert.isTrue(Array.isArray(callSite.raw)); + assert.isTrue(Object.isFrozen(callSite.raw)); + assert.equal(callSite.raw.length, callSite.length); + + // The number of the literal portions is always same or one greater than the + // number of substitutions + var literalPortionCount = callSite.raw.length; + var substitutionCount = arguments.length - 1; + assert.isTrue(literalPortionCount == substitutionCount || + literalPortionCount == substitutionCount + 1); + + return arguments; + } + + let x = 3; + let y = 5; + + assert.equal(1, expose``.length); + assert.equal(1, expose`a`.length); + assert.equal(2, expose`a${x}`.length); + assert.equal(2, expose`a${x} b`.length); + assert.equal(3, expose`a${x} ${y}`.length); + assert.equal(3, expose`${x}${y}`.length); + assert.equal(2, expose`${x}a`.length); + + assert.equal(1, expose``[0].length); + assert.equal(1, expose``[0].raw.length); + + assertArrayEquals(['a'], expose`a`[0].raw); + assertArrayEquals(['a'], expose`a`[0]); + + assertArrayEquals(['\\n'], expose`\n`[0].raw); + assertArrayEquals(['\n'], expose`\n`[0]); + + assertArrayEquals(['\\r'], expose`\r`[0].raw); + assertArrayEquals(['\r'], expose`\r`[0]); + + assertArrayEquals(['\\f'], expose`\f`[0].raw); + assertArrayEquals(['\f'], expose`\f`[0]); + + assertArrayEquals(['\\b'], expose`\b`[0].raw); + assertArrayEquals(['\b'], expose`\b`[0]); + + assertArrayEquals(['\\u2028'], expose`\u2028`[0].raw); + assertArrayEquals(['\u2028'], expose`\u2028`[0]); + + assertArrayEquals(['\\u2029'], expose`\u2029`[0].raw); + assertArrayEquals(['\u2029'], expose`\u2029`[0]); + + assertArrayEquals(['a', 'b'], expose`a${x}b`[0].raw); + assertArrayEquals(['a', 'b'], expose`a${x}b`[0]); + + // These have tab characters in them. + assertArrayEquals(['\t', '\\t'], expose` ${x}\t`[0].raw); + assertArrayEquals(['\t', '\t'], expose` ${x}\t`[0]); + + assertArrayEquals(['\n', '\\n'], expose` +${x}\n`[0].raw); + assertArrayEquals(['\n', '\n'], expose` +${x}\n`[0]); + + // These contains the ES new line chars \u2028 and \u2029 + assertArrayEquals(['\u2028', '\\u2028'], expose`
${x}\u2028`[0].raw); + assertArrayEquals(['\u2028', '\u2028'], expose`
${x}\u2028`[0]); + + assertArrayEquals(['\u2029', '\\u2029'], expose`
${x}\u2029`[0].raw); + assertArrayEquals(['\u2029', '\u2029'], expose`
${x}\u2029`[0]); + + assertArrayEquals(['a/*b*/c'], expose`a/*b*/c`[0].raw); + assertArrayEquals(['a/*b*/c'], expose`a/*b*/c`[0]); + + assertArrayEquals(['a'], expose/* comment */`a`[0].raw); + assertArrayEquals(['a'], expose/* comment */`a`[0]); +} diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js new file mode 100644 index 0000000000..e0d3b27225 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js @@ -0,0 +1,17 @@ +import {cooked, raw} from './resources/template-objects.js'; + +function assertCooked(obj) { + assert.equal(obj, cooked); + assert.notEqual(obj, raw); +} + +function assertRaw(obj) { + assert.equal(obj, raw); + assert.notEqual(obj, cooked); +} + +assertCooked `a${1}b`; +assertCooked `a${2}b`; + +assertRaw `c${3}d\n`; +assertRaw `c${4}d\n`; diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/f.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/f.js new file mode 100644 index 0000000000..f78d33206e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/f.js @@ -0,0 +1,3 @@ +export function f(...args) { + return args; +} diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/m.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/m.js new file mode 100644 index 0000000000..364751373a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/m.js @@ -0,0 +1,3 @@ +import {f} from './f.js'; + +assert.equal('a', (f `a`)[0][0]); diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/n.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/n.js new file mode 100644 index 0000000000..108fed14bf --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/n.js @@ -0,0 +1,3 @@ +import {f} from './f.js'; + +assert.equal('b', (f `b`)[0][0]); diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js new file mode 100644 index 0000000000..f7caefa37c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js @@ -0,0 +1,13 @@ +export let cooked; +export let raw; + +function setCooked(obj) { + cooked = obj; +} + +function setRaw(obj) { + raw = obj; +} + +setCooked `a${1}b`; +setRaw `c${3}d\n`; diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js new file mode 100644 index 0000000000..cd46882d85 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js @@ -0,0 +1,4 @@ +// Options: --unicode-escape-sequences +// Error: :4:5: The code point in a Unicode escape sequence cannot exceed 10FFFF + +"\u{1000000}"; diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js new file mode 100644 index 0000000000..1a36396b2a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js @@ -0,0 +1,4 @@ +// Options: --unicode-escape-sequences=false +// Error: :4:4: Hex digit expected + +"\u{0}"; diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js new file mode 100644 index 0000000000..ccffc71d37 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js @@ -0,0 +1,4 @@ +// Options: --unicode-escape-sequences +// Error: :4:5: Hex digit expected + +"\u{"; diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js new file mode 100644 index 0000000000..9ebfa1245c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js @@ -0,0 +1,4 @@ +// Options: --unicode-escape-sequences +// Error: :4:5: Hex digit expected + +"\u{1"; diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js new file mode 100644 index 0000000000..29efadfc29 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js @@ -0,0 +1,4 @@ +// Options: --unicode-escape-sequences +// Error: :4:5: Hex digit expected + +"\u{ diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js new file mode 100644 index 0000000000..1ac1390cf4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js @@ -0,0 +1,4 @@ +// Options: --unicode-escape-sequences +// Error: :4:5: Hex digit expected + +"\u{}"; diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js new file mode 100644 index 0000000000..fbc1c788a7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js @@ -0,0 +1,15 @@ +// Options: --unicode-escape-sequences + +(function() { + assert.equal("\u{0}", "\u0000"); + assert.equal("\u{000000001}", "\u0001"); + assert.equal("\u{FFFF}", "\uFFFF"); + + assert.equal("\u{10000}", "\uD800\uDC00"); + assert.equal("\u{10FFFF}", "\uDBFF\uDFFF"); + + assert.equal("\\u{1}", "\\u{1}"); + assert.equal("\\\u{1}", "\\\u0001"); + + assert.equal("\U{1}", "\U{1}"); +})(); diff --git a/packages/babel/test/fixtures/traceur/Yield/Arguments.js b/packages/babel/test/fixtures/traceur/Yield/Arguments.js new file mode 100644 index 0000000000..6e02361a44 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Arguments.js @@ -0,0 +1,8 @@ +function* f() { + yield [arguments[0], arguments[1]]; +} + +for (var arr of f(1, 2)) { + assert.equal(1, arr[0]); + assert.equal(2, arr[1]); +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Yield/BadIterable.js b/packages/babel/test/fixtures/traceur/Yield/BadIterable.js new file mode 100644 index 0000000000..625aaf9b4a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/BadIterable.js @@ -0,0 +1,44 @@ +function* wrap(generator) { + return yield *generator; +} + +class BadIterable { + constructor() { + this.closed = false; + } + + [Symbol.iterator]() { + return { + iterable: this, + next(v) { + return {value: 42, done: false}; + }, + // throw method missing + return(v) { + this.iterable.closed = true; + return {value: undefined, done: true}; + } + }; + } +} + +var i1 = new BadIterable(); +var g1 = wrap(i1); +assert.deepEqual(g1.next(), {value: 42, done: false}); +assert.throws(() => g1.throw('ex1'), TypeError); +assert.isTrue(i1.closed); + +function* f2() { + try { + yield 1; + } finally { + f2.closed = true; + } +} +f2.closed = false; + +var g2 = wrap(f2()); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.throws(() => g2.throw('ex2'), 'ex2'); +assert.isTrue(f2.closed); + diff --git a/packages/babel/test/fixtures/traceur/Yield/BinaryOperator.js b/packages/babel/test/fixtures/traceur/Yield/BinaryOperator.js new file mode 100644 index 0000000000..49a63ff271 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/BinaryOperator.js @@ -0,0 +1,9 @@ +function* f(x) { + var a = (yield x) + (yield x + 1); + return a; +} + +var g = f(1); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(1), {value: 2, done: false}); +assert.deepEqual(g.next(2), {value: 3, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/Break.js b/packages/babel/test/fixtures/traceur/Yield/Break.js new file mode 100644 index 0000000000..1fd1b2c46d --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Break.js @@ -0,0 +1,48 @@ +var x = ':'; + +function* f() { + label1: { + x += 'a'; + yield 1; + x += 'b' + while (true && true) { + break label1; + } + x += 'c'; + } + x += 'd' +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assert.equal(x, ':abd'); + + +x = ':'; + +function* f2() { + label1: { + x += 'a'; + while(true) { + x += 'b'; + label2: { + x += 'c'; + yield 3; + x += 'd'; + while (true) { + break label1; + } + x += 'e'; + } + x += 'f'; + } + x += 'g'; + } + x += 'h'; +} + +g = f2(); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assert.equal(x, ':abcdh'); diff --git a/packages/babel/test/fixtures/traceur/Yield/BreakForOf.js b/packages/babel/test/fixtures/traceur/Yield/BreakForOf.js new file mode 100644 index 0000000000..98ecf6c99e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/BreakForOf.js @@ -0,0 +1,54 @@ +var g, x; + +function* f() { + try { + yield 1; + yield 2; + } finally { + x = 42; + } +} + +g = f(); +x = 0; + +for (let i of g) { + break; +} + +assert.equal(x, 42); + +g = f(); +x = 10; + +(function () { + for (let i of g) { + return; + } +}()); + +assert.equal(x, 42); + +g = f(); +x = 20; + +label1: +for (let i of g) { + if (i == 1) { + continue label1; + } + assert.equal(x, 20); +} + +g = f(); +x = 30; + +label2: +label3: +for (let i of g) { + if (i == 1) { + continue label2; + } + assert.equal(x, 30); +} + diff --git a/packages/babel/test/fixtures/traceur/Yield/CommaOperator.js b/packages/babel/test/fixtures/traceur/Yield/CommaOperator.js new file mode 100644 index 0000000000..1747a62dff --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/CommaOperator.js @@ -0,0 +1,9 @@ +function* f(x, y) { + yield x, yield y; + return x + y; +} + +var g = f(1, 2); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(1), {value: 2, done: false}); +assert.deepEqual(g.next(2), {value: 3, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/Continue.js b/packages/babel/test/fixtures/traceur/Yield/Continue.js new file mode 100644 index 0000000000..61d392e093 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Continue.js @@ -0,0 +1,18 @@ +var x = ':'; + +function* f() { + yield 1; + var j = 0; + label1: for (var i = 0; i < 3; i++) { + x += 'i:' + i; + x += 'j:' + j; + if (j++ > 4) return; + continue label1; + x += 'x'; + } +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assert.equal(x, ':i:0j:0i:1j:1i:2j:2'); diff --git a/packages/babel/test/fixtures/traceur/Yield/DefaultArguments.js b/packages/babel/test/fixtures/traceur/Yield/DefaultArguments.js new file mode 100644 index 0000000000..9a009aa806 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/DefaultArguments.js @@ -0,0 +1,7 @@ +function* f(x = 1) { + yield x; +} + +for (var x of f(42)) { + assert.equal(42, x); +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Yield/DoGenerator.js b/packages/babel/test/fixtures/traceur/Yield/DoGenerator.js new file mode 100644 index 0000000000..42f901fc00 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/DoGenerator.js @@ -0,0 +1,19 @@ +function* doGenerator() { + var i = 0; + do { + if (++i % 2 == 0) continue; + yield i; + } while (i < 6); +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('135', accumulate(doGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js b/packages/babel/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js new file mode 100644 index 0000000000..967aba4264 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js @@ -0,0 +1,33 @@ +function* f() { + var x = 0; + do { + yield x++; + } while (yield 'test'); +} + +var g = f(); +assert.deepEqual(g.next(), {value: 0, done: false}); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(true), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(true), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(false), {value: undefined, done: true}); + +function* f2() { + var x = 0; + do { + yield x++; + } while ((yield 'a') || (yield 'b')); +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 0, done: false}); +assert.deepEqual(g2.next(), {value: 'a', done: false}); +assert.deepEqual(g2.next(true), {value: 1, done: false}); +assert.deepEqual(g2.next(), {value: 'a', done: false}); +assert.deepEqual(g2.next(false), {value: 'b', done: false}); +assert.deepEqual(g2.next(true), {value: 2, done: false}); +assert.deepEqual(g2.next(false), {value: 'a', done: false}); +assert.deepEqual(g2.next(false), {value: 'b', done: false}); +assert.deepEqual(g2.next(), {value: undefined, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/EmptyGenerator.js b/packages/babel/test/fixtures/traceur/Yield/EmptyGenerator.js new file mode 100644 index 0000000000..0fd11a4e7a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/EmptyGenerator.js @@ -0,0 +1,5 @@ +function* f() { +} + +var g = f(); +assert.deepEqual(g.next(), {done: true, value: undefined}); diff --git a/packages/babel/test/fixtures/traceur/Yield/Error_Disabled.js b/packages/babel/test/fixtures/traceur/Yield/Error_Disabled.js new file mode 100644 index 0000000000..6add24ed19 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Error_Disabled.js @@ -0,0 +1,8 @@ +// Options: --generators=false +// Error: :4:9: Unexpected token * + +function* range(start, end) { + for (var i = start; i < end; i++) { + yield i; + } +} diff --git a/packages/babel/test/fixtures/traceur/Yield/Error_Disabled2.js b/packages/babel/test/fixtures/traceur/Yield/Error_Disabled2.js new file mode 100644 index 0000000000..303c0eb057 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Error_Disabled2.js @@ -0,0 +1,7 @@ +// Options: --forOf=false +// Error: :5:12: Unexpected token of + +var s = []; +for (var i of yieldFor()) { + s.push(i); +} diff --git a/packages/babel/test/fixtures/traceur/Yield/Error_MissingStar.js b/packages/babel/test/fixtures/traceur/Yield/Error_MissingStar.js new file mode 100644 index 0000000000..4023645a9e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Error_MissingStar.js @@ -0,0 +1,5 @@ +// Error: :4:9: Semi-colon expected + +function simpleGenerator() { + yield 1; +} diff --git a/packages/babel/test/fixtures/traceur/Yield/Finally.js b/packages/babel/test/fixtures/traceur/Yield/Finally.js new file mode 100644 index 0000000000..e4519b74f4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Finally.js @@ -0,0 +1,22 @@ +var finallyVisited = false; + +function* test() { + try { + yield 42; + } finally { + finallyVisited = true; + } +} + +var it = test(); +assert.deepEqual({value: 42, done: false}, it.next()); +assert.isFalse(finallyVisited); + +assert.deepEqual({value: undefined, done: true}, it.next()); +assert.isTrue(finallyVisited); + +finallyVisited = false; +for (var i of test()) { + assert.equal(42, i); +} +assert.isTrue(finallyVisited); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForEmptyGenerator.js b/packages/babel/test/fixtures/traceur/Yield/ForEmptyGenerator.js new file mode 100644 index 0000000000..760f40ad6a --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForEmptyGenerator.js @@ -0,0 +1,15 @@ +function* forEmptyGenerator() { + yield* []; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('', accumulate(forEmptyGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForGenerator.js b/packages/babel/test/fixtures/traceur/Yield/ForGenerator.js new file mode 100644 index 0000000000..526e9e5e06 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForGenerator.js @@ -0,0 +1,25 @@ +function* forGenerator() { + var a = 1, b = 1; + for (var i = 0; i < 4; i++) { + // TODO(jmesserly): this was changed until we get destructing + //[a, b] = [b, a + b]; + var t0 = b; + var t1 = a + b; + a = t0; + b = t1; + + yield a; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('1235', accumulate(forGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForInGenerator.js b/packages/babel/test/fixtures/traceur/Yield/ForInGenerator.js new file mode 100644 index 0000000000..09b6a0f9c7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForInGenerator.js @@ -0,0 +1,27 @@ +function* forInGenerator() { + var object = { + a: 0, + b: 1, + c: 2 + }; + for (var key in object) { + if (key == 'a') { + delete object.b; + object.d = 3; + } + yield key; + yield object[key]; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('a0c2',accumulate(forInGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForInGenerator2.js b/packages/babel/test/fixtures/traceur/Yield/ForInGenerator2.js new file mode 100644 index 0000000000..47c3f9bcfd --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForInGenerator2.js @@ -0,0 +1,28 @@ +function* forInGenerator2() { + var object = { + a: 0, + b: 1, + c: 2 + }; + var key; + for (key in object) { + if (key == 'a') { + delete object.b; + object.d = 3; + } + yield key; + yield object[key]; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('a0c2',accumulate(forInGenerator2())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForInGenerator3.js b/packages/babel/test/fixtures/traceur/Yield/ForInGenerator3.js new file mode 100644 index 0000000000..093158bc11 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForInGenerator3.js @@ -0,0 +1,27 @@ +function* forInGenerator3() { + var object = { + a: 0, + b: { + c: 1, + }, + d: 2 + }; + for (var key in object) { + yield key; + for (var key2 in object[key]) { + yield key2; + } + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('abcd',accumulate(forInGenerator3())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js b/packages/babel/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js new file mode 100644 index 0000000000..ec389c977c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js @@ -0,0 +1,15 @@ +function* forLexicallyNestedGenerator() { + yield* (function*() { yield [1,2,3]; yield* [4,5,6]; })(); +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('1,2,3456', accumulate(forLexicallyNestedGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForMissingParts.js b/packages/babel/test/fixtures/traceur/Yield/ForMissingParts.js new file mode 100644 index 0000000000..6ea2941738 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForMissingParts.js @@ -0,0 +1,95 @@ +function* f0() { + var x = 0; + for (;;) { + yield x++; + } +} + +function* f1() { + var x = 0; + for (; ; 1) { + yield x++; + } +} + +function* f2() { + var x = 0; + for (; 1; ) { + yield x++; + } +} + +function* f3() { + var x = 0; + for (; 1; 1) { + yield x++; + } +} + +function* f4() { + var x = 0; + for (1; ; ) { + yield x++; + } +} + +function* f5() { + var x = 0; + for (1; ; 1) { + yield x++; + } +} + +function* f6() { + var x = 0; + for (1; 1; ) { + yield x++; + } +} + +function* f7() { + var x = 0; + for (1; 1; 1) { + yield x++; + } +} + +var g0 = f0(); +assert.deepEqual(g0.next(), {value: 0, done: false}); +assert.deepEqual(g0.next(), {value: 1, done: false}); +assert.deepEqual(g0.next(), {value: 2, done: false}); + +var g1 = f1(); +assert.deepEqual(g1.next(), {value: 0, done: false}); +assert.deepEqual(g1.next(), {value: 1, done: false}); +assert.deepEqual(g1.next(), {value: 2, done: false}); + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 0, done: false}); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.next(), {value: 2, done: false}); + +var g3 = f3(); +assert.deepEqual(g3.next(), {value: 0, done: false}); +assert.deepEqual(g3.next(), {value: 1, done: false}); +assert.deepEqual(g3.next(), {value: 2, done: false}); + +var g4 = f4(); +assert.deepEqual(g4.next(), {value: 0, done: false}); +assert.deepEqual(g4.next(), {value: 1, done: false}); +assert.deepEqual(g4.next(), {value: 2, done: false}); + +var g5 = f5(); +assert.deepEqual(g5.next(), {value: 0, done: false}); +assert.deepEqual(g5.next(), {value: 1, done: false}); +assert.deepEqual(g5.next(), {value: 2, done: false}); + +var g6 = f6(); +assert.deepEqual(g6.next(), {value: 0, done: false}); +assert.deepEqual(g6.next(), {value: 1, done: false}); +assert.deepEqual(g6.next(), {value: 2, done: false}); + +var g7 = f7(); +assert.deepEqual(g7.next(), {value: 0, done: false}); +assert.deepEqual(g7.next(), {value: 1, done: false}); +assert.deepEqual(g7.next(), {value: 2, done: false}); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForOfGenerator.js b/packages/babel/test/fixtures/traceur/Yield/ForOfGenerator.js new file mode 100644 index 0000000000..94def9e357 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForOfGenerator.js @@ -0,0 +1,49 @@ +function* forEachGenerator() { + yield* forInGenerator3(); + yield* forInGenerator2(); +} + +function* forInGenerator3() { + var object = { + a: 0, + b: { + c: 1, + }, + d: 2 + }; + for (var key in object) { + yield key; + for (var key2 in object[key]) { + yield key2; + } + } +} + +function* forInGenerator2() { + var object = { + a: 0, + b: 1, + c: 2 + }; + var key; + for (key in object) { + if (key == 'a') { + delete object.b; + object.d = 3; + } + yield key; + yield object[key]; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('abcda0c2', accumulate(forEachGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForOfIteratorException.js b/packages/babel/test/fixtures/traceur/Yield/ForOfIteratorException.js new file mode 100644 index 0000000000..9d6c815e8f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForOfIteratorException.js @@ -0,0 +1,27 @@ +class Iterable { + constructor() { + this.returnCalled = false; + } + [Symbol.iterator]() { + return { + iterable: this, + next(v) { + throw "ex"; + }, + throw(e) { + throw e; + }, + return(v) { + this.iterable.returnCalled = true; + } + } + } +} + +var iterable = new Iterable(); +var i; +assert.throws(() => { + for (i of iterable) { + } +}, "ex"); +assert.isFalse(iterable.returnCalled); diff --git a/packages/babel/test/fixtures/traceur/Yield/ForStatement.js b/packages/babel/test/fixtures/traceur/Yield/ForStatement.js new file mode 100644 index 0000000000..08e2b1dbf5 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ForStatement.js @@ -0,0 +1,46 @@ +function* f() { + var x = 0; + for (yield 'init'; x < 3; x++) { + yield x; + } +} + +var g = f(); +assert.deepEqual(g.next(), {value: 'init', done: false}); +assert.deepEqual(g.next(), {value: 0, done: false}); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); + +function* f2() { + for (var x = 0; yield 'test'; x++) { + yield x; + } +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 'test', done: false}); +assert.deepEqual(g2.next(true), {value: 0, done: false}); +assert.deepEqual(g2.next(), {value: 'test', done: false}); +assert.deepEqual(g2.next(true), {value: 1, done: false}); +assert.deepEqual(g2.next(), {value: 'test', done: false}); +assert.deepEqual(g2.next(true), {value: 2, done: false}); +assert.deepEqual(g2.next(), {value: 'test', done: false}); +assert.deepEqual(g2.next(false), {value: undefined, done: true}); + +function* f3() { + for (var x = 0; x < 5; x = yield 'inc') { + yield x; + } +} + +var g3 = f3(); +assert.deepEqual(g3.next(), {value: 0, done: false}); +assert.deepEqual(g3.next(), {value: 'inc', done: false}); +assert.deepEqual(g3.next(2), {value: 2, done: false}); +assert.deepEqual(g3.next(), {value: 'inc', done: false}); +assert.deepEqual(g3.next(4), {value: 4, done: false}); +assert.deepEqual(g3.next(), {value: 'inc', done: false}); +assert.deepEqual(g3.next(1), {value: 1, done: false}); +assert.deepEqual(g3.next(), {value: 'inc', done: false}); +assert.deepEqual(g3.next(5), {value: undefined, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/FunctionDeclaration.js b/packages/babel/test/fixtures/traceur/Yield/FunctionDeclaration.js new file mode 100644 index 0000000000..2d0893d277 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/FunctionDeclaration.js @@ -0,0 +1,12 @@ +(function() { + + function* f() { + function g() { + return 42; + } + yield g; + } + + assert.equal(42, f().next().value()); + +})(); diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorReturn.js b/packages/babel/test/fixtures/traceur/Yield/GeneratorReturn.js new file mode 100644 index 0000000000..b26d35f08e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/GeneratorReturn.js @@ -0,0 +1,86 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +//----------------------------------------------------------------------------- + +var g; + +function* G1() { + return 42; +} + +function* G2() { + return; +} + +function* G3() { + return undefined; +} + +function* G4() { + return 42; + yield 1000; +} + +function* G5() { + yield 1000; + return 42; +} + +function* G6() { + try { + yield 1000; + return 42; + yield 2000; + } catch(e) { + return 43; + } finally { + // TODO: Is 'return' allowed inside 'finally'? + // return 44; + } +} + +//---- + +function id(G) { + return G; +} + +function wrap(G) { + return function*() { + var r = yield* G(); + return r; + }; +} + +//---- + +var tests = [ + [G1, [], 42], + [G2, [], undefined], + [G3, [], undefined], + [G4, [], 42], + [G5, [1000], 42], + [G6, [1000], 42] +]; + +//----------------------------------------------------------------------------- + +[id, wrap].forEach((W) => { + + tests.forEach(([G, y, r]) => { + var g = W(G)(); + y.forEach((x) => assert.deepEqual({value: x, done: false}, g.next())); + + assert.deepEqual({value: r, done: true}, g.next()); + assertClosed(g); + }); + + //---- + + g = W(G6)(); + assert.deepEqual({value: 1000, done: false}, g.next()); + assert.deepEqual({value: 43, done: true}, g.throw()); + +}); diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorSend.js b/packages/babel/test/fixtures/traceur/Yield/GeneratorSend.js new file mode 100644 index 0000000000..0c1dc743d7 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/GeneratorSend.js @@ -0,0 +1,232 @@ +function assertThrownEquals(x, func) { + var actualError; + try { + func(); + } catch (err) { + actualError = err; + } + assert.equal(x, actualError); +} + +//----------------------------------------------------------------------------- + +function id(G) { + return G; +} + +function wrap(G) { + return function* () { + yield* G(); + }; +} + +[id, wrap].forEach((W) => { // wrap_forEach + +//----------------------------------------------------------------------------- +// +// http://wiki.ecmascript.org/doku.php?id=harmony:generators +// +// G.[[Send]] +// +//     Let State = G.[[State]] +//     If State = “executing” Throw Error +//     If State = “closed” Throw Error +//     Let X be the first argument +//     If State = “newborn” +//         If X != undefined Throw TypeError +//         Let K = a new execution context as for a function call +//         K.currentGenerator := G +//         K.scopeChain := G.[[Scope]] +//         Push K onto the stack +//         Return Execute(G.[[Code]]) +//     G.[[State]] := “executing” +//     Let Result = Resume(G.[[ExecutionContext]], normal, X) +//     Return Result + +var g; + +//----------------------------------------------------------------------------- +// +//     If State = “executing” Throw Error + +function* G1() { + yield g.next(); +} + +g = W(G1)(); +// To be nitpicky, ionmonkey throws TypeError, and not Error. I'm not checking +// things quite that closely at this point in time. +assert.throw(() => g.next(), '"next" on executing generator'); + +//----------------------------------------------------------------------------- +// +//     If State = “closed” Throw Error + +// Note: ionmonkey continues to throw StopIteration for every 'next' on a +// closed generator, while harmony:generators seems to favor throwing it once +// only, at the point of generator exit, and throwing Error for all the +// following 'next' calls. + +function* G2() { + yield 1; +} + +var closeMethods = [ + (g) => assertThrownEquals(42, () => g.throw(42)), + (g) => { + assert.deepEqual({value: 1, done: false}, g.next()); + assert.deepEqual({value: undefined, done: true}, g.next()); + } +]; + +closeMethods.forEach((closeMethod) => { + g = W(G2)(); + closeMethod(g); + for (var i = 0; i < 8; i++) { + assert.deepEqual({value: undefined, done: true}, g.next()); + } +}); + +//----------------------------------------------------------------------------- +// +//     If State = “newborn” +//         If X != undefined Throw TypeError + +g = W(G2)(); +for (var i = 0; i < 8; i++) { + assert.throw(() => g.next(42), 'Sent value to newborn generator'); +} + +assert.deepEqual({value: 1, done: false}, g.next(undefined)); + + +//----------------------------------------------------------------------------- +// +//         Let K = a new execution context as for a function call +//         K.currentGenerator := G +//         K.scopeChain := G.[[Scope]] +//         Push K onto the stack +//         Return Execute(G.[[Code]]) + +// (see below) + +//----------------------------------------------------------------------------- +// +//     G.[[State]] := “executing” +//     Let Result = Resume(G.[[ExecutionContext]], normal, X) +//     Return Result + +// (see below) + +//----------------------------------------------------------------------------- + +// Example adapted from: +// https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Iterators_and_Generators +function* fib() { + var fn1 = 1; + var fn2 = 1; + var reset; + while (1) { + var current = fn2; + fn2 = fn1; + fn1 = fn1 + current; + reset = yield current; + if (reset) { + fn1 = 1; + fn2 = 1; + } + } +} + +// var +function* fibVar() { + var fn1 = 1; + var fn2 = 1; + while (1) { + var current = fn2; + fn2 = fn1; + fn1 = fn1 + current; + var reset = yield current; + if (reset) { + fn1 = 1; + fn2 = 1; + } + } +} + +// destructuring +function* fibD() { + var fn1 = 1; + var fn2 = 1; + var reset; + var tmp; + while (1) { + var current = fn2; + fn2 = fn1; + fn1 = fn1 + current; + [reset, tmp] = yield current; + assert.equal(reset, tmp); + if (reset) { + fn1 = 1; + fn2 = 1; + } + } +} + +// destructuring with var +function* fibVarD() { + var fn1 = 1; + var fn2 = 1; + var tmp; + while (1) { + var current = fn2; + fn2 = fn1; + fn1 = fn1 + current; + var [reset, tmp] = yield current; + assert.equal(reset, tmp); + if (reset) { + fn1 = 1; + fn2 = 1; + } + } +} + +function next(g) { + return g.next(); +} + +function send(g, v) { + return g.next(v); +} + +function nextD(g) { + return g.next([]); +} + +function sendD(g, v) { + return g.next([v, v]); +} + +function testfib(fibonacci, next, send) { + var sequence = fibonacci(); + assert.deepEqual({value: 1, done: false}, sequence.next()); + assert.deepEqual({value: 1, done: false}, next(sequence)); + assert.deepEqual({value: 2, done: false}, next(sequence)); + assert.deepEqual({value: 3, done: false}, next(sequence)); + assert.deepEqual({value: 5, done: false}, next(sequence)); + assert.deepEqual({value: 8, done: false}, next(sequence)); + assert.deepEqual({value: 13, done: false}, next(sequence)); + assert.deepEqual({value: 1, done: false}, send(sequence, true)); + assert.deepEqual({value: 1, done: false}, next(sequence)); + assert.deepEqual({value: 2, done: false}, next(sequence)); + assert.deepEqual({value: 3, done: false}, next(sequence)); +} + +//---- + +testfib(W(fib), next, send); +testfib(W(fibVar), next, send); +testfib(W(fibD), nextD, sendD); +testfib(W(fibVarD), nextD, sendD); + +}); // end wrap_forEach diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorThrow.js b/packages/babel/test/fixtures/traceur/Yield/GeneratorThrow.js new file mode 100644 index 0000000000..e84edf95cc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/GeneratorThrow.js @@ -0,0 +1,153 @@ +function assertThrownEquals(x, func) { + var actualError; + try { + func(); + } catch (err) { + actualError = err; + } + assert.equal(x, actualError); +} + +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +//----------------------------------------------------------------------------- + +function id(G) { + return G; +} + +function wrap(G) { + return function* () { + yield* G(); + }; +} + +[id, wrap].forEach((W) => { // wrap_forEach + +//----------------------------------------------------------------------------- +// +// http://wiki.ecmascript.org/doku.php?id=harmony:generators +// +// G.[[Throw]] +// +//     Let State = G.[[State]] +//     If State = “executing” Throw Error +//     If State = “closed” Throw Error +//     Let X be the first argument +//     If State = “newborn” +//         G.[[State]] := “closed” +//         G.[[Code]] := null +//         Return (throw, X, null) +//     G.[[State]] := “executing” +//     Let Result = Resume(G.[[ExecutionContext]], throw, X) +//     Return Result + +var g; + +//----------------------------------------------------------------------------- +// +//     If State = “executing” Throw Error + +function* G1() { + yield g.throw(); +} +g = W(G1)(); +assert.throw(() => g.next(), '"throw" on executing generator'); + +//----------------------------------------------------------------------------- +// +//     If State = “closed” Throw Error + +function* G2() { + try { + yield 1; + yield 2; + } catch(e) { + yield '(' + e + ')'; + } + yield 3; +} + +// - calling throw() on a closed generator should throw an Error. +// - calling throw() on an ended generator should throw an Error. +// (this is the same as closed, really) + +var closeMethods = [ + (g) => { + assert.deepEqual({value: 1, done: false}, g.next()); + assert.deepEqual({value: '(22)', done: false}, g.throw(22)); + assert.deepEqual({value: 3, done: false}, g.next()); + assertThrownEquals(42, () => g.throw(42)); + }, + (g) => { + assert.deepEqual({value: 1, done: false}, g.next()); + assert.deepEqual({value: 2, done: false}, g.next()); + assert.deepEqual({value: 3, done: false}, g.next()); + assert.deepEqual({value: undefined, done: true}, g.next()); + } +]; + +closeMethods.forEach((closeMethod) => { + g = W(G2)(); + closeMethod(g); + for (var i = 0; i < 8; i++) { + assertThrownEquals(44, () => g.throw(44)); + } +}); + +//----------------------------------------------------------------------------- +// +//     Let X be the first argument +//     If State = “newborn” +//         G.[[State]] := “closed” +//         G.[[Code]] := null +//         Return (throw, X, null) + +g = W(G2)(); + +// calling throw(x) on a newborn generator should close the generator, and +// throw x back to the caller. +assertThrownEquals(44, () => g.throw(44)); +assertClosed(g); + +//----------------------------------------------------------------------------- +// +//     G.[[State]] := “executing” +//     Let Result = Resume(G.[[ExecutionContext]], throw, X) +//     Return Result + +g = W(G2)(); + +// calling throw(x) on a started generator should be the same as hot-replacing +// the last 'yield' with a 'throw x' and calling next() on that generator. So +// it could either throw an exception, or return a value, depending on the +// flow of control. +assert.deepEqual({value: 1, done: false}, g.next()); +assert.deepEqual({value: '(22)', done: false}, g.throw(22)); +assert.deepEqual({value: 3, done: false}, g.next()); + +assertThrownEquals(44, () => g.throw(44)); +assertClosed(g); + +//---- + +function* G3() { + try{ + yield 1; + yield 2; + yield 3; + } catch(e) {} +} + +g = W(G3)(); + +// Note: this behavior differs from ionmonkey, which throws 'undefined', and +// not StopIteration, but the StopIteration behavior better matches what I'd +// expect, given the description from the previous test. +assert.deepEqual({value: 1, done: false}, g.next()); +assert.deepEqual({value: undefined, done: true}, g.throw(44)); +assertClosed(g); + +}); // end wrap_forEach diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js b/packages/babel/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js new file mode 100644 index 0000000000..ebfaf68da9 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js @@ -0,0 +1,10 @@ +var x = 0; + +function* f() { + x++; +} + +var g = f(); +assert.equal(x, 0); +assert.deepEqual(g.next(), {done: true, value: undefined}); +assert.equal(x, 1); diff --git a/packages/babel/test/fixtures/traceur/Yield/Hoisting.js b/packages/babel/test/fixtures/traceur/Yield/Hoisting.js new file mode 100644 index 0000000000..5ccad05058 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Hoisting.js @@ -0,0 +1,13 @@ +// f is declared at the end to test hoisting. + +var g = f(); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); + +function* f() { + yield 1; +} + +function* f() { + yield 2; +} \ No newline at end of file diff --git a/packages/babel/test/fixtures/traceur/Yield/HoistingBlockbinding.js b/packages/babel/test/fixtures/traceur/Yield/HoistingBlockbinding.js new file mode 100644 index 0000000000..ffe0ac320c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/HoistingBlockbinding.js @@ -0,0 +1,21 @@ +// Options: --block-binding + +{ + function* f() { + yield 1; + } + + let g = f(); + assert.deepEqual(g.next(), {value: 1, done: false}); + assert.deepEqual(g.next(), {value: undefined, done: true}); +} + +{ + function* f() { + yield 1; + } + + let g = f(); + assert.deepEqual(g.next(), {value: 1, done: false}); + assert.deepEqual(g.next(), {value: undefined, done: true}); +} diff --git a/packages/babel/test/fixtures/traceur/Yield/IfGenerator.js b/packages/babel/test/fixtures/traceur/Yield/IfGenerator.js new file mode 100644 index 0000000000..43758965b3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/IfGenerator.js @@ -0,0 +1,26 @@ +function* ifGenerator(condition) { + if (condition) { + yield 1; + } + if (!condition) { + yield 2; + } + if (condition) { + yield 3; + } else { + yield 4; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('13', accumulate(ifGenerator(true))); +assert.equal('24', accumulate(ifGenerator(false))); diff --git a/packages/babel/test/fixtures/traceur/Yield/IfStatementWithYield.js b/packages/babel/test/fixtures/traceur/Yield/IfStatementWithYield.js new file mode 100644 index 0000000000..f5b5a8a192 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/IfStatementWithYield.js @@ -0,0 +1,14 @@ +function* f(x) { + if (yield x) { + return 2; + } + return 3; +} + +var g = f(1); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(true), {value: 2, done: true}); + +g = f(4); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(false), {value: 3, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/LabelledBlockGenerator.js b/packages/babel/test/fixtures/traceur/Yield/LabelledBlockGenerator.js new file mode 100644 index 0000000000..c79897f816 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/LabelledBlockGenerator.js @@ -0,0 +1,20 @@ +var i = 0; +var s = ''; + +function* f() { + s += 'a'; + while(i++ < 3) { + s += 'b'; + label1: { + s += 'c'; + break label1; + s += 'd'; + } + s += 'e'; + } + s += 'f'; +} + +var g = f(); +g.next(); +assert.equal(s, 'abcebcebcef'); diff --git a/packages/babel/test/fixtures/traceur/Yield/LabelledBreakGenerator.js b/packages/babel/test/fixtures/traceur/Yield/LabelledBreakGenerator.js new file mode 100644 index 0000000000..c656461fb4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/LabelledBreakGenerator.js @@ -0,0 +1,34 @@ +function* labelledBreakGenerator() { + var x = 1; + var y = 2; +label: + while (true) { + x++; + while (true) { + yield x * y; + y++; + if (y == 3) { + continue label; + } + yield x * y * 5; + if (y == 4) { + break label; + } + yield x * y * 13; + } + yield x * y * 11; + } + yield x * y * 7; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result += String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('496084', accumulate(labelledBreakGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/MapFilterGenerator.js b/packages/babel/test/fixtures/traceur/Yield/MapFilterGenerator.js new file mode 100644 index 0000000000..5ae3d9bb52 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/MapFilterGenerator.js @@ -0,0 +1,31 @@ +function mapFilterGenerator() { + function* map(list, fun) { + for (var item of list) { + yield fun(item); + } + } + function* filter(list, fun) { + for (var item of list) { + if (fun(item)) { + yield item; + } + } + } + // squares even numbers. no intermediate array is created. + var numbers = [1,2,3,4,5,6,7,8,9,10]; + return map( + filter(numbers, function(x) { return x % 2 == 0; }), + function(x) { return (x * x) + ','; }); +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('4,16,36,64,100,', accumulate(mapFilterGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/ObjectModel.js b/packages/babel/test/fixtures/traceur/Yield/ObjectModel.js new file mode 100644 index 0000000000..60638f6bf4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ObjectModel.js @@ -0,0 +1,41 @@ +// f is declared at the end to test hoisting. + +var GeneratorFunctionPrototype = f.__proto__; +var GeneratorFunction = GeneratorFunctionPrototype.constructor; + +assert.equal(GeneratorFunction.name, 'GeneratorFunction'); +assert.equal(GeneratorFunction.prototype, GeneratorFunctionPrototype); +assert.equal(GeneratorFunctionPrototype.prototype.constructor, + GeneratorFunctionPrototype); +assert.equal(GeneratorFunctionPrototype.prototype, f.prototype.__proto__); +assert.equal(GeneratorFunctionPrototype.__proto__, Function.prototype); + +var g = f(); +assert.instanceOf(g, f); + +assert.equal(g.__proto__, f.prototype); + +assert.deepEqual([], Object.getOwnPropertyNames(f.prototype)); +assert.deepEqual([], Object.getOwnPropertyNames(g)); + +f.prototype.x = 42; + +var g2 = f(); +assert.equal(g2.x, 42); + +var g3 = new f(); +assert.equal(g3.x, 42); + +function* f2() { + yield 1; +} + +assert.equal(f.__proto__, f2.__proto__); + +assert.isFalse(f.hasOwnProperty('constructor')); +assert.equal(f.__proto__.constructor.name, 'GeneratorFunction'); + +// Intentionally at the end to test hoisting. +function* f() { + yield this; +} diff --git a/packages/babel/test/fixtures/traceur/Yield/OverrideGenerator.js b/packages/babel/test/fixtures/traceur/Yield/OverrideGenerator.js new file mode 100644 index 0000000000..a897f02322 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/OverrideGenerator.js @@ -0,0 +1,14 @@ +function* f() { + yield 1; +} + +var f2 = f; + +f = 42; + +var g = f2(); + +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); + +assert.instanceOf(g, f2); diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnCatch.js b/packages/babel/test/fixtures/traceur/Yield/ReturnCatch.js new file mode 100644 index 0000000000..163fa4c2cc --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ReturnCatch.js @@ -0,0 +1,16 @@ +function* f () { + try { + yield 1; + } catch (e) { + f.x = 2; + } finally { + f.y = 3; + } +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.return(3), {value: 3, done: true}); +assert.equal(f.x, undefined); +assert.equal(f.y, 3); + diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnGenerator.js b/packages/babel/test/fixtures/traceur/Yield/ReturnGenerator.js new file mode 100644 index 0000000000..7c7d676868 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ReturnGenerator.js @@ -0,0 +1,227 @@ +function* f1() { + yield 1; + yield 2; +} + +var g1 = f1(); +assert.deepEqual(g1.next(), {value: 1, done: false}); +assert.deepEqual(g1.return(42), {value: 42, done: true}); +assert.deepEqual(g1.next(), {value: undefined, done: true}); + +function* f2() { + yield 1; + try { + yield 2; + } catch (e) { + return 3; + } +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.return(42), {value: 42, done: true}); +assert.deepEqual(g2.next(), {value: undefined, done: true}); + +function* f3() { + try { + yield 1; + } finally { + yield 2; + } +} + +var g3 = f3(); +assert.deepEqual(g3.next(), {value: 1, done: false}); +assert.deepEqual(g3.return(42), {value: 2, done: false}); +assert.deepEqual(g3.next(), {value: 42, done: true}); +assert.deepEqual(g3.next(), {value: undefined, done: true}); + +function* f4() { + var x = 9; + function *g() { + try { + yield 1; + yield 2; + } finally { + x = 10; + } + } + try { + yield* g(); + } finally { + yield x; + } +} + +var g4 = f4(); +assert.deepEqual(g4.next(), {value: 1, done: false}); +assert.deepEqual(g4.return(42), {value: 10, done: false}); +assert.deepEqual(g4.next(), {value: 42, done: true}); +assert.deepEqual(g4.next(), {value: undefined, done: true}); + +function* f5() { + try { + yield 1; + } finally { + return 2; + } +} + +var g5 = f5(); +assert.deepEqual(g5.next(), {value: 1, done: false}); +assert.deepEqual(g5.return(42), {value: 2, done: true}); +assert.deepEqual(g5.next(), {value: undefined, done: true}); + +function* f6() { + yield 1; +} + +var g6 = f6(); +assert.deepEqual(g6.return(42), {value: 42, done: true}); +assert.deepEqual(g6.next(), {value: undefined, done: true}); + +function* f7() { + return 1; +} + +var g7 = f7(); +assert.deepEqual(g7.next(), {value: 1, done: true}); +assert.deepEqual(g7.next(), {value: undefined, done: true}); +assert.deepEqual(g7.return(42), {value: 42, done: true}); +assert.deepEqual(g7.next(), {value: undefined, done: true}); + +function* f8() { + function* g() { + try { + yield 1; + yield 2; + } finally { + return 10; + } + } + yield* g(); +} + +var g8 = f8(); +assert.deepEqual(g8.next(), {value: 1, done: false}); +assert.deepEqual(g8.return(42), {value: 10, done: true}); +assert.deepEqual(g8.next(), {value: undefined, done: true}); + +function* f9() { + function* g() { + try { + yield 1; + yield 2; + } finally { + yield 3; + } + } + yield* g(); +} + +var g9 = f9(); +assert.deepEqual(g9.next(), {value: 1, done: false}); +assert.deepEqual(g9.return(142), {value: 3, done: false}); +assert.deepEqual(g9.next(), {value: undefined, done: true}); + +function* f10() { + try { + try { + yield 1; + } + finally { + try { + throw 2; + } catch (e) { + } + } + return 3; + } finally { + return 4; + } +} + +var g10 = f10(); +assert.deepEqual(g10.next(), {value: 1, done: false}); +assert.deepEqual(g10.return(42), {value: 4, done: true}); +assert.deepEqual(g10.next(), {value: undefined, done: true}); + +function* f11() { + function* g() { + try { + yield 1; + yield 2; + } finally { + yield 3333; + f11.x = 10; + yield 4; + } + } + yield* g(); + yield 5; +} + +var g11 = f11(); +assert.deepEqual(g11.next(), {value: 1, done: false}); +assert.deepEqual(g11.return(42), {value: 3333, done: false}); +assert.deepEqual(g11.next(), {value: 4, done: false}); +assert.deepEqual(g11.next(), {value: 5, done: false}); +assert.deepEqual(g11.next(), {value: undefined, done: true}); +assert.equal(f11.x, 10); + + +function* f12() { + try { + return 'apple'; + } finally { + yield 'orange'; + } +} +var g12 = f12(); +assert.deepEqual(g12.next(), {value: 'orange', done: false}); +assert.deepEqual(g12.next(), {value: 'apple', done: true}); + +function* f13() { + function* f() { + try { + yield 'pear'; + } finally { + yield 'strawberry'; + } + } + try { + return 'cherry'; + } finally { + f13.x = yield* f(); + yield 'banana'; + } +} +var g13 = f13(); +assert.deepEqual(g13.next(), {value: 'pear', done: false}); +assert.deepEqual(g13.return('peach'), {value: 'strawberry', done: false}); +assert.deepEqual(g13.next(), {value: 'banana', done: false}); +assert.deepEqual(g13.next(), {value: 'cherry', done: true}); +assert.equal(f13.x, 'peach'); + +function* f14() { + function* g() { + try { + yield 11; + yield 22; + } finally { + yield 33; + f14.x = 44; + yield 55; + } + } + return yield* g(); +} + +var g14 = f14(); +assert.deepEqual(g14.next(), {value: 11, done: false}); +assert.deepEqual(g14.return(43), {value: 33, done: false}); +assert.deepEqual(g14.next(), {value: 55, done: false}); +assert.equal(f14.x, 44); +assert.deepEqual(g14.next(), {value: 43, done: true}); +assert.deepEqual(g14.next(), {value: undefined, done: true}); + diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnInFinally.js b/packages/babel/test/fixtures/traceur/Yield/ReturnInFinally.js new file mode 100644 index 0000000000..fac9cb49db --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ReturnInFinally.js @@ -0,0 +1,33 @@ +function* f() { + try { + yield 1; + } finally { + return 2; + } + yield 3; + return 4; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: true}); + +function* f2() { + try { + yield 1 + } catch (ex) { + yield ex; + } finally { + return 2; + } + yield 3; +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.next(), {value: 2, done: true}); + +g2 = f2(); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.throw(42), {value: 42, done: false}); +assert.deepEqual(g2.next(), {value: 2, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnYield.js b/packages/babel/test/fixtures/traceur/Yield/ReturnYield.js new file mode 100644 index 0000000000..a349833743 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ReturnYield.js @@ -0,0 +1,55 @@ +function* f() { + return yield 1; +} + +var g = f(); + +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(2), {value: 2, done: true}); +function* f2() { + return (yield 3) + (yield 4); +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 3, done: false}); +assert.deepEqual(g2.next(5), {value: 4, done: false}); +assert.deepEqual(g2.next(6), {value: 11, done: true}); + + +function* f3() { + return (yield 7) || (yield 8); +} + +var g3 = f3(); +assert.deepEqual(g3.next(), {value: 7, done: false}); +assert.deepEqual(g3.next(9), {value: 9, done: true}); + +g3 = f3(); +assert.deepEqual(g3.next(), {value: 7, done: false}); +assert.deepEqual(g3.next(0), {value: 8, done: false}); +assert.deepEqual(g3.next(10), {value: 10, done: true}); + +function* f4() { + return (yield 11) && (yield 12); +} + +var g4 = f4(); +assert.deepEqual(g4.next(), {value: 11, done: false}); +assert.deepEqual(g4.next(0), {value: 0, done: true}); +g4 = f4(); +assert.deepEqual(g4.next(), {value: 11, done: false}); +assert.deepEqual(g4.next(13), {value: 12, done: false}); +assert.deepEqual(g4.next(14), {value: 14, done: true}); + +function* f5() { + return (yield 15) ? (yield 16) : (yield 17); +} + +var g5 = f5(); +assert.deepEqual(g5.next(), {value: 15, done: false}); +assert.deepEqual(g5.next(true), {value: 16, done: false}); +assert.deepEqual(g5.next(18), {value: 18, done: true}); +g5 = f5(); +assert.deepEqual(g5.next(), {value: 15, done: false}); +assert.deepEqual(g5.next(false), {value: 17, done: false}); +assert.deepEqual(g5.next(19), {value: 19, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnYieldFor.js b/packages/babel/test/fixtures/traceur/Yield/ReturnYieldFor.js new file mode 100644 index 0000000000..1448be3e23 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ReturnYieldFor.js @@ -0,0 +1,15 @@ +function* f() { + return yield* h(); +} + +function* h() { + yield 111; + yield 222; + return 333; +} + +var g = f(); + +assert.deepEqual({value: 111, done: false}, g.next()); +assert.deepEqual({value: 222, done: false}, g.next()); +assert.deepEqual({value: 333, done: true}, g.next()); diff --git a/packages/babel/test/fixtures/traceur/Yield/SequenceGenerator.js b/packages/babel/test/fixtures/traceur/Yield/SequenceGenerator.js new file mode 100644 index 0000000000..d895985767 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/SequenceGenerator.js @@ -0,0 +1,23 @@ +function* sequenceGenerator() { + var i = 1; + yield i; + i = 3; + yield i + 1; + { + var x = 3; + yield i + x; + yield x; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('1463', accumulate(sequenceGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/SimpleGenerator.js b/packages/babel/test/fixtures/traceur/Yield/SimpleGenerator.js new file mode 100644 index 0000000000..b865e12f0c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/SimpleGenerator.js @@ -0,0 +1,15 @@ +function* simpleGenerator() { + yield 1; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('1', accumulate(simpleGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/StatementTestGenerator.js b/packages/babel/test/fixtures/traceur/Yield/StatementTestGenerator.js new file mode 100644 index 0000000000..74105b412c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/StatementTestGenerator.js @@ -0,0 +1,37 @@ +// Options: --block-binding + +function* statementTestGenerator() { + // all of these statement constructs should be allowed + // provided that they contain no yield statements + switch (1) { + case 2: break; + default: break; + } + try { + } catch (e) {} + try { + } finally {} + do {} while (false); + for (;false;) {} + + //TODO(jmesserly): this had to be changed to "var" until we get BlockBindingTransformer + //for (let x in {}) {} + //for (let x of simpleGenerator()) {} + for (var x in {}) {} + for (var x of simpleGenerator()) {} + + if (false) {} else {} + //TODO(jmesserly): this had to be changed to "var" until we get BlockBindingTransformer + //{ let x = 1; } + { var x = 1; } + { const y = 2; } + + yield 1; +} + + +function* simpleGenerator() { + yield 1; +} + +// ---------------------------------------------------------------------------- diff --git a/packages/babel/test/fixtures/traceur/Yield/SwitchGenerator.js b/packages/babel/test/fixtures/traceur/Yield/SwitchGenerator.js new file mode 100644 index 0000000000..c516ec0131 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/SwitchGenerator.js @@ -0,0 +1,37 @@ +function* switchGenerator(val) { + switch (val) { + case 1: + yield val; + case 2: + yield val * 2; + break; + case 3: + break; + default: + yield val * 10; + } + + // switch without a default + switch (val) { + case 1000: + yield val; + break; + } + yield val * 5; +} + + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('125', accumulate(switchGenerator(1))); +assert.equal('410', accumulate(switchGenerator(2))); +assert.equal('15', accumulate(switchGenerator(3))); +assert.equal('4020', accumulate(switchGenerator(4))); diff --git a/packages/babel/test/fixtures/traceur/Yield/SwitchStatementWithYield.js b/packages/babel/test/fixtures/traceur/Yield/SwitchStatementWithYield.js new file mode 100644 index 0000000000..12affe930e --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/SwitchStatementWithYield.js @@ -0,0 +1,23 @@ +function* f(x) { + switch (yield x) { + case 1: + return 1; + case 2: + return 2; + default: + return 3; + } + throw new Error('Unreachable'); +} + +var g = f(1); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(2), {value: 2, done: true}); + +g = f(3); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(1), {value: 1, done: true}); + +var g = f(4); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(55), {value: 3, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/This.js b/packages/babel/test/fixtures/traceur/Yield/This.js new file mode 100644 index 0000000000..b17bea2b69 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/This.js @@ -0,0 +1,8 @@ +function* f() { + yield this; +} + +var o = {}; +for (var x of f.call(o)) { + assert.equal(o, x); +} diff --git a/packages/babel/test/fixtures/traceur/Yield/ThrowInCatch.js b/packages/babel/test/fixtures/traceur/Yield/ThrowInCatch.js new file mode 100644 index 0000000000..db2b1773b1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ThrowInCatch.js @@ -0,0 +1,15 @@ +function* f() { + try { + yield 1; + throw 'caught'; + } catch (e) { + throw 'ex'; + } finally { + f.x = 2; + } +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.next(), 'ex'); +assert.equal(f.x, 2); diff --git a/packages/babel/test/fixtures/traceur/Yield/ThrowInIterator.js b/packages/babel/test/fixtures/traceur/Yield/ThrowInIterator.js new file mode 100644 index 0000000000..618fcebba4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/ThrowInIterator.js @@ -0,0 +1,34 @@ +function* f() { + yield 1; + yield 2; + yield 3; +} + +function* f1() { + try { + yield* [4, 5, 6]; + } catch (ex) { + if (ex instanceof TypeError) { + yield 10; + } + } +} + +var g1 = f1(); +assert.deepEqual(g1.next(), {value: 4, done: false}); +assert.deepEqual(g1.throw(42), {value: 10, done: false}); +assert.deepEqual(g1.next(), {value: undefined, done: true}); + +function* f2() { + try { + yield* f(); + } catch (ex) { + yield ex; + } +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.throw(42), {value: 42, done: false}); +assert.deepEqual(g2.next(), {value: undefined, done: true}); + diff --git a/packages/babel/test/fixtures/traceur/Yield/Tree.js b/packages/babel/test/fixtures/traceur/Yield/Tree.js new file mode 100644 index 0000000000..6866802364 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Tree.js @@ -0,0 +1,73 @@ +// A binary tree class. +class Tree { + constructor(label, left, right) { + this.label = label; + this.left = left; + this.right = right; + } + *[Symbol.iterator]() { + if (this.left) { + yield* this.left; + } + yield this.label; + if (this.right) { + yield* this.right; + } + } +} + +// Create a Tree from a list. +function tree(list) { + var n = list.length; + if (n == 0) { + return null; + } + var i = Math.floor(n / 2); + return new Tree(list[i], tree(list.slice(0, i)), tree(list.slice(i + 1))); +} + +// A recursive generator that generates Tree labels in in-order. +function* inorder1(t) { + if (t) { + for (var x of inorder1(t.left)) { + yield x; + } + yield t.label; + for (var x of inorder1(t.right)) { + yield x; + } + } +} + +// A non-recursive generator. +function* inorder2(node) { + var stack = []; + while (node) { + while (node.left) { + stack.push(node); + node = node.left; + } + yield node.label; + while (!node.right && stack.length) { + node = stack.pop(); + yield node.label; + } + node = node.right; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +var alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; +var root = tree(alphabet); +assert.equal(alphabet, accumulate(inorder1(root))); +assert.equal(alphabet, accumulate(inorder2(root))); +assert.equal(alphabet, accumulate(root)); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try.js b/packages/babel/test/fixtures/traceur/Yield/Try.js new file mode 100644 index 0000000000..bad1941f1f --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try.js @@ -0,0 +1,52 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +function* f() { + yield 1; + try { + yield 2; + yield 3; + } catch (ex) { + yield ex; + } + yield 4; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: 'ex', done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: 'ex', done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try10.js b/packages/babel/test/fixtures/traceur/Yield/Try10.js new file mode 100644 index 0000000000..d289a199d4 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try10.js @@ -0,0 +1,90 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x; + +function* f() { + x = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } catch (ex) { + yield 4 + ex; + } + yield 5; + } catch (ex) { + yield 6 + ex; + } finally { + x = 7 + } + yield x; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.throw('b'), {value: '6b', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 7); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try11.js b/packages/babel/test/fixtures/traceur/Yield/Try11.js new file mode 100644 index 0000000000..3b131f46b6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try11.js @@ -0,0 +1,106 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x, y; + +function* f() { + x = 0; + y = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } finally { + x = 4; + } + yield x; + } catch (ex) { + yield 5 + ex; + } finally { + y = 6 + } + yield y; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 6); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try12.js b/packages/babel/test/fixtures/traceur/Yield/Try12.js new file mode 100644 index 0000000000..edcb5e3506 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try12.js @@ -0,0 +1,111 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x, y; + +function* f() { + x = 0; + y = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } catch (ex) { + yield 4 + ex; + } finally { + x = 5; + } + yield x; + } catch (ex) { + yield 6 + ex; + } finally { + y = 7 + } + yield y; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.throw('b'), {value: '6b', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 7); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 7); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try2.js b/packages/babel/test/fixtures/traceur/Yield/Try2.js new file mode 100644 index 0000000000..f6ec973710 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try2.js @@ -0,0 +1,57 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x; + +function* f() { + x = 0; + yield 1; + try { + yield 2; + yield 3; + } finally { + x = 4; + } + yield x; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try3.js b/packages/babel/test/fixtures/traceur/Yield/Try3.js new file mode 100644 index 0000000000..ead1617dfd --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try3.js @@ -0,0 +1,56 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x; + +function* f() { + x = 0; + yield 1; + try { + yield 2; + yield 3; + } catch (ex) { + yield ex; + } finally { + x = 4; + } + yield x; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: 'ex', done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: 'ex', done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try4.js b/packages/babel/test/fixtures/traceur/Yield/Try4.js new file mode 100644 index 0000000000..72692a4f9c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try4.js @@ -0,0 +1,80 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +function* f() { + yield 1; + try { + yield 2; + try { + yield 3; + } catch (ex) { + yield 4 + ex; + } + yield 5; + } catch (ex) { + yield 6 + ex; + } + yield 7; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.throw('b'), {value: '6b', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try5.js b/packages/babel/test/fixtures/traceur/Yield/Try5.js new file mode 100644 index 0000000000..31ba02b0b8 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try5.js @@ -0,0 +1,95 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x; + +function* f() { + x = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } finally { + x = 4 + } + yield x; + } catch (ex) { + yield 5 + ex; + } + yield 6; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.throw('ex'), {value: '5ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 4); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try6.js b/packages/babel/test/fixtures/traceur/Yield/Try6.js new file mode 100644 index 0000000000..b5fa2e2b7c --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try6.js @@ -0,0 +1,74 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x; + +function* f() { + x = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } catch (ex) { + yield 4 + ex + } + yield 5; + } finally { + x = 6; + } + yield x; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 6); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try7.js b/packages/babel/test/fixtures/traceur/Yield/Try7.js new file mode 100644 index 0000000000..43bc6db414 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try7.js @@ -0,0 +1,78 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x, y; + +function* f() { + x = 0; + y = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } finally { + x = 4; + } + yield x; + } finally { + y = 5; + } + yield y; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assert.equal(x, 0); +assert.equal(y, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 4, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 4); +assert.equal(y, 5); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try8.js b/packages/babel/test/fixtures/traceur/Yield/Try8.js new file mode 100644 index 0000000000..19f9e621e3 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try8.js @@ -0,0 +1,83 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x, y; + +function* f() { + x = 0; + y = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } catch (ex) { + yield 4 + ex; + } finally { + x = 5; + } + yield x; + } finally { + y = 6; + } + yield y; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 6, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 6); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 5); +assert.equal(y, 6); diff --git a/packages/babel/test/fixtures/traceur/Yield/Try9.js b/packages/babel/test/fixtures/traceur/Yield/Try9.js new file mode 100644 index 0000000000..90677decc6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/Try9.js @@ -0,0 +1,90 @@ +function assertClosed(g) { + assert.deepEqual({value: undefined, done: true}, g.next()); +} + +var x; + +function* f() { + x = 0; + yield 1; + try { + yield 2; + try { + yield 3; + } catch (ex) { + yield 4 + ex; + } finally { + x = 5; + } + yield x; + } catch (ex) { + yield 6 + ex; + } + yield 7; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.throws(() => g.throw('ex')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.throws(() => g.throw('b')); +assertClosed(g); +assert.equal(x, 0); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.throw('ex'), {value: '4ex', done: false}); +assert.deepEqual(g.throw('b'), {value: '6b', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 5, done: false}); +assert.deepEqual(g.throw('ex'), {value: '6ex', done: false}); +assert.deepEqual(g.next(), {value: 7, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); +assertClosed(g); +assert.equal(x, 5); diff --git a/packages/babel/test/fixtures/traceur/Yield/TryCatchGenerator.js b/packages/babel/test/fixtures/traceur/Yield/TryCatchGenerator.js new file mode 100644 index 0000000000..2efd6c7076 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/TryCatchGenerator.js @@ -0,0 +1,153 @@ +function* tryCatchGenerator() { + var x; + try { + yield 1; + throw 2; + yield 3; + } catch (e) { + x = e; + } + yield x; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result += value; + } + return result; +} + +//----------------------------------------------------------------------------- + +function id(G) { + return G; +} + +function wrap(G) { + return function* () { + yield* G(); + }; +} + + +[id, wrap].forEach((W) => { // wrap_forEach + +// ---------------------------------------------------------------------------- + +assert.equal('12', accumulate(tryCatchGenerator())); + +// ---------------------------------------------------------------------------- + +function* throwGenerator() { + yield 1; + throw 2; + yield 3; +} + +function* throwFromCatchGenerator() { + try { + throw 1; + } catch(e) { + yield e; + throw 2; + yield 3; + } +} + +function* throwFromFinallyGenerator() { + try { + yield 1; + } finally { + throw 2; + } + yield 3; +} + +function accumulateCatch(iterator) { + var result = ''; + var i; + for (i = 0; i < 4; i++) { + try { + for (var value of iterator) { + result += value; + } + } catch(e) { + result += ' [' + e + ']'; + } + } + return result; +} + +function repeat(s, n) { + return Array(n + 1).join(s); +} + +// ---------------------------------------------------------------------------- + +assert.equal('1 [2]', accumulateCatch(W(throwGenerator)())); +assert.equal('1 [2]', accumulateCatch(W(throwFromCatchGenerator)())); +assert.equal('1 [2]', accumulateCatch(W(throwFromFinallyGenerator)())); + +// ---------------------------------------------------------------------------- + +// out-of-band info +var oob; + +function* throwOOBGen() { + try { + yield 1; + throw 2; + oob += 3; + } finally { + oob += 4; + } + oob += 5; + yield 6; +} + +function* throwOOB2xGen() { + try { + try { + yield 1; + throw 2; + oob += 3; + } finally { + oob += 4; + } + oob += 5; + yield 6; + } catch(e) { + yield 7 + '(' + e + ')'; + throw 8; + } finally { + oob += 9; + } +} + +function accumulateCatchOOB(iterator) { + var result = ''; + var i; + + for (i = 0; i < 4; i++) { + oob = ''; + try { + for (var value of iterator) { + result += value; + } + } catch(e) { + result += ' [' + e + ']'; + } finally { + result += ' <' + oob + '>'; + } + } + return result; +} + +// ---------------------------------------------------------------------------- + +var emptyResult = repeat(' <>', 3); +assert.equal('1 [2] <4>' + emptyResult, accumulateCatchOOB(W(throwOOBGen)())); +assert.equal('17(2) [8] <49>' + emptyResult, accumulateCatchOOB(W(throwOOB2xGen)())); + +}); // end wrap_forEach diff --git a/packages/babel/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js b/packages/babel/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js new file mode 100644 index 0000000000..ce631b33ca --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js @@ -0,0 +1,21 @@ +// yield form within a catch block +function* tryCatchYieldGenerator() { + var x = 3; + try { + throw 5; + } catch (e) { + yield e * x; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('15', accumulate(tryCatchYieldGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/TryFinallyGenerator.js b/packages/babel/test/fixtures/traceur/Yield/TryFinallyGenerator.js new file mode 100644 index 0000000000..b21b9bdacb --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/TryFinallyGenerator.js @@ -0,0 +1,39 @@ +function* tryFinallyGenerator() { + var x = 1; + var y; + + // finally inside a catch + try { + try { + yield x; + throw 7; + x = 2; + } finally { + x = 3; + } + } catch (e) { + y = e; + } + yield x * y; + + // finally with no enclosing try + try { + y = 11; + yield y; + } finally { + y = 3; + } + yield y; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('121113', accumulate(tryFinallyGenerator())); diff --git a/packages/babel/test/fixtures/traceur/Yield/WhileGenerator.js b/packages/babel/test/fixtures/traceur/Yield/WhileGenerator.js new file mode 100644 index 0000000000..c35e852381 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/WhileGenerator.js @@ -0,0 +1,25 @@ +function* whileGenerator(max, continueValue, breakValue) { + var i = 0; + while (i < max) { + i++; + if (i == continueValue) { + continue; + } + if (i == breakValue) { + break; + } + yield i; + } +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('13', accumulate(whileGenerator(10, 2, 4))); diff --git a/packages/babel/test/fixtures/traceur/Yield/WhileStatementWithYield.js b/packages/babel/test/fixtures/traceur/Yield/WhileStatementWithYield.js new file mode 100644 index 0000000000..a79c3127f0 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/WhileStatementWithYield.js @@ -0,0 +1,33 @@ +function* f() { + var x = 0; + while (yield 'test') { + yield x++; + } +} + +var g = f(); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(true), {value: 0, done: false}); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(true), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(true), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: 'test', done: false}); +assert.deepEqual(g.next(false), {value: undefined, done: true}); + +function* f2() { + var x = 0; + while ((yield 'a') || (yield 'b')) { + yield x++; + } +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 'a', done: false}); +assert.deepEqual(g2.next(true), {value: 0, done: false}); +assert.deepEqual(g2.next(), {value: 'a', done: false}); +assert.deepEqual(g2.next(false), {value: 'b', done: false}); +assert.deepEqual(g2.next(true), {value: 1, done: false}); +assert.deepEqual(g2.next(), {value: 'a', done: false}); +assert.deepEqual(g2.next(false), {value: 'b', done: false}); +assert.deepEqual(g2.next(false), {value: undefined, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldAssignThrow.js b/packages/babel/test/fixtures/traceur/Yield/YieldAssignThrow.js new file mode 100644 index 0000000000..c9247d7619 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/YieldAssignThrow.js @@ -0,0 +1,18 @@ +function* f() { + var x; + try { + x = yield 1; + } catch (ex) { + yield ex; + } + return 2; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: true}); + +g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.throw(3), {value: 3, done: false}); +assert.deepEqual(g.next(), {value: 2, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldIdentifier.js b/packages/babel/test/fixtures/traceur/Yield/YieldIdentifier.js new file mode 100644 index 0000000000..51143e7b71 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/YieldIdentifier.js @@ -0,0 +1,29 @@ +(function() { + + // ensure non strict mode. + function f() { return this; } + assert(f.call(undefined) !== undefined); + + var yield = 1; + assert.equal(yield, 1); + + function g(yield) { + return yield; + } + assert.equal(g(2), 2); + + var o = { + yield: yield + }; + assert.equal(o.yield, 1); + + var o2 = { + yield + }; + assert.equal(o.yield, 1); + + function h(yield) { + return yield * yield; + } + assert.equal(h(3), 9); +})(); diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldInFinally.js b/packages/babel/test/fixtures/traceur/Yield/YieldInFinally.js new file mode 100644 index 0000000000..772a1fc630 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/YieldInFinally.js @@ -0,0 +1,41 @@ +var x; + +function* f() { + x = 0; + try { + x++; + } finally { + yield x++; + } + yield x++; +} + +var g = f(); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(), {value: 2, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: true}); + +function* f2() { + try { + yield 1 + } catch (ex) { + yield ex; + } finally { + yield 2; + } + yield 3; +} + +var g2 = f2(); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.next(), {value: 2, done: false}); +assert.deepEqual(g2.next(), {value: 3, done: false}); +assert.deepEqual(g2.next(), {value: undefined, done: true}); + +g2 = f2(); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.throw(42), {value: 42, done: false}); +assert.deepEqual(g2.next(), {value: 2, done: false}); +assert.deepEqual(g2.next(), {value: 3, done: false}); +assert.deepEqual(g2.next(), {value: undefined, done: true}); + diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldNoExpression.js b/packages/babel/test/fixtures/traceur/Yield/YieldNoExpression.js new file mode 100644 index 0000000000..e5104b89c1 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/YieldNoExpression.js @@ -0,0 +1,19 @@ +function sum(x, y) { + return x + y; +} + +function* f() { + yield; + yield sum(yield, yield); + return yield; +} + +var g = f(42); + +assert.deepEqual(g.next(), {value: undefined, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: false}); +assert.deepEqual(g.next(3), {value: undefined, done: false}); +assert.deepEqual(g.next(39), {value: 42, done: false}); +assert.deepEqual(g.next(), {value: undefined, done: false}); +assert.deepEqual(g.next('abc'), {value: 'abc', done: true}); +assert.deepEqual(g.next(), {value: undefined, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js b/packages/babel/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js new file mode 100644 index 0000000000..ce398ce020 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js @@ -0,0 +1,24 @@ +function* yieldUndefinedGenerator1() { + yield 1; + yield; + yield 2; +} + +function* yieldUndefinedGenerator2() { + yield 1; + yield undefined; + yield 2; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('1undefined2', accumulate(yieldUndefinedGenerator1())); +assert.equal('1undefined2', accumulate(yieldUndefinedGenerator2())); diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldYield.js b/packages/babel/test/fixtures/traceur/Yield/YieldYield.js new file mode 100644 index 0000000000..1bddfe81a6 --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/YieldYield.js @@ -0,0 +1,19 @@ +function* f(x) { + yield (yield x); +} + +var g = f(1); +assert.deepEqual(g.next(), {value: 1, done: false}); +assert.deepEqual(g.next(2), {value: 2, done: false}); +assert.deepEqual(g.next(3), {value: undefined, done: true}); + +function* f2(x) { + yield* (yield x); +} + +g = f(1); +var g2 = f2(1); +assert.deepEqual(g2.next(), {value: 1, done: false}); +assert.deepEqual(g2.next(g), {value: 1, done: false}); +assert.deepEqual(g2.next(2), {value: 2, done: false}); +assert.deepEqual(g2.next(3), {value: undefined, done: true}); diff --git a/packages/babel/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js b/packages/babel/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js new file mode 100644 index 0000000000..d9dc2d096b --- /dev/null +++ b/packages/babel/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js @@ -0,0 +1,29 @@ +// finally inside a try finally +function* tryFinallyFinallyGenerator() { + var y; + + try { + y = 13; + try { + yield y; + } finally { + y = 17; + } + yield y; + } finally { + y = 23; + } + yield y; +} + +function accumulate(iterator) { + var result = ''; + for (var value of iterator) { + result = result + String(value); + } + return result; +} + +// ---------------------------------------------------------------------------- + +assert.equal('131723', accumulate(tryFinallyFinallyGenerator())); diff --git a/packages/babel/test/traceur.js b/packages/babel/test/traceur.js index 740629fb1b..5a517b9187 100644 --- a/packages/babel/test/traceur.js +++ b/packages/babel/test/traceur.js @@ -6,29 +6,11 @@ require("./_transformation-helper").run("traceur", { // weird environmental issue make these hard to test "Modules", - // not supported - "ProperTailCalls", - // uses the old async generator proposal "AsyncGenerators", - - // these are all internal traceur tests or non-standard features - "ObjectMixin", - "Annotations", - "TestRunner", - "Tools", - "TempVarTransformer", - "AtScript", - "FreeVariableChecker", - "TypeAssertions", - "MemberVariables", - "Types" ], ignoreTasks: [ - // non-standard - "ObjectMixin", - // Node 0.10 doesn't like these "Symbol/Object", "Symbol/ObjectModel", @@ -52,9 +34,6 @@ require("./_transformation-helper").run("traceur", { // this tests pollutes Object.prototype which messes things up "StringExtras/StartsWith", - // TODO - "Syntax/IsValidSimpleAssignmentTarget", - // babel has no way to check these :( TODO: add to caveats "TemplateLiterals/TemplateObjectCaching.module", @@ -68,7 +47,6 @@ require("./_transformation-helper").run("traceur", { // these are the responsibility of core-js "Spread/Type", - "Symbol/Inherited", "Spread/NoIterator", "Destructuring/Rest", "Destructuring/Empty", @@ -90,10 +68,8 @@ require("./_transformation-helper").run("traceur", { "ArrayComprehension/Simple", "GeneratorComprehension/Simple", - // yield has been added as a keyword in ES6 + // TODO "Syntax/StrictKeywordsInPattern", - "Yield/YieldIdentifier", - "Syntax/StrictKeywords" ] }, { optional: ["es6.spec.symbols", "es6.spec.templateLiterals"], diff --git a/scripts/bootstrap.js b/scripts/bootstrap.js index b90eff3339..92aee9806f 100755 --- a/scripts/bootstrap.js +++ b/scripts/bootstrap.js @@ -42,5 +42,4 @@ packages.forEach(function (root) { cd("../.."); }); -exec("git submodule update --init"); exec("make build"); diff --git a/vendor/.babelrc b/vendor/.babelrc deleted file mode 100644 index 3a8f8eb911..0000000000 --- a/vendor/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "breakConfig": true -} diff --git a/vendor/traceur b/vendor/traceur deleted file mode 160000 index 554afd9fab..0000000000 --- a/vendor/traceur +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 554afd9fab75a149a2234ff6732f130e232f2ba0 From a179f9a48b711bf1f3e63ac7e253fa253ca0e1ea Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 11 Aug 2015 16:58:20 +0100 Subject: [PATCH 008/174] fix various bugs surfaced by the esprima test suite, remove some incorrect tests --- packages/babylon/src/parser/expression.js | 29 +- packages/babylon/src/parser/index.js | 9 +- packages/babylon/src/parser/lval.js | 6 +- packages/babylon/src/parser/statement.js | 39 +-- packages/babylon/src/parser/util.js | 23 +- packages/babylon/src/plugins/flow.js | 2 +- packages/babylon/src/tokenizer/index.js | 31 +- packages/babylon/src/tokenizer/state.js | 5 +- .../fixtures/core/uncategorised/248/actual.js | 1 - .../core/uncategorised/248/expected.json | 195 ------------ .../fixtures/core/uncategorised/249/actual.js | 1 - .../core/uncategorised/249/expected.json | 278 ------------------ .../core/uncategorised/504/options.json | 4 +- .../core/uncategorised/505/options.json | 4 +- .../core/uncategorised/506/options.json | 4 +- .../core/uncategorised/507/options.json | 4 +- .../core/uncategorised/508/options.json | 4 +- .../core/uncategorised/509/options.json | 4 +- .../core/uncategorised/510/options.json | 4 +- .../core/uncategorised/513/options.json | 2 +- .../dupe-param/options.json | 3 + .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../dupe-param-1/options.json | 3 + .../dupe-param-2/options.json | 3 + .../dupe-param-3/options.json | 3 + .../patterned-catch-dupe/options.json | 4 +- .../es2015-array-pattern/rest/options.json | 3 - .../invalid-var-init/options.json | 4 +- .../expected.json | 153 ++++++++++ .../invalid_super_access/options.json | 2 +- .../expected.json | 148 ++++++++++ .../invalid-syntax/migrated_0224/options.json | 4 +- .../invalid-syntax/migrated_0225/options.json | 4 +- .../invalid-syntax/migrated_0226/options.json | 4 +- .../invalid-syntax/migrated_0227/options.json | 4 +- .../invalid-syntax/migrated_0228/options.json | 4 +- .../invalid-syntax/migrated_0229/options.json | 4 +- .../invalid-syntax/migrated_0230/options.json | 4 +- .../invalid-syntax/migrated_0239/options.json | 4 +- .../harmony/uncategorised/334/expected.json | 128 ++++++++ .../harmony/uncategorised/335/expected.json | 152 ++++++++++ .../harmony/uncategorised/51/actual.js | 1 - .../harmony/uncategorised/51/expected.json | 119 -------- 45 files changed, 704 insertions(+), 703 deletions(-) delete mode 100644 packages/babylon/test/fixtures/core/uncategorised/248/actual.js delete mode 100644 packages/babylon/test/fixtures/core/uncategorised/248/expected.json delete mode 100644 packages/babylon/test/fixtures/core/uncategorised/249/actual.js delete mode 100644 packages/babylon/test/fixtures/core/uncategorised/249/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/options.json rename packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/{invalid-elision-after-rest => .invalid-elision-after-rest}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/{invalid-elision-after-rest => .invalid-elision-after-rest}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/{invalid-elision-after-rest => .invalid-elision-after-rest}/options.json (100%) create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/options.json delete mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/334/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/335/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/51/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/51/expected.json diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 3169de84e5..9bd456fd1a 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -186,7 +186,7 @@ pp.parseMaybeUnary = function (refShorthandDefaultPos) { if (refShorthandDefaultPos && refShorthandDefaultPos.start) this.unexpected(refShorthandDefaultPos.start); if (update) { this.checkLVal(node.argument); - } else if (this.strict && node.operator === "delete" && node.argument.type === "Identifier") { + } else if (this.state.strict && node.operator === "delete" && node.argument.type === "Identifier") { this.raise(node.start, "Deleting local variable in strict mode"); } return this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); @@ -335,10 +335,8 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { return this.finishNode(node, "ThisExpression"); case tt._yield: - // NOTE: falls through to _let - if (!this.state.inGenerator && this.strict) this.unexpected(); + if (this.state.inGenerator) this.unexpected(); - case tt._let: case tt.name: node = this.startNode(); let id = this.parseIdentifier(true); @@ -363,7 +361,6 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { return id; - case tt._do: if (this.options.features["es7.doExpressions"]) { let node = this.startNode(); @@ -683,7 +680,7 @@ pp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, prop.kind = "init"; if (isPattern) { var illegalBinding = this.isKeyword(prop.key.name); - if (!illegalBinding && this.strict) { + if (!illegalBinding && this.state.strict) { illegalBinding = reservedWords.strictBind(prop.key.name) || reservedWords.strict(prop.key.name); } if (illegalBinding) { @@ -772,19 +769,29 @@ pp.parseFunctionBody = function (node, allowExpression) { // If this is a strict mode function, verify that argument names // are not repeated, and it does not try to bind the words `eval` // or `arguments`. - var checkLVal = this.strict; + var checkLVal = this.state.strict; + var checkLValStrict = false; + // arrow function if (allowExpression) checkLVal = true; + // normal function - if (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) checkLVal = true; + if (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) { + checkLVal = true; + checkLValStrict = true; + } + if (checkLVal) { let nameHash = Object.create(null); + let oldStrict = this.state.strict; + if (checkLValStrict) this.state.strict = true; if (node.id) { this.checkLVal(node.id, true); } for (let param of (node.params: Array)) { this.checkLVal(param, true, nameHash); } + this.state.strict = oldStrict; } }; @@ -828,8 +835,8 @@ pp.parseExprListItem = function (allowEmpty, refShorthandDefaultPos) { pp.parseIdentifier = function (liberal) { let node = this.startNode(); - if (this.isName()) { - if (!liberal && this.strict && reservedWords.strict(this.state.value)) { + if (this.match(tt.name)) { + if (!liberal && this.state.strict && reservedWords.strict(this.state.value)) { this.raise(this.state.start, "The keyword '" + this.state.value + "' is reserved"); } @@ -847,7 +854,7 @@ pp.parseIdentifier = function (liberal) { // Parses await expression inside async function. pp.parseAwait = function (node) { - if (this.eat(tt.semi) || this.canInsertSemicolon()) { + if (this.isLineTerminator()) { this.unexpected(); } node.all = this.eat(tt.star); diff --git a/packages/babylon/src/parser/index.js b/packages/babylon/src/parser/index.js index 4185c725d9..80db85a465 100644 --- a/packages/babylon/src/parser/index.js +++ b/packages/babylon/src/parser/index.js @@ -1,4 +1,4 @@ -import { reservedWords, isKeyword } from "../util/identifier"; +import { reservedWords } from "../util/identifier"; import { getOptions } from "../options"; import Tokenizer from "../tokenizer"; @@ -8,17 +8,16 @@ export const plugins = {}; export default class Parser extends Tokenizer { constructor(options, input) { - super(input); + options = getOptions(options); + super(options, input); - this.options = getOptions(options); - this.isKeyword = isKeyword; + this.options = options; this.isReservedWord = reservedWords[6]; this.input = input; this.loadPlugins(this.options.plugins); // Figure out if it's a module code. this.inModule = this.options.sourceType === "module"; - this.strict = this.options.strictMode === false ? false : this.inModule; // If enabled, skip leading hashbang line. if (this.state.pos === 0 && this.input[0] === "#" && this.input[1] === "!") { diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index 7ec54ae135..0d477fd10c 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -92,7 +92,7 @@ pp.parseSpread = function (refShorthandDefaultPos) { pp.parseRest = function () { let node = this.startNode(); this.next(); - if (this.isName() || this.match(tt.bracketL)) { + if (this.match(tt.name) || this.match(tt.bracketL)) { node.argument = this.parseBindingAtom(); } else { this.unexpected(); @@ -103,7 +103,7 @@ pp.parseRest = function () { // Parses lvalue (assignable) atom. pp.parseBindingAtom = function () { - if (this.isName()) { + if (this.match(tt.name)) { return this.parseIdentifier(true); } @@ -168,7 +168,7 @@ pp.parseMaybeDefault = function (startPos, startLoc, left) { pp.checkLVal = function (expr, isBinding, checkClashes) { switch (expr.type) { case "Identifier": - if (this.strict && (reservedWords.strictBind(expr.name) || reservedWords.strict(expr.name))) { + if (this.state.strict && (reservedWords.strictBind(expr.name) || reservedWords.strict(expr.name))) { this.raise(expr.start, (isBinding ? "Binding " : "Assigning to ") + expr.name + " in strict mode"); } diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 559ab8ebda..9f5457f9c4 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -74,19 +74,6 @@ pp.parseStatement = function (declaration, topLevel) { case tt._try: return this.parseTryStatement(node); case tt._let: - // NOTE: falls through to _const - if (!this.strict) { - let state = this.state.clone(); - this.next(); - - var isBindingAtomStart = this.isName() || this.match(tt.braceL) || this.match(tt.bracketL); - - // set back lookahead - this.state = state; - - if (!isBindingAtomStart) break; - } - case tt._const: if (!declaration) this.unexpected(); // NOTE: falls through to _var @@ -171,7 +158,7 @@ pp.parseBreakContinueStatement = function (node, keyword) { let isBreak = keyword === "break"; this.next(); - if (this.eat(tt.semi) || this.canInsertSemicolon()) { + if (this.isLineTerminator()) { node.label = null; } else if (!this.match(tt.name)) { this.unexpected(); @@ -232,9 +219,13 @@ pp.parseForStatement = function (node) { this.next(); this.parseVar(init, true, varKind); this.finishNode(init, "VariableDeclaration"); - if ((this.match(tt._in) || this.isContextual("of")) && init.declarations.length === 1 && - !(varKind !== tt._var && init.declarations[0].init)) - return this.parseForIn(node, init); + + if (this.match(tt._in) || this.isContextual("of")) { + if (init.declarations.length === 1 && !init.declarations[0].init) { + return this.parseForIn(node, init); + } + } + return this.parseFor(node, init); } @@ -274,7 +265,7 @@ pp.parseReturnStatement = function (node) { // optional arguments, we eagerly look for a semicolon or the // possibility to insert one. - if (this.eat(tt.semi) || this.canInsertSemicolon()) { + if (this.isLineTerminator()) { node.argument = null; } else { node.argument = this.parseExpression(); @@ -343,7 +334,7 @@ pp.parseTryStatement = function (node) { this.next(); this.expect(tt.parenL); clause.param = this.parseBindingAtom(); - this.checkLVal(clause.param, true); + this.checkLVal(clause.param, true, Object.create(null)); this.expect(tt.parenR); clause.body = this.parseBlock(); node.handler = this.finishNode(clause, "CatchClause"); @@ -376,7 +367,7 @@ pp.parseWhileStatement = function (node) { }; pp.parseWithStatement = function (node) { - if (this.strict) this.raise(this.state.start, "'with' in strict mode"); + if (this.state.strict) this.raise(this.state.start, "'with' in strict mode"); this.next(); node.object = this.parseParenExpression(); node.body = this.parseStatement(false); @@ -431,8 +422,8 @@ pp.parseBlock = function (allowStrict) { let stmt = this.parseStatement(true); node.body.push(stmt); if (first && allowStrict && this.isUseStrict(stmt)) { - oldStrict = this.strict; - this.setStrict(this.strict = true); + oldStrict = this.state.strict; + this.setStrict(this.state.strict = true); } first = false; } @@ -505,11 +496,11 @@ pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, op this.initFunction(node, isAsync); node.generator = this.eat(tt.star); - if (isStatement && !optionalId && !this.isName()) { + if (isStatement && !optionalId && !this.match(tt.name)) { this.unexpected(); } - if (this.isName()) { + if (this.match(tt.name)) { node.id = this.parseIdentifier(); } diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index 53f1e4b27d..784daad310 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -28,23 +28,6 @@ pp.expectRelational = function (op) { } }; -// TODO - -pp.isName = function () { - if (this.match(tt.name)) { - return true; - } else if (!this.strict) { - var keyword = this.state.type.keyword; - if (keyword === "let") { - return true; - } else if (keyword === "yield") { - return !this.state.inGenerator; - } - } - - return false; -}; - // Tests whether parsed token is a contextual keyword. pp.isContextual = function (name) { @@ -71,6 +54,12 @@ pp.canInsertSemicolon = function () { lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)); }; +// TODO + +pp.isLineTerminator = function () { + return this.eat(tt.semi) || this.canInsertSemicolon(); +}; + // Consume a semicolon, or, failing that, see if we are allowed to // pretend that there is a semicolon at this position. diff --git a/packages/babylon/src/plugins/flow.js b/packages/babylon/src/plugins/flow.js index 4bc211ccb1..58bdb63a25 100644 --- a/packages/babylon/src/plugins/flow.js +++ b/packages/babylon/src/plugins/flow.js @@ -609,7 +609,7 @@ export default function (instance) { instance.extend("parseStatement", function (inner) { return function (declaration, topLevel) { // strict mode handling of `interface` since it's a reserved word - if (this.strict && this.match(tt.name) && this.state.value === "interface") { + if (this.state.strict && this.match(tt.name) && this.state.value === "interface") { var node = this.startNode(); this.next(); return this.flowParseInterface(node); diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index 7bff031091..c2248cb4fb 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -1,4 +1,4 @@ -import { isIdentifierStart, isIdentifierChar } from "../util/identifier"; +import { isIdentifierStart, isIdentifierChar, isKeyword } from "../util/identifier"; import { types as tt, keywords as keywordTypes } from "./types"; import { types as ct } from "./context"; import { SourceLocation } from "../util/location"; @@ -48,9 +48,9 @@ function codePointToString(code) { } export default class Tokenizer { - constructor(input) { + constructor(options, input) { this.state = new State; - this.state.init(input); + this.state.init(options, input); } // Move to the next token @@ -84,6 +84,22 @@ export default class Tokenizer { // TODO + isKeyword(word) { + if (!this.state.strict) { + if (word === "yield" && !this.state.inGenerator) { + return false; + } + + if (word === "let") { + // check if next token is a name, braceL or bracketL, if so, it's a keyword! + } + } + + return isKeyword(word); + } + + // TODO + lookahead() { var old = this.state; this.state = old.clone(); @@ -97,7 +113,7 @@ export default class Tokenizer { // pedantic tests (`"use strict"; 010;` should fail). setStrict(strict) { - this.strict = strict; + this.state.strict = strict; if (!this.match(tt.num) && !this.match(tt.string)) return; this.state.pos = this.state.start; while (this.state.pos < this.state.lineStart) { @@ -589,7 +605,7 @@ export default class Tokenizer { val = parseFloat(str); } else if (!octal || str.length === 1) { val = parseInt(str, 10); - } else if (/[89]/.test(str) || this.strict) { + } else if (/[89]/.test(str) || this.state.strict) { this.raise(start, "Invalid number"); } else { val = parseInt(str, 8); @@ -705,7 +721,7 @@ export default class Tokenizer { octalStr = octalStr.slice(0, -1); octal = parseInt(octalStr, 8); } - if (octal > 0 && (this.strict || inTemplate)) { + if (octal > 0 && (this.state.strict || inTemplate)) { this.raise(this.state.pos - 2, "Octal literal in strict mode"); } this.state.pos += octalStr.length - 1; @@ -769,8 +785,9 @@ export default class Tokenizer { readWord() { let word = this.readWord1(); let type = tt.name; - if (!this.state.containsEsc && this.isKeyword(word)) + if (!this.state.containsEsc && this.isKeyword(word)) { type = keywordTypes[word]; + } return this.finishToken(type, word); } diff --git a/packages/babylon/src/tokenizer/state.js b/packages/babylon/src/tokenizer/state.js index e609504bb2..d5099ccaeb 100644 --- a/packages/babylon/src/tokenizer/state.js +++ b/packages/babylon/src/tokenizer/state.js @@ -3,7 +3,10 @@ import { types as ct } from "./context"; import { types as tt } from "./types"; export default class State { - init(input) { + init(options, input) { + // strict + this.strict = options.strictMode === false ? false : options.sourceType === "module"; + this.input = input; // Used to signify the start of a potential arrow function diff --git a/packages/babylon/test/fixtures/core/uncategorised/248/actual.js b/packages/babylon/test/fixtures/core/uncategorised/248/actual.js deleted file mode 100644 index b06fd22155..0000000000 --- a/packages/babylon/test/fixtures/core/uncategorised/248/actual.js +++ /dev/null @@ -1 +0,0 @@ -for (var x = 42 in list) process(x); \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/248/expected.json b/packages/babylon/test/fixtures/core/uncategorised/248/expected.json deleted file mode 100644 index 7b65e7a6c3..0000000000 --- a/packages/babylon/test/fixtures/core/uncategorised/248/expected.json +++ /dev/null @@ -1,195 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ForInStatement", - "start": 0, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "left": { - "type": "VariableDeclaration", - "start": 5, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "declarations": [ - { - "type": "VariableDeclarator", - "start": 9, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "id": { - "type": "Identifier", - "start": 9, - "end": 10, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 10 - } - }, - "name": "x" - }, - "init": { - "type": "Literal", - "start": 13, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "value": 42, - "rawValue": 42, - "raw": "42" - } - } - ], - "kind": "var" - }, - "right": { - "type": "Identifier", - "start": 19, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "name": "list" - }, - "body": { - "type": "ExpressionStatement", - "start": 25, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "expression": { - "type": "CallExpression", - "start": 25, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "callee": { - "type": "Identifier", - "start": 25, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "name": "process" - }, - "arguments": [ - { - "type": "Identifier", - "start": 33, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "name": "x" - } - ] - } - } - } - ] - } -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/249/actual.js b/packages/babylon/test/fixtures/core/uncategorised/249/actual.js deleted file mode 100644 index d42823d7f5..0000000000 --- a/packages/babylon/test/fixtures/core/uncategorised/249/actual.js +++ /dev/null @@ -1 +0,0 @@ -for (var i = function() { return 10 in [] } in list) process(x); \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/249/expected.json b/packages/babylon/test/fixtures/core/uncategorised/249/expected.json deleted file mode 100644 index b0f5f0232d..0000000000 --- a/packages/babylon/test/fixtures/core/uncategorised/249/expected.json +++ /dev/null @@ -1,278 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ForInStatement", - "start": 0, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "left": { - "type": "VariableDeclaration", - "start": 5, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "declarations": [ - { - "type": "VariableDeclarator", - "start": 9, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "id": { - "type": "Identifier", - "start": 9, - "end": 10, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 10 - } - }, - "name": "i" - }, - "init": { - "type": "FunctionExpression", - "start": 13, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 24, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "body": [ - { - "type": "ReturnStatement", - "start": 26, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 26 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "argument": { - "type": "BinaryExpression", - "start": 33, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "left": { - "type": "Literal", - "start": 33, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "value": 10, - "rawValue": 10, - "raw": "10" - }, - "operator": "in", - "right": { - "type": "ArrayExpression", - "start": 39, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 39 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "elements": [] - } - } - } - ] - } - } - } - ], - "kind": "var" - }, - "right": { - "type": "Identifier", - "start": 47, - "end": 51, - "loc": { - "start": { - "line": 1, - "column": 47 - }, - "end": { - "line": 1, - "column": 51 - } - }, - "name": "list" - }, - "body": { - "type": "ExpressionStatement", - "start": 53, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "expression": { - "type": "CallExpression", - "start": 53, - "end": 63, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 63 - } - }, - "callee": { - "type": "Identifier", - "start": 53, - "end": 60, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 60 - } - }, - "name": "process" - }, - "arguments": [ - { - "type": "Identifier", - "start": 61, - "end": 62, - "loc": { - "start": { - "line": 1, - "column": 61 - }, - "end": { - "line": 1, - "column": 62 - } - }, - "name": "x" - } - ] - } - } - } - ] - } -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/504/options.json b/packages/babylon/test/fixtures/core/uncategorised/504/options.json index a130c92268..570ca31728 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/504/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/504/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'implements' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding implements in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/505/options.json b/packages/babylon/test/fixtures/core/uncategorised/505/options.json index c70c06968d..dfe4eddc2a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/505/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/505/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'interface' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding interface in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/506/options.json b/packages/babylon/test/fixtures/core/uncategorised/506/options.json index ac7ab9bdb7..766ddb41ca 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/506/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/506/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'package' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding package in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/507/options.json b/packages/babylon/test/fixtures/core/uncategorised/507/options.json index 735d540526..9a7c12e0a6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/507/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/507/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'private' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding private in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/508/options.json b/packages/babylon/test/fixtures/core/uncategorised/508/options.json index a8145dcb6a..ba43694c8d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/508/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/508/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'protected' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding protected in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/509/options.json b/packages/babylon/test/fixtures/core/uncategorised/509/options.json index 232b3cba94..b1dbd863ed 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/509/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/509/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'public' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding public in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/510/options.json b/packages/babylon/test/fixtures/core/uncategorised/510/options.json index 47fe5aafaf..75ad83ddbb 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/510/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/510/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'static' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding static in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/core/uncategorised/513/options.json b/packages/babylon/test/fixtures/core/uncategorised/513/options.json index 07d74757d4..69a9237df8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/513/options.json +++ b/packages/babylon/test/fixtures/core/uncategorised/513/options.json @@ -1,3 +1,3 @@ { "throws": "The keyword 'static' is reserved (1:23)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/options.json b/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/options.json new file mode 100644 index 0000000000..e23388601b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (1:14)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/invalid-elision-after-rest/options.json rename to packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/.invalid-elision-after-rest/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/options.json new file mode 100644 index 0000000000..d498cd8bd0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (2:14)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/options.json new file mode 100644 index 0000000000..e3176a8e57 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (2:17)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/options.json new file mode 100644 index 0000000000..2d74a95450 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Argument name clash in strict mode (2:19)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json index aca079ee39..7d5bec6e9b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch-dupe/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:20)" -} \ No newline at end of file + "throws": "Argument name clash in strict mode (1:17)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json deleted file mode 100644 index 328b1ddde8..0000000000 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "Unexpected token (1:10)" -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json index 89e36d9013..98d7123790 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/invalid-var-init/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:16)" -} \ No newline at end of file + "throws": "Unexpected token (1:15)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/expected.json new file mode 100644 index 0000000000..4b57db559b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/expected.json @@ -0,0 +1,153 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "ObjectPattern", + "start": 11, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "properties": [ + { + "type": "Property", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "yield" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 12, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "yield" + } + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "body": [] + }, + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json index 18fe6d12a8..2c472e02d3 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected super (3:9)" + "throws": "Unexpected super (3:14)" } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/expected.json new file mode 100644 index 0000000000..2bdc41583c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-identifier/expected.json @@ -0,0 +1,148 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "rawValue": "use strict", + "raw": "\"use strict\"" + } + }, + { + "type": "FunctionDeclaration", + "start": 14, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 29, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "Identifier", + "start": 29, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "yield" + } + } + ] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json index a130c92268..570ca31728 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'implements' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding implements in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json index c70c06968d..dfe4eddc2a 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'interface' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding interface in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json index ac7ab9bdb7..766ddb41ca 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'package' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding package in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json index 735d540526..9a7c12e0a6 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'private' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding private in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json index a8145dcb6a..ba43694c8d 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'protected' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding protected in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json index 232b3cba94..b1dbd863ed 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'public' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding public in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json index 47fe5aafaf..75ad83ddbb 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'static' is reserved (1:37)" -} \ No newline at end of file + "throws": "Binding static in strict mode (1:37)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json index 07d74757d4..b3e95a5757 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json @@ -1,3 +1,3 @@ { - "throws": "The keyword 'static' is reserved (1:23)" -} \ No newline at end of file + "throws": "Binding static in strict mode (1:23)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/334/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/334/expected.json new file mode 100644 index 0000000000..7b7e0ac66d --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/334/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "sourceType": "module", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 0, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "elements": [ + { + "type": "RestElement", + "start": 1, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "argument": { + "type": "Identifier", + "start": 4, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "eval" + } + } + ] + }, + "right": { + "type": "Identifier", + "start": 12, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "arr" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/335/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/335/expected.json new file mode 100644 index 0000000000..5e726736c7 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/335/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "y" + }, + "generator": true, + "expression": false, + "params": [ + { + "type": "ObjectPattern", + "start": 12, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "properties": [ + { + "type": "Property", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "yield" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 13, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "yield" + } + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "body": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/51/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/51/actual.js deleted file mode 100644 index 1f226ec28d..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/51/actual.js +++ /dev/null @@ -1 +0,0 @@ -(a, a) => 42 \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/51/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/51/expected.json deleted file mode 100644 index 0fe0e61786..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/51/expected.json +++ /dev/null @@ -1,119 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "expression": { - "type": "ArrowFunctionExpression", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "id": null, - "generator": false, - "expression": true, - "params": [ - { - "type": "Identifier", - "start": 1, - "end": 2, - "loc": { - "start": { - "line": 1, - "column": 1 - }, - "end": { - "line": 1, - "column": 2 - } - }, - "name": "a" - }, - { - "type": "Identifier", - "start": 4, - "end": 5, - "loc": { - "start": { - "line": 1, - "column": 4 - }, - "end": { - "line": 1, - "column": 5 - } - }, - "name": "a" - } - ], - "body": { - "type": "Literal", - "start": 10, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 10 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": 42, - "rawValue": 42, - "raw": "42" - } - } - } - ] - }, - "comments": [] -} \ No newline at end of file From 3ef9bffcc240e60085fbb120de07d884448fbea3 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 11 Aug 2015 17:40:59 +0100 Subject: [PATCH 009/174] split up babel core into multiple modules --- .eslintignore | 2 +- CONTRIBUTING.md | 2 +- Makefile | 4 ++-- packages/babel-code-frame/package.json | 17 ++++++++++++++++ .../src/index.js} | 0 packages/{babel => babel-core}/.npmignore | 0 packages/{babel => babel-core}/index.js | 0 packages/{babel => babel-core}/package.json | 8 +++++++- packages/{babel => babel-core}/polyfill.js | 0 .../register-without-polyfill.js | 0 packages/{babel => babel-core}/register.js | 0 .../scripts/build-dist.sh | 0 .../scripts/cache-templates.js | 0 .../scripts/postpublish.js | 0 .../scripts/prepublish.js | 0 packages/{babel => babel-core}/src/README.md | 0 .../{babel => babel-core}/src/api/README.md | 0 .../{babel => babel-core}/src/api/browser.js | 0 .../{babel => babel-core}/src/api/node.js | 4 ++-- .../src/api/register/browser.js | 0 .../src/api/register/cache.js | 0 .../src/api/register/node-polyfill.js | 0 .../src/api/register/node.js | 0 .../src/babel/transformation/modules.js | 0 .../src/helpers/README.md | 0 .../src/helpers/merge.js | 0 .../src/helpers/normalize-ast.js | 2 +- .../src/helpers/object.js | 0 .../src/helpers/parse.js | 0 .../{babel => babel-core}/src/polyfill.js | 0 .../{babel => babel-core}/src/tools/README.md | 0 .../src/tools/build-external-helpers.js | 6 +++--- .../src/transformation/README.md | 0 .../src/transformation/file/README.md | 0 .../src/transformation/file/index.js | 11 +++++----- .../src/transformation/file/logger.js | 0 .../src/transformation/file/options/README.md | 0 .../transformation/file/options/config.json | 0 .../src/transformation/file/options/index.js | 0 .../file/options/option-manager.js | 0 .../transformation/file/options/parsers.js | 0 .../src/transformation/file/plugin-manager.js | 6 +++--- .../src/transformation/helpers/README.md | 0 ...-binary-assignment-operator-transformer.js | 2 +- .../helpers/build-comprehension.js | 2 +- ...itional-assignment-operator-transformer.js | 2 +- .../helpers/build-react-transformer.js | 6 +++--- .../transformation/helpers/call-delegate.js | 2 +- .../src/transformation/helpers/define-map.js | 2 +- .../helpers/explode-assignable-expression.js | 2 +- .../helpers/get-function-arity.js | 2 +- .../helpers/memoise-decorators.js | 2 +- .../src/transformation/helpers/name-method.js | 2 +- .../src/transformation/helpers/regex.js | 2 +- .../helpers/remap-async-to-generator.js | 2 +- .../transformation/helpers/replace-supers.js | 4 ++-- .../src/transformation/index.js | 0 .../src/transformation/modules/README.md | 0 .../src/transformation/modules/_default.js | 4 ++-- .../src/transformation/modules/_strict.js | 0 .../src/transformation/modules/amd-strict.js | 0 .../src/transformation/modules/amd.js | 2 +- .../transformation/modules/common-strict.js | 0 .../src/transformation/modules/common.js | 2 +- .../src/transformation/modules/ignore.js | 2 +- .../src/transformation/modules/index.js | 0 .../transformation/modules/lib/metadata.js | 2 +- .../src/transformation/modules/lib/remaps.js | 2 +- .../src/transformation/modules/system.js | 2 +- .../src/transformation/modules/umd-strict.js | 0 .../src/transformation/modules/umd.js | 2 +- .../src/transformation/pipeline.js | 0 .../src/transformation/plugin-pass.js | 2 +- .../src/transformation/plugin.js | 6 +++--- .../src/transformation/templates/.babelrc | 0 .../templates/abstract-expression-call.js | 0 .../templates/abstract-expression-delete.js | 0 .../templates/abstract-expression-get.js | 0 .../templates/abstract-expression-set.js | 0 .../array-comprehension-container.js | 0 .../transformation/templates/array-from.js | 0 .../transformation/templates/array-push.js | 0 .../src/transformation/templates/call.js | 0 .../templates/class-decorator.js | 0 .../class-derived-default-constructor.js | 0 .../templates/default-parameter-assign.js | 0 .../templates/default-parameter.js | 0 .../templates/exports-assign.js | 0 .../templates/exports-default-assign.js | 0 .../templates/exports-from-assign.js | 0 .../exports-module-declaration-loose.js | 0 .../templates/exports-module-declaration.js | 0 .../transformation/templates/for-of-array.js | 0 .../transformation/templates/for-of-loose.js | 0 .../src/transformation/templates/for-of.js | 0 .../templates/helper-async-to-generator.js | 0 .../transformation/templates/helper-bind.js | 0 .../templates/helper-class-call-check.js | 0 .../templates/helper-create-class.js | 0 .../helper-create-decorated-class.js | 0 .../helper-create-decorated-object.js | 0 .../templates/helper-default-props.js | 0 .../templates/helper-defaults.js | 0 ...er-define-decorated-property-descriptor.js | 0 .../templates/helper-define-property.js | 0 .../templates/helper-extends.js | 0 .../transformation/templates/helper-get.js | 0 .../templates/helper-has-own.js | 0 .../templates/helper-inherits.js | 0 .../templates/helper-instanceof.js | 0 .../helper-interop-export-wildcard.js | 0 .../helper-interop-require-default.js | 0 .../helper-interop-require-wildcard.js | 0 .../templates/helper-interop-require.js | 0 .../templates/helper-new-arrow-check.js | 0 .../helper-object-destructuring-empty.js | 0 .../helper-object-without-properties.js | 0 .../templates/helper-self-global.js | 0 .../transformation/templates/helper-set.js | 0 .../transformation/templates/helper-slice.js | 0 .../templates/helper-sliced-to-array-loose.js | 0 .../templates/helper-sliced-to-array.js | 0 .../helper-tagged-template-literal-loose.js | 0 .../helper-tagged-template-literal.js | 0 .../helper-temporal-assert-defined.js | 0 .../templates/helper-temporal-undefined.js | 0 .../templates/helper-to-array.js | 0 .../templates/helper-to-consumable-array.js | 0 .../transformation/templates/helper-typeof.js | 0 .../templates/let-scoping-return.js | 0 .../templates/named-function.js | 0 ...rty-method-assignment-wrapper-generator.js | 0 .../property-method-assignment-wrapper.js | 0 .../templates/prototype-identifier.js | 0 .../templates/require-assign-key.js | 0 .../src/transformation/templates/require.js | 0 .../src/transformation/templates/rest.js | 0 .../templates/self-contained-helpers-head.js | 0 .../src/transformation/templates/system.js | 0 .../templates/tail-call-body.js | 0 .../transformation/templates/test-exports.js | 0 .../transformation/templates/test-module.js | 0 .../templates/umd-commonjs-strict.js | 0 .../templates/umd-runner-body.js | 0 .../src/transformation/transformer.js | 0 .../src/transformation/transformers/README.md | 0 .../transformation/transformers/aliases.json | 0 .../transformers/deprecated.json | 0 .../es3/member-expression-literals.js | 2 +- .../transformers/es3/property-literals.js | 2 +- .../transformers/es5/properties.mutators.js | 2 +- .../transformers/es6/arrow-functions.js | 0 .../transformers/es6/block-scoping.js | 4 ++-- .../transformers/es6/classes/index.js | 2 +- .../transformers/es6/classes/loose.js | 2 +- .../transformers/es6/classes/vanilla.js | 4 ++-- .../transformers/es6/constants.js | 2 +- .../transformers/es6/destructuring.js | 4 ++-- .../transformation/transformers/es6/for-of.js | 4 ++-- .../transformers/es6/literals.js | 0 .../transformers/es6/modules.js | 2 +- .../transformers/es6/object-super.js | 2 +- .../transformers/es6/parameters/default.js | 2 +- .../transformers/es6/parameters/index.js | 2 +- .../transformers/es6/parameters/rest.js | 2 +- .../transformers/es6/properties.computed.js | 2 +- .../transformers/es6/properties.shorthand.js | 0 .../transformers/es6/regex.sticky.js | 2 +- .../transformers/es6/regex.unicode.js | 0 .../transformers/es6/spec.arrow-functions.js | 2 +- .../transformers/es6/spec.block-scoping.js | 2 +- .../transformers/es6/spec.modules.js | 2 +- .../transformers/es6/spec.symbols.js | 2 +- .../es6/spec.template-literals.js | 2 +- .../transformation/transformers/es6/spread.js | 2 +- .../transformers/es6/tail-call.js | 4 ++-- .../transformers/es6/template-literals.js | 2 +- .../transformers/es7/async-functions.js | 0 .../transformers/es7/class-properties.js | 0 .../transformers/es7/comprehensions.js | 4 ++-- .../transformers/es7/decorators.js | 2 +- .../transformers/es7/do-expressions.js | 2 +- .../es7/exponentiation-operator.js | 2 +- .../transformers/es7/export-extensions.js | 2 +- .../transformers/es7/function-bind.js | 2 +- .../transformers/es7/object-rest-spread.js | 2 +- .../es7/trailing-function-commas.js | 0 .../transformation/transformers/filters.js | 0 .../src/transformation/transformers/index.js | 0 .../transformers/internal/block-hoist.js | 0 .../transformers/internal/hoist-directives.js | 2 +- .../transformers/internal/module-formatter.js | 0 .../transformers/internal/modules.js | 2 +- .../transformers/internal/shadow-functions.js | 2 +- .../transformers/internal/validation.js | 4 ++-- .../transformers/optimisation/flow.for-of.js | 0 .../optimisation/modules.system.js | 2 +- .../optimisation/react.inline-elements.js | 4 ++-- .../transformers/other/async-to-generator.js | 0 .../transformers/other/bluebird-coroutines.js | 2 +- .../transformation/transformers/other/flow.js | 2 +- .../transformers/other/react-compat.js | 4 ++-- .../transformers/other/react.js | 4 ++-- .../transformers/other/regenerator.js | 2 +- .../transformers/other/strict.js | 2 +- .../spec/block-scoped-functions.js | 2 +- .../transformers/spec/function-name.js | 0 .../transformers/validation/react.js | 4 ++-- packages/{babel => babel-core}/src/util.js | 6 +++--- packages/{babel => babel-core}/test/.babelrc | 0 .../{babel => babel-core}/test/_browser.js | 0 .../test/_transformation-helper.js | 2 +- packages/{babel => babel-core}/test/api.js | 0 .../{babel => babel-core}/test/browserify.js | 0 packages/{babel => babel-core}/test/esnext.js | 0 .../test/fixtures/browserify/register.js | 0 .../arguments-refers-to-parent-function.js | 0 .../empty-arrow-function.js | 0 .../handles-nested-context-bindings.js | 0 ...rens-for-low-precedence-expression-body.js | 0 .../object-literal-needs-parens.js | 0 .../only-lexical-this-not-dynamic-this.js | 0 .../es6-arrow-functions/passed-to-function.js | 0 .../single-param-does-not-need-parens.js | 0 .../esnext/es6-classes/anonymous-class.js | 0 .../esnext/es6-classes/call-super-function.js | 0 .../esnext/es6-classes/class-expressions.js | 0 .../esnext/es6-classes/class-extend.js | 0 .../es6-classes/class-with-constructor.js | 0 .../class-with-method-declaration.js | 0 .../esnext/es6-classes/empty-named-class.js | 0 .../fixtures/esnext/es6-classes/enumerable.js | 0 .../explicit-super-in-constructor.js | 0 .../esnext/es6-classes/extends-null.js | 0 .../esnext/es6-classes/getter-setter-super.js | 0 .../esnext/es6-classes/getter-setter.js | 0 .../method-declaration-with-arguments.js | 0 .../es6-classes/methods-are-writable.js | 0 .../es6-classes/methods-with-rest-params.js | 0 .../esnext/es6-classes/static-getter.js | 0 .../esnext/es6-classes/static-method.js | 0 .../esnext/es6-classes/static-setter.js | 0 .../esnext/es6-classes/super-change-proto.js | 0 .../es6-computed-properties/accessor.js | 0 .../esnext/es6-computed-properties/method.js | 0 .../esnext/es6-computed-properties/nested.js | 0 .../esnext/es6-computed-properties/simple.js | 0 .../esnext/es6-default-parameters/arity.js | 0 .../es6-default-parameters/arrow-function.js | 0 .../null-vs-undefined.js | 0 .../esnext/es6-default-parameters/scope.js | 0 .../es6-default-parameters/simple-function.js | 0 .../es6-object-concise/method-arguments.js | 0 .../es6-object-concise/method-context.js | 0 .../es6-object-concise/method-has-name.js | 0 .../method-is-not-in-scope-inside.js | 0 .../esnext/es6-object-concise/method.js | 0 .../esnext/es6-rest-parameters/arrow-fn.js | 0 .../esnext/es6-rest-parameters/declaration.js | 0 .../esnext/es6-rest-parameters/rest.js | 0 .../esnext/es6-spread/arguments-as-array.js | 0 .../esnext/es6-spread/array-literal.js | 0 .../es6-spread/call-with-array-literal.js | 0 .../es6-spread/inside-function-expression.js | 0 .../fixtures/esnext/es6-spread/iterator.js | 0 .../fixtures/esnext/es6-spread/new-object.js | 0 .../esnext/es6-spread/preserve-context.js | 0 .../esnext/es6-spread/simple-function-call.js | 0 .../esnext/es6-templates/multi-line.js | 0 .../es6-templates/nested-interpolation.js | 0 .../esnext/es6-templates/no-interpolation.js | 0 .../raw-tagged-template-expression.js | 0 .../es6-templates/simple-interpolation.js | 0 .../tagged-template-expression.js | 0 .../auto-indentation/hard-tab/actual.js | 0 .../auto-indentation/hard-tab/expected.js | 0 .../auto-indentation/soft-tab-2/actual.js | 0 .../auto-indentation/soft-tab-2/expected.js | 0 .../auto-indentation/soft-tab-4/actual.js | 0 .../auto-indentation/soft-tab-4/expected.js | 0 .../generation/auto-string/double/actual.js | 0 .../generation/auto-string/double/expected.js | 0 .../generation/auto-string/single/actual.js | 0 .../generation/auto-string/single/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../comments/2-space-multi-comment/actual.js | 0 .../2-space-multi-comment/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../comments/block-line-comment/actual.js | 0 .../comments/block-line-comment/expected.js | 0 .../comment-only-with-space/actual.js | 0 .../comment-only-with-space/expected.js | 0 .../comments/comment-only/actual.js | 0 .../comments/comment-only/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../computed-property-comments-2/actual.js | 0 .../computed-property-comments-2/expected.js | 0 .../computed-property-comments/actual.js | 0 .../computed-property-comments/expected.js | 0 .../comments/do-while-line-comment/actual.js | 0 .../do-while-line-comment/expected.js | 0 .../comments/empty-line-comment/actual.js | 0 .../comments/empty-line-comment/expected.js | 0 .../generation/comments/empty/actual.js | 0 .../generation/comments/empty/expected.js | 0 .../function-block-line-comment/actual.js | 0 .../function-block-line-comment/expected.js | 0 .../comments/if-block-line-comment/actual.js | 0 .../if-block-line-comment/expected.js | 0 .../comments/if-empty-line-comment/actual.js | 0 .../if-empty-line-comment/expected.js | 0 .../comments/if-line-comment/actual.js | 0 .../comments/if-line-comment/expected.js | 0 .../comments/object_comments/actual.js | 0 .../comments/object_comments/expected.js | 0 .../comments/return-no-argument/actual.js | 0 .../comments/return-no-argument/expected.js | 0 .../simple-a-lot-of-line-comment/actual.js | 0 .../simple-a-lot-of-line-comment/expected.js | 0 .../simple-a-lot-of-multi-comment/actual.js | 0 .../simple-a-lot-of-multi-comment/expected.js | 0 .../comments/simple-line-comment/actual.js | 0 .../comments/simple-line-comment/expected.js | 0 .../comments/simple-multi-comment/actual.js | 0 .../comments/simple-multi-comment/expected.js | 0 .../simple-statement-comment/actual.js | 0 .../simple-statement-comment/expected.js | 0 .../comments/try-block-line-comment/actual.js | 0 .../try-block-line-comment/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../fixtures/generation/compact/options.json | 0 .../compact/single-line-comment/actual.js | 0 .../compact/single-line-comment/expected.js | 0 .../edgecase/bitwise-precedence/actual.js | 0 .../edgecase/bitwise-precedence/expected.js | 0 .../edgecase/floating-point/actual.js | 0 .../edgecase/floating-point/expected.js | 0 .../edgecase/for-in-no-in/actual.js | 0 .../edgecase/for-in-no-in/expected.js | 0 .../edgecase/new-precedence/actual.js | 0 .../edgecase/new-precedence/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../return-with-retainlines-option/actual.js | 0 .../expected.js | 0 .../options.json | 0 .../generation/edgecase/unary-op/actual.js | 0 .../generation/edgecase/unary-op/expected.js | 0 .../edgecase/variable-declaration/actual.js | 0 .../edgecase/variable-declaration/expected.js | 0 .../generation/flow/array-types/actual.js | 0 .../generation/flow/array-types/expected.js | 0 .../flow/boolean-literal-types/actual.js | 0 .../flow/boolean-literal-types/expected.js | 0 .../generation/flow/call-properties/actual.js | 0 .../flow/call-properties/expected.js | 0 .../generation/flow/declare-module/actual.js | 0 .../flow/declare-module/expected.js | 0 .../flow/declare-statements/actual.js | 0 .../flow/declare-statements/expected.js | 0 .../interfaces-module-and-script/actual.js | 0 .../interfaces-module-and-script/expected.js | 0 .../flow/number-literal-types/actual.js | 0 .../flow/number-literal-types/expected.js | 0 .../flow/qualified-generic-type/actual.js | 0 .../flow/qualified-generic-type/expected.js | 0 .../flow/string-literal-types/actual.js | 0 .../flow/string-literal-types/expected.js | 0 .../fixtures/generation/flow/tuples/actual.js | 0 .../generation/flow/tuples/expected.js | 0 .../generation/flow/type-alias/actual.js | 0 .../generation/flow/type-alias/expected.js | 0 .../flow/type-annotations/actual.js | 0 .../flow/type-annotations/expected.js | 0 .../generation/flow/typecasts/actual.js | 0 .../generation/flow/typecasts/expected.js | 0 .../harmony-edgecase/arrow-function/actual.js | 0 .../arrow-function/expected.js | 0 .../class-declaration/actual.js | 0 .../class-declaration/expected.js | 0 .../class-expression/actual.js | 0 .../class-expression/expected.js | 0 .../computed-property/actual.js | 0 .../computed-property/expected.js | 0 .../default-parameter/actual.js | 0 .../default-parameter/expected.js | 0 .../destructuring-assignment/actual.js | 0 .../destructuring-assignment/expected.js | 0 .../export-default-declaration/actual.js | 0 .../export-default-declaration/expected.js | 0 .../harmony-edgecase/exports/actual.js | 0 .../harmony-edgecase/exports/expected.js | 0 .../for-of-statement/actual.js | 0 .../for-of-statement/expected.js | 0 .../import-with-default/actual.js | 0 .../import-with-default/expected.js | 0 .../harmony-edgecase/imports/actual.js | 0 .../harmony-edgecase/imports/expected.js | 0 .../harmony-edgecase/spread-element/actual.js | 0 .../spread-element/expected.js | 0 .../templates-escape/actual.js | 0 .../templates-escape/expected.js | 0 .../harmony-edgecase/templates/actual.js | 0 .../harmony-edgecase/templates/expected.js | 0 .../yield-precedence/actual.js | 0 .../yield-precedence/expected.js | 0 .../arrow-function-object-body/actual.js | 0 .../arrow-function-object-body/expected.js | 0 .../parentheses/terminator-break/actual.js | 0 .../parentheses/terminator-break/expected.js | 0 .../ArrayExpression-ArrayPattern/actual.js | 0 .../ArrayExpression-ArrayPattern/expected.js | 0 .../types/ArrowFunctionExpression/actual.js | 0 .../types/ArrowFunctionExpression/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../types/AwaitExpression/actual.js | 0 .../types/AwaitExpression/expected.js | 0 .../generation/types/BindExpression/actual.js | 0 .../types/BindExpression/expected.js | 0 .../generation/types/BlockStatement/actual.js | 0 .../types/BlockStatement/expected.js | 0 .../generation/types/BreakStatement/actual.js | 0 .../types/BreakStatement/expected.js | 0 .../generation/types/CallExpression/actual.js | 0 .../types/CallExpression/expected.js | 0 .../ClassBody-MethodDefinition/actual.js | 0 .../ClassBody-MethodDefinition/expected.js | 0 .../types/ClassDeclaration/actual.js | 0 .../types/ClassDeclaration/expected.js | 0 .../types/ClassExpression/actual.js | 0 .../types/ClassExpression/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../types/ConditionalExpression/actual.js | 0 .../types/ConditionalExpression/expected.js | 0 .../types/ContinueStatement/actual.js | 0 .../types/ContinueStatement/expected.js | 0 .../types/DebuggerStatement/actual.js | 0 .../types/DebuggerStatement/expected.js | 0 .../generation/types/Decorator/actual.js | 0 .../generation/types/Decorator/expected.js | 0 .../types/DoWhileStatement/actual.js | 0 .../types/DoWhileStatement/expected.js | 0 .../generation/types/EmptyStatement/actual.js | 0 .../types/EmptyStatement/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../generation/types/ForInStatement/actual.js | 0 .../types/ForInStatement/expected.js | 0 .../generation/types/ForOfStatement/actual.js | 0 .../types/ForOfStatement/expected.js | 0 .../generation/types/ForStatement/actual.js | 0 .../generation/types/ForStatement/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../generation/types/Identifier/actual.js | 0 .../generation/types/Identifier/expected.js | 0 .../generation/types/IfStatement/actual.js | 0 .../generation/types/IfStatement/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../types/LabeledStatement/actual.js | 0 .../types/LabeledStatement/expected.js | 0 .../generation/types/Literal/actual.js | 0 .../generation/types/Literal/expected.js | 0 .../types/MemberExpression/actual.js | 0 .../types/MemberExpression/expected.js | 0 .../generation/types/NewExpression/actual.js | 0 .../types/NewExpression/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../types/ReturnStatement/actual.js | 0 .../types/ReturnStatement/expected.js | 0 .../types/SequenceExpression/actual.js | 0 .../types/SequenceExpression/expected.js | 0 .../SpreadElement-SpreadProperty/actual.js | 0 .../SpreadElement-SpreadProperty/expected.js | 0 .../SwitchStatement-SwitchCase/actual.js | 0 .../SwitchStatement-SwitchCase/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../generation/types/ThisExpression/actual.js | 0 .../types/ThisExpression/expected.js | 0 .../generation/types/ThrowStatement/actual.js | 0 .../types/ThrowStatement/expected.js | 0 .../types/TryStatement-CatchClause/actual.js | 0 .../TryStatement-CatchClause/expected.js | 0 .../types/UnaryExpression/actual.js | 0 .../types/UnaryExpression/expected.js | 0 .../types/UpdateExpression/actual.js | 0 .../types/UpdateExpression/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../generation/types/WhileStatement/actual.js | 0 .../types/WhileStatement/expected.js | 0 .../generation/types/WithStatement/actual.js | 0 .../types/WithStatement/expected.js | 0 .../generation/types/XJSAttribute/actual.js | 0 .../generation/types/XJSAttribute/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../types/XJSEmptyExpression/actual.js | 0 .../types/XJSEmptyExpression/expected.js | 0 .../types/XJSExpressionContainer/actual.js | 0 .../types/XJSExpressionContainer/expected.js | 0 .../types/XJSMemberExpression/actual.js | 0 .../types/XJSMemberExpression/expected.js | 0 .../types/XJSNamespacedName/actual.js | 0 .../types/XJSNamespacedName/expected.js | 0 .../types/XJSSpreadAttribute/actual.js | 0 .../types/XJSSpreadAttribute/expected.js | 0 .../types/YieldExpression/actual.js | 0 .../types/YieldExpression/expected.js | 0 .../ArgumentsInComprehension.js | 0 .../traceur/ArrayComprehension/Closure.js | 0 .../ArrayComprehension/Error_Disabled.js | 0 .../ArrayComprehension/Error_NotDefined.js | 0 .../traceur/ArrayComprehension/Simple.js | 0 .../ArrayComprehension/ThisInComprehension.js | 0 .../test/fixtures/traceur/ArrayExtras/Fill.js | 0 .../test/fixtures/traceur/ArrayExtras/Find.js | 0 .../fixtures/traceur/ArrayExtras/FindIndex.js | 0 .../test/fixtures/traceur/ArrayExtras/From.js | 0 .../test/fixtures/traceur/ArrayExtras/Of.js | 0 .../test/fixtures/traceur/ArrayIterator.js | 0 .../traceur/ArrowFunctions/AlphaRename.js | 0 .../AlphaRenameThisArguments.js | 0 .../traceur/ArrowFunctions/Arguments.js | 0 .../traceur/ArrowFunctions/ArrowFunctions.js | 0 .../ArrowFunctions/CoverInitializer.js | 0 .../ArrowFunctions/Error_CoverInitializer.js | 0 .../ArrowFunctions/Error_CoverInitializer2.js | 0 .../ArrowFunctions/Error_CoverInitializer3.js | 0 .../traceur/ArrowFunctions/Error_Disabled.js | 0 .../Error_FreeVariableChecker.js | 0 .../Error_InvalidFormalParameters.js | 0 .../ArrowFunctions/Error_LineTerminator.js | 0 .../ArrowFunctions/Error_Precedence.js | 0 .../ArrowFunctions/Error_Precedence2.js | 0 .../ArrowFunctions/Error_Precedence3.js | 0 .../ArrowFunctions/Error_SpreadNotLast.js | 0 .../Error_SpreadOutsideFormals.js | 0 .../ArrowFunctions/FreeVariableChecker.js | 0 .../fixtures/traceur/ArrowFunctions/Parens.js | 0 .../traceur/ArrowFunctions/Skip_Frozen.js | 0 .../Skip_InitializerShorthand.js | 0 .../traceur/ArrowFunctions/Skip_SoftBind.js | 0 .../traceur/ArrowFunctions/SloppyArguments.js | 0 .../ThisBindingInPropertyName.js | 0 .../traceur/ArrowFunctions/ThisBindings.js | 0 .../traceur/AsyncFunctions/AlphaRenaming.js | 0 .../traceur/AsyncFunctions/AsyncArrow.js | 0 .../traceur/AsyncFunctions/AsyncArrow2.js | 0 .../AsyncFunctions/AsyncArrowArguments.js | 0 .../traceur/AsyncFunctions/AsyncArrowThis.js | 0 .../traceur/AsyncFunctions/AsyncMethod.js | 0 .../AsyncMethodObjectLiteral.js | 0 .../traceur/AsyncFunctions/AsyncSyntax.js | 0 .../fixtures/traceur/AsyncFunctions/Basics.js | 0 .../traceur/AsyncFunctions/Complete.js | 0 .../fixtures/traceur/AsyncFunctions/Empty.js | 0 .../AsyncFunctions/Error_AsyncArrow.js | 0 .../AsyncFunctions/Error_AsyncArrow2.js | 0 .../traceur/AsyncFunctions/Error_Disabled.js | 0 .../traceur/AsyncFunctions/Export.module.js | 0 .../traceur/AsyncFunctions/Finally.js | 0 .../traceur/AsyncFunctions/Finally2.js | 0 .../traceur/AsyncFunctions/PromiseCast.js | 0 .../traceur/AsyncFunctions/Prototype.js | 0 .../traceur/AsyncFunctions/Rethrow.js | 0 .../fixtures/traceur/AsyncFunctions/Return.js | 0 .../fixtures/traceur/AsyncFunctions/Throw.js | 0 .../traceur/AsyncFunctions/Timeout.js | 0 .../fixtures/traceur/AsyncFunctions/Value.js | 0 .../fixtures/traceur/AsyncFunctions/Yield.js | 0 .../resources/async-function.js | 0 .../fixtures/traceur/AsyncGenerators/Array.js | 0 .../traceur/AsyncGenerators/AsyncGenerator.js | 0 .../AsyncGenerators/AsyncObservable.js | 0 .../fixtures/traceur/AsyncGenerators/Demo.js | 0 .../traceur/AsyncGenerators/ForOn.module.js | 0 .../traceur/AsyncGenerators/ForOnBody.js | 0 .../traceur/AsyncGenerators/Method.js | 0 .../traceur/AsyncGenerators/Property.js | 0 .../AsyncGenerators/ReturnAsyncGenerator.js | 0 .../AsyncGenerators/ThisAndArguments.js | 0 .../AsyncGenerators/ThrowInAsyncGenerator.js | 0 .../traceur/AsyncGenerators/YieldFor.js | 0 .../traceur/AsyncGenerators/YieldForOn.js | 0 .../AsyncGenerators/resources/observable.js | 0 .../traceur/Classes/ClassMethodInheritance.js | 0 .../traceur/Classes/ClassNameBinding.js | 0 .../traceur/Classes/ClassNameInStack.js | 0 .../fixtures/traceur/Classes/Constructor.js | 0 .../traceur/Classes/ConstructorChaining.js | 0 .../traceur/Classes/ConstructorMember.js | 0 .../traceur/Classes/DefaultConstructor.js | 0 .../traceur/Classes/DeriveFromObject.js | 0 .../fixtures/traceur/Classes/EmptyClass.js | 0 .../traceur/Classes/Error_Disabled.js | 0 .../fixtures/traceur/Classes/Error_GH1556.js | 0 .../Classes/Error_NestedFunctionSuper.js | 0 .../traceur/Classes/Error_NewSuper.js | 0 .../traceur/Classes/Error_NewSuper2.js | 0 .../Classes/Error_NoSuperInDerivedClass.js | 0 .../fixtures/traceur/Classes/Error_Super.js | 0 .../Classes/Error_SuperAsTemplateTag.js | 0 .../Classes/Error_SuperCallInNonDerived.js | 0 .../traceur/Classes/Error_SuperNestedClass.js | 0 .../Error_SuperPropertyOutsideMethod.js | 0 .../traceur/Classes/ExtendCoverFormals.js | 0 .../Classes/ExtendNonConstructableFunction.js | 0 .../fixtures/traceur/Classes/ExtendObject.js | 0 .../fixtures/traceur/Classes/ExtendStrange.js | 0 .../traceur/Classes/FieldInheritance.js | 0 .../traceur/Classes/FieldInitializers.js | 0 .../fixtures/traceur/Classes/FieldLookup.js | 0 .../test/fixtures/traceur/Classes/Fields.js | 0 .../test/fixtures/traceur/Classes/Getters.js | 0 .../fixtures/traceur/Classes/Inheritance.js | 0 .../InheritanceFromMemberExpression.js | 0 .../Classes/InheritanceFromNonclass.js | 0 .../traceur/Classes/InheritanceNameBinding.js | 0 .../test/fixtures/traceur/Classes/Method.js | 0 .../traceur/Classes/MethodInheritance.js | 0 .../fixtures/traceur/Classes/MethodLookup.js | 0 .../fixtures/traceur/Classes/NameBinding.js | 0 .../traceur/Classes/NestedClassSuper.js | 0 .../traceur/Classes/NestedClassSuperAnimal.js | 0 .../traceur/Classes/NewClassExpression.js | 0 .../test/fixtures/traceur/Classes/NonEnum.js | 0 .../traceur/Classes/OptionalParams.js | 0 .../traceur/Classes/PropertyAccessors.js | 0 .../traceur/Classes/PrototypeDescriptor.js | 0 .../fixtures/traceur/Classes/RestParams.js | 0 .../fixtures/traceur/Classes/SemiColon.js | 0 .../fixtures/traceur/Classes/SimpleSuper.js | 0 .../traceur/Classes/Skip_DerivedButton.js | 0 .../Classes/Skip_HTMLBlockquoteElement.js | 0 .../test/fixtures/traceur/Classes/Static.js | 0 .../fixtures/traceur/Classes/StaticSuper.js | 0 .../traceur/Classes/StaticSuperNoExtends.js | 0 .../fixtures/traceur/Classes/StaticSymbol.js | 0 .../test/fixtures/traceur/Classes/Strict.js | 0 .../fixtures/traceur/Classes/SuperChaining.js | 0 .../traceur/Classes/SuperChangeProto.js | 0 .../fixtures/traceur/Classes/SuperInArrow.js | 0 .../fixtures/traceur/Classes/SuperMissing.js | 0 .../traceur/Classes/SuperNestedClass.js | 0 .../fixtures/traceur/Classes/SuperPostfix.js | 0 .../test/fixtures/traceur/Classes/SuperSet.js | 0 .../fixtures/traceur/Classes/SuperUnary.js | 0 .../traceur/Classes/SuperWithoutExtends.js | 0 .../test/fixtures/traceur/Classes/Types.js | 0 .../test/fixtures/traceur/Collections/Map.js | 0 .../test/fixtures/traceur/Collections/Set.js | 0 .../traceur/Collections/SetWithSymbols.js | 0 .../traceur/ComputedPropertyNames/Class.js | 0 .../ComputedPropertyNames.js | 0 .../ComputedPropertyNames/Error_Disabled.js | 0 .../traceur/ComputedPropertyNames/Symbol.js | 0 .../DefaultParameters/Error_SetAccessor.js | 0 .../traceur/DefaultParameters/Simple.js | 0 .../traceur/DefaultParameters/Strict.js | 0 .../traceur/Destructuring/Arguments.js | 0 .../fixtures/traceur/Destructuring/Array.js | 0 .../ArrayPatternTrailingComma.js | 0 .../ArrayPatternWithCoverInitializedName.js | 0 .../ArrayPatternWithInitializer.js | 0 .../traceur/Destructuring/ArrowFunction.js | 0 .../fixtures/traceur/Destructuring/Catch.js | 0 .../fixtures/traceur/Destructuring/Class.js | 0 .../Destructuring/CoverInitializedName.js | 0 .../traceur/Destructuring/CoverInitializer.js | 0 .../Destructuring/CoverInitializerInForOf.js | 0 .../traceur/Destructuring/DefaultParams.js | 0 .../fixtures/traceur/Destructuring/Empty.js | 0 .../traceur/Destructuring/Error_Disabled.js | 0 .../Error_ForInWithInitializer.js | 0 .../Error_ForOfWithInitializer.js | 0 .../Destructuring/Error_InvalidArrowRest.js | 0 .../Error_InvalidCoverInitializedName.js | 0 .../Destructuring/EvaluatesToRvalue.js | 0 .../traceur/Destructuring/EvaluationOrder.js | 0 .../traceur/Destructuring/ForInLoop.js | 0 .../traceur/Destructuring/ForOfLoop.js | 0 .../Destructuring/FunctionArrayPattern.js | 0 .../Destructuring/FunctionObjectPattern.js | 0 .../traceur/Destructuring/Initializer.js | 0 .../Destructuring/InitializerObject.js | 0 .../fixtures/traceur/Destructuring/Method.js | 0 ...ultipleCoverInitializersInArrowFunction.js | 0 .../Destructuring/NestedScopeArguments.js | 0 .../fixtures/traceur/Destructuring/Object.js | 0 .../fixtures/traceur/Destructuring/Rest.js | 0 .../traceur/Destructuring/RestIterator.js | 0 .../traceur/Destructuring/ScopeThis.js | 0 .../traceur/Destructuring/SetAccessor.js | 0 .../traceur/Destructuring/Simplify.js | 0 .../Destructuring/StrangeProperties.js | 0 .../fixtures/traceur/Destructuring/Strict.js | 0 .../traceur/Destructuring/TopLevel.js | 0 .../traceur/Destructuring/ValueTypes.js | 0 .../fixtures/traceur/Destructuring/VarDecl.js | 0 .../fixtures/traceur/Exponentiation/Basics.js | 0 .../fixtures/traceur/ForOf/NewNoParens.js | 0 .../GeneratorComprehension/Error_Disabled.js | 0 .../Error_NotDefined.js | 0 .../traceur/GeneratorComprehension/Simple.js | 0 .../GeneratorComprehension/Skip_Closure.js | 0 .../test/fixtures/traceur/LICENSE | 0 .../fixtures/traceur/Math/acosh.module.js | 0 .../fixtures/traceur/Math/asinh.module.js | 0 .../fixtures/traceur/Math/atanh.module.js | 0 .../test/fixtures/traceur/Math/cbrt.module.js | 0 .../fixtures/traceur/Math/clz32.module.js | 0 .../test/fixtures/traceur/Math/cosh.module.js | 0 .../fixtures/traceur/Math/expm1.module.js | 0 .../fixtures/traceur/Math/fround.module.js | 0 .../fixtures/traceur/Math/hypot.module.js | 0 .../test/fixtures/traceur/Math/imul.module.js | 0 .../fixtures/traceur/Math/log10.module.js | 0 .../fixtures/traceur/Math/log1p.module.js | 0 .../test/fixtures/traceur/Math/log2.module.js | 0 .../test/fixtures/traceur/Math/sign.module.js | 0 .../test/fixtures/traceur/Math/sinh.module.js | 0 .../test/fixtures/traceur/Math/tanh.module.js | 0 .../fixtures/traceur/Math/trunc.module.js | 0 .../Modules/EmptyNamedImport.module.js | 0 .../Modules/Error_DuplicateImport.module.js | 0 .../Modules/Error_ExportKeyword.module.js | 0 .../Modules/Error_ExportKeyword2.module.js | 0 .../Error_ExportStarConflict.module.js | 0 .../Error_ExportStarDuplicateExport.module.js | 0 .../Modules/Error_ImportDefault.module.js | 0 .../Modules/Error_ImportStar.module.js | 0 .../Modules/Error_InvalidExport.module.js | 0 .../Modules/Error_InvalidExport2.module.js | 0 .../Modules/Error_InvalidExport3.module.js | 0 .../Error_InvalidModuleDeclaration.module.js | 0 .../Error_InvalidModuleDeclaration2.module.js | 0 .../Modules/Error_MissingExport.module.js | 0 .../Modules/ExportDestructuring.module.js | 0 .../Modules/ExportForwardDefault.module.js | 0 .../traceur/Modules/ExportStar.module.js | 0 .../traceur/Modules/ExportStarAs.module.js | 0 .../traceur/Modules/Exports.module.js | 0 .../Modules/ImportAsExportAs.module.js | 0 .../traceur/Modules/ImportBasic.module.js | 0 .../traceur/Modules/ImportCircular.module.js | 0 .../traceur/Modules/ImportDefault.module.js | 0 .../Modules/ImportEmptyImportClause.module.js | 0 .../Modules/ImportFromModule.module.js | 0 .../Modules/ImportNoImportClause.module.js | 0 .../traceur/Modules/ImportPair.module.js | 0 .../Modules/ImportReExportDefault.module.js | 0 .../Modules/ImportReExportDefaultAs.module.js | 0 .../traceur/Modules/ModuleDefault.module.js | 0 .../traceur/Modules/ModuleName.module.js | 0 .../traceur/Modules/StaticMethod.module.js | 0 .../traceur/Modules/ThisInModules.module.js | 0 .../traceur/Modules/resources/TestClass.js | 0 .../fixtures/traceur/Modules/resources/a.js | 0 .../fixtures/traceur/Modules/resources/a2.js | 0 .../fixtures/traceur/Modules/resources/b.js | 0 .../fixtures/traceur/Modules/resources/c.js | 0 .../traceur/Modules/resources/clockwise.js | 0 .../fixtures/traceur/Modules/resources/d.js | 0 .../Modules/resources/default-and-named.js | 0 .../resources/default-class-expression.js | 0 .../Modules/resources/default-class.js | 0 .../resources/default-function-expression.js | 0 .../Modules/resources/default-function.js | 0 .../traceur/Modules/resources/default-name.js | 0 .../traceur/Modules/resources/default.js | 0 .../Modules/resources/export-conflict.js | 0 .../Modules/resources/export-destructuring.js | 0 .../resources/export-forward-default-as.js | 0 .../Modules/resources/export-star-as.js | 0 .../fixtures/traceur/Modules/resources/f.js | 0 .../fixtures/traceur/Modules/resources/i.js | 0 .../fixtures/traceur/Modules/resources/m.js | 0 .../fixtures/traceur/Modules/resources/m2.js | 0 .../fixtures/traceur/Modules/resources/m3.js | 0 .../fixtures/traceur/Modules/resources/n.js | 0 .../fixtures/traceur/Modules/resources/o.js | 0 .../fixtures/traceur/Modules/resources/p.js | 0 .../Modules/resources/re-export-default-as.js | 0 .../Modules/resources/re-export-default.js | 0 .../traceur/Modules/resources/side-effect.js | 0 .../traceur/Modules/resources/side-effect2.js | 0 .../fixtures/traceur/Modules/resources/x.js | 0 .../fixtures/traceur/Number/EPSILON.module.js | 0 .../traceur/Number/MAX_SAFE_INTEGER.module.js | 0 .../traceur/Number/MIN_SAFE_INTEGER.module.js | 0 .../traceur/Number/isFinite.module.js | 0 .../traceur/Number/isInteger.module.js | 0 .../fixtures/traceur/Number/isNaN.module.js | 0 .../traceur/Number/isSafeInteger.module.js | 0 .../traceur/NumericLiteral/Error_Disabled.js | 0 .../NumericLiteral/Error_NoBinaryDigits.js | 0 .../NumericLiteral/Error_NoOctalDigits.js | 0 .../fixtures/traceur/NumericLiteral/Simple.js | 0 .../test/fixtures/traceur/ObjectAssign.js | 0 .../Error_Disabled.js | 0 .../Error_Keyword.js | 0 .../Error_MissingVar.js | 0 .../Error_StrictKeyword.js | 0 .../traceur/ObjectInitializerShorthand/Ok.js | 0 .../StrictKeyword.js | 0 .../test/fixtures/traceur/ObjectIs.js | 0 .../test/fixtures/traceur/PrependStatement.js | 0 .../test/fixtures/traceur/Promise.js | 0 .../test/fixtures/traceur/PromiseAll.js | 0 .../test/fixtures/traceur/PromiseResolve.js | 0 .../fixtures/traceur/PromiseThrowInResolve.js | 0 .../Error_Disabled.js | 0 .../Error_NotNamed.js | 0 .../PropertyMethodAssignment.js | 0 .../traceur/PureES6Transformer/Basic.js | 0 .../traceur/RegularExpression/Simple.js | 0 .../fixtures/traceur/Rest/Error_NotLast.js | 0 .../traceur/Rest/Error_SetAccessor.js | 0 .../test/fixtures/traceur/Rest/Simple.js | 0 .../test/fixtures/traceur/Rest/Strict.js | 0 .../fixtures/traceur/Scope/BlockBinding10.js | 0 .../fixtures/traceur/Scope/BlockBinding11.js | 0 .../fixtures/traceur/Scope/BlockBinding2.js | 0 .../fixtures/traceur/Scope/BlockBinding3.js | 0 .../fixtures/traceur/Scope/BlockBinding4.js | 0 .../fixtures/traceur/Scope/BlockBinding5.js | 0 .../fixtures/traceur/Scope/BlockBinding6.js | 0 .../fixtures/traceur/Scope/BlockBinding7.js | 0 .../fixtures/traceur/Scope/BlockBinding8.js | 0 .../fixtures/traceur/Scope/BlockBinding9.js | 0 .../Scope/BlockBindingHiddenOuterLet.js | 0 .../Scope/BlockBindingSiblingRefenceError.js | 0 .../Scope/DeconstructingBlockBinding.js | 0 .../fixtures/traceur/Scope/DeepNestedLet.js | 0 .../traceur/Scope/DeepNestedLetConst.js | 0 .../traceur/Scope/DeepNestedLetVar.js | 0 .../traceur/Scope/DeepNestedLetVarNoInit.js | 0 .../Scope/Error_ConstMissingInitializer.js | 0 .../fixtures/traceur/Scope/Error_Disabled.js | 0 .../Scope/Error_ForInWithInitializerConst.js | 0 .../Scope/Error_ForInWithInitializerLet.js | 0 .../Scope/Error_ForInWithInitializerVar.js | 0 .../Scope/Error_ForOfWithInitializerConst.js | 0 .../Scope/Error_ForOfWithInitializerLet.js | 0 .../Scope/Error_ForOfWithInitializerVar.js | 0 .../Scope/Error_ForWithoutInitializerConst.js | 0 .../Scope/Error_FunctionExpressionInBlock.js | 0 .../traceur/Scope/ForInInitializers.js | 0 .../fixtures/traceur/Scope/FunctionInBlock.js | 0 .../traceur/Scope/LetForInInitializers1.js | 0 .../traceur/Scope/LetForInitializers1.js | 0 .../test/fixtures/traceur/Scope/LetInClass.js | 0 .../fixtures/traceur/Scope/LetInClosure.js | 0 .../test/fixtures/traceur/Scope/LetInFor.js | 0 .../fixtures/traceur/Scope/LetInForBreak.js | 0 .../traceur/Scope/LetInForBreakInner.js | 0 .../traceur/Scope/LetInForBreakNamed.js | 0 .../traceur/Scope/LetInForContinue.js | 0 .../traceur/Scope/LetInForContinueInner.js | 0 .../traceur/Scope/LetInForContinueNamed.js | 0 .../fixtures/traceur/Scope/LetInGenerators.js | 0 .../fixtures/traceur/Scope/LetInProperties.js | 0 .../fixtures/traceur/Scope/LetInWhileLoop.js | 0 .../traceur/Scope/LetInitializerFor1.js | 0 .../traceur/Scope/LetInitializerFor2.js | 0 .../traceur/Scope/LetInitializerFor3.js | 0 .../traceur/Scope/LetInitializerForIn.js | 0 .../traceur/Scope/LetNoInitializer.js | 0 .../traceur/Scope/LetNoInitializerGlobal.js | 0 .../traceur/Scope/LetReinitializeInLoop.js | 0 .../test/fixtures/traceur/Scope/LetWithFor.js | 0 .../fixtures/traceur/Scope/LetWithForIn.js | 0 .../fixtures/traceur/Scope/LetWithSwitch.js | 0 .../fixtures/traceur/Scope/LetWithSwitch2.js | 0 .../traceur/Scope/NameBindingInFunction.js | 0 .../fixtures/traceur/Scope/NestedForLoops.js | 0 .../fixtures/traceur/Scope/NestedFunction1.js | 0 .../fixtures/traceur/Scope/NestedFunction2.js | 0 .../fixtures/traceur/Scope/NestedFunction3.js | 0 .../test/fixtures/traceur/Scope/NestedLet.js | 0 .../traceur/Scope/NestedLetConflict.js | 0 .../fixtures/traceur/Scope/Regress1381.js | 0 .../traceur/Scope/RenameFunctionBlock.js | 0 .../fixtures/traceur/Scope/SiblingScopes.js | 0 .../fixtures/traceur/Scope/TopLevelLet.js | 0 .../traceur/Scope/TopLevelLetConst.js | 0 .../fixtures/traceur/Scope/TopLevelLetVar.js | 0 .../test/fixtures/traceur/Spread/Array.js | 0 .../test/fixtures/traceur/Spread/Call.js | 0 .../traceur/Spread/CallWithUndefined.js | 0 .../test/fixtures/traceur/Spread/Class.js | 0 .../fixtures/traceur/Spread/Error_Disabled.js | 0 .../test/fixtures/traceur/Spread/Iterators.js | 0 .../fixtures/traceur/Spread/MethodCall.js | 0 .../traceur/Spread/MethodCallQuotedName.js | 0 .../test/fixtures/traceur/Spread/New.js | 0 .../test/fixtures/traceur/Spread/New2.js | 0 .../fixtures/traceur/Spread/NewBuiltin.js | 0 .../fixtures/traceur/Spread/NoIterator.js | 0 .../fixtures/traceur/Spread/NotAnObject.js | 0 .../test/fixtures/traceur/Spread/String.js | 0 .../test/fixtures/traceur/Spread/Type.js | 0 .../traceur/StringExtras/CodePointAt.js | 0 .../fixtures/traceur/StringExtras/EndsWith.js | 0 .../traceur/StringExtras/FromCodePoint.js | 0 .../fixtures/traceur/StringExtras/Includes.js | 0 .../fixtures/traceur/StringExtras/Repeat.js | 0 .../traceur/StringExtras/StartsWith.js | 0 .../test/fixtures/traceur/StringIterator.js | 0 .../traceur/SuperObjectLiteral/Error_Super.js | 0 .../SuperObjectLiteral/SuperChaining.js | 0 .../SuperObjectLiteral/SuperChangeProto.js | 0 .../SuperObjectLiteral/SuperInArrow.js | 0 .../SuperObjectLiteral/SuperNestedObject.js | 0 .../SuperObjectLiteral/SuperPostfix.js | 0 .../traceur/SuperObjectLiteral/SuperSet.js | 0 .../traceur/SuperObjectLiteral/SuperUnary.js | 0 .../SuperObjectLiteral/SuperWithoutProto.js | 0 .../traceur/Symbol/GetOwnPropertySymbols.js | 0 .../test/fixtures/traceur/Symbol/Inherited.js | 0 .../test/fixtures/traceur/Symbol/Object.js | 0 .../fixtures/traceur/Symbol/ObjectModel.js | 0 .../traceur/Symbol/TransformationOff.js | 0 .../fixtures/traceur/Syntax/ArrayWithHoles.js | 0 .../CaseClauseShouldBeStatementListItem.js | 0 .../test/fixtures/traceur/Syntax/Empty.js | 0 .../traceur/Syntax/Error_Arguments.js | 0 .../Syntax/Error_DeclarationInDoWhileClass.js | 0 .../Syntax/Error_DeclarationInDoWhileConst.js | 0 .../Error_DeclarationInDoWhileFunction.js | 0 .../Syntax/Error_DeclarationInDoWhileLet.js | 0 ...Error_DeclarationInDoWhileLetOpenSquare.js | 0 .../traceur/Syntax/Error_DeclarationInElse.js | 0 .../traceur/Syntax/Error_DeclarationInFor.js | 0 .../Syntax/Error_DeclarationInForIn.js | 0 .../Syntax/Error_DeclarationInForOf.js | 0 .../traceur/Syntax/Error_DeclarationInIf.js | 0 .../Syntax/Error_DeclarationInWhile.js | 0 ...or_ForInLoopTooManyVariableDeclarations.js | 0 ...or_ForOfLoopTooManyVariableDeclarations.js | 0 .../traceur/Syntax/Error_FunctionParam.js | 0 .../traceur/Syntax/Error_IllegalReturn.js | 0 .../Syntax/Error_IllegalReturn.module.js | 0 .../Error_IsValidSimpleAssignmentTarget.js | 0 .../traceur/Syntax/Error_MultipleDefault.js | 0 .../Syntax/Error_NoLineTerminatorPostfix.js | 0 .../Syntax/Error_ParamDuplicateCheck.js | 0 .../Error_ParamDuplicateCheckNonSimple.js | 0 .../traceur/Syntax/Error_RegExpNotClosed.js | 0 .../Syntax/Error_StrictKeywordsInArguments.js | 0 .../Error_StrictKeywordsInArgumentsPattern.js | 0 ...InPropertyDefinitionIdentifierReference.js | 0 .../Syntax/Error_StrictKeywordsInStrict.js | 0 .../Error_UnicodeEscapeSequenceInName.js | 0 .../traceur/Syntax/Error_WithInClass.js | 0 .../Syntax/Error_WithInModule.module.js | 0 .../Syntax/Error_WithInStrictFunction.js | 0 .../Syntax/Error_WithInStrictProgram.js | 0 .../traceur/Syntax/Error_YieldStarNewLine.js | 0 .../traceur/Syntax/ExpressionValidation.js | 0 .../traceur/Syntax/ImplicitSemiColon.js | 0 .../traceur/Syntax/ImportFromTypo.module.js | 0 .../fixtures/traceur/Syntax/InInBinding.js | 0 .../Syntax/IsValidSimpleAssignmentTarget.js | 0 .../Syntax/MultlineCommentIsNewLine.js | 0 .../traceur/Syntax/NoNewLineHereEndOfFile.js | 0 .../Syntax/NumberLiteralMemberExpression.js | 0 .../Syntax/ParamDuplicateCheckNonSimpleOk.js | 0 .../traceur/Syntax/ParamDuplicateCheckOk.js | 0 .../traceur/Syntax/RegularExpression.js | 0 .../fixtures/traceur/Syntax/StrictKeywords.js | 0 .../traceur/Syntax/StrictKeywordsInPattern.js | 0 .../fixtures/traceur/Syntax/StringEscapes.js | 0 .../Syntax/UnicodeEscapeSequenceInName.js | 0 .../traceur/Syntax/UseStrictEscapeSequence.js | 0 .../Syntax/UseStrictLineContinuation.js | 0 .../test/fixtures/traceur/Syntax/null.js | 0 .../TemplateLiterals/CallExpression.js | 0 .../TemplateLiterals/CommaExpression.js | 0 .../traceur/TemplateLiterals/Default.js | 0 .../TemplateLiterals/Error_Disabled.js | 0 .../Error_InvalidSubstitution.js | 0 .../Error_InvalidSubstitution2.js | 0 .../TemplateLiterals/Error_NotClosed.js | 0 .../traceur/TemplateLiterals/InBlock.js | 0 .../TemplateLiterals/InModule.module.js | 0 .../TemplateLiterals/MemberExpression.js | 0 .../traceur/TemplateLiterals/NewExpression.js | 0 .../traceur/TemplateLiterals/Strict.js | 0 .../traceur/TemplateLiterals/StringRaw.js | 0 .../fixtures/traceur/TemplateLiterals/Tag.js | 0 .../TemplateObjectCaching.module.js | 0 .../traceur/TemplateLiterals/resources/f.js | 0 .../traceur/TemplateLiterals/resources/m.js | 0 .../traceur/TemplateLiterals/resources/n.js | 0 .../resources/template-objects.js | 0 .../Error_CodePointTooHigh.js | 0 .../UnicodeEscapeSequence/Error_Disabled.js | 0 .../Error_HexDigitExpected.js | 0 .../Error_HexDigitExpected2.js | 0 .../Error_HexDigitExpected3.js | 0 .../Error_HexDigitExpected4.js | 0 .../traceur/UnicodeEscapeSequence/Simple.js | 0 .../test/fixtures/traceur/Yield/Arguments.js | 0 .../fixtures/traceur/Yield/BadIterable.js | 0 .../fixtures/traceur/Yield/BinaryOperator.js | 0 .../test/fixtures/traceur/Yield/Break.js | 0 .../test/fixtures/traceur/Yield/BreakForOf.js | 0 .../fixtures/traceur/Yield/CommaOperator.js | 0 .../test/fixtures/traceur/Yield/Continue.js | 0 .../traceur/Yield/DefaultArguments.js | 0 .../fixtures/traceur/Yield/DoGenerator.js | 0 .../Yield/DoWhileStatementWithYield.js | 0 .../fixtures/traceur/Yield/EmptyGenerator.js | 0 .../fixtures/traceur/Yield/Error_Disabled.js | 0 .../fixtures/traceur/Yield/Error_Disabled2.js | 0 .../traceur/Yield/Error_MissingStar.js | 0 .../test/fixtures/traceur/Yield/Finally.js | 0 .../traceur/Yield/ForEmptyGenerator.js | 0 .../fixtures/traceur/Yield/ForGenerator.js | 0 .../fixtures/traceur/Yield/ForInGenerator.js | 0 .../fixtures/traceur/Yield/ForInGenerator2.js | 0 .../fixtures/traceur/Yield/ForInGenerator3.js | 0 .../Yield/ForLexicallyNestedGenerator.js | 0 .../fixtures/traceur/Yield/ForMissingParts.js | 0 .../fixtures/traceur/Yield/ForOfGenerator.js | 0 .../traceur/Yield/ForOfIteratorException.js | 0 .../fixtures/traceur/Yield/ForStatement.js | 0 .../traceur/Yield/FunctionDeclaration.js | 0 .../fixtures/traceur/Yield/GeneratorReturn.js | 0 .../fixtures/traceur/Yield/GeneratorSend.js | 0 .../fixtures/traceur/Yield/GeneratorThrow.js | 0 .../Yield/GeneratorWithoutYieldOrReturn.js | 0 .../test/fixtures/traceur/Yield/Hoisting.js | 0 .../traceur/Yield/HoistingBlockbinding.js | 0 .../fixtures/traceur/Yield/IfGenerator.js | 0 .../traceur/Yield/IfStatementWithYield.js | 0 .../traceur/Yield/LabelledBlockGenerator.js | 0 .../traceur/Yield/LabelledBreakGenerator.js | 0 .../traceur/Yield/MapFilterGenerator.js | 0 .../fixtures/traceur/Yield/ObjectModel.js | 0 .../traceur/Yield/OverrideGenerator.js | 0 .../fixtures/traceur/Yield/ReturnCatch.js | 0 .../fixtures/traceur/Yield/ReturnGenerator.js | 0 .../fixtures/traceur/Yield/ReturnInFinally.js | 0 .../fixtures/traceur/Yield/ReturnYield.js | 0 .../fixtures/traceur/Yield/ReturnYieldFor.js | 0 .../traceur/Yield/SequenceGenerator.js | 0 .../fixtures/traceur/Yield/SimpleGenerator.js | 0 .../traceur/Yield/StatementTestGenerator.js | 0 .../fixtures/traceur/Yield/SwitchGenerator.js | 0 .../traceur/Yield/SwitchStatementWithYield.js | 0 .../test/fixtures/traceur/Yield/This.js | 0 .../fixtures/traceur/Yield/ThrowInCatch.js | 0 .../fixtures/traceur/Yield/ThrowInIterator.js | 0 .../test/fixtures/traceur/Yield/Tree.js | 0 .../test/fixtures/traceur/Yield/Try.js | 0 .../test/fixtures/traceur/Yield/Try10.js | 0 .../test/fixtures/traceur/Yield/Try11.js | 0 .../test/fixtures/traceur/Yield/Try12.js | 0 .../test/fixtures/traceur/Yield/Try2.js | 0 .../test/fixtures/traceur/Yield/Try3.js | 0 .../test/fixtures/traceur/Yield/Try4.js | 0 .../test/fixtures/traceur/Yield/Try5.js | 0 .../test/fixtures/traceur/Yield/Try6.js | 0 .../test/fixtures/traceur/Yield/Try7.js | 0 .../test/fixtures/traceur/Yield/Try8.js | 0 .../test/fixtures/traceur/Yield/Try9.js | 0 .../traceur/Yield/TryCatchGenerator.js | 0 .../traceur/Yield/TryCatchYieldGenerator.js | 0 .../traceur/Yield/TryFinallyGenerator.js | 0 .../fixtures/traceur/Yield/WhileGenerator.js | 0 .../traceur/Yield/WhileStatementWithYield.js | 0 .../traceur/Yield/YieldAssignThrow.js | 0 .../fixtures/traceur/Yield/YieldIdentifier.js | 0 .../fixtures/traceur/Yield/YieldInFinally.js | 0 .../traceur/Yield/YieldNoExpression.js | 0 .../traceur/Yield/YieldUndefinedGenerator.js | 0 .../test/fixtures/traceur/Yield/YieldYield.js | 0 .../Yield/tryFinallyFinallyGenerator.js | 0 .../transformation/api/blacklist/actual.js | 0 .../transformation/api/blacklist/expected.js | 0 .../transformation/api/blacklist/options.json | 0 .../api/unknown-module-formatter/options.json | 0 .../unknown-transformer-in-list/options.json | 0 .../transformation/api/whitelist/actual.js | 0 .../transformation/api/whitelist/expected.js | 0 .../transformation/api/whitelist/options.json | 0 .../async-to-generator/async/actual.js | 0 .../async-to-generator/async/expected.js | 0 .../async-to-generator/expression/actual.js | 0 .../async-to-generator/expression/expected.js | 0 .../named-expression/actual.js | 0 .../named-expression/expected.js | 0 .../async-to-generator/options.json | 0 .../async-to-generator/statement/actual.js | 0 .../async-to-generator/statement/expected.js | 0 .../bluebird-coroutines/class/actual.js | 0 .../bluebird-coroutines/class/expected.js | 0 .../bluebird-coroutines/class/options.json | 0 .../bluebird-coroutines/expression/actual.js | 0 .../expression/expected.js | 0 .../named-expression/actual.js | 0 .../named-expression/expected.js | 0 .../bluebird-coroutines/options.json | 0 .../bluebird-coroutines/statement/actual.js | 0 .../bluebird-coroutines/statement/expected.js | 0 .../transformation/errors/constants/actual.js | 0 .../errors/constants/options.json | 0 .../transformation/errors/syntax/actual.js | 0 .../transformation/errors/syntax/options.json | 0 .../es3/member-expression-literals/actual.js | 0 .../member-expression-literals/expected.js | 0 .../es3/property-literals/actual.js | 0 .../es3/property-literals/expected.js | 0 .../getter-and-setter/actual.js | 0 .../getter-and-setter/expected.js | 0 .../es5.properties.mutators/getter/actual.js | 0 .../getter/expected.js | 0 .../es5.properties.mutators/setter/actual.js | 0 .../setter/expected.js | 0 .../es6.arrow-functions/arguments/actual.js | 0 .../es6.arrow-functions/arguments/expected.js | 0 .../default-parameters/actual.js | 0 .../default-parameters/expected.js | 0 .../destructuring-parameters/actual.js | 0 .../destructuring-parameters/expected.js | 0 .../empty-arguments/actual.js | 0 .../empty-arguments/expected.js | 0 .../es6.arrow-functions/empty-block/actual.js | 0 .../empty-block/expected.js | 0 .../es6.arrow-functions/expression/actual.js | 0 .../expression/expected.js | 0 .../es6.arrow-functions/inside-call/actual.js | 0 .../inside-call/expected.js | 0 .../multiple-arguments/actual.js | 0 .../multiple-arguments/expected.js | 0 .../es6.arrow-functions/nested/actual.js | 0 .../es6.arrow-functions/nested/expected.js | 0 .../es6.arrow-functions/options.json | 0 .../paran-insertion/actual.js | 0 .../paran-insertion/expected.js | 0 .../single-argument/actual.js | 0 .../single-argument/expected.js | 0 .../es6.arrow-functions/spec/actual.js | 0 .../es6.arrow-functions/spec/expected.js | 0 .../es6.arrow-functions/spec/options.json | 0 .../es6.arrow-functions/statement/actual.js | 0 .../es6.arrow-functions/statement/expected.js | 0 .../es6.arrow-functions/this/actual.js | 0 .../es6.arrow-functions/this/expected.js | 0 .../es6.block-scoping-exec/block-scoped-2.js | 0 .../es6.block-scoping-exec/block-scoped.js | 0 .../closure-wrap-collision.js | 0 .../es6.block-scoping-exec/collision-for.js | 0 .../destructuring-defaults.js | 0 .../duplicate-function-scope.js | 0 .../for-continuation.js | 0 .../es6.block-scoping-exec/for-loop-head.js | 0 .../es6.block-scoping-exec/label.js | 0 .../es6.block-scoping-exec/multiple.js | 0 .../es6.block-scoping-exec/nested-labels-2.js | 0 .../es6.block-scoping-exec/nested-labels-3.js | 0 .../es6.block-scoping-exec/nested-labels-4.js | 0 .../es6.block-scoping-exec/nested-labels.js | 0 .../es6.block-scoping-exec/switch-break.js | 0 .../assignment-patterns/actual.js | 0 .../assignment-patterns/expected.js | 0 .../exec.js | 0 .../options.json | 0 .../for-break-continue-return/actual.js | 0 .../for-break-continue-return/expected.js | 0 .../es6.block-scoping/for-break/actual.js | 0 .../es6.block-scoping/for-break/expected.js | 0 .../for-continuation/actual.js | 0 .../for-continuation/expected.js | 0 .../es6.block-scoping/for-continue/actual.js | 0 .../for-continue/expected.js | 0 .../for-return-undefined/actual.js | 0 .../for-return-undefined/expected.js | 0 .../es6.block-scoping/for-return/actual.js | 0 .../es6.block-scoping/for-return/expected.js | 0 .../es6.block-scoping/function/actual.js | 0 .../es6.block-scoping/function/expected.js | 0 .../es6.block-scoping/hoisting/actual.js | 0 .../es6.block-scoping/hoisting/expected.js | 0 .../es6.block-scoping/issue-1051/actual.js | 0 .../es6.block-scoping/issue-1051/expected.js | 0 .../es6.block-scoping/issue-2174/actual.js | 0 .../es6.block-scoping/issue-2174/expected.js | 0 .../es6.block-scoping/issue-973/actual.js | 0 .../es6.block-scoping/issue-973/expected.js | 0 .../jsx-identifier/actual.js | 0 .../jsx-identifier/expected.js | 0 .../loop-initializer-default/actual.js | 0 .../loop-initializer-default/expected.js | 0 .../es6.block-scoping/program/actual.js | 0 .../es6.block-scoping/program/expected.js | 0 .../es6.block-scoping/switch/actual.js | 0 .../es6.block-scoping/switch/expected.js | 0 .../wrap-closure-shadow-variables/actual.js | 0 .../wrap-closure-shadow-variables/expected.js | 0 .../es6.classes-exec/declaration-binding.js | 0 .../es6.classes-exec/expression-binding.js | 0 .../retain-no-call-on-reassign.js | 0 .../es6.classes-exec/shadow-container.js | 0 .../es6.classes-exec/super-change-proto.js | 0 .../accessing-super-class/actual.js | 0 .../accessing-super-class/expected.js | 0 .../accessing-super-properties/actual.js | 0 .../accessing-super-properties/expected.js | 0 .../calling-super-properties/actual.js | 0 .../calling-super-properties/expected.js | 0 .../constructor-order/actual.js | 0 .../constructor-order/expected.js | 0 .../es6.classes-loose/literal-key/actual.js | 0 .../es6.classes-loose/literal-key/expected.js | 0 .../es6.classes-loose/options.json | 0 .../actual.js | 0 .../expected.js | 0 .../es6.classes-loose/super-class/actual.js | 0 .../es6.classes-loose/super-class/expected.js | 0 .../super-function-fallback/actual.js | 0 .../super-function-fallback/expected.js | 0 .../accessing-super-class/actual.js | 0 .../accessing-super-class/expected.js | 0 .../accessing-super-properties/actual.js | 0 .../accessing-super-properties/expected.js | 0 .../calling-super-properties/actual.js | 0 .../calling-super-properties/expected.js | 0 .../calling-super-properties/options.json | 0 .../es6.classes/computed-methods/actual.js | 0 .../es6.classes/computed-methods/exec.js | 0 .../es6.classes/computed-methods/expected.js | 0 .../constructor-binding-collision/actual.js | 0 .../constructor-binding-collision/expected.js | 0 .../es6.classes/constructor/actual.js | 0 .../es6.classes/constructor/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../instance-getter-and-setter/actual.js | 0 .../instance-getter-and-setter/expected.js | 0 .../es6.classes/instance-getter/actual.js | 0 .../es6.classes/instance-getter/expected.js | 0 .../es6.classes/instance-method/actual.js | 0 .../es6.classes/instance-method/expected.js | 0 .../es6.classes/instance-setter/actual.js | 0 .../es6.classes/instance-setter/expected.js | 0 .../name-method-collision/actual.js | 0 .../name-method-collision/expected.js | 0 .../transformation/es6.classes/options.json | 0 .../es6.classes/plain-class/actual.js | 0 .../es6.classes/plain-class/expected.js | 0 .../preserves-directives/actual.js | 0 .../preserves-directives/expected.js | 0 .../relaxed-method-coercion/actual.js | 0 .../relaxed-method-coercion/expected.js | 0 .../es6.classes/statement/actual.js | 0 .../es6.classes/statement/expected.js | 0 .../es6.classes/static/actual.js | 0 .../es6.classes/static/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../super-class-anonymous/actual.js | 0 .../super-class-anonymous/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../es6.classes/super-class/actual.js | 0 .../es6.classes/super-class/expected.js | 0 .../super-function-fallback/actual.js | 0 .../super-function-fallback/expected.js | 0 .../actual.js | 0 .../options.json | 0 .../actual.js | 0 .../options.json | 0 .../actual.js | 0 .../options.json | 0 .../actual.js | 0 .../options.json | 0 .../es6.constants/block-scoped/exec.js | 0 .../es6.constants/block-statement/actual.js | 0 .../es6.constants/block-statement/expected.js | 0 .../destructuring-assignment/actual.js | 0 .../destructuring-assignment/options.json | 0 .../es6.constants/destructuring/actual.js | 0 .../es6.constants/destructuring/expected.js | 0 .../ignore-member-expressions/actual.js | 0 .../ignore-member-expressions/expected.js | 0 .../es6.constants/loop/actual.js | 0 .../es6.constants/loop/options.json | 0 .../es6.constants/no-assignment/actual.js | 0 .../es6.constants/no-assignment/options.json | 0 .../es6.constants/no-classes/actual.js | 0 .../es6.constants/no-classes/options.json | 0 .../es6.constants/no-declaration/actual.js | 0 .../es6.constants/no-declaration/options.json | 0 .../es6.constants/no-for-in/actual.js | 0 .../es6.constants/no-for-in/options.json | 0 .../es6.constants/no-functions/actual.js | 0 .../es6.constants/no-functions/options.json | 0 .../es6.constants/program/actual.js | 0 .../es6.constants/program/expected.js | 0 .../es6.constants/update-expression/actual.js | 0 .../update-expression/options.json | 0 .../array-unpack-optimisation/actual.js | 0 .../array-unpack-optimisation/expected.js | 0 .../es6.destructuring/array/actual.js | 0 .../es6.destructuring/array/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../assignment-expression-pattern/actual.js | 0 .../assignment-expression-pattern/expected.js | 0 .../assignment-expression/actual.js | 0 .../assignment-expression/expected.js | 0 .../assignment-statement/actual.js | 0 .../assignment-statement/expected.js | 0 .../es6.destructuring/chained/exec.js | 0 .../empty-object-pattern/actual.js | 0 .../empty-object-pattern/exec.js | 0 .../empty-object-pattern/expected.js | 0 .../es6.destructuring/empty/actual.js | 0 .../es6.destructuring/empty/expected.js | 0 .../es7-object-rest/actual.js | 0 .../es7-object-rest/expected.js | 0 .../es7-object-rest/options.json | 0 .../es6.destructuring/for-in/actual.js | 0 .../es6.destructuring/for-in/expected.js | 0 .../es6.destructuring/for-of/actual.js | 0 .../es6.destructuring/for-of/expected.js | 0 .../es6.destructuring/known-array/actual.js | 0 .../es6.destructuring/known-array/expected.js | 0 .../member-expression/actual.js | 0 .../member-expression/expected.js | 0 .../es6.destructuring/mixed/actual.js | 0 .../es6.destructuring/mixed/expected.js | 0 .../es6.destructuring/multiple/actual.js | 0 .../es6.destructuring/multiple/expected.js | 0 .../object-advanced/actual.js | 0 .../object-advanced/expected.js | 0 .../es6.destructuring/object-basic/actual.js | 0 .../object-basic/expected.js | 0 .../es6.destructuring/options.json | 0 .../es6.destructuring/parameters/actual.js | 0 .../es6.destructuring/parameters/expected.js | 0 .../spread-generator/exec.js | 0 .../es6.destructuring/spread/actual.js | 0 .../es6.destructuring/spread/expected.js | 0 .../es6.destructuring/spread/options.json | 0 .../es6.for-of-loose/identifier/actual.js | 0 .../es6.for-of-loose/identifier/expected.js | 0 .../es6.for-of-loose/ignore-cases/actual.js | 0 .../es6.for-of-loose/ignore-cases/expected.js | 0 .../es6.for-of-loose/let/actual.js | 0 .../es6.for-of-loose/let/expected.js | 0 .../member-expression/actual.js | 0 .../member-expression/expected.js | 0 .../es6.for-of-loose/multiple/actual.js | 0 .../es6.for-of-loose/multiple/expected.js | 0 .../es6.for-of-loose/options.json | 0 .../es6.for-of-loose/var/actual.js | 0 .../es6.for-of-loose/var/expected.js | 0 .../es6.for-of/identifier/actual.js | 0 .../es6.for-of/identifier/expected.js | 0 .../es6.for-of/ignore-cases/actual.js | 0 .../es6.for-of/ignore-cases/expected.js | 0 .../transformation/es6.for-of/let/actual.js | 0 .../transformation/es6.for-of/let/expected.js | 0 .../es6.for-of/member-expression/actual.js | 0 .../es6.for-of/member-expression/expected.js | 0 .../es6.for-of/multiple/actual.js | 0 .../es6.for-of/multiple/expected.js | 0 .../es6.for-of/nested-label-for-of/actual.js | 0 .../nested-label-for-of/expected.js | 0 .../transformation/es6.for-of/var/actual.js | 0 .../transformation/es6.for-of/var/expected.js | 0 .../export-specifier-default/actual.js | 0 .../export-specifier-default/expected.js | 0 .../es6.modules-amd/exports-default/actual.js | 0 .../exports-default/expected.js | 0 .../es6.modules-amd/exports-default/untitled | 0 .../es6.modules-amd/exports-from/actual.js | 0 .../es6.modules-amd/exports-from/expected.js | 0 .../es6.modules-amd/exports-named/actual.js | 0 .../es6.modules-amd/exports-named/expected.js | 0 .../exports-variable/actual.js | 0 .../exports-variable/expected.js | 0 .../get-module-name-option/actual.js | 0 .../get-module-name-option/expected.js | 0 .../get-module-name-option/options.json | 0 .../hoist-function-exports/actual.js | 0 .../hoist-function-exports/expected.js | 0 .../es6.modules-amd/imports-default/actual.js | 0 .../imports-default/expected.js | 0 .../es6.modules-amd/imports-glob/actual.js | 0 .../es6.modules-amd/imports-glob/expected.js | 0 .../es6.modules-amd/imports-mixing/actual.js | 0 .../imports-mixing/expected.js | 0 .../es6.modules-amd/imports-named/actual.js | 0 .../es6.modules-amd/imports-named/expected.js | 0 .../es6.modules-amd/imports/actual.js | 0 .../es6.modules-amd/imports/expected.js | 0 .../es6.modules-amd/module-name/actual.js | 0 .../es6.modules-amd/module-name/expected.js | 0 .../es6.modules-amd/module-name/options.json | 0 .../es6.modules-amd/options.json | 0 .../es6.modules-amd/overview/actual.js | 0 .../es6.modules-amd/overview/expected.js | 0 .../es6.modules-amd/remap/actual.js | 0 .../es6.modules-amd/remap/expected.js | 0 .../export-1/actual.js | 0 .../export-1/expected.js | 0 .../export-2/actual.js | 0 .../export-2/expected.js | 0 .../export/actual.js | 0 .../export/expected.js | 0 .../import/actual.js | 0 .../import/expected.js | 0 .../es6.modules-common-strict/options.json | 0 .../exports-default-non-function/actual.js | 0 .../exports-default-non-function/expected.js | 0 .../exports-default/actual.js | 0 .../exports-default/expected.js | 0 .../es6.modules-common/exports-from/actual.js | 0 .../exports-from/expected.js | 0 .../exports-named/actual.js | 0 .../exports-named/expected.js | 0 .../exports-variable/actual.js | 0 .../exports-variable/expected.js | 0 .../hoist-function-exports/actual.js | 0 .../hoist-function-exports/expected.js | 0 .../illegal-export-esmodule-2/actual.js | 0 .../illegal-export-esmodule-2/options.json | 0 .../illegal-export-esmodule/actual.js | 0 .../illegal-export-esmodule/options.json | 0 .../imports-default/actual.js | 0 .../imports-default/expected.js | 0 .../imports-default/options.json | 0 .../es6.modules-common/imports-glob/actual.js | 0 .../imports-glob/expected.js | 0 .../imports-mixing/actual.js | 0 .../imports-mixing/expected.js | 0 .../imports-mixing/options.json | 0 .../imports-named/actual.js | 0 .../imports-named/expected.js | 0 .../imports-named/source-mappings.json | 0 .../es6.modules-common/imports/actual.js | 0 .../es6.modules-common/imports/expected.js | 0 .../loose-collision/actual.js | 0 .../loose-collision/options.json | 0 .../es6.modules-common/loose/actual.js | 0 .../es6.modules-common/loose/expected.js | 0 .../es6.modules-common/loose/options.json | 0 .../module-shadow/actual.js | 0 .../module-shadow/expected.js | 0 .../es6.modules-common/options.json | 0 .../es6.modules-common/overview/actual.js | 0 .../es6.modules-common/overview/expected.js | 0 .../es6.modules-common/overview/options.json | 0 .../es6.modules-common/remap/actual.js | 0 .../es6.modules-common/remap/expected.js | 0 .../exports-default/actual.js | 0 .../exports-default/expected.js | 0 .../es6.modules-ignore/exports-from/actual.js | 0 .../exports-from/expected.js | 0 .../exports-named/actual.js | 0 .../exports-named/expected.js | 0 .../exports-variable/actual.js | 0 .../exports-variable/expected.js | 0 .../hoist-function-exports/actual.js | 0 .../hoist-function-exports/expected.js | 0 .../imports-default/actual.js | 0 .../imports-default/expected.js | 0 .../es6.modules-ignore/imports-glob/actual.js | 0 .../imports-glob/expected.js | 0 .../imports-mixing/actual.js | 0 .../imports-mixing/expected.js | 0 .../imports-named/actual.js | 0 .../imports-named/expected.js | 0 .../es6.modules-ignore/imports/actual.js | 0 .../es6.modules-ignore/imports/expected.js | 0 .../es6.modules-ignore/options.json | 0 .../es6.modules-ignore/overview/actual.js | 0 .../es6.modules-ignore/overview/expected.js | 0 .../es6.modules-ignore/remap/actual.js | 0 .../es6.modules-ignore/remap/expected.js | 0 .../exports-default/actual.js | 0 .../exports-default/expected.js | 0 .../es6.modules-system/exports-from/actual.js | 0 .../exports-from/expected.js | 0 .../exports-named/actual.js | 0 .../exports-named/expected.js | 0 .../exports-variable/actual.js | 0 .../exports-variable/expected.js | 0 .../get-module-name-option/actual.js | 0 .../get-module-name-option/expected.js | 0 .../get-module-name-option/options.json | 0 .../hoist-function-exports/actual.js | 0 .../hoist-function-exports/expected.js | 0 .../hoist-function-exports/options.json | 0 .../imports-default/actual.js | 0 .../imports-default/expected.js | 0 .../es6.modules-system/imports-glob/actual.js | 0 .../imports-glob/expected.js | 0 .../imports-mixing/actual.js | 0 .../imports-mixing/expected.js | 0 .../imports-named/actual.js | 0 .../imports-named/expected.js | 0 .../es6.modules-system/imports/actual.js | 0 .../es6.modules-system/imports/expected.js | 0 .../es6.modules-system/options.json | 0 .../es6.modules-system/overview/actual.js | 0 .../es6.modules-system/overview/expected.js | 0 .../es6.modules-system/remap/actual.js | 0 .../es6.modules-system/remap/expected.js | 0 .../es6.modules-umd/exports-default/actual.js | 0 .../exports-default/expected.js | 0 .../es6.modules-umd/exports-from/actual.js | 0 .../es6.modules-umd/exports-from/expected.js | 0 .../es6.modules-umd/exports-named/actual.js | 0 .../es6.modules-umd/exports-named/expected.js | 0 .../exports-variable/actual.js | 0 .../exports-variable/expected.js | 0 .../get-module-name-option/actual.js | 0 .../get-module-name-option/expected.js | 0 .../get-module-name-option/options.json | 0 .../hoist-function-exports/actual.js | 0 .../hoist-function-exports/expected.js | 0 .../es6.modules-umd/imports-default/actual.js | 0 .../imports-default/expected.js | 0 .../es6.modules-umd/imports-glob/actual.js | 0 .../es6.modules-umd/imports-glob/expected.js | 0 .../es6.modules-umd/imports-mixing/actual.js | 0 .../imports-mixing/expected.js | 0 .../es6.modules-umd/imports-named/actual.js | 0 .../es6.modules-umd/imports-named/expected.js | 0 .../es6.modules-umd/imports/actual.js | 0 .../es6.modules-umd/imports/expected.js | 0 .../es6.modules-umd/module-id/actual.js | 0 .../es6.modules-umd/module-id/expected.js | 0 .../es6.modules-umd/module-id/options.json | 0 .../es6.modules-umd/module-name/actual.js | 0 .../es6.modules-umd/module-name/expected.js | 0 .../es6.modules-umd/module-name/options.json | 0 .../non-default-imports/actual.js | 0 .../non-default-imports/expected.js | 0 .../es6.modules-umd/options.json | 0 .../es6.modules-umd/overview/actual.js | 0 .../es6.modules-umd/overview/expected.js | 0 .../es6.modules-umd/remap/actual.js | 0 .../es6.modules-umd/remap/expected.js | 0 .../es6.modules/comments-explosion/actual.js | 0 .../comments-explosion/expected.js | 0 .../transformation/es6.modules/options.json | 0 .../es6.modules/retain-lines/actual.js | 0 .../es6.modules/retain-lines/expected.js | 0 .../es6.modules/retain-lines/options.json | 0 .../transformation/es6.modules/spec/actual.js | 0 .../es6.modules/spec/expected.js | 0 .../es6.modules/spec/options.json | 0 .../es6.object-super/options.json | 0 .../transformation/es6.object-super/simple.js | 0 .../statically-bound/actual.js | 0 .../statically-bound/expected.js | 0 .../default-before-last/actual.js | 0 .../default-before-last/expected.js | 0 .../default-destructuring/exec.js | 0 .../es6.parameters/default-eval/actual.js | 0 .../es6.parameters/default-eval/expected.js | 0 .../es6.parameters/default-iife-1128/exec.js | 0 .../es6.parameters/default-multiple/actual.js | 0 .../default-multiple/expected.js | 0 .../es6.parameters/default-single/actual.js | 0 .../es6.parameters/default-single/expected.js | 0 .../es6.parameters/options.json | 0 .../rest-arrow-functions/actual.js | 0 .../rest-arrow-functions/expected.js | 0 .../rest-async-function/actual.js | 0 .../rest-async-function/expected.js | 0 .../rest-async-function/options.json | 0 .../rest-binding-deoptimisation/actual.js | 0 .../rest-binding-deoptimisation/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../rest-flow-parameter-reference/actual.js | 0 .../rest-flow-parameter-reference/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../es6.parameters/rest-multiple/actual.js | 0 .../es6.parameters/rest-multiple/expected.js | 0 .../es6.parameters/rest-nested-iife/actual.js | 0 .../rest-nested-iife/expected.js | 0 .../es6.parameters/rest-pattern/actual.js | 0 .../es6.parameters/rest-pattern/expected.js | 0 .../rest-spread-optimisation/actual.js | 0 .../rest-spread-optimisation/expected.js | 0 .../argument/actual.js | 0 .../argument/expected.js | 0 .../assignment/actual.js | 0 .../assignment/expected.js | 0 .../coerce/actual.js | 0 .../coerce/expected.js | 0 .../ignore-symbol/actual.js | 0 .../ignore-symbol/expected.js | 0 .../method/actual.js | 0 .../method/expected.js | 0 .../mixed/actual.js | 0 .../mixed/expected.js | 0 .../multiple/actual.js | 0 .../multiple/expected.js | 0 .../options.json | 0 .../single/actual.js | 0 .../single/expected.js | 0 .../this/actual.js | 0 .../this/expected.js | 0 .../two/actual.js | 0 .../two/expected.js | 0 .../variable/actual.js | 0 .../variable/expected.js | 0 .../argument/actual.js | 0 .../argument/expected.js | 0 .../assignment/actual.js | 0 .../assignment/expected.js | 0 .../ignore-symbol/actual.js | 0 .../ignore-symbol/expected.js | 0 .../es6.properties.computed/method/actual.js | 0 .../method/expected.js | 0 .../es6.properties.computed/mixed/actual.js | 0 .../es6.properties.computed/mixed/expected.js | 0 .../multiple/actual.js | 0 .../multiple/expected.js | 0 .../es6.properties.computed/options.json | 0 .../es6.properties.computed/single/actual.js | 0 .../single/expected.js | 0 .../es6.properties.computed/this/actual.js | 0 .../es6.properties.computed/this/expected.js | 0 .../es6.properties.computed/two/actual.js | 0 .../es6.properties.computed/two/expected.js | 0 .../variable/actual.js | 0 .../variable/expected.js | 0 .../method-computed/actual.js | 0 .../method-computed/expected.js | 0 .../method-computed/options.json | 0 .../method-plain/actual.js | 0 .../method-plain/expected.js | 0 .../shorthand-comments/actual.js | 0 .../shorthand-comments/expected.js | 0 .../shorthand-mixed/actual.js | 0 .../shorthand-mixed/expected.js | 0 .../shorthand-multiple/actual.js | 0 .../shorthand-multiple/expected.js | 0 .../shorthand-single/actual.js | 0 .../shorthand-single/expected.js | 0 .../es6.regex.sticky/basic/actual.js | 0 .../es6.regex.sticky/basic/expected.js | 0 .../ignore-non-sticky/actual.js | 0 .../ignore-non-sticky/expected.js | 0 .../es6.regex.unicode/basic/actual.js | 0 .../es6.regex.unicode/basic/expected.js | 0 .../ignore-non-unicode/actual.js | 0 .../ignore-non-unicode/expected.js | 0 .../es6.spec.block-scoping-fail/assignment.js | 0 .../es6.spec.block-scoping-fail/call-2.js | 0 .../es6.spec.block-scoping-fail/call-3.js | 0 .../es6.spec.block-scoping-fail/call.js | 0 .../es6.spec.block-scoping-fail/defaults.js | 0 .../destructuring.js | 0 .../es6.spec.block-scoping-fail/export.js | 0 .../es6.spec.block-scoping-fail/options.json | 0 .../es6.spec.block-scoping-fail/update.js | 0 .../es6.spec.block-scoping-pass/assignment.js | 0 .../es6.spec.block-scoping-pass/call.js | 0 .../es6.spec.block-scoping-pass/defaults.js | 0 .../destructuring.js | 0 .../es6.spec.block-scoping-pass/export.js | 0 .../es6.spec.block-scoping-pass/options.json | 0 .../es6.spec.block-scoping-pass/update.js | 0 .../es6.spec.symbols/instanceof/actual.js | 0 .../es6.spec.symbols/instanceof/exec.js | 0 .../es6.spec.symbols/instanceof/expected.js | 0 .../es6.spec.symbols/options.json | 0 .../es6.spec.symbols/typeof/actual.js | 0 .../es6.spec.symbols/typeof/exec.js | 0 .../es6.spec.symbols/typeof/expected.js | 0 .../escape-quotes/actual.js | 0 .../escape-quotes/expected.js | 0 .../functions/actual.js | 0 .../functions/expected.js | 0 .../multiline/actual.js | 0 .../multiline/expected.js | 0 .../multiple/actual.js | 0 .../multiple/expected.js | 0 .../es6.spec.template-literals/none/actual.js | 0 .../none/expected.js | 0 .../es6.spec.template-literals/only/actual.js | 0 .../only/expected.js | 0 .../es6.spec.template-literals/options.json | 0 .../single/actual.js | 0 .../single/expected.js | 0 .../statement/actual.js | 0 .../statement/expected.js | 0 .../es6.spread/arguments-array/actual.js | 0 .../es6.spread/arguments-array/expected.js | 0 .../es6.spread/arguments-concat/actual.js | 0 .../es6.spread/arguments-concat/expected.js | 0 .../es6.spread/arguments/actual.js | 0 .../es6.spread/arguments/expected.js | 0 .../es6.spread/array-literal-first/actual.js | 0 .../array-literal-first/expected.js | 0 .../es6.spread/array-literal-middle/actual.js | 0 .../array-literal-middle/expected.js | 0 .../array-literal-multiple/actual.js | 0 .../array-literal-multiple/expected.js | 0 .../es6.spread/array-literals/actual.js | 0 .../es6.spread/array-literals/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../es6.spread/known-rest/actual.js | 0 .../es6.spread/known-rest/expected.js | 0 .../method-call-array-literal/actual.js | 0 .../method-call-array-literal/expected.js | 0 .../es6.spread/method-call-first/actual.js | 0 .../es6.spread/method-call-first/expected.js | 0 .../es6.spread/method-call-middle/actual.js | 0 .../es6.spread/method-call-middle/expected.js | 0 .../method-call-multiple-args/actual.js | 0 .../method-call-multiple-args/expected.js | 0 .../es6.spread/method-call-multiple/actual.js | 0 .../method-call-multiple/expected.js | 0 .../method-call-single-arg/actual.js | 0 .../method-call-single-arg/expected.js | 0 .../es6.spread/new-expression/actual.js | 0 .../es6.spread/new-expression/expected.js | 0 .../transformation/es6.spread/options.json | 0 .../es6.spread/single/actual.js | 0 .../es6.spread/single/expected.js | 0 .../es6.spread/this-context/actual.js | 0 .../es6.spread/this-context/expected.js | 0 .../es6.tail-call/call-apply/actual.js | 0 .../es6.tail-call/call-apply/expected.js | 0 .../default-parameters/actual.js | 0 .../default-parameters/expected.js | 0 .../expression-consequent/actual.js | 0 .../expression-consequent/expected.js | 0 .../es6.tail-call/expressions/actual.js | 0 .../es6.tail-call/expressions/expected.js | 0 .../es6.tail-call/factorial/actual.js | 0 .../es6.tail-call/factorial/expected.js | 0 .../es6.tail-call/ignore-reassigned/actual.js | 0 .../ignore-reassigned/expected.js | 0 .../es6.tail-call/max-args/actual.js | 0 .../es6.tail-call/max-args/expected.js | 0 .../es6.tail-call/parameter-exceeds/actual.js | 0 .../es6.tail-call/parameter-exceeds/exec.js | 0 .../parameter-exceeds/expected.js | 0 .../es6.tail-call/recursion/actual.js | 0 .../es6.tail-call/recursion/expected.js | 0 .../es6.tail-call/shadow/actual.js | 0 .../es6.tail-call/shadow/expected.js | 0 .../es6.tail-call/try-catch/actual.js | 0 .../es6.tail-call/try-catch/expected.js | 0 .../escape-quotes/actual.js | 0 .../escape-quotes/expected.js | 0 .../expression-first/actual.js | 0 .../expression-first/expected.js | 0 .../es6.template-literals/functions/actual.js | 0 .../functions/expected.js | 0 .../es6.template-literals/multiline/actual.js | 0 .../multiline/expected.js | 0 .../es6.template-literals/multiple/actual.js | 0 .../multiple/expected.js | 0 .../es6.template-literals/none/actual.js | 0 .../es6.template-literals/none/expected.js | 0 .../es6.template-literals/only/actual.js | 0 .../es6.template-literals/only/expected.js | 0 .../es6.template-literals/single/actual.js | 0 .../es6.template-literals/single/expected.js | 0 .../es6.template-literals/statement/actual.js | 0 .../statement/expected.js | 0 .../es6.template-literals/tag-loose/actual.js | 0 .../tag-loose/expected.js | 0 .../tag-loose/options.json | 0 .../es6.template-literals/tag/actual.js | 0 .../es6.template-literals/tag/expected.js | 0 .../constructor-collision/actual.js | 0 .../constructor-collision/expected.js | 0 .../es7.class-properties/derived/actual.js | 0 .../es7.class-properties/derived/expected.js | 0 .../instance-undefined/actual.js | 0 .../instance-undefined/expected.js | 0 .../es7.class-properties/instance/actual.js | 0 .../es7.class-properties/instance/expected.js | 0 .../method-collision/actual.js | 0 .../method-collision/options.json | 0 .../es7.class-properties/options.json | 0 .../static-undefined/actual.js | 0 .../static-undefined/exec.js | 0 .../static-undefined/expected.js | 0 .../es7.class-properties/static/actual.js | 0 .../es7.class-properties/static/exec.js | 0 .../es7.class-properties/static/expected.js | 0 .../super-expression/actual.js | 0 .../super-expression/expected.js | 0 .../super-statement/actual.js | 0 .../super-statement/expected.js | 0 .../es7.comprehensions/arguments/actual.js | 0 .../es7.comprehensions/arguments/expected.js | 0 .../array-expression-single-if/actual.js | 0 .../array-expression-single-if/expected.js | 0 .../array-expression-single/actual.js | 0 .../array-expression-single/expected.js | 0 .../array-multiple-if/actual.js | 0 .../array-multiple-if/expected.js | 0 .../array-multiple/actual.js | 0 .../array-multiple/expected.js | 0 .../array-single-if/actual.js | 0 .../array-single-if/expected.js | 0 .../es7.comprehensions/array-single/actual.js | 0 .../array-single/expected.js | 0 .../es7.comprehensions/array-this/actual.js | 0 .../es7.comprehensions/array-this/expected.js | 0 .../es7.comprehensions/generator/exec.js | 0 .../es7.comprehensions/options.json | 0 .../class-getter-and-setter/actual.js | 0 .../class-getter-and-setter/expected.js | 0 .../es7.decorators/class-getter/actual.js | 0 .../es7.decorators/class-getter/expected.js | 0 .../class-init-instance-props/actual.js | 0 .../class-init-instance-props/exec.js | 0 .../class-init-instance-props/expected.js | 0 .../class-init-static-props/actual.js | 0 .../class-init-static-props/exec.js | 0 .../class-init-static-props/expected.js | 0 .../es7.decorators/class-method/actual.js | 0 .../es7.decorators/class-method/expected.js | 0 .../es7.decorators/class-modules/actual.js | 0 .../es7.decorators/class-modules/expected.js | 0 .../class-no-init-instance-props/actual.js | 0 .../class-no-init-instance-props/expected.js | 0 .../class-no-init-static-props/actual.js | 0 .../class-no-init-static-props/expected.js | 0 .../es7.decorators/class-setter/actual.js | 0 .../es7.decorators/class-setter/expected.js | 0 .../es7.decorators/class-super/actual.js | 0 .../es7.decorators/class-super/expected.js | 0 .../es7.decorators/class/actual.js | 0 .../es7.decorators/class/expected.js | 0 .../exec-object-method-autobind.js | 0 .../exec-class-method-autobind/exec.js | 0 .../es7.decorators/member-expressions/exec.js | 0 .../object-getter-and-setter/actual.js | 0 .../object-getter-and-setter/expected.js | 0 .../es7.decorators/object-getter/actual.js | 0 .../es7.decorators/object-getter/expected.js | 0 .../es7.decorators/object-setter/actual.js | 0 .../es7.decorators/object-setter/expected.js | 0 .../es7.decorators/object/actual.js | 0 .../es7.decorators/object/exec.js | 0 .../es7.decorators/object/expected.js | 0 .../es7.decorators/options.json | 0 .../es7.do-expressions/do-while.js | 0 .../es7.do-expressions/empty.js | 0 .../es7.do-expressions/for-in.js | 0 .../transformation/es7.do-expressions/for.js | 0 .../es7.do-expressions/if-else-if.js | 0 .../es7.do-expressions/if-else.js | 0 .../transformation/es7.do-expressions/if.js | 0 .../es7.do-expressions/options.json | 0 .../es7.do-expressions/single-expression.js | 0 .../variable-declaration-end.js | 0 .../variable-declaration-start.js | 0 .../es7.do-expressions/while.js | 0 .../assignment/actual.js | 0 .../assignment/expected.js | 0 .../es7.exponentian-operator/binary/actual.js | 0 .../binary/expected.js | 0 .../comprehensive/exec.js | 0 .../default-commonjs/actual.js | 0 .../default-commonjs/expected.js | 0 .../default-compound-es6/actual.js | 0 .../default-compound-es6/expected.js | 0 .../default-compound-es6/options.json | 0 .../default-es6/actual.js | 0 .../default-es6/expected.js | 0 .../default-es6/options.json | 0 .../namespace-commonjs/actual.js | 0 .../namespace-commonjs/expected.js | 0 .../namespace-compound-es6/actual.js | 0 .../namespace-compound-es6/expected.js | 0 .../namespace-compound-es6/options.json | 0 .../namespace-es6/actual.js | 0 .../namespace-es6/expected.js | 0 .../namespace-es6/options.json | 0 .../es7.export-extensions/options.json | 0 .../es7.function-bind/bind/actual.js | 0 .../es7.function-bind/bind/expected.js | 0 .../es7.function-bind/call/actual.js | 0 .../es7.function-bind/call/expected.js | 0 .../es7.function-bind/complex-call/actual.js | 0 .../es7.function-bind/complex-call/exec.js | 0 .../complex-call/expected.js | 0 .../es7.function-bind/options.json | 0 .../static-contexts/actual.js | 0 .../static-contexts/expected.js | 0 .../es7.object-spread/assignment/actual.js | 0 .../es7.object-spread/assignment/expected.js | 0 .../es7.object-spread/expression/actual.js | 0 .../es7.object-spread/expression/expected.js | 0 .../es7.object-spread/options.json | 0 .../variable-declaration/actual.js | 0 .../variable-declaration/expected.js | 0 .../arrow-function/actual.js | 0 .../arrow-function/expected.js | 0 .../call/actual.js | 0 .../call/expected.js | 0 .../declaration/actual.js | 0 .../declaration/expected.js | 0 .../new-expression/actual.js | 0 .../new-expression/expected.js | 0 .../es7.trailing-function-commas/options.json | 0 .../fixtures/transformation/flow/options.json | 0 .../flow/strip-array-types/actual.js | 0 .../flow/strip-array-types/expected.js | 0 .../flow/strip-call-properties/actual.js | 0 .../flow/strip-call-properties/expected.js | 0 .../flow/strip-declare-module/actual.js | 0 .../flow/strip-declare-statements/actual.js | 0 .../flow/strip-directive/actual.js | 0 .../flow/strip-directive/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../strip-qualified-generic-type/actual.js | 0 .../strip-qualified-generic-type/expected.js | 0 .../flow/strip-string-literal-types/actual.js | 0 .../strip-string-literal-types/expected.js | 0 .../flow/strip-tuples/actual.js | 0 .../flow/strip-tuples/expected.js | 0 .../flow/strip-type-alias/actual.js | 0 .../flow/strip-type-annotations/actual.js | 0 .../flow/strip-type-annotations/expected.js | 0 .../flow/strip-typecasts/actual.js | 0 .../flow/strip-typecasts/expected.js | 0 .../flow/type-comments/actual.js | 0 .../flow/type-comments/expected.js | 0 .../jscript/arrow-function/exec.js | 0 .../transformation/jscript/options.json | 0 .../jscript/simple-class/actual.js | 0 .../jscript/simple-class/expected.js | 0 .../jscript/simple-class/options.json | 0 .../var-named-function-expression/actual.js | 0 .../var-named-function-expression/expected.js | 0 .../completion-statements/actual.js | 0 .../completion-statements/expected.js | 0 .../issue-1408/actual.js | 0 .../issue-1408/exec.js | 0 .../issue-1408/expected.js | 0 .../issue-1408/imported.js | 0 .../issue-1409/actual.js | 0 .../issue-1409/exec.js | 0 .../issue-1409/expected.js | 0 .../issue-1520/actual.js | 0 .../issue-1520/expected.js | 0 .../issue-1522/actual.js | 0 .../issue-1522/exec.js | 0 .../issue-1522/expected.js | 0 .../issue-1522/y.js | 0 .../issue-1523/actual.js | 0 .../issue-1523/expected.js | 0 .../issue-1524/actual.js | 0 .../issue-1524/expected.js | 0 .../issue-1546/actual.js | 0 .../issue-1546/expected.js | 0 .../options.json | 0 .../invalid-identifiers/actual.js | 0 .../invalid-identifiers/expected.js | 0 .../options.json | 0 .../valid-identifiers/actual.js | 0 .../valid-identifiers/expected.js | 0 .../invalid-identifiers/actual.js | 0 .../invalid-identifiers/expected.js | 0 .../options.json | 0 .../valid-identifiers/actual.js | 0 .../valid-identifiers/expected.js | 0 .../expression-nested/actual.js | 0 .../expression-nested/expected.js | 0 .../expression-top-level/actual.js | 0 .../expression-top-level/expected.js | 0 .../minification.remove-console/options.json | 0 .../statement-nested/actual.js | 0 .../statement-nested/expected.js | 0 .../statement-top-level/actual.js | 0 .../statement-top-level/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../fixtures/transformation/misc/options.json | 0 .../misc/regression-1130/actual.js | 0 .../misc/regression-1130/expected.js | 0 .../misc/regression-1149/actual.js | 0 .../misc/regression-1149/expected.js | 0 .../misc/regression-1155/actual.js | 0 .../misc/regression-1155/expected.js | 0 .../misc/regression-1168/actual.js | 0 .../misc/regression-1168/expected.js | 0 .../misc/regression-1169/actual.js | 0 .../misc/regression-1169/expected.js | 0 .../misc/regression-1199/actual.js | 0 .../misc/regression-1199/expected.js | 0 .../misc/regression-1489/actual.js | 0 .../misc/regression-1489/expected.js | 0 .../misc/regression-1489/options.json | 0 .../actual.js | 0 .../expected.js | 0 .../transformation/misc/shebang/actual.js | 0 .../transformation/misc/shebang/expected.js | 0 .../optimisation.modules.system/options.json | 0 .../setters/actual.js | 0 .../setters/expected.js | 0 .../children/actual.js | 0 .../children/expected.js | 0 .../constructor/actual.js | 0 .../constructor/expected.js | 0 .../deep-constant-violation/actual.js | 0 .../deep-constant-violation/expected.js | 0 .../dont-hoist-to-same-function/actual.js | 0 .../dont-hoist-to-same-function/expected.js | 0 .../function-parameter/actual.js | 0 .../function-parameter/expected.js | 0 .../global-reference/actual.js | 0 .../global-reference/expected.js | 0 .../html-element/actual.js | 0 .../html-element/expected.js | 0 .../inline-elements/actual.js | 0 .../inline-elements/expected.js | 0 .../inline-elements/options.json | 0 .../inner-declaration/actual.js | 0 .../inner-declaration/expected.js | 0 .../options.json | 0 .../parameter-reference/actual.js | 0 .../parameter-reference/expected.js | 0 .../reassignment/actual.js | 0 .../reassignment/expected.js | 0 .../ref-deopt/actual.js | 0 .../ref-deopt/expected.js | 0 .../spread-deopt/actual.js | 0 .../spread-deopt/expected.js | 0 .../component-with-props/actual.js | 0 .../component-with-props/expected.js | 0 .../component/actual.js | 0 .../component/expected.js | 0 .../html-element-with-props/actual.js | 0 .../html-element-with-props/expected.js | 0 .../html-element/actual.js | 0 .../html-element/expected.js | 0 .../key/actual.js | 0 .../key/expected.js | 0 .../nested-components/actual.js | 0 .../nested-components/expected.js | 0 .../nested-html-elements/actual.js | 0 .../nested-html-elements/expected.js | 0 .../nested/actual.js | 0 .../nested/expected.js | 0 .../options.json | 0 .../ref-deopt/actual.js | 0 .../ref-deopt/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../self-closing-component/actual.js | 0 .../self-closing-component/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../self-closing-html-element/actual.js | 0 .../self-closing-html-element/expected.js | 0 .../shorthand-attributes/actual.js | 0 .../shorthand-attributes/expected.js | 0 .../spread-deopt/actual.js | 0 .../spread-deopt/expected.js | 0 .../react-compat/convert-component/actual.js | 0 .../convert-component/expected.js | 0 .../react-compat/convert-tags/actual.js | 0 .../react-compat/convert-tags/expected.js | 0 .../transformation/react-compat/options.json | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../react/arrow-functions/actual.js | 0 .../react/arrow-functions/expected.js | 0 .../react/arrow-functions/options.json | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../display-name-export-default/actual.js | 0 .../display-name-export-default/expected.js | 0 .../react/display-name-if-missing/actual.js | 0 .../react/display-name-if-missing/expected.js | 0 .../display-name-object-declaration/actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../react/honor-custom-jsx-comment/actual.js | 0 .../honor-custom-jsx-comment/expected.js | 0 .../honor-custom-jsx-pragma-option/actual.js | 0 .../expected.js | 0 .../options.json | 0 .../jsx-with-retainlines-option/actual.js | 0 .../jsx-with-retainlines-option/expected.js | 0 .../jsx-with-retainlines-option/options.json | 0 .../jsx-without-retainlines-option/actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../options.json | 0 .../transformation/react/options.json | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../should-allow-js-namespacing/actual.js | 0 .../should-allow-js-namespacing/blacklist.js | 0 .../should-allow-js-namespacing/expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../should-convert-simple-tags/actual.js | 0 .../should-convert-simple-tags/expected.js | 0 .../should-convert-simple-text/actual.js | 0 .../should-convert-simple-text/expected.js | 0 .../should-disallow-xml-namespacing/actual.js | 0 .../options.json | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../actual.js | 0 .../expected.js | 0 .../regenerator/default-parameters/exec.js | 0 .../destructuring-parameters/exec.js | 0 .../regenerator/destructuring/exec.js | 0 .../regenerator/rest-parameters/exec.js | 0 .../runtime/aliased-constructors/actual.js | 0 .../runtime/aliased-constructors/expected.js | 0 .../runtime/catch-all/actual.js | 0 .../runtime/catch-all/expected.js | 0 .../runtime/es6-for-of/actual.js | 0 .../runtime/es6-for-of/expected.js | 0 .../es7-array-comprehensions/actual.js | 0 .../es7-array-comprehensions/expected.js | 0 .../transformation/runtime/full/actual.js | 0 .../transformation/runtime/full/expected.js | 0 .../runtime/modules-amd/actual.js | 0 .../runtime/modules-amd/expected.js | 0 .../runtime/modules-amd/options.json | 0 .../runtime/modules-common/actual.js | 0 .../runtime/modules-common/expected.js | 0 .../runtime/modules-system/actual.js | 0 .../runtime/modules-system/expected.js | 0 .../runtime/modules-system/options.json | 0 .../runtime/modules-umd/actual.js | 0 .../runtime/modules-umd/expected.js | 0 .../runtime/modules-umd/options.json | 0 .../transformation/runtime/options.json | 0 .../runtime/regenerator-runtime/actual.js | 0 .../runtime/regenerator-runtime/expected.js | 0 .../runtime/symbol-iterator-in/actual.js | 0 .../runtime/symbol-iterator-in/expected.js | 0 .../runtime/symbol-iterator/actual.js | 0 .../runtime/symbol-iterator/expected.js | 0 .../source-maps/arrow-function/actual.js | 0 .../source-maps/arrow-function/expected.js | 0 .../arrow-function/source-mappings.json | 0 .../source-maps/class/actual.js | 0 .../source-maps/class/expected.js | 0 .../source-maps/class/source-mappings.json | 0 .../transformation/source-maps/full/actual.js | 0 .../source-maps/full/expected.js | 0 .../source-maps/full/source-map.json | 0 .../source-maps/inline/actual.js | 0 .../source-maps/inline/expected.js | 0 .../source-maps/inline/options.json | 0 .../transformation/source-maps/options.json | 0 .../spec.function-name/assignment/actual.js | 0 .../spec.function-name/assignment/expected.js | 0 .../spec.function-name/basic/actual.js | 0 .../spec.function-name/basic/expected.js | 0 .../spec.function-name/class-method/actual.js | 0 .../class-method/expected.js | 0 .../spec.function-name/collisions/actual.js | 0 .../spec.function-name/collisions/expected.js | 0 .../spec.function-name/eval/actual.js | 0 .../spec.function-name/eval/expected.js | 0 .../spec.function-name/export/actual.js | 0 .../spec.function-name/export/expected.js | 0 .../spec.function-name/export/options.json | 0 .../spec.function-name/global/actual.js | 0 .../spec.function-name/global/expected.js | 0 .../spec.function-name/modules-2/actual.js | 0 .../spec.function-name/modules-2/expected.js | 0 .../spec.function-name/modules-3/actual.js | 0 .../spec.function-name/modules-3/expected.js | 0 .../spec.function-name/modules/actual.js | 0 .../spec.function-name/modules/expected.js | 0 .../spec.function-name/object/actual.js | 0 .../spec.function-name/object/expected.js | 0 .../spec.function-name/options.json | 0 .../spec.function-name/own-bindings/actual.js | 0 .../own-bindings/expected.js | 0 .../self-reference/actual.js | 0 .../self-reference/expected.js | 0 .../shorthand-property/actual.js | 0 .../shorthand-property/expected.js | 0 .../spec.function-name/smoke/exec.js | 0 .../spec.function-name/smoke/options.json | 0 .../assignment-expression/actual.js | 0 .../assignment-expression/expected.js | 0 .../assignment-statement/actual.js | 0 .../assignment-statement/expected.js | 0 .../spec.proto-to-assign/class/actual.js | 0 .../spec.proto-to-assign/class/expected.js | 0 .../object-literal/actual.js | 0 .../object-literal/expected.js | 0 .../spec.proto-to-assign/options.json | 0 .../spec.undefined-to-void/basic/actual.js | 0 .../spec.undefined-to-void/basic/expected.js | 0 .../member-expression/actual.js | 0 .../member-expression/expected.js | 0 .../spec.undefined-to-void/options.json | 0 .../leading-comments-with-existing/actual.js | 0 .../expected.js | 0 .../strict/leading-comments/actual.js | 0 .../strict/leading-comments/expected.js | 0 .../undefined-this-arrow-function/actual.js | 0 .../undefined-this-arrow-function/expected.js | 0 .../strict/undefined-this-root-call/actual.js | 0 .../undefined-this-root-call/expected.js | 0 .../undefined-this-root-declaration/actual.js | 0 .../expected.js | 0 .../undefined-this-root-reference/actual.js | 0 .../undefined-this-root-reference/expected.js | 0 .../strict/use-strict-add/actual.js | 0 .../strict/use-strict-add/expected.js | 0 .../strict/use-strict-exists/actual.js | 0 .../strict/use-strict-exists/expected.js | 0 .../declared/exec.js | 0 .../options.json | 0 .../undeclared-shorthand-property/exec.js | 0 .../options.json | 0 .../undeclared/exec.js | 0 .../undeclared/options.json | 0 .../{babel => babel-core}/test/generation.js | 4 ++-- packages/{babel => babel-core}/test/path.js | 0 .../{babel => babel-core}/test/traceur.js | 0 .../test/transformation.js | 0 .../{babel => babel-core}/test/traverse.js | 2 +- packages/{babel => babel-core}/test/types.js | 0 packages/{babel => babel-core}/test/util.js | 2 +- packages/babel-generator/package.json | 20 +++++++++++++++++++ .../src}/README.md | 0 .../src}/buffer.js | 0 .../src}/generators/README.md | 0 .../src}/generators/base.js | 0 .../src}/generators/classes.js | 0 .../src}/generators/comprehensions.js | 0 .../src}/generators/expressions.js | 2 +- .../src}/generators/flow.js | 2 +- .../src}/generators/jsx.js | 2 +- .../src}/generators/methods.js | 2 +- .../src}/generators/modules.js | 2 +- .../src}/generators/statements.js | 2 +- .../src}/generators/template-literals.js | 0 .../src}/generators/types.js | 2 +- .../src}/index.js | 4 ++-- .../src}/node/index.js | 2 +- .../src}/node/parentheses.js | 2 +- .../src}/node/printer.js | 0 .../src}/node/whitespace.js | 2 +- .../src}/position.js | 0 .../src}/source-map.js | 2 +- .../src}/whitespace.js | 0 packages/babel-messages/package.json | 10 ++++++++++ .../src/index.js} | 2 +- packages/babel-traverse/package.json | 19 ++++++++++++++++++ .../src}/README.md | 0 .../src}/context.js | 2 +- .../traversal => babel-traverse/src}/hub.js | 0 .../traversal => babel-traverse/src}/index.js | 8 ++++++-- .../src}/path/README.md | 0 .../src}/path/ancestry.js | 2 +- .../src}/path/comments.js | 0 .../src}/path/context.js | 0 .../src}/path/conversion.js | 2 +- .../src}/path/evaluation.js | 0 .../src}/path/family.js | 2 +- .../src}/path/index.js | 2 +- .../src}/path/inference/README.md | 0 .../src}/path/inference/index.js | 2 +- .../src}/path/inference/inferer-reference.js | 2 +- .../src}/path/inference/inferers.js | 2 +- .../src}/path/introspection.js | 2 +- .../src}/path/lib/hoister.js | 4 ++-- .../src}/path/lib/removal-hooks.js | 2 +- .../src}/path/lib/virtual-types.js | 4 ++-- .../src}/path/modification.js | 2 +- .../src}/path/removal.js | 0 .../src}/path/replacement.js | 6 +++--- .../src}/scope/README.md | 0 .../src}/scope/binding.js | 0 .../src}/scope/index.js | 19 +++++++++--------- .../src}/visitors.js | 4 ++-- packages/babel-types/package.json | 16 +++++++++++++++ .../src/types => babel-types/src}/README.md | 0 .../types => babel-types/src}/converters.js | 4 ++-- .../src}/definitions/core.js | 0 .../src}/definitions/es2015.js | 0 .../src}/definitions/experimental.js | 0 .../src}/definitions/flow.js | 0 .../src}/definitions/index.js | 0 .../src}/definitions/init.js | 0 .../src}/definitions/jsx.js | 0 .../src}/definitions/misc.js | 0 .../src/types => babel-types/src}/flow.js | 0 .../src/types => babel-types/src}/index.js | 1 + .../helpers => babel-types/src}/react.js | 2 +- .../types => babel-types/src}/retrievers.js | 3 +-- .../types => babel-types/src}/validators.js | 0 .../validation/for-in-assignment/actual.js | 3 --- .../validation/for-in-assignment/options.json | 3 --- .../validation/for-of-assignment/actual.js | 3 --- .../validation/for-of-assignment/options.json | 3 --- scripts/test-browser.sh | 2 +- test/browser.js | 2 +- 2384 files changed, 257 insertions(+), 179 deletions(-) create mode 100644 packages/babel-code-frame/package.json rename packages/{babel/src/helpers/code-frame.js => babel-code-frame/src/index.js} (100%) rename packages/{babel => babel-core}/.npmignore (100%) rename packages/{babel => babel-core}/index.js (100%) rename packages/{babel => babel-core}/package.json (91%) rename packages/{babel => babel-core}/polyfill.js (100%) rename packages/{babel => babel-core}/register-without-polyfill.js (100%) rename packages/{babel => babel-core}/register.js (100%) rename packages/{babel => babel-core}/scripts/build-dist.sh (100%) rename packages/{babel => babel-core}/scripts/cache-templates.js (100%) rename packages/{babel => babel-core}/scripts/postpublish.js (100%) rename packages/{babel => babel-core}/scripts/prepublish.js (100%) rename packages/{babel => babel-core}/src/README.md (100%) rename packages/{babel => babel-core}/src/api/README.md (100%) rename packages/{babel => babel-core}/src/api/browser.js (100%) rename packages/{babel => babel-core}/src/api/node.js (96%) rename packages/{babel => babel-core}/src/api/register/browser.js (100%) rename packages/{babel => babel-core}/src/api/register/cache.js (100%) rename packages/{babel => babel-core}/src/api/register/node-polyfill.js (100%) rename packages/{babel => babel-core}/src/api/register/node.js (100%) rename packages/{babel => babel-core}/src/babel/transformation/modules.js (100%) rename packages/{babel => babel-core}/src/helpers/README.md (100%) rename packages/{babel => babel-core}/src/helpers/merge.js (100%) rename packages/{babel => babel-core}/src/helpers/normalize-ast.js (89%) rename packages/{babel => babel-core}/src/helpers/object.js (100%) rename packages/{babel => babel-core}/src/helpers/parse.js (100%) rename packages/{babel => babel-core}/src/polyfill.js (100%) rename packages/{babel => babel-core}/src/tools/README.md (100%) rename packages/{babel => babel-core}/src/tools/build-external-helpers.js (95%) rename packages/{babel => babel-core}/src/transformation/README.md (100%) rename packages/{babel => babel-core}/src/transformation/file/README.md (100%) rename packages/{babel => babel-core}/src/transformation/file/index.js (98%) rename packages/{babel => babel-core}/src/transformation/file/logger.js (100%) rename packages/{babel => babel-core}/src/transformation/file/options/README.md (100%) rename packages/{babel => babel-core}/src/transformation/file/options/config.json (100%) rename packages/{babel => babel-core}/src/transformation/file/options/index.js (100%) rename packages/{babel => babel-core}/src/transformation/file/options/option-manager.js (100%) rename packages/{babel => babel-core}/src/transformation/file/options/parsers.js (100%) rename packages/{babel => babel-core}/src/transformation/file/plugin-manager.js (96%) rename packages/{babel => babel-core}/src/transformation/helpers/README.md (100%) rename packages/{babel => babel-core}/src/transformation/helpers/build-binary-assignment-operator-transformer.js (97%) rename packages/{babel => babel-core}/src/transformation/helpers/build-comprehension.js (94%) rename packages/{babel => babel-core}/src/transformation/helpers/build-conditional-assignment-operator-transformer.js (97%) rename packages/{babel => babel-core}/src/transformation/helpers/build-react-transformer.js (97%) rename packages/{babel => babel-core}/src/transformation/helpers/call-delegate.js (96%) rename packages/{babel => babel-core}/src/transformation/helpers/define-map.js (98%) rename packages/{babel => babel-core}/src/transformation/helpers/explode-assignable-expression.js (98%) rename packages/{babel => babel-core}/src/transformation/helpers/get-function-arity.js (90%) rename packages/{babel => babel-core}/src/transformation/helpers/memoise-decorators.js (96%) rename packages/{babel => babel-core}/src/transformation/helpers/name-method.js (99%) rename packages/{babel => babel-core}/src/transformation/helpers/regex.js (92%) rename packages/{babel => babel-core}/src/transformation/helpers/remap-async-to-generator.js (97%) rename packages/{babel => babel-core}/src/transformation/helpers/replace-supers.js (99%) rename packages/{babel => babel-core}/src/transformation/index.js (100%) rename packages/{babel => babel-core}/src/transformation/modules/README.md (100%) rename packages/{babel => babel-core}/src/transformation/modules/_default.js (99%) rename packages/{babel => babel-core}/src/transformation/modules/_strict.js (100%) rename packages/{babel => babel-core}/src/transformation/modules/amd-strict.js (100%) rename packages/{babel => babel-core}/src/transformation/modules/amd.js (99%) rename packages/{babel => babel-core}/src/transformation/modules/common-strict.js (100%) rename packages/{babel => babel-core}/src/transformation/modules/common.js (99%) rename packages/{babel => babel-core}/src/transformation/modules/ignore.js (93%) rename packages/{babel => babel-core}/src/transformation/modules/index.js (100%) rename packages/{babel => babel-core}/src/transformation/modules/lib/metadata.js (99%) rename packages/{babel => babel-core}/src/transformation/modules/lib/remaps.js (98%) rename packages/{babel => babel-core}/src/transformation/modules/system.js (99%) rename packages/{babel => babel-core}/src/transformation/modules/umd-strict.js (100%) rename packages/{babel => babel-core}/src/transformation/modules/umd.js (98%) rename packages/{babel => babel-core}/src/transformation/pipeline.js (100%) rename packages/{babel => babel-core}/src/transformation/plugin-pass.js (96%) rename packages/{babel => babel-core}/src/transformation/plugin.js (94%) rename packages/{babel => babel-core}/src/transformation/templates/.babelrc (100%) rename packages/{babel => babel-core}/src/transformation/templates/abstract-expression-call.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/abstract-expression-delete.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/abstract-expression-get.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/abstract-expression-set.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/array-comprehension-container.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/array-from.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/array-push.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/call.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/class-decorator.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/class-derived-default-constructor.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/default-parameter-assign.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/default-parameter.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/exports-assign.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/exports-default-assign.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/exports-from-assign.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/exports-module-declaration-loose.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/exports-module-declaration.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/for-of-array.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/for-of-loose.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/for-of.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-async-to-generator.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-bind.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-class-call-check.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-create-class.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-create-decorated-class.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-create-decorated-object.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-default-props.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-defaults.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-define-decorated-property-descriptor.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-define-property.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-extends.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-get.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-has-own.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-inherits.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-instanceof.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-interop-export-wildcard.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-interop-require-default.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-interop-require-wildcard.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-interop-require.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-new-arrow-check.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-object-destructuring-empty.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-object-without-properties.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-self-global.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-set.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-slice.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-sliced-to-array-loose.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-sliced-to-array.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-tagged-template-literal-loose.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-tagged-template-literal.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-temporal-assert-defined.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-temporal-undefined.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-to-array.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-to-consumable-array.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/helper-typeof.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/let-scoping-return.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/named-function.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/property-method-assignment-wrapper-generator.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/property-method-assignment-wrapper.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/prototype-identifier.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/require-assign-key.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/require.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/rest.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/self-contained-helpers-head.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/system.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/tail-call-body.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/test-exports.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/test-module.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/umd-commonjs-strict.js (100%) rename packages/{babel => babel-core}/src/transformation/templates/umd-runner-body.js (100%) rename packages/{babel => babel-core}/src/transformation/transformer.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/README.md (100%) rename packages/{babel => babel-core}/src/transformation/transformers/aliases.json (100%) rename packages/{babel => babel-core}/src/transformation/transformers/deprecated.json (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es3/member-expression-literals.js (95%) rename packages/{babel => babel-core}/src/transformation/transformers/es3/property-literals.js (94%) rename packages/{babel => babel-core}/src/transformation/transformers/es5/properties.mutators.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/arrow-functions.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/block-scoping.js (99%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/classes/index.js (94%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/classes/loose.js (95%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/classes/vanilla.js (99%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/constants.js (95%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/destructuring.js (99%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/for-of.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/literals.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/modules.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/object-super.js (96%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/parameters/default.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/parameters/index.js (79%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/parameters/rest.js (99%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/properties.computed.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/properties.shorthand.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/regex.sticky.js (90%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/regex.unicode.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/spec.arrow-functions.js (94%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/spec.block-scoping.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/spec.modules.js (91%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/spec.symbols.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/spec.template-literals.js (92%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/spread.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/tail-call.js (99%) rename packages/{babel => babel-core}/src/transformation/transformers/es6/template-literals.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/async-functions.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/class-properties.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/comprehensions.js (95%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/decorators.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/do-expressions.js (89%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/exponentiation-operator.js (92%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/export-extensions.js (96%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/function-bind.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/object-rest-spread.js (96%) rename packages/{babel => babel-core}/src/transformation/transformers/es7/trailing-function-commas.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/filters.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/index.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/internal/block-hoist.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/internal/hoist-directives.js (92%) rename packages/{babel => babel-core}/src/transformation/transformers/internal/module-formatter.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/internal/modules.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/internal/shadow-functions.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/internal/validation.js (89%) rename packages/{babel => babel-core}/src/transformation/transformers/optimisation/flow.for-of.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/optimisation/modules.system.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/optimisation/react.inline-elements.js (96%) rename packages/{babel => babel-core}/src/transformation/transformers/other/async-to-generator.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/other/bluebird-coroutines.js (94%) rename packages/{babel => babel-core}/src/transformation/transformers/other/flow.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/other/react-compat.js (90%) rename packages/{babel => babel-core}/src/transformation/transformers/other/react.js (94%) rename packages/{babel => babel-core}/src/transformation/transformers/other/regenerator.js (98%) rename packages/{babel => babel-core}/src/transformation/transformers/other/strict.js (97%) rename packages/{babel => babel-core}/src/transformation/transformers/spec/block-scoped-functions.js (96%) rename packages/{babel => babel-core}/src/transformation/transformers/spec/function-name.js (100%) rename packages/{babel => babel-core}/src/transformation/transformers/validation/react.js (90%) rename packages/{babel => babel-core}/src/util.js (97%) rename packages/{babel => babel-core}/test/.babelrc (100%) rename packages/{babel => babel-core}/test/_browser.js (100%) rename packages/{babel => babel-core}/test/_transformation-helper.js (98%) rename packages/{babel => babel-core}/test/api.js (100%) rename packages/{babel => babel-core}/test/browserify.js (100%) rename packages/{babel => babel-core}/test/esnext.js (100%) rename packages/{babel => babel-core}/test/fixtures/browserify/register.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/anonymous-class.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/call-super-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/class-expressions.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/class-extend.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/class-with-constructor.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/class-with-method-declaration.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/empty-named-class.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/enumerable.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/extends-null.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/getter-setter-super.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/getter-setter.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/methods-are-writable.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/methods-with-rest-params.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/static-getter.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/static-method.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/static-setter.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-classes/super-change-proto.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-computed-properties/accessor.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-computed-properties/method.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-computed-properties/nested.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-computed-properties/simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-default-parameters/arity.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-default-parameters/arrow-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-default-parameters/scope.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-default-parameters/simple-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-object-concise/method-arguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-object-concise/method-context.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-object-concise/method-has-name.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-object-concise/method.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-rest-parameters/declaration.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-rest-parameters/rest.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/arguments-as-array.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/array-literal.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/call-with-array-literal.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/inside-function-expression.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/iterator.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/new-object.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/preserve-context.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-spread/simple-function-call.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-templates/multi-line.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-templates/nested-interpolation.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-templates/no-interpolation.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-templates/simple-interpolation.js (100%) rename packages/{babel => babel-core}/test/fixtures/esnext/es6-templates/tagged-template-expression.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-indentation/hard-tab/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-indentation/hard-tab/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-string/double/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-string/double/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-string/single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/auto-string/single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/2-space-multi-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/2-space-multi-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/block-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/block-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-only-with-space/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-only-with-space/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-only/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-only/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/computed-property-comments-2/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/computed-property-comments-2/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/computed-property-comments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/computed-property-comments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/do-while-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/do-while-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/empty-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/empty-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/empty/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/empty/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/function-block-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/function-block-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/if-block-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/if-block-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/if-empty-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/if-empty-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/if-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/if-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/object_comments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/object_comments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/return-no-argument/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/return-no-argument/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-multi-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-multi-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-statement-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/simple-statement-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/try-block-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/try-block-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/compact/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/generation/compact/single-line-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/compact/single-line-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/bitwise-precedence/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/bitwise-precedence/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/floating-point/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/floating-point/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/for-in-no-in/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/for-in-no-in/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/new-precedence/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/new-precedence/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/unary-op/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/unary-op/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/variable-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/edgecase/variable-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/array-types/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/array-types/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/boolean-literal-types/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/boolean-literal-types/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/call-properties/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/call-properties/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/declare-module/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/declare-module/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/declare-statements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/declare-statements/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/interfaces-module-and-script/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/interfaces-module-and-script/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/number-literal-types/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/number-literal-types/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/qualified-generic-type/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/qualified-generic-type/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/string-literal-types/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/string-literal-types/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/tuples/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/tuples/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/type-alias/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/type-alias/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/type-annotations/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/type-annotations/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/typecasts/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/flow/typecasts/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/class-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/class-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/computed-property/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/computed-property/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/exports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/exports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/spread-element/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/spread-element/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/templates/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/templates/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/parentheses/terminator-break/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/parentheses/terminator-break/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ArrowFunctionExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ArrowFunctionExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/AwaitExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/AwaitExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/BindExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/BindExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/BlockStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/BlockStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/BreakStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/BreakStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/CallExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/CallExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ClassDeclaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ClassDeclaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ClassExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ClassExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ConditionalExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ConditionalExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ContinueStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ContinueStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/DebuggerStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/DebuggerStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/Decorator/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/Decorator/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/DoWhileStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/DoWhileStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/EmptyStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/EmptyStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ForInStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ForInStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ForOfStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ForOfStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ForStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ForStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/Identifier/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/Identifier/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/IfStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/IfStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/LabeledStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/LabeledStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/Literal/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/Literal/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/MemberExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/MemberExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/NewExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/NewExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ReturnStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ReturnStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/SequenceExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/SequenceExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ThisExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ThisExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ThrowStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/ThrowStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/TryStatement-CatchClause/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/TryStatement-CatchClause/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/UnaryExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/UnaryExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/UpdateExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/UpdateExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/WhileStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/WhileStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/WithStatement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/WithStatement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSAttribute/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSAttribute/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSEmptyExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSEmptyExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSExpressionContainer/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSExpressionContainer/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSMemberExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSMemberExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSNamespacedName/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSNamespacedName/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSSpreadAttribute/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/XJSSpreadAttribute/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/YieldExpression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/generation/types/YieldExpression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayComprehension/Closure.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayComprehension/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayExtras/Fill.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayExtras/Find.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayExtras/FindIndex.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayExtras/From.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayExtras/Of.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrayIterator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/AlphaRename.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Arguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Parens.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ArrowFunctions/ThisBindings.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Basics.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Complete.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Empty.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Export.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Finally.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Finally2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/PromiseCast.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Prototype.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Rethrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Return.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Throw.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Timeout.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Value.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/Yield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncFunctions/resources/async-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/Array.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/Demo.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/ForOn.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/ForOnBody.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/Method.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/Property.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/YieldFor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/YieldForOn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/AsyncGenerators/resources/observable.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ClassMethodInheritance.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ClassNameBinding.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ClassNameInStack.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Constructor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ConstructorChaining.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ConstructorMember.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/DefaultConstructor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/DeriveFromObject.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/EmptyClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_GH1556.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_NewSuper.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_NewSuper2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_Super.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_SuperNestedClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ExtendCoverFormals.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ExtendObject.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/ExtendStrange.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/FieldInheritance.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/FieldInitializers.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/FieldLookup.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Fields.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Getters.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Inheritance.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/InheritanceFromNonclass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/InheritanceNameBinding.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Method.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/MethodInheritance.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/MethodLookup.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/NameBinding.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/NestedClassSuper.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/NewClassExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/NonEnum.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/OptionalParams.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/PropertyAccessors.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/PrototypeDescriptor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/RestParams.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SemiColon.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SimpleSuper.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Skip_DerivedButton.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Static.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/StaticSuper.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/StaticSuperNoExtends.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/StaticSymbol.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Strict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperChaining.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperChangeProto.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperInArrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperMissing.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperNestedClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperPostfix.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperSet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperUnary.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/SuperWithoutExtends.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Classes/Types.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Collections/Map.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Collections/Set.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Collections/SetWithSymbols.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ComputedPropertyNames/Class.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ComputedPropertyNames/Symbol.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/DefaultParameters/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/DefaultParameters/Strict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Arguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Array.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ArrowFunction.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Catch.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Class.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/CoverInitializedName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/CoverInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/DefaultParams.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Empty.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/EvaluationOrder.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ForInLoop.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ForOfLoop.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Initializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/InitializerObject.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Method.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/NestedScopeArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Object.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Rest.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/RestIterator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ScopeThis.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/SetAccessor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Simplify.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/StrangeProperties.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/Strict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/TopLevel.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/ValueTypes.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Destructuring/VarDecl.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Exponentiation/Basics.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ForOf/NewNoParens.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/GeneratorComprehension/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/LICENSE (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/acosh.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/asinh.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/atanh.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/cbrt.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/clz32.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/cosh.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/expm1.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/fround.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/hypot.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/imul.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/log10.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/log1p.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/log2.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/sign.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/sinh.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/tanh.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Math/trunc.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/EmptyNamedImport.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_ImportDefault.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_ImportStar.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_InvalidExport.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Error_MissingExport.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ExportDestructuring.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ExportForwardDefault.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ExportStar.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ExportStarAs.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/Exports.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportAsExportAs.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportBasic.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportCircular.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportDefault.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportFromModule.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportNoImportClause.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportPair.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportReExportDefault.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ModuleDefault.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ModuleName.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/StaticMethod.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/ThisInModules.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/TestClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/a.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/a2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/b.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/c.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/clockwise.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/d.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default-and-named.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default-class-expression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default-class.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default-function-expression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default-function.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default-name.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/default.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/export-conflict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/export-destructuring.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/export-forward-default-as.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/export-star-as.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/f.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/i.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/m.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/m2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/m3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/n.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/o.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/p.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/re-export-default-as.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/re-export-default.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/side-effect.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/side-effect2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Modules/resources/x.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/EPSILON.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/isFinite.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/isInteger.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/isNaN.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Number/isSafeInteger.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/NumericLiteral/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/NumericLiteral/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectAssign.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/ObjectIs.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PrependStatement.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Promise.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PromiseAll.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PromiseResolve.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PromiseThrowInResolve.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/PureES6Transformer/Basic.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/RegularExpression/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Rest/Error_NotLast.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Rest/Error_SetAccessor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Rest/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Rest/Strict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding10.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding11.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding4.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding5.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding6.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding7.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding8.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBinding9.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/DeepNestedLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/DeepNestedLetConst.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/DeepNestedLetVar.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/ForInInitializers.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/FunctionInBlock.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetForInInitializers1.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetForInitializers1.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInClosure.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInFor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInForBreak.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInForBreakInner.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInForBreakNamed.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInForContinue.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInForContinueInner.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInForContinueNamed.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInGenerators.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInProperties.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInWhileLoop.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInitializerFor1.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInitializerFor2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInitializerFor3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetInitializerForIn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetNoInitializer.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetReinitializeInLoop.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetWithFor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetWithForIn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetWithSwitch.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/LetWithSwitch2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NameBindingInFunction.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NestedForLoops.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NestedFunction1.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NestedFunction2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NestedFunction3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NestedLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/NestedLetConflict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/Regress1381.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/RenameFunctionBlock.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/SiblingScopes.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/TopLevelLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/TopLevelLetConst.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Scope/TopLevelLetVar.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/Array.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/Call.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/CallWithUndefined.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/Class.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/Iterators.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/MethodCall.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/MethodCallQuotedName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/New.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/New2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/NewBuiltin.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/NoIterator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/NotAnObject.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/String.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Spread/Type.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringExtras/CodePointAt.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringExtras/EndsWith.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringExtras/FromCodePoint.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringExtras/Includes.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringExtras/Repeat.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringExtras/StartsWith.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/StringIterator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Symbol/Inherited.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Symbol/Object.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Symbol/ObjectModel.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Symbol/TransformationOff.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/ArrayWithHoles.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Empty.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_Arguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_FunctionParam.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_IllegalReturn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_MultipleDefault.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_WithInClass.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_WithInModule.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/ExpressionValidation.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/ImplicitSemiColon.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/ImportFromTypo.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/InInBinding.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/RegularExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/StrictKeywords.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/StringEscapes.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Syntax/null.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/CallExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/CommaExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Default.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/InBlock.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/InModule.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/MemberExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/NewExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Strict.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/StringRaw.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/Tag.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/resources/f.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/resources/m.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/resources/n.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Arguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/BadIterable.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/BinaryOperator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Break.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/BreakForOf.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/CommaOperator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Continue.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/DefaultArguments.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/DoGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/EmptyGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Error_Disabled.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Error_Disabled2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Error_MissingStar.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Finally.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForEmptyGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForInGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForInGenerator2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForInGenerator3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForMissingParts.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForOfGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForOfIteratorException.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ForStatement.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/FunctionDeclaration.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/GeneratorReturn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/GeneratorSend.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/GeneratorThrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Hoisting.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/HoistingBlockbinding.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/IfGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/IfStatementWithYield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/LabelledBlockGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/LabelledBreakGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/MapFilterGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ObjectModel.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/OverrideGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ReturnCatch.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ReturnGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ReturnInFinally.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ReturnYield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ReturnYieldFor.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/SequenceGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/SimpleGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/StatementTestGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/SwitchGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/SwitchStatementWithYield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/This.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ThrowInCatch.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/ThrowInIterator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Tree.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try10.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try11.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try12.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try2.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try3.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try4.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try5.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try6.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try7.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try8.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/Try9.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/TryCatchGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/TryFinallyGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/WhileGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/WhileStatementWithYield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/YieldAssignThrow.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/YieldIdentifier.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/YieldInFinally.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/YieldNoExpression.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/YieldYield.js (100%) rename packages/{babel => babel-core}/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/blacklist/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/blacklist/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/blacklist/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/unknown-module-formatter/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/unknown-transformer-in-list/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/whitelist/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/whitelist/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/api/whitelist/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/async/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/async/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/named-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/named-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/async-to-generator/statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/class/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/named-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/bluebird-coroutines/statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/errors/constants/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/errors/constants/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/errors/syntax/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/errors/syntax/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es3/member-expression-literals/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es3/member-expression-literals/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es3/property-literals/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es3/property-literals/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es5.properties.mutators/getter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es5.properties.mutators/getter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es5.properties.mutators/setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es5.properties.mutators/setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/arguments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/arguments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/default-parameters/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/empty-arguments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/empty-arguments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/empty-block/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/empty-block/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/inside-call/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/inside-call/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/nested/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/nested/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/paran-insertion/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/paran-insertion/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/single-argument/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/single-argument/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/spec/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/spec/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/spec/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/this/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.arrow-functions/this/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/block-scoped-2.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/block-scoped.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/closure-wrap-collision.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/collision-for.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/destructuring-defaults.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/duplicate-function-scope.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/for-continuation.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/for-loop-head.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/label.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/multiple.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-2.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-3.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-4.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/nested-labels.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping-exec/switch-break.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/assignment-patterns/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-break/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-break/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-continuation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-continuation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-continue/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-continue/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-return-undefined/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-return-undefined/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-return/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/for-return/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/hoisting/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/issue-1051/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/issue-973/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/issue-973/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/jsx-identifier/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/jsx-identifier/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/program/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/program/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/switch/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/switch/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-exec/declaration-binding.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-exec/expression-binding.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-exec/retain-no-call-on-reassign.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-exec/shadow-container.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-exec/super-change-proto.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/calling-super-properties/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/constructor-order/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/literal-key/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/literal-key/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/super-class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/super-class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/super-function-fallback/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes-loose/super-function-fallback/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/accessing-super-class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/accessing-super-properties/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/calling-super-properties/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/calling-super-properties/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/computed-methods/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/computed-methods/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/computed-methods/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/constructor-binding-collision/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/constructor/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/constructor/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-getter-and-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-getter-and-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-getter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-getter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-method/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-method/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/instance-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/name-method-collision/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/name-method-collision/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/plain-class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/plain-class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/preserves-directives/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/preserves-directives/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/relaxed-method-coercion/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/relaxed-method-coercion/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/static/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/static/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-class-anonymous/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-class-id-member-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-function-fallback/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-function-fallback/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/block-scoped/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/block-statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/block-statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/destructuring-assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/destructuring-assignment/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/destructuring/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/destructuring/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/ignore-member-expressions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/ignore-member-expressions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/loop/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/loop/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-assignment/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-classes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-classes/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-declaration/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-for-in/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-for-in/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-functions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/no-functions/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/program/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/program/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/update-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.constants/update-expression/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/array/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/array/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/assignment-statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/chained/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/empty-object-pattern/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/empty-object-pattern/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/empty-object-pattern/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/empty/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/empty/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/es7-object-rest/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/es7-object-rest/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/es7-object-rest/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/for-in/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/for-in/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/for-of/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/for-of/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/known-array/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/known-array/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/member-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/member-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/mixed/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/mixed/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/object-advanced/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/object-advanced/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/object-basic/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/object-basic/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/parameters/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/parameters/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/spread-generator/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/spread/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/spread/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.destructuring/spread/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/identifier/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/identifier/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/ignore-cases/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/ignore-cases/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/let/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/let/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/member-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/member-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/var/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of-loose/var/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/identifier/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/identifier/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/ignore-cases/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/let/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/let/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/member-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/member-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/nested-label-for-of/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/var/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.for-of/var/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/export-specifier-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-default/untitled (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-from/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/get-module-name-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/get-module-name-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-glob/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-mixing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/module-name/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/module-name/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/module-name/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/overview/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/overview/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/remap/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-amd/remap/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/export-1/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/export-2/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/export/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/export/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/import/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/import/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common-strict/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-default-non-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-from/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-from/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/hoist-function-exports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-default/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-glob/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-glob/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-mixing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/loose-collision/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/loose/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/loose/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/loose/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/module-shadow/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/overview/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/overview/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/overview/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/remap/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-common/remap/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/overview/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/overview/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/remap/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-ignore/remap/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-from/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-from/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/get-module-name-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/get-module-name-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/hoist-function-exports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/hoist-function-exports/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-glob/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-mixing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/overview/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/overview/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/remap/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-system/remap/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-from/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/get-module-name-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/get-module-name-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-glob/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-mixing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-named/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/module-id/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/module-id/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/module-id/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/module-name/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/module-name/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/module-name/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/overview/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/overview/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/remap/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules-umd/remap/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/comments-explosion/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/comments-explosion/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/retain-lines/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/retain-lines/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/retain-lines/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/spec/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/spec/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.modules/spec/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.object-super/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.object-super/simple.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.object-super/statically-bound/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.object-super/statically-bound/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-before-last/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-before-last/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-destructuring/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-eval/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-eval/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-iife-1128/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/default-single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-arrow-functions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-async-function/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-nested-iife/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/argument/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/argument/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/coerce/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/coerce/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/method/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/method/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/mixed/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/mixed/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/this/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/this/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/two/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/two/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed-loose/variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/argument/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/argument/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/ignore-symbol/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/ignore-symbol/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/method/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/method/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/mixed/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/mixed/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/this/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/this/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/two/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/two/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/variable/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.computed/variable/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/method-plain/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.sticky/basic/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.sticky/basic/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.unicode/basic/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.unicode/basic/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/instanceof/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/instanceof/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/instanceof/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/typeof/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/typeof/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.symbols/typeof/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/functions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/functions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/multiline/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/multiline/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/none/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/none/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/only/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/only/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spec.template-literals/statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/arguments-array/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/arguments-array/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/arguments-concat/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/arguments-concat/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/arguments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/arguments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literal-first/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literal-first/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literal-middle/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literal-middle/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literal-multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literal-multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literals/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/array-literals/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/known-rest/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/known-rest/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-array-literal/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-array-literal/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-first/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-first/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-middle/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-middle/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-multiple-args/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-multiple-args/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-single-arg/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/method-call-single-arg/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/new-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/new-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/this-context/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.spread/this-context/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/call-apply/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/call-apply/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/expressions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/expressions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/factorial/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/factorial/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/max-args/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/max-args/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/recursion/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/recursion/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/shadow/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/shadow/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/try-catch/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.tail-call/try-catch/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/escape-quotes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/escape-quotes/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/expression-first/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/expression-first/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/functions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/functions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/multiline/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/multiline/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/none/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/none/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/only/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/only/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/tag-loose/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/tag-loose/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/tag-loose/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/tag/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es6.template-literals/tag/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/constructor-collision/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/derived/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/derived/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/instance-undefined/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/instance-undefined/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/instance/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/instance/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/method-collision/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/method-collision/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/static-undefined/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/static-undefined/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/static-undefined/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/static/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/static/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/static/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/super-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/super-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/super-statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.class-properties/super-statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/arguments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/arguments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-single/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-single/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-this/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/array-this/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/generator/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.comprehensions/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-getter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-getter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-method/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-method/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-modules/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-modules/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-super/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class-super/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/member-expressions/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object-getter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object-getter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object-setter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object-setter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/object/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.decorators/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/do-while.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/empty.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/for-in.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/for.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/if-else-if.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/if-else.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/if.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/single-expression.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/variable-declaration-end.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/variable-declaration-start.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.do-expressions/while.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.exponentian-operator/assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.exponentian-operator/assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.exponentian-operator/binary/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.exponentian-operator/binary/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.exponentian-operator/comprehensive/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-compound-es6/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-compound-es6/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-compound-es6/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-es6/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-es6/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/default-es6/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-es6/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-es6/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/namespace-es6/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.export-extensions/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/bind/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/bind/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/call/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/call/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/complex-call/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/complex-call/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/complex-call/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/static-contexts/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/variable-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.object-spread/variable-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/call/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/call/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/es7.trailing-function-commas/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-array-types/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-array-types/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-call-properties/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-call-properties/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-declare-module/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-declare-statements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-directive/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-directive/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-interfaces-module-and-script/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-interfaces-module-and-script/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-qualified-generic-type/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-qualified-generic-type/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-string-literal-types/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-string-literal-types/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-tuples/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-tuples/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-type-alias/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-type-annotations/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-type-annotations/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-typecasts/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/strip-typecasts/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/type-comments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/flow/type-comments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/arrow-function/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/simple-class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/simple-class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/simple-class/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/var-named-function-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/jscript/var-named-function-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.dead-code-elimination/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.member-expression-literals/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.property-literals/invalid-identifiers/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.property-literals/invalid-identifiers/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.property-literals/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.property-literals/valid-identifiers/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.property-literals/valid-identifiers/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/expression-nested/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/expression-nested/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/expression-top-level/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/expression-top-level/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/statement-nested/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/statement-nested/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/statement-top-level/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/minification.remove-console/statement-top-level/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1130/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1130/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1149/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1149/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1155/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1155/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1168/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1168/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1169/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1169/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1199/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1199/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1489/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1489/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-1489/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/shebang/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/misc/shebang/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.modules.system/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.modules.system/setters/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.modules.system/setters/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/children/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/children/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/constructor/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/constructor/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/html-element/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/html-element/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/component/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/html-element/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/key/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/nested/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react-compat/convert-component/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react-compat/convert-component/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react-compat/convert-tags/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react-compat/convert-tags/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react-compat/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/arrow-functions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/arrow-functions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/arrow-functions/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/concatenates-adjacent-string-literals/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/concatenates-adjacent-string-literals/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-assignment-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-assignment-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-export-default/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-export-default/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-if-missing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-if-missing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-object-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-object-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-property-assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-property-assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-variable-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/display-name-variable-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/dont-coerce-expression-containers/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/dont-coerce-expression-containers/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-comment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-comment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/jsx-with-retainlines-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/jsx-with-retainlines-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/jsx-with-retainlines-option/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/jsx-without-retainlines-option/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/jsx-without-retainlines-option/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-constructor-as-prop/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-constructor-as-prop/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-js-namespacing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-js-namespacing/blacklist.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-allow-js-namespacing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-convert-simple-tags/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-convert-simple-tags/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-convert-simple-text/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-convert-simple-text/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-disallow-xml-namespacing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-disallow-xml-namespacing/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-handle-attributed-elements/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-handle-attributed-elements/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-handle-has-own-property-correctly/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-handle-has-own-property-correctly/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/regenerator/default-parameters/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/regenerator/destructuring-parameters/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/regenerator/destructuring/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/regenerator/rest-parameters/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/aliased-constructors/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/aliased-constructors/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/catch-all/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/catch-all/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/es6-for-of/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/es6-for-of/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/full/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/full/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-amd/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-amd/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-amd/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-common/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-common/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-system/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-system/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-system/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-umd/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-umd/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/modules-umd/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/regenerator-runtime/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/regenerator-runtime/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/symbol-iterator-in/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/symbol-iterator/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/runtime/symbol-iterator/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/arrow-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/arrow-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/class/source-mappings.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/full/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/full/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/full/source-map.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/inline/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/inline/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/inline/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/source-maps/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/assignment/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/assignment/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/basic/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/basic/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/class-method/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/class-method/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/collisions/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/collisions/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/eval/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/eval/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/export/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/export/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/export/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/global/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/global/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/modules-2/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/modules-2/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/modules-3/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/modules-3/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/modules/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/modules/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/object/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/object/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/own-bindings/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/own-bindings/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/self-reference/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/self-reference/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/shorthand-property/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/smoke/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.function-name/smoke/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/class/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/class/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/object-literal/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/object-literal/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.proto-to-assign/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.undefined-to-void/basic/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.undefined-to-void/basic/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.undefined-to-void/member-expression/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.undefined-to-void/member-expression/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/spec.undefined-to-void/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/leading-comments-with-existing/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/leading-comments/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/leading-comments/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-arrow-function/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-root-call/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-root-call/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-root-declaration/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-root-reference/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/use-strict-add/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/use-strict-add/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/use-strict-exists/actual.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/strict/use-strict-exists/expected.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/validation.undeclared-variable-check/declared/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/validation.undeclared-variable-check/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/options.json (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/exec.js (100%) rename packages/{babel => babel-core}/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/options.json (100%) rename packages/{babel => babel-core}/test/generation.js (94%) rename packages/{babel => babel-core}/test/path.js (100%) rename packages/{babel => babel-core}/test/traceur.js (100%) rename packages/{babel => babel-core}/test/transformation.js (100%) rename packages/{babel => babel-core}/test/traverse.js (98%) rename packages/{babel => babel-core}/test/types.js (100%) rename packages/{babel => babel-core}/test/util.js (99%) create mode 100644 packages/babel-generator/package.json rename packages/{babel/src/generation => babel-generator/src}/README.md (100%) rename packages/{babel/src/generation => babel-generator/src}/buffer.js (100%) rename packages/{babel/src/generation => babel-generator/src}/generators/README.md (100%) rename packages/{babel/src/generation => babel-generator/src}/generators/base.js (100%) rename packages/{babel/src/generation => babel-generator/src}/generators/classes.js (100%) rename packages/{babel/src/generation => babel-generator/src}/generators/comprehensions.js (100%) rename packages/{babel/src/generation => babel-generator/src}/generators/expressions.js (99%) rename packages/{babel/src/generation => babel-generator/src}/generators/flow.js (99%) rename packages/{babel/src/generation => babel-generator/src}/generators/jsx.js (98%) rename packages/{babel/src/generation => babel-generator/src}/generators/methods.js (98%) rename packages/{babel/src/generation => babel-generator/src}/generators/modules.js (99%) rename packages/{babel/src/generation => babel-generator/src}/generators/statements.js (99%) rename packages/{babel/src/generation => babel-generator/src}/generators/template-literals.js (100%) rename packages/{babel/src/generation => babel-generator/src}/generators/types.js (99%) rename packages/{babel/src/generation => babel-generator/src}/index.js (99%) rename packages/{babel/src/generation => babel-generator/src}/node/index.js (98%) rename packages/{babel/src/generation => babel-generator/src}/node/parentheses.js (99%) rename packages/{babel/src/generation => babel-generator/src}/node/printer.js (100%) rename packages/{babel/src/generation => babel-generator/src}/node/whitespace.js (99%) rename packages/{babel/src/generation => babel-generator/src}/position.js (100%) rename packages/{babel/src/generation => babel-generator/src}/source-map.js (97%) rename packages/{babel/src/generation => babel-generator/src}/whitespace.js (100%) create mode 100644 packages/babel-messages/package.json rename packages/{babel/src/messages.js => babel-messages/src/index.js} (99%) create mode 100644 packages/babel-traverse/package.json rename packages/{babel/src/traversal => babel-traverse/src}/README.md (100%) rename packages/{babel/src/traversal => babel-traverse/src}/context.js (98%) rename packages/{babel/src/traversal => babel-traverse/src}/hub.js (100%) rename packages/{babel/src/traversal => babel-traverse/src}/index.js (93%) rename packages/{babel/src/traversal => babel-traverse/src}/path/README.md (100%) rename packages/{babel/src/traversal => babel-traverse/src}/path/ancestry.js (99%) rename packages/{babel/src/traversal => babel-traverse/src}/path/comments.js (100%) rename packages/{babel/src/traversal => babel-traverse/src}/path/context.js (100%) rename packages/{babel/src/traversal => babel-traverse/src}/path/conversion.js (93%) rename packages/{babel/src/traversal => babel-traverse/src}/path/evaluation.js (100%) rename packages/{babel/src/traversal => babel-traverse/src}/path/family.js (98%) rename packages/{babel/src/traversal => babel-traverse/src}/path/index.js (99%) rename packages/{babel/src/traversal => babel-traverse/src}/path/inference/README.md (100%) rename packages/{babel/src/traversal => babel-traverse/src}/path/inference/index.js (98%) rename packages/{babel/src/traversal => babel-traverse/src}/path/inference/inferer-reference.js (99%) rename packages/{babel/src/traversal => babel-traverse/src}/path/inference/inferers.js (99%) rename packages/{babel/src/traversal => babel-traverse/src}/path/introspection.js (99%) rename packages/{babel/src/traversal => babel-traverse/src}/path/lib/hoister.js (97%) rename packages/{babel/src/traversal => babel-traverse/src}/path/lib/removal-hooks.js (98%) rename packages/{babel/src/traversal => babel-traverse/src}/path/lib/virtual-types.js (97%) rename packages/{babel/src/traversal => babel-traverse/src}/path/modification.js (99%) rename packages/{babel/src/traversal => babel-traverse/src}/path/removal.js (100%) rename packages/{babel/src/traversal => babel-traverse/src}/path/replacement.js (97%) rename packages/{babel/src/traversal => babel-traverse/src}/scope/README.md (100%) rename packages/{babel/src/traversal => babel-traverse/src}/scope/binding.js (100%) rename packages/{babel/src/traversal => babel-traverse/src}/scope/index.js (98%) rename packages/{babel/src/traversal => babel-traverse/src}/visitors.js (98%) create mode 100644 packages/babel-types/package.json rename packages/{babel/src/types => babel-types/src}/README.md (100%) rename packages/{babel/src/types => babel-types/src}/converters.js (98%) rename packages/{babel/src/types => babel-types/src}/definitions/core.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/es2015.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/experimental.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/flow.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/index.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/init.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/jsx.js (100%) rename packages/{babel/src/types => babel-types/src}/definitions/misc.js (100%) rename packages/{babel/src/types => babel-types/src}/flow.js (100%) rename packages/{babel/src/types => babel-types/src}/index.js (99%) rename packages/{babel/src/transformation/helpers => babel-types/src}/react.js (98%) rename packages/{babel/src/types => babel-types/src}/retrievers.js (96%) rename packages/{babel/src/types => babel-types/src}/validators.js (100%) delete mode 100644 packages/babel/test/fixtures/transformation/validation/for-in-assignment/actual.js delete mode 100644 packages/babel/test/fixtures/transformation/validation/for-in-assignment/options.json delete mode 100644 packages/babel/test/fixtures/transformation/validation/for-of-assignment/actual.js delete mode 100644 packages/babel/test/fixtures/transformation/validation/for-of-assignment/options.json diff --git a/.eslintignore b/.eslintignore index 3c5446a100..5b21e5655b 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,2 @@ -packages/babel/src/transformation/templates +packages/babel-core/src/transformation/templates scripts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93f933c7ac..ebbfec6482 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,7 +50,7 @@ If you wish to build a copy of Babel for distribution then run: $ make build-dist ``` -and access the files from `packages/babel/dist`. +and access the files from `packages/babel-core/dist`. #### Running tests diff --git a/Makefile b/Makefile index b966a86e5b..f07921c6f3 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ build: clean ./scripts/build.sh build-dist: build - cd packages/babel; \ + cd packages/babel-core; \ scripts/build-dist.sh cd packages/babel-runtime; \ node scripts/build-dist.js @@ -21,7 +21,7 @@ lint: clean: test-clean rm -rf coverage - rm -rf packages/*/lib packages/babel/templates.json + rm -rf packages/*/lib packages/babel-core/templates.json test-clean: rm -rf packages/*/test/tmp diff --git a/packages/babel-code-frame/package.json b/packages/babel-code-frame/package.json new file mode 100644 index 0000000000..03525c8c95 --- /dev/null +++ b/packages/babel-code-frame/package.json @@ -0,0 +1,17 @@ +{ + "name": "babel-code-frame", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "chalk": "^1.1.0", + "esutils": "^2.0.2", + "js-tokens": "^1.0.1", + "line-numbers": "^0.2.0", + "repeating": "^1.1.3" + } +} diff --git a/packages/babel/src/helpers/code-frame.js b/packages/babel-code-frame/src/index.js similarity index 100% rename from packages/babel/src/helpers/code-frame.js rename to packages/babel-code-frame/src/index.js diff --git a/packages/babel/.npmignore b/packages/babel-core/.npmignore similarity index 100% rename from packages/babel/.npmignore rename to packages/babel-core/.npmignore diff --git a/packages/babel/index.js b/packages/babel-core/index.js similarity index 100% rename from packages/babel/index.js rename to packages/babel-core/index.js diff --git a/packages/babel/package.json b/packages/babel-core/package.json similarity index 91% rename from packages/babel/package.json rename to packages/babel-core/package.json index a308a5128a..298985211e 100644 --- a/packages/babel/package.json +++ b/packages/babel-core/package.json @@ -27,6 +27,12 @@ "test": "make test" }, "dependencies": { + "babel-code-frame": "^5.8.22", + "babel-types": "^5.8.22", + "babel-util": "^5.8.22", + "babel-traverse": "^5.8.22", + "babel-generator": "^5.8.22", + "babel-messages": "^5.8.22", "babel-plugin-constant-folding": "^1.0.1", "babel-plugin-dead-code-elimination": "^1.0.2", "babel-plugin-eval": "^1.0.1", @@ -75,4 +81,4 @@ "trim-right": "^1.0.0", "try-resolve": "^1.0.0" } -} \ No newline at end of file +} diff --git a/packages/babel/polyfill.js b/packages/babel-core/polyfill.js similarity index 100% rename from packages/babel/polyfill.js rename to packages/babel-core/polyfill.js diff --git a/packages/babel/register-without-polyfill.js b/packages/babel-core/register-without-polyfill.js similarity index 100% rename from packages/babel/register-without-polyfill.js rename to packages/babel-core/register-without-polyfill.js diff --git a/packages/babel/register.js b/packages/babel-core/register.js similarity index 100% rename from packages/babel/register.js rename to packages/babel-core/register.js diff --git a/packages/babel/scripts/build-dist.sh b/packages/babel-core/scripts/build-dist.sh similarity index 100% rename from packages/babel/scripts/build-dist.sh rename to packages/babel-core/scripts/build-dist.sh diff --git a/packages/babel/scripts/cache-templates.js b/packages/babel-core/scripts/cache-templates.js similarity index 100% rename from packages/babel/scripts/cache-templates.js rename to packages/babel-core/scripts/cache-templates.js diff --git a/packages/babel/scripts/postpublish.js b/packages/babel-core/scripts/postpublish.js similarity index 100% rename from packages/babel/scripts/postpublish.js rename to packages/babel-core/scripts/postpublish.js diff --git a/packages/babel/scripts/prepublish.js b/packages/babel-core/scripts/prepublish.js similarity index 100% rename from packages/babel/scripts/prepublish.js rename to packages/babel-core/scripts/prepublish.js diff --git a/packages/babel/src/README.md b/packages/babel-core/src/README.md similarity index 100% rename from packages/babel/src/README.md rename to packages/babel-core/src/README.md diff --git a/packages/babel/src/api/README.md b/packages/babel-core/src/api/README.md similarity index 100% rename from packages/babel/src/api/README.md rename to packages/babel-core/src/api/README.md diff --git a/packages/babel/src/api/browser.js b/packages/babel-core/src/api/browser.js similarity index 100% rename from packages/babel/src/api/browser.js rename to packages/babel-core/src/api/browser.js diff --git a/packages/babel/src/api/node.js b/packages/babel-core/src/api/node.js similarity index 96% rename from packages/babel/src/api/node.js rename to packages/babel-core/src/api/node.js index 2757175e45..61ae53af31 100644 --- a/packages/babel/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -13,11 +13,11 @@ export { default as options } from "../transformation/file/options/config"; export { default as Plugin } from "../transformation/plugin"; export { default as Transformer } from "../transformation/transformer"; export { default as Pipeline } from "../transformation/pipeline"; -export { default as traverse } from "../traversal"; +export { default as traverse } from "babel-traverse"; export { default as buildExternalHelpers } from "../tools/build-external-helpers"; export { version } from "../../package"; -import * as t from "../types"; +import * as t from "babel-types"; export { t as types }; /** diff --git a/packages/babel/src/api/register/browser.js b/packages/babel-core/src/api/register/browser.js similarity index 100% rename from packages/babel/src/api/register/browser.js rename to packages/babel-core/src/api/register/browser.js diff --git a/packages/babel/src/api/register/cache.js b/packages/babel-core/src/api/register/cache.js similarity index 100% rename from packages/babel/src/api/register/cache.js rename to packages/babel-core/src/api/register/cache.js diff --git a/packages/babel/src/api/register/node-polyfill.js b/packages/babel-core/src/api/register/node-polyfill.js similarity index 100% rename from packages/babel/src/api/register/node-polyfill.js rename to packages/babel-core/src/api/register/node-polyfill.js diff --git a/packages/babel/src/api/register/node.js b/packages/babel-core/src/api/register/node.js similarity index 100% rename from packages/babel/src/api/register/node.js rename to packages/babel-core/src/api/register/node.js diff --git a/packages/babel/src/babel/transformation/modules.js b/packages/babel-core/src/babel/transformation/modules.js similarity index 100% rename from packages/babel/src/babel/transformation/modules.js rename to packages/babel-core/src/babel/transformation/modules.js diff --git a/packages/babel/src/helpers/README.md b/packages/babel-core/src/helpers/README.md similarity index 100% rename from packages/babel/src/helpers/README.md rename to packages/babel-core/src/helpers/README.md diff --git a/packages/babel/src/helpers/merge.js b/packages/babel-core/src/helpers/merge.js similarity index 100% rename from packages/babel/src/helpers/merge.js rename to packages/babel-core/src/helpers/merge.js diff --git a/packages/babel/src/helpers/normalize-ast.js b/packages/babel-core/src/helpers/normalize-ast.js similarity index 89% rename from packages/babel/src/helpers/normalize-ast.js rename to packages/babel-core/src/helpers/normalize-ast.js index e2b4d4804c..50dd1aa321 100644 --- a/packages/babel/src/helpers/normalize-ast.js +++ b/packages/babel-core/src/helpers/normalize-ast.js @@ -1,4 +1,4 @@ -import * as t from "../types"; +import * as t from "babel-types"; /** * Normalize an AST. diff --git a/packages/babel/src/helpers/object.js b/packages/babel-core/src/helpers/object.js similarity index 100% rename from packages/babel/src/helpers/object.js rename to packages/babel-core/src/helpers/object.js diff --git a/packages/babel/src/helpers/parse.js b/packages/babel-core/src/helpers/parse.js similarity index 100% rename from packages/babel/src/helpers/parse.js rename to packages/babel-core/src/helpers/parse.js diff --git a/packages/babel/src/polyfill.js b/packages/babel-core/src/polyfill.js similarity index 100% rename from packages/babel/src/polyfill.js rename to packages/babel-core/src/polyfill.js diff --git a/packages/babel/src/tools/README.md b/packages/babel-core/src/tools/README.md similarity index 100% rename from packages/babel/src/tools/README.md rename to packages/babel-core/src/tools/README.md diff --git a/packages/babel/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js similarity index 95% rename from packages/babel/src/tools/build-external-helpers.js rename to packages/babel-core/src/tools/build-external-helpers.js index 4d0427b6f3..0112341d6c 100644 --- a/packages/babel/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -1,9 +1,9 @@ -import generator from "../generation"; -import * as messages from "../messages"; +import generator from "babel-generator"; +import * as messages from "babel-messages"; import * as util from "../util"; import File from "../transformation/file"; import each from "lodash/collection/each"; -import * as t from "../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/README.md b/packages/babel-core/src/transformation/README.md similarity index 100% rename from packages/babel/src/transformation/README.md rename to packages/babel-core/src/transformation/README.md diff --git a/packages/babel/src/transformation/file/README.md b/packages/babel-core/src/transformation/file/README.md similarity index 100% rename from packages/babel/src/transformation/file/README.md rename to packages/babel-core/src/transformation/file/README.md diff --git a/packages/babel/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js similarity index 98% rename from packages/babel/src/transformation/file/index.js rename to packages/babel-core/src/transformation/file/index.js index e16aacb978..6c617656ec 100644 --- a/packages/babel/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -3,22 +3,21 @@ import moduleFormatters from "../modules"; import OptionManager from "./options/option-manager"; import PluginManager from "./plugin-manager"; import shebangRegex from "shebang-regex"; -import NodePath from "../../traversal/path"; +import { NodePath, Hub } from "babel-traverse"; import isFunction from "lodash/lang/isFunction"; import sourceMap from "source-map"; -import generate from "../../generation"; -import codeFrame from "../../helpers/code-frame"; +import generate from "babel-generator"; +import codeFrame from "babel-code-frame"; import defaults from "lodash/object/defaults"; import includes from "lodash/collection/includes"; -import traverse from "../../traversal"; +import traverse from "babel-traverse"; import resolve from "try-resolve"; import Logger from "./logger"; import Plugin from "../plugin"; import parse from "../../helpers/parse"; -import Hub from "../../traversal/hub"; import * as util from "../../util"; import path from "path"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/file/logger.js b/packages/babel-core/src/transformation/file/logger.js similarity index 100% rename from packages/babel/src/transformation/file/logger.js rename to packages/babel-core/src/transformation/file/logger.js diff --git a/packages/babel/src/transformation/file/options/README.md b/packages/babel-core/src/transformation/file/options/README.md similarity index 100% rename from packages/babel/src/transformation/file/options/README.md rename to packages/babel-core/src/transformation/file/options/README.md diff --git a/packages/babel/src/transformation/file/options/config.json b/packages/babel-core/src/transformation/file/options/config.json similarity index 100% rename from packages/babel/src/transformation/file/options/config.json rename to packages/babel-core/src/transformation/file/options/config.json diff --git a/packages/babel/src/transformation/file/options/index.js b/packages/babel-core/src/transformation/file/options/index.js similarity index 100% rename from packages/babel/src/transformation/file/options/index.js rename to packages/babel-core/src/transformation/file/options/index.js diff --git a/packages/babel/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js similarity index 100% rename from packages/babel/src/transformation/file/options/option-manager.js rename to packages/babel-core/src/transformation/file/options/option-manager.js diff --git a/packages/babel/src/transformation/file/options/parsers.js b/packages/babel-core/src/transformation/file/options/parsers.js similarity index 100% rename from packages/babel/src/transformation/file/options/parsers.js rename to packages/babel-core/src/transformation/file/options/parsers.js diff --git a/packages/babel/src/transformation/file/plugin-manager.js b/packages/babel-core/src/transformation/file/plugin-manager.js similarity index 96% rename from packages/babel/src/transformation/file/plugin-manager.js rename to packages/babel-core/src/transformation/file/plugin-manager.js index ddfa0fe029..1bf5695825 100644 --- a/packages/babel/src/transformation/file/plugin-manager.js +++ b/packages/babel-core/src/transformation/file/plugin-manager.js @@ -1,9 +1,9 @@ import Transformer from "../transformer"; import Plugin from "../plugin"; -import * as types from "../../types"; -import * as messages from "../../messages"; +import * as types from "babel-types"; +import * as messages from "babel-messages"; import resolve from "try-resolve"; -import traverse from "../../traversal"; +import traverse from "babel-traverse"; import parse from "../../helpers/parse"; /** diff --git a/packages/babel/src/transformation/helpers/README.md b/packages/babel-core/src/transformation/helpers/README.md similarity index 100% rename from packages/babel/src/transformation/helpers/README.md rename to packages/babel-core/src/transformation/helpers/README.md diff --git a/packages/babel/src/transformation/helpers/build-binary-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js similarity index 97% rename from packages/babel/src/transformation/helpers/build-binary-assignment-operator-transformer.js rename to packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js index 616edb4fd6..914578c47f 100644 --- a/packages/babel/src/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js @@ -1,5 +1,5 @@ import explode from "./explode-assignable-expression"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/build-comprehension.js b/packages/babel-core/src/transformation/helpers/build-comprehension.js similarity index 94% rename from packages/babel/src/transformation/helpers/build-comprehension.js rename to packages/babel-core/src/transformation/helpers/build-comprehension.js index 98babab4be..73d1b24535 100644 --- a/packages/babel/src/transformation/helpers/build-comprehension.js +++ b/packages/babel-core/src/transformation/helpers/build-comprehension.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/build-conditional-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js similarity index 97% rename from packages/babel/src/transformation/helpers/build-conditional-assignment-operator-transformer.js rename to packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js index 52e97fae7a..78fe1b00bc 100644 --- a/packages/babel/src/transformation/helpers/build-conditional-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js @@ -1,5 +1,5 @@ import explode from "./explode-assignable-expression"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/build-react-transformer.js b/packages/babel-core/src/transformation/helpers/build-react-transformer.js similarity index 97% rename from packages/babel/src/transformation/helpers/build-react-transformer.js rename to packages/babel-core/src/transformation/helpers/build-react-transformer.js index 1086fe0532..5641b7d2a4 100644 --- a/packages/babel/src/transformation/helpers/build-react-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-react-transformer.js @@ -4,10 +4,10 @@ // jsx import isString from "lodash/lang/isString"; -import * as messages from "../../messages"; +import * as messages from "babel-messages"; import esutils from "esutils"; -import * as react from "./react"; -import * as t from "../../types"; +import { react } from "babel-types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/call-delegate.js b/packages/babel-core/src/transformation/helpers/call-delegate.js similarity index 96% rename from packages/babel/src/transformation/helpers/call-delegate.js rename to packages/babel-core/src/transformation/helpers/call-delegate.js index 7cf65446d6..5a840417d3 100644 --- a/packages/babel/src/transformation/helpers/call-delegate.js +++ b/packages/babel-core/src/transformation/helpers/call-delegate.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/define-map.js b/packages/babel-core/src/transformation/helpers/define-map.js similarity index 98% rename from packages/babel/src/transformation/helpers/define-map.js rename to packages/babel-core/src/transformation/helpers/define-map.js index b578bb2fd6..95c7174abe 100644 --- a/packages/babel/src/transformation/helpers/define-map.js +++ b/packages/babel-core/src/transformation/helpers/define-map.js @@ -1,6 +1,6 @@ import each from "lodash/collection/each"; import has from "lodash/object/has"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/explode-assignable-expression.js b/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js similarity index 98% rename from packages/babel/src/transformation/helpers/explode-assignable-expression.js rename to packages/babel-core/src/transformation/helpers/explode-assignable-expression.js index c108c52de5..206552f7aa 100644 --- a/packages/babel/src/transformation/helpers/explode-assignable-expression.js +++ b/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/get-function-arity.js b/packages/babel-core/src/transformation/helpers/get-function-arity.js similarity index 90% rename from packages/babel/src/transformation/helpers/get-function-arity.js rename to packages/babel-core/src/transformation/helpers/get-function-arity.js index 35ba3ef46e..43e135d1cd 100644 --- a/packages/babel/src/transformation/helpers/get-function-arity.js +++ b/packages/babel-core/src/transformation/helpers/get-function-arity.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/memoise-decorators.js b/packages/babel-core/src/transformation/helpers/memoise-decorators.js similarity index 96% rename from packages/babel/src/transformation/helpers/memoise-decorators.js rename to packages/babel-core/src/transformation/helpers/memoise-decorators.js index 670852132f..1e3cbdaba5 100644 --- a/packages/babel/src/transformation/helpers/memoise-decorators.js +++ b/packages/babel-core/src/transformation/helpers/memoise-decorators.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/name-method.js b/packages/babel-core/src/transformation/helpers/name-method.js similarity index 99% rename from packages/babel/src/transformation/helpers/name-method.js rename to packages/babel-core/src/transformation/helpers/name-method.js index 0b48b8de3a..5d99781c39 100644 --- a/packages/babel/src/transformation/helpers/name-method.js +++ b/packages/babel-core/src/transformation/helpers/name-method.js @@ -1,6 +1,6 @@ import getFunctionArity from "./get-function-arity"; import * as util from "../../util"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/regex.js b/packages/babel-core/src/transformation/helpers/regex.js similarity index 92% rename from packages/babel/src/transformation/helpers/regex.js rename to packages/babel-core/src/transformation/helpers/regex.js index fbf552606f..5cc83245b5 100644 --- a/packages/babel/src/transformation/helpers/regex.js +++ b/packages/babel-core/src/transformation/helpers/regex.js @@ -1,5 +1,5 @@ import pull from "lodash/array/pull"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/remap-async-to-generator.js b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js similarity index 97% rename from packages/babel/src/transformation/helpers/remap-async-to-generator.js rename to packages/babel-core/src/transformation/helpers/remap-async-to-generator.js index 4170cf362b..52695a1894 100644 --- a/packages/babel/src/transformation/helpers/remap-async-to-generator.js +++ b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/helpers/replace-supers.js b/packages/babel-core/src/transformation/helpers/replace-supers.js similarity index 99% rename from packages/babel/src/transformation/helpers/replace-supers.js rename to packages/babel-core/src/transformation/helpers/replace-supers.js index f9b6f9c2aa..7c5ac45fd7 100644 --- a/packages/babel/src/transformation/helpers/replace-supers.js +++ b/packages/babel-core/src/transformation/helpers/replace-supers.js @@ -1,6 +1,6 @@ import type NodePath from "../../traversal/path"; -import * as messages from "../../messages"; -import * as t from "../../types"; +import * as messages from "babel-messages"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/index.js b/packages/babel-core/src/transformation/index.js similarity index 100% rename from packages/babel/src/transformation/index.js rename to packages/babel-core/src/transformation/index.js diff --git a/packages/babel/src/transformation/modules/README.md b/packages/babel-core/src/transformation/modules/README.md similarity index 100% rename from packages/babel/src/transformation/modules/README.md rename to packages/babel-core/src/transformation/modules/README.md diff --git a/packages/babel/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js similarity index 99% rename from packages/babel/src/transformation/modules/_default.js rename to packages/babel-core/src/transformation/modules/_default.js index 3d06711a13..84d1f1182b 100644 --- a/packages/babel/src/transformation/modules/_default.js +++ b/packages/babel-core/src/transformation/modules/_default.js @@ -1,9 +1,9 @@ import * as metadataVisitor from "./lib/metadata"; -import * as messages from "../../messages"; +import * as messages from "babel-messages"; import Remaps from "./lib/remaps"; import object from "../../helpers/object"; import * as util from "../../util"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/_strict.js b/packages/babel-core/src/transformation/modules/_strict.js similarity index 100% rename from packages/babel/src/transformation/modules/_strict.js rename to packages/babel-core/src/transformation/modules/_strict.js diff --git a/packages/babel/src/transformation/modules/amd-strict.js b/packages/babel-core/src/transformation/modules/amd-strict.js similarity index 100% rename from packages/babel/src/transformation/modules/amd-strict.js rename to packages/babel-core/src/transformation/modules/amd-strict.js diff --git a/packages/babel/src/transformation/modules/amd.js b/packages/babel-core/src/transformation/modules/amd.js similarity index 99% rename from packages/babel/src/transformation/modules/amd.js rename to packages/babel-core/src/transformation/modules/amd.js index 1d97e38393..1d1eb4d412 100644 --- a/packages/babel/src/transformation/modules/amd.js +++ b/packages/babel-core/src/transformation/modules/amd.js @@ -3,7 +3,7 @@ import CommonFormatter from "./common"; import includes from "lodash/collection/includes"; import values from "lodash/object/values"; import * as util from "../../util"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/common-strict.js b/packages/babel-core/src/transformation/modules/common-strict.js similarity index 100% rename from packages/babel/src/transformation/modules/common-strict.js rename to packages/babel-core/src/transformation/modules/common-strict.js diff --git a/packages/babel/src/transformation/modules/common.js b/packages/babel-core/src/transformation/modules/common.js similarity index 99% rename from packages/babel/src/transformation/modules/common.js rename to packages/babel-core/src/transformation/modules/common.js index c23a8434ca..9bda6661f4 100644 --- a/packages/babel/src/transformation/modules/common.js +++ b/packages/babel-core/src/transformation/modules/common.js @@ -1,6 +1,6 @@ import DefaultFormatter from "./_default"; import * as util from "../../util"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/ignore.js b/packages/babel-core/src/transformation/modules/ignore.js similarity index 93% rename from packages/babel/src/transformation/modules/ignore.js rename to packages/babel-core/src/transformation/modules/ignore.js index 33f909e274..ed349bed46 100644 --- a/packages/babel/src/transformation/modules/ignore.js +++ b/packages/babel-core/src/transformation/modules/ignore.js @@ -1,5 +1,5 @@ import DefaultFormatter from "./_default"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/index.js b/packages/babel-core/src/transformation/modules/index.js similarity index 100% rename from packages/babel/src/transformation/modules/index.js rename to packages/babel-core/src/transformation/modules/index.js diff --git a/packages/babel/src/transformation/modules/lib/metadata.js b/packages/babel-core/src/transformation/modules/lib/metadata.js similarity index 99% rename from packages/babel/src/transformation/modules/lib/metadata.js rename to packages/babel-core/src/transformation/modules/lib/metadata.js index 7c17b1f12e..a8fa21f990 100644 --- a/packages/babel/src/transformation/modules/lib/metadata.js +++ b/packages/babel-core/src/transformation/modules/lib/metadata.js @@ -1,5 +1,5 @@ import extend from "lodash/object/extend"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/lib/remaps.js b/packages/babel-core/src/transformation/modules/lib/remaps.js similarity index 98% rename from packages/babel/src/transformation/modules/lib/remaps.js rename to packages/babel-core/src/transformation/modules/lib/remaps.js index 5935ab9d77..34c375e521 100644 --- a/packages/babel/src/transformation/modules/lib/remaps.js +++ b/packages/babel-core/src/transformation/modules/lib/remaps.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/system.js b/packages/babel-core/src/transformation/modules/system.js similarity index 99% rename from packages/babel/src/transformation/modules/system.js rename to packages/babel-core/src/transformation/modules/system.js index d0faf47a90..66b54acf51 100644 --- a/packages/babel/src/transformation/modules/system.js +++ b/packages/babel-core/src/transformation/modules/system.js @@ -3,7 +3,7 @@ import AMDFormatter from "./amd"; import * as util from "../../util"; import last from "lodash/array/last"; import map from "lodash/collection/map"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/modules/umd-strict.js b/packages/babel-core/src/transformation/modules/umd-strict.js similarity index 100% rename from packages/babel/src/transformation/modules/umd-strict.js rename to packages/babel-core/src/transformation/modules/umd-strict.js diff --git a/packages/babel/src/transformation/modules/umd.js b/packages/babel-core/src/transformation/modules/umd.js similarity index 98% rename from packages/babel/src/transformation/modules/umd.js rename to packages/babel-core/src/transformation/modules/umd.js index 79c99e0c25..dde5b86ad9 100644 --- a/packages/babel/src/transformation/modules/umd.js +++ b/packages/babel-core/src/transformation/modules/umd.js @@ -3,7 +3,7 @@ import AMDFormatter from "./amd"; import values from "lodash/object/values"; import path from "path"; import * as util from "../../util"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js similarity index 100% rename from packages/babel/src/transformation/pipeline.js rename to packages/babel-core/src/transformation/pipeline.js diff --git a/packages/babel/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js similarity index 96% rename from packages/babel/src/transformation/plugin-pass.js rename to packages/babel-core/src/transformation/plugin-pass.js index 6f66b7d51b..1cc7bf2c2f 100644 --- a/packages/babel/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -1,5 +1,5 @@ import type Transformer from "./transformer"; -import traverse from "../traversal"; +import traverse from "babel-traverse"; import type File from "./file"; /** diff --git a/packages/babel/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js similarity index 94% rename from packages/babel/src/transformation/plugin.js rename to packages/babel-core/src/transformation/plugin.js index 0b0182848c..1a8ff2ffc6 100644 --- a/packages/babel/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -1,10 +1,10 @@ import PluginPass from "./plugin-pass"; -import * as messages from "../messages"; -import traverse from "../traversal"; +import * as messages from "babel-messages"; +import traverse from "babel-traverse"; import assign from "lodash/object/assign"; import clone from "lodash/lang/clone"; import File from "./file"; -import * as t from "../types"; +import * as t from "babel-types"; const VALID_PLUGIN_PROPERTIES = [ "visitor", "metadata", diff --git a/packages/babel/src/transformation/templates/.babelrc b/packages/babel-core/src/transformation/templates/.babelrc similarity index 100% rename from packages/babel/src/transformation/templates/.babelrc rename to packages/babel-core/src/transformation/templates/.babelrc diff --git a/packages/babel/src/transformation/templates/abstract-expression-call.js b/packages/babel-core/src/transformation/templates/abstract-expression-call.js similarity index 100% rename from packages/babel/src/transformation/templates/abstract-expression-call.js rename to packages/babel-core/src/transformation/templates/abstract-expression-call.js diff --git a/packages/babel/src/transformation/templates/abstract-expression-delete.js b/packages/babel-core/src/transformation/templates/abstract-expression-delete.js similarity index 100% rename from packages/babel/src/transformation/templates/abstract-expression-delete.js rename to packages/babel-core/src/transformation/templates/abstract-expression-delete.js diff --git a/packages/babel/src/transformation/templates/abstract-expression-get.js b/packages/babel-core/src/transformation/templates/abstract-expression-get.js similarity index 100% rename from packages/babel/src/transformation/templates/abstract-expression-get.js rename to packages/babel-core/src/transformation/templates/abstract-expression-get.js diff --git a/packages/babel/src/transformation/templates/abstract-expression-set.js b/packages/babel-core/src/transformation/templates/abstract-expression-set.js similarity index 100% rename from packages/babel/src/transformation/templates/abstract-expression-set.js rename to packages/babel-core/src/transformation/templates/abstract-expression-set.js diff --git a/packages/babel/src/transformation/templates/array-comprehension-container.js b/packages/babel-core/src/transformation/templates/array-comprehension-container.js similarity index 100% rename from packages/babel/src/transformation/templates/array-comprehension-container.js rename to packages/babel-core/src/transformation/templates/array-comprehension-container.js diff --git a/packages/babel/src/transformation/templates/array-from.js b/packages/babel-core/src/transformation/templates/array-from.js similarity index 100% rename from packages/babel/src/transformation/templates/array-from.js rename to packages/babel-core/src/transformation/templates/array-from.js diff --git a/packages/babel/src/transformation/templates/array-push.js b/packages/babel-core/src/transformation/templates/array-push.js similarity index 100% rename from packages/babel/src/transformation/templates/array-push.js rename to packages/babel-core/src/transformation/templates/array-push.js diff --git a/packages/babel/src/transformation/templates/call.js b/packages/babel-core/src/transformation/templates/call.js similarity index 100% rename from packages/babel/src/transformation/templates/call.js rename to packages/babel-core/src/transformation/templates/call.js diff --git a/packages/babel/src/transformation/templates/class-decorator.js b/packages/babel-core/src/transformation/templates/class-decorator.js similarity index 100% rename from packages/babel/src/transformation/templates/class-decorator.js rename to packages/babel-core/src/transformation/templates/class-decorator.js diff --git a/packages/babel/src/transformation/templates/class-derived-default-constructor.js b/packages/babel-core/src/transformation/templates/class-derived-default-constructor.js similarity index 100% rename from packages/babel/src/transformation/templates/class-derived-default-constructor.js rename to packages/babel-core/src/transformation/templates/class-derived-default-constructor.js diff --git a/packages/babel/src/transformation/templates/default-parameter-assign.js b/packages/babel-core/src/transformation/templates/default-parameter-assign.js similarity index 100% rename from packages/babel/src/transformation/templates/default-parameter-assign.js rename to packages/babel-core/src/transformation/templates/default-parameter-assign.js diff --git a/packages/babel/src/transformation/templates/default-parameter.js b/packages/babel-core/src/transformation/templates/default-parameter.js similarity index 100% rename from packages/babel/src/transformation/templates/default-parameter.js rename to packages/babel-core/src/transformation/templates/default-parameter.js diff --git a/packages/babel/src/transformation/templates/exports-assign.js b/packages/babel-core/src/transformation/templates/exports-assign.js similarity index 100% rename from packages/babel/src/transformation/templates/exports-assign.js rename to packages/babel-core/src/transformation/templates/exports-assign.js diff --git a/packages/babel/src/transformation/templates/exports-default-assign.js b/packages/babel-core/src/transformation/templates/exports-default-assign.js similarity index 100% rename from packages/babel/src/transformation/templates/exports-default-assign.js rename to packages/babel-core/src/transformation/templates/exports-default-assign.js diff --git a/packages/babel/src/transformation/templates/exports-from-assign.js b/packages/babel-core/src/transformation/templates/exports-from-assign.js similarity index 100% rename from packages/babel/src/transformation/templates/exports-from-assign.js rename to packages/babel-core/src/transformation/templates/exports-from-assign.js diff --git a/packages/babel/src/transformation/templates/exports-module-declaration-loose.js b/packages/babel-core/src/transformation/templates/exports-module-declaration-loose.js similarity index 100% rename from packages/babel/src/transformation/templates/exports-module-declaration-loose.js rename to packages/babel-core/src/transformation/templates/exports-module-declaration-loose.js diff --git a/packages/babel/src/transformation/templates/exports-module-declaration.js b/packages/babel-core/src/transformation/templates/exports-module-declaration.js similarity index 100% rename from packages/babel/src/transformation/templates/exports-module-declaration.js rename to packages/babel-core/src/transformation/templates/exports-module-declaration.js diff --git a/packages/babel/src/transformation/templates/for-of-array.js b/packages/babel-core/src/transformation/templates/for-of-array.js similarity index 100% rename from packages/babel/src/transformation/templates/for-of-array.js rename to packages/babel-core/src/transformation/templates/for-of-array.js diff --git a/packages/babel/src/transformation/templates/for-of-loose.js b/packages/babel-core/src/transformation/templates/for-of-loose.js similarity index 100% rename from packages/babel/src/transformation/templates/for-of-loose.js rename to packages/babel-core/src/transformation/templates/for-of-loose.js diff --git a/packages/babel/src/transformation/templates/for-of.js b/packages/babel-core/src/transformation/templates/for-of.js similarity index 100% rename from packages/babel/src/transformation/templates/for-of.js rename to packages/babel-core/src/transformation/templates/for-of.js diff --git a/packages/babel/src/transformation/templates/helper-async-to-generator.js b/packages/babel-core/src/transformation/templates/helper-async-to-generator.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-async-to-generator.js rename to packages/babel-core/src/transformation/templates/helper-async-to-generator.js diff --git a/packages/babel/src/transformation/templates/helper-bind.js b/packages/babel-core/src/transformation/templates/helper-bind.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-bind.js rename to packages/babel-core/src/transformation/templates/helper-bind.js diff --git a/packages/babel/src/transformation/templates/helper-class-call-check.js b/packages/babel-core/src/transformation/templates/helper-class-call-check.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-class-call-check.js rename to packages/babel-core/src/transformation/templates/helper-class-call-check.js diff --git a/packages/babel/src/transformation/templates/helper-create-class.js b/packages/babel-core/src/transformation/templates/helper-create-class.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-create-class.js rename to packages/babel-core/src/transformation/templates/helper-create-class.js diff --git a/packages/babel/src/transformation/templates/helper-create-decorated-class.js b/packages/babel-core/src/transformation/templates/helper-create-decorated-class.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-create-decorated-class.js rename to packages/babel-core/src/transformation/templates/helper-create-decorated-class.js diff --git a/packages/babel/src/transformation/templates/helper-create-decorated-object.js b/packages/babel-core/src/transformation/templates/helper-create-decorated-object.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-create-decorated-object.js rename to packages/babel-core/src/transformation/templates/helper-create-decorated-object.js diff --git a/packages/babel/src/transformation/templates/helper-default-props.js b/packages/babel-core/src/transformation/templates/helper-default-props.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-default-props.js rename to packages/babel-core/src/transformation/templates/helper-default-props.js diff --git a/packages/babel/src/transformation/templates/helper-defaults.js b/packages/babel-core/src/transformation/templates/helper-defaults.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-defaults.js rename to packages/babel-core/src/transformation/templates/helper-defaults.js diff --git a/packages/babel/src/transformation/templates/helper-define-decorated-property-descriptor.js b/packages/babel-core/src/transformation/templates/helper-define-decorated-property-descriptor.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-define-decorated-property-descriptor.js rename to packages/babel-core/src/transformation/templates/helper-define-decorated-property-descriptor.js diff --git a/packages/babel/src/transformation/templates/helper-define-property.js b/packages/babel-core/src/transformation/templates/helper-define-property.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-define-property.js rename to packages/babel-core/src/transformation/templates/helper-define-property.js diff --git a/packages/babel/src/transformation/templates/helper-extends.js b/packages/babel-core/src/transformation/templates/helper-extends.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-extends.js rename to packages/babel-core/src/transformation/templates/helper-extends.js diff --git a/packages/babel/src/transformation/templates/helper-get.js b/packages/babel-core/src/transformation/templates/helper-get.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-get.js rename to packages/babel-core/src/transformation/templates/helper-get.js diff --git a/packages/babel/src/transformation/templates/helper-has-own.js b/packages/babel-core/src/transformation/templates/helper-has-own.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-has-own.js rename to packages/babel-core/src/transformation/templates/helper-has-own.js diff --git a/packages/babel/src/transformation/templates/helper-inherits.js b/packages/babel-core/src/transformation/templates/helper-inherits.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-inherits.js rename to packages/babel-core/src/transformation/templates/helper-inherits.js diff --git a/packages/babel/src/transformation/templates/helper-instanceof.js b/packages/babel-core/src/transformation/templates/helper-instanceof.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-instanceof.js rename to packages/babel-core/src/transformation/templates/helper-instanceof.js diff --git a/packages/babel/src/transformation/templates/helper-interop-export-wildcard.js b/packages/babel-core/src/transformation/templates/helper-interop-export-wildcard.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-interop-export-wildcard.js rename to packages/babel-core/src/transformation/templates/helper-interop-export-wildcard.js diff --git a/packages/babel/src/transformation/templates/helper-interop-require-default.js b/packages/babel-core/src/transformation/templates/helper-interop-require-default.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-interop-require-default.js rename to packages/babel-core/src/transformation/templates/helper-interop-require-default.js diff --git a/packages/babel/src/transformation/templates/helper-interop-require-wildcard.js b/packages/babel-core/src/transformation/templates/helper-interop-require-wildcard.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-interop-require-wildcard.js rename to packages/babel-core/src/transformation/templates/helper-interop-require-wildcard.js diff --git a/packages/babel/src/transformation/templates/helper-interop-require.js b/packages/babel-core/src/transformation/templates/helper-interop-require.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-interop-require.js rename to packages/babel-core/src/transformation/templates/helper-interop-require.js diff --git a/packages/babel/src/transformation/templates/helper-new-arrow-check.js b/packages/babel-core/src/transformation/templates/helper-new-arrow-check.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-new-arrow-check.js rename to packages/babel-core/src/transformation/templates/helper-new-arrow-check.js diff --git a/packages/babel/src/transformation/templates/helper-object-destructuring-empty.js b/packages/babel-core/src/transformation/templates/helper-object-destructuring-empty.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-object-destructuring-empty.js rename to packages/babel-core/src/transformation/templates/helper-object-destructuring-empty.js diff --git a/packages/babel/src/transformation/templates/helper-object-without-properties.js b/packages/babel-core/src/transformation/templates/helper-object-without-properties.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-object-without-properties.js rename to packages/babel-core/src/transformation/templates/helper-object-without-properties.js diff --git a/packages/babel/src/transformation/templates/helper-self-global.js b/packages/babel-core/src/transformation/templates/helper-self-global.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-self-global.js rename to packages/babel-core/src/transformation/templates/helper-self-global.js diff --git a/packages/babel/src/transformation/templates/helper-set.js b/packages/babel-core/src/transformation/templates/helper-set.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-set.js rename to packages/babel-core/src/transformation/templates/helper-set.js diff --git a/packages/babel/src/transformation/templates/helper-slice.js b/packages/babel-core/src/transformation/templates/helper-slice.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-slice.js rename to packages/babel-core/src/transformation/templates/helper-slice.js diff --git a/packages/babel/src/transformation/templates/helper-sliced-to-array-loose.js b/packages/babel-core/src/transformation/templates/helper-sliced-to-array-loose.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-sliced-to-array-loose.js rename to packages/babel-core/src/transformation/templates/helper-sliced-to-array-loose.js diff --git a/packages/babel/src/transformation/templates/helper-sliced-to-array.js b/packages/babel-core/src/transformation/templates/helper-sliced-to-array.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-sliced-to-array.js rename to packages/babel-core/src/transformation/templates/helper-sliced-to-array.js diff --git a/packages/babel/src/transformation/templates/helper-tagged-template-literal-loose.js b/packages/babel-core/src/transformation/templates/helper-tagged-template-literal-loose.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-tagged-template-literal-loose.js rename to packages/babel-core/src/transformation/templates/helper-tagged-template-literal-loose.js diff --git a/packages/babel/src/transformation/templates/helper-tagged-template-literal.js b/packages/babel-core/src/transformation/templates/helper-tagged-template-literal.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-tagged-template-literal.js rename to packages/babel-core/src/transformation/templates/helper-tagged-template-literal.js diff --git a/packages/babel/src/transformation/templates/helper-temporal-assert-defined.js b/packages/babel-core/src/transformation/templates/helper-temporal-assert-defined.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-temporal-assert-defined.js rename to packages/babel-core/src/transformation/templates/helper-temporal-assert-defined.js diff --git a/packages/babel/src/transformation/templates/helper-temporal-undefined.js b/packages/babel-core/src/transformation/templates/helper-temporal-undefined.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-temporal-undefined.js rename to packages/babel-core/src/transformation/templates/helper-temporal-undefined.js diff --git a/packages/babel/src/transformation/templates/helper-to-array.js b/packages/babel-core/src/transformation/templates/helper-to-array.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-to-array.js rename to packages/babel-core/src/transformation/templates/helper-to-array.js diff --git a/packages/babel/src/transformation/templates/helper-to-consumable-array.js b/packages/babel-core/src/transformation/templates/helper-to-consumable-array.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-to-consumable-array.js rename to packages/babel-core/src/transformation/templates/helper-to-consumable-array.js diff --git a/packages/babel/src/transformation/templates/helper-typeof.js b/packages/babel-core/src/transformation/templates/helper-typeof.js similarity index 100% rename from packages/babel/src/transformation/templates/helper-typeof.js rename to packages/babel-core/src/transformation/templates/helper-typeof.js diff --git a/packages/babel/src/transformation/templates/let-scoping-return.js b/packages/babel-core/src/transformation/templates/let-scoping-return.js similarity index 100% rename from packages/babel/src/transformation/templates/let-scoping-return.js rename to packages/babel-core/src/transformation/templates/let-scoping-return.js diff --git a/packages/babel/src/transformation/templates/named-function.js b/packages/babel-core/src/transformation/templates/named-function.js similarity index 100% rename from packages/babel/src/transformation/templates/named-function.js rename to packages/babel-core/src/transformation/templates/named-function.js diff --git a/packages/babel/src/transformation/templates/property-method-assignment-wrapper-generator.js b/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper-generator.js similarity index 100% rename from packages/babel/src/transformation/templates/property-method-assignment-wrapper-generator.js rename to packages/babel-core/src/transformation/templates/property-method-assignment-wrapper-generator.js diff --git a/packages/babel/src/transformation/templates/property-method-assignment-wrapper.js b/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper.js similarity index 100% rename from packages/babel/src/transformation/templates/property-method-assignment-wrapper.js rename to packages/babel-core/src/transformation/templates/property-method-assignment-wrapper.js diff --git a/packages/babel/src/transformation/templates/prototype-identifier.js b/packages/babel-core/src/transformation/templates/prototype-identifier.js similarity index 100% rename from packages/babel/src/transformation/templates/prototype-identifier.js rename to packages/babel-core/src/transformation/templates/prototype-identifier.js diff --git a/packages/babel/src/transformation/templates/require-assign-key.js b/packages/babel-core/src/transformation/templates/require-assign-key.js similarity index 100% rename from packages/babel/src/transformation/templates/require-assign-key.js rename to packages/babel-core/src/transformation/templates/require-assign-key.js diff --git a/packages/babel/src/transformation/templates/require.js b/packages/babel-core/src/transformation/templates/require.js similarity index 100% rename from packages/babel/src/transformation/templates/require.js rename to packages/babel-core/src/transformation/templates/require.js diff --git a/packages/babel/src/transformation/templates/rest.js b/packages/babel-core/src/transformation/templates/rest.js similarity index 100% rename from packages/babel/src/transformation/templates/rest.js rename to packages/babel-core/src/transformation/templates/rest.js diff --git a/packages/babel/src/transformation/templates/self-contained-helpers-head.js b/packages/babel-core/src/transformation/templates/self-contained-helpers-head.js similarity index 100% rename from packages/babel/src/transformation/templates/self-contained-helpers-head.js rename to packages/babel-core/src/transformation/templates/self-contained-helpers-head.js diff --git a/packages/babel/src/transformation/templates/system.js b/packages/babel-core/src/transformation/templates/system.js similarity index 100% rename from packages/babel/src/transformation/templates/system.js rename to packages/babel-core/src/transformation/templates/system.js diff --git a/packages/babel/src/transformation/templates/tail-call-body.js b/packages/babel-core/src/transformation/templates/tail-call-body.js similarity index 100% rename from packages/babel/src/transformation/templates/tail-call-body.js rename to packages/babel-core/src/transformation/templates/tail-call-body.js diff --git a/packages/babel/src/transformation/templates/test-exports.js b/packages/babel-core/src/transformation/templates/test-exports.js similarity index 100% rename from packages/babel/src/transformation/templates/test-exports.js rename to packages/babel-core/src/transformation/templates/test-exports.js diff --git a/packages/babel/src/transformation/templates/test-module.js b/packages/babel-core/src/transformation/templates/test-module.js similarity index 100% rename from packages/babel/src/transformation/templates/test-module.js rename to packages/babel-core/src/transformation/templates/test-module.js diff --git a/packages/babel/src/transformation/templates/umd-commonjs-strict.js b/packages/babel-core/src/transformation/templates/umd-commonjs-strict.js similarity index 100% rename from packages/babel/src/transformation/templates/umd-commonjs-strict.js rename to packages/babel-core/src/transformation/templates/umd-commonjs-strict.js diff --git a/packages/babel/src/transformation/templates/umd-runner-body.js b/packages/babel-core/src/transformation/templates/umd-runner-body.js similarity index 100% rename from packages/babel/src/transformation/templates/umd-runner-body.js rename to packages/babel-core/src/transformation/templates/umd-runner-body.js diff --git a/packages/babel/src/transformation/transformer.js b/packages/babel-core/src/transformation/transformer.js similarity index 100% rename from packages/babel/src/transformation/transformer.js rename to packages/babel-core/src/transformation/transformer.js diff --git a/packages/babel/src/transformation/transformers/README.md b/packages/babel-core/src/transformation/transformers/README.md similarity index 100% rename from packages/babel/src/transformation/transformers/README.md rename to packages/babel-core/src/transformation/transformers/README.md diff --git a/packages/babel/src/transformation/transformers/aliases.json b/packages/babel-core/src/transformation/transformers/aliases.json similarity index 100% rename from packages/babel/src/transformation/transformers/aliases.json rename to packages/babel-core/src/transformation/transformers/aliases.json diff --git a/packages/babel/src/transformation/transformers/deprecated.json b/packages/babel-core/src/transformation/transformers/deprecated.json similarity index 100% rename from packages/babel/src/transformation/transformers/deprecated.json rename to packages/babel-core/src/transformation/transformers/deprecated.json diff --git a/packages/babel/src/transformation/transformers/es3/member-expression-literals.js b/packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js similarity index 95% rename from packages/babel/src/transformation/transformers/es3/member-expression-literals.js rename to packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js index 45c24acab9..22fea81804 100644 --- a/packages/babel/src/transformation/transformers/es3/member-expression-literals.js +++ b/packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-trailing" diff --git a/packages/babel/src/transformation/transformers/es3/property-literals.js b/packages/babel-core/src/transformation/transformers/es3/property-literals.js similarity index 94% rename from packages/babel/src/transformation/transformers/es3/property-literals.js rename to packages/babel-core/src/transformation/transformers/es3/property-literals.js index 47d1c3f0a2..dc629a2663 100644 --- a/packages/babel/src/transformation/transformers/es3/property-literals.js +++ b/packages/babel-core/src/transformation/transformers/es3/property-literals.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-trailing" diff --git a/packages/babel/src/transformation/transformers/es5/properties.mutators.js b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js similarity index 97% rename from packages/babel/src/transformation/transformers/es5/properties.mutators.js rename to packages/babel-core/src/transformation/transformers/es5/properties.mutators.js index fe69b65c00..75ad9b43ee 100644 --- a/packages/babel/src/transformation/transformers/es5/properties.mutators.js +++ b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js @@ -1,5 +1,5 @@ import * as defineMap from "../../helpers/define-map"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * Turn [object initializer mutators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions) diff --git a/packages/babel/src/transformation/transformers/es6/arrow-functions.js b/packages/babel-core/src/transformation/transformers/es6/arrow-functions.js similarity index 100% rename from packages/babel/src/transformation/transformers/es6/arrow-functions.js rename to packages/babel-core/src/transformation/transformers/es6/arrow-functions.js diff --git a/packages/babel/src/transformation/transformers/es6/block-scoping.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping.js similarity index 99% rename from packages/babel/src/transformation/transformers/es6/block-scoping.js rename to packages/babel-core/src/transformation/transformers/es6/block-scoping.js index fb0b903dfa..437a5679c9 100644 --- a/packages/babel/src/transformation/transformers/es6/block-scoping.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping.js @@ -1,10 +1,10 @@ import type NodePath from "../../../traversal/path"; import type Scope from "../../../traversal/scope"; import type File from "../../file"; -import traverse from "../../../traversal"; +import traverse from "babel-traverse"; import object from "../../../helpers/object"; import * as util from "../../../util"; -import * as t from "../../../types"; +import * as t from "babel-types"; import values from "lodash/object/values"; import extend from "lodash/object/extend"; diff --git a/packages/babel/src/transformation/transformers/es6/classes/index.js b/packages/babel-core/src/transformation/transformers/es6/classes/index.js similarity index 94% rename from packages/babel/src/transformation/transformers/es6/classes/index.js rename to packages/babel-core/src/transformation/transformers/es6/classes/index.js index b03635a575..281d7a9fdf 100644 --- a/packages/babel/src/transformation/transformers/es6/classes/index.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/index.js @@ -1,6 +1,6 @@ import LooseTransformer from "./loose"; import VanillaTransformer from "./vanilla"; -import * as t from "../../../../types"; +import * as t from "babel-types"; import { bare } from "../../../helpers/name-method"; /** diff --git a/packages/babel/src/transformation/transformers/es6/classes/loose.js b/packages/babel-core/src/transformation/transformers/es6/classes/loose.js similarity index 95% rename from packages/babel/src/transformation/transformers/es6/classes/loose.js rename to packages/babel-core/src/transformation/transformers/es6/classes/loose.js index 2b4583537b..f1e9c04a0a 100644 --- a/packages/babel/src/transformation/transformers/es6/classes/loose.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/loose.js @@ -1,5 +1,5 @@ import VanillaTransformer from "./vanilla"; -import * as t from "../../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/classes/vanilla.js b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js similarity index 99% rename from packages/babel/src/transformation/transformers/es6/classes/vanilla.js rename to packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js index 47cd13025e..a72da30b4a 100644 --- a/packages/babel/src/transformation/transformers/es6/classes/vanilla.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js @@ -4,9 +4,9 @@ import memoiseDecorators from "../../../helpers/memoise-decorators"; import ReplaceSupers from "../../../helpers/replace-supers"; import * as nameMethod from "../../../helpers/name-method"; import * as defineMap from "../../../helpers/define-map"; -import * as messages from "../../../../messages"; +import * as messages from "babel-messages"; import * as util from "../../../../util"; -import * as t from "../../../../types"; +import * as t from "babel-types"; const PROPERTY_COLLISION_METHOD_NAME = "__initializeProperties"; diff --git a/packages/babel/src/transformation/transformers/es6/constants.js b/packages/babel-core/src/transformation/transformers/es6/constants.js similarity index 95% rename from packages/babel/src/transformation/transformers/es6/constants.js rename to packages/babel-core/src/transformation/transformers/es6/constants.js index def32a8321..4b0825c9f3 100644 --- a/packages/babel/src/transformation/transformers/es6/constants.js +++ b/packages/babel-core/src/transformation/transformers/es6/constants.js @@ -1,4 +1,4 @@ -import * as messages from "../../../messages"; +import * as messages from "babel-messages"; /** * Turn constants into variables. diff --git a/packages/babel/src/transformation/transformers/es6/destructuring.js b/packages/babel-core/src/transformation/transformers/es6/destructuring.js similarity index 99% rename from packages/babel/src/transformation/transformers/es6/destructuring.js rename to packages/babel-core/src/transformation/transformers/es6/destructuring.js index 874c34bcd1..ad7f3b4bf8 100644 --- a/packages/babel/src/transformation/transformers/es6/destructuring.js +++ b/packages/babel-core/src/transformation/transformers/es6/destructuring.js @@ -1,5 +1,5 @@ -import * as messages from "../../../messages"; -import * as t from "../../../types"; +import * as messages from "babel-messages"; +import * as t from "babel-types"; export var metadata = { group: "builtin-advanced" diff --git a/packages/babel/src/transformation/transformers/es6/for-of.js b/packages/babel-core/src/transformation/transformers/es6/for-of.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/for-of.js rename to packages/babel-core/src/transformation/transformers/es6/for-of.js index 7d13d146b5..fc817ef2aa 100644 --- a/packages/babel/src/transformation/transformers/es6/for-of.js +++ b/packages/babel-core/src/transformation/transformers/es6/for-of.js @@ -1,6 +1,6 @@ -import * as messages from "../../../messages"; +import * as messages from "babel-messages"; import * as util from "../../../util"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/literals.js b/packages/babel-core/src/transformation/transformers/es6/literals.js similarity index 100% rename from packages/babel/src/transformation/transformers/es6/literals.js rename to packages/babel-core/src/transformation/transformers/es6/literals.js diff --git a/packages/babel/src/transformation/transformers/es6/modules.js b/packages/babel-core/src/transformation/transformers/es6/modules.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/modules.js rename to packages/babel-core/src/transformation/transformers/es6/modules.js index becfea1747..f83ae730f0 100644 --- a/packages/babel/src/transformation/transformers/es6/modules.js +++ b/packages/babel-core/src/transformation/transformers/es6/modules.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; function keepBlockHoist(node, nodes) { if (node._blockHoist) { diff --git a/packages/babel/src/transformation/transformers/es6/object-super.js b/packages/babel-core/src/transformation/transformers/es6/object-super.js similarity index 96% rename from packages/babel/src/transformation/transformers/es6/object-super.js rename to packages/babel-core/src/transformation/transformers/es6/object-super.js index 14fffe476a..450ed3319d 100644 --- a/packages/babel/src/transformation/transformers/es6/object-super.js +++ b/packages/babel-core/src/transformation/transformers/es6/object-super.js @@ -1,5 +1,5 @@ import ReplaceSupers from "../../helpers/replace-supers"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/parameters/default.js b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/parameters/default.js rename to packages/babel-core/src/transformation/transformers/es6/parameters/default.js index b370352b1d..ebda3963c4 100644 --- a/packages/babel/src/transformation/transformers/es6/parameters/default.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js @@ -1,7 +1,7 @@ import callDelegate from "../../../helpers/call-delegate"; import getFunctionArity from "../../../helpers/get-function-arity"; import * as util from "../../../../util"; -import * as t from "../../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/parameters/index.js b/packages/babel-core/src/transformation/transformers/es6/parameters/index.js similarity index 79% rename from packages/babel/src/transformation/transformers/es6/parameters/index.js rename to packages/babel-core/src/transformation/transformers/es6/parameters/index.js index 3724e5a095..17eea2f42a 100644 --- a/packages/babel/src/transformation/transformers/es6/parameters/index.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/index.js @@ -1,4 +1,4 @@ -import * as visitors from "../../../../traversal/visitors"; +import { visitors } from "babel-traverse"; import * as def from "./default"; import * as rest from "./rest"; diff --git a/packages/babel/src/transformation/transformers/es6/parameters/rest.js b/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js similarity index 99% rename from packages/babel/src/transformation/transformers/es6/parameters/rest.js rename to packages/babel-core/src/transformation/transformers/es6/parameters/rest.js index 5388a37a8e..ef7497fc8d 100644 --- a/packages/babel/src/transformation/transformers/es6/parameters/rest.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js @@ -1,5 +1,5 @@ import * as util from "../../../../util"; -import * as t from "../../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/properties.computed.js b/packages/babel-core/src/transformation/transformers/es6/properties.computed.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/properties.computed.js rename to packages/babel-core/src/transformation/transformers/es6/properties.computed.js index ce5fd45b2d..322cc649a8 100644 --- a/packages/babel/src/transformation/transformers/es6/properties.computed.js +++ b/packages/babel-core/src/transformation/transformers/es6/properties.computed.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/properties.shorthand.js b/packages/babel-core/src/transformation/transformers/es6/properties.shorthand.js similarity index 100% rename from packages/babel/src/transformation/transformers/es6/properties.shorthand.js rename to packages/babel-core/src/transformation/transformers/es6/properties.shorthand.js diff --git a/packages/babel/src/transformation/transformers/es6/regex.sticky.js b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js similarity index 90% rename from packages/babel/src/transformation/transformers/es6/regex.sticky.js rename to packages/babel-core/src/transformation/transformers/es6/regex.sticky.js index 51e7e96834..ea27221341 100644 --- a/packages/babel/src/transformation/transformers/es6/regex.sticky.js +++ b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js @@ -1,5 +1,5 @@ import * as regex from "../../helpers/regex"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/regex.unicode.js b/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js similarity index 100% rename from packages/babel/src/transformation/transformers/es6/regex.unicode.js rename to packages/babel-core/src/transformation/transformers/es6/regex.unicode.js diff --git a/packages/babel/src/transformation/transformers/es6/spec.arrow-functions.js b/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js similarity index 94% rename from packages/babel/src/transformation/transformers/es6/spec.arrow-functions.js rename to packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js index d4d5917f96..e8a70a1b6e 100644 --- a/packages/babel/src/transformation/transformers/es6/spec.arrow-functions.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-pre", diff --git a/packages/babel/src/transformation/transformers/es6/spec.block-scoping.js b/packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/spec.block-scoping.js rename to packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js index 39e223efb5..02fb3cbfa4 100644 --- a/packages/babel/src/transformation/transformers/es6/spec.block-scoping.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/spec.modules.js b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js similarity index 91% rename from packages/babel/src/transformation/transformers/es6/spec.modules.js rename to packages/babel-core/src/transformation/transformers/es6/spec.modules.js index c92d74fd20..70e6e4edd8 100644 --- a/packages/babel/src/transformation/transformers/es6/spec.modules.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-pre", diff --git a/packages/babel/src/transformation/transformers/es6/spec.symbols.js b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js similarity index 97% rename from packages/babel/src/transformation/transformers/es6/spec.symbols.js rename to packages/babel-core/src/transformation/transformers/es6/spec.symbols.js index 80eaf22788..f8fb28cb4b 100644 --- a/packages/babel/src/transformation/transformers/es6/spec.symbols.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { optional: true diff --git a/packages/babel/src/transformation/transformers/es6/spec.template-literals.js b/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js similarity index 92% rename from packages/babel/src/transformation/transformers/es6/spec.template-literals.js rename to packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js index 0efa159969..d37ab172e3 100644 --- a/packages/babel/src/transformation/transformers/es6/spec.template-literals.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { optional: true, diff --git a/packages/babel/src/transformation/transformers/es6/spread.js b/packages/babel-core/src/transformation/transformers/es6/spread.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/spread.js rename to packages/babel-core/src/transformation/transformers/es6/spread.js index c25a5c7e7c..c62acebf6e 100644 --- a/packages/babel/src/transformation/transformers/es6/spread.js +++ b/packages/babel-core/src/transformation/transformers/es6/spread.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/es6/tail-call.js b/packages/babel-core/src/transformation/transformers/es6/tail-call.js similarity index 99% rename from packages/babel/src/transformation/transformers/es6/tail-call.js rename to packages/babel-core/src/transformation/transformers/es6/tail-call.js index 7a4ae6c37d..3d95b0f170 100644 --- a/packages/babel/src/transformation/transformers/es6/tail-call.js +++ b/packages/babel-core/src/transformation/transformers/es6/tail-call.js @@ -1,9 +1,9 @@ import reduceRight from "lodash/collection/reduceRight"; -import * as messages from "../../../messages"; +import * as messages from "babel-messages"; import flatten from "lodash/array/flatten"; import * as util from "../../../util"; import map from "lodash/collection/map"; -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-trailing" diff --git a/packages/babel/src/transformation/transformers/es6/template-literals.js b/packages/babel-core/src/transformation/transformers/es6/template-literals.js similarity index 98% rename from packages/babel/src/transformation/transformers/es6/template-literals.js rename to packages/babel-core/src/transformation/transformers/es6/template-literals.js index b561f64757..496d9927a8 100644 --- a/packages/babel/src/transformation/transformers/es6/template-literals.js +++ b/packages/babel-core/src/transformation/transformers/es6/template-literals.js @@ -1,6 +1,6 @@ /* eslint no-unused-vars: 0 */ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-pre" diff --git a/packages/babel/src/transformation/transformers/es7/async-functions.js b/packages/babel-core/src/transformation/transformers/es7/async-functions.js similarity index 100% rename from packages/babel/src/transformation/transformers/es7/async-functions.js rename to packages/babel-core/src/transformation/transformers/es7/async-functions.js diff --git a/packages/babel/src/transformation/transformers/es7/class-properties.js b/packages/babel-core/src/transformation/transformers/es7/class-properties.js similarity index 100% rename from packages/babel/src/transformation/transformers/es7/class-properties.js rename to packages/babel-core/src/transformation/transformers/es7/class-properties.js diff --git a/packages/babel/src/transformation/transformers/es7/comprehensions.js b/packages/babel-core/src/transformation/transformers/es7/comprehensions.js similarity index 95% rename from packages/babel/src/transformation/transformers/es7/comprehensions.js rename to packages/babel-core/src/transformation/transformers/es7/comprehensions.js index 4df043d0ad..6f8d4d218f 100644 --- a/packages/babel/src/transformation/transformers/es7/comprehensions.js +++ b/packages/babel-core/src/transformation/transformers/es7/comprehensions.js @@ -1,7 +1,7 @@ import buildComprehension from "../../helpers/build-comprehension"; -import traverse from "../../../traversal"; +import traverse from "babel-traverse"; import * as util from "../../../util"; -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { stage: 0 diff --git a/packages/babel/src/transformation/transformers/es7/decorators.js b/packages/babel-core/src/transformation/transformers/es7/decorators.js similarity index 97% rename from packages/babel/src/transformation/transformers/es7/decorators.js rename to packages/babel-core/src/transformation/transformers/es7/decorators.js index 4d968d83f3..9c4160bddb 100644 --- a/packages/babel/src/transformation/transformers/es7/decorators.js +++ b/packages/babel-core/src/transformation/transformers/es7/decorators.js @@ -1,6 +1,6 @@ import memoiseDecorators from "../../helpers/memoise-decorators"; import * as defineMap from "../../helpers/define-map"; -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { dependencies: ["es6.classes"], diff --git a/packages/babel/src/transformation/transformers/es7/do-expressions.js b/packages/babel-core/src/transformation/transformers/es7/do-expressions.js similarity index 89% rename from packages/babel/src/transformation/transformers/es7/do-expressions.js rename to packages/babel-core/src/transformation/transformers/es7/do-expressions.js index 823389ae0e..a26da279f5 100644 --- a/packages/babel/src/transformation/transformers/es7/do-expressions.js +++ b/packages/babel-core/src/transformation/transformers/es7/do-expressions.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { optional: true, diff --git a/packages/babel/src/transformation/transformers/es7/exponentiation-operator.js b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js similarity index 92% rename from packages/babel/src/transformation/transformers/es7/exponentiation-operator.js rename to packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js index 1ed8c62402..d2e65aea52 100644 --- a/packages/babel/src/transformation/transformers/es7/exponentiation-operator.js +++ b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js @@ -1,7 +1,7 @@ // https://github.com/rwaldron/exponentiation-operator import build from "../../helpers/build-binary-assignment-operator-transformer"; -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { stage: 2 diff --git a/packages/babel/src/transformation/transformers/es7/export-extensions.js b/packages/babel-core/src/transformation/transformers/es7/export-extensions.js similarity index 96% rename from packages/babel/src/transformation/transformers/es7/export-extensions.js rename to packages/babel-core/src/transformation/transformers/es7/export-extensions.js index 3397ce1708..db04f83ff5 100644 --- a/packages/babel/src/transformation/transformers/es7/export-extensions.js +++ b/packages/babel-core/src/transformation/transformers/es7/export-extensions.js @@ -1,6 +1,6 @@ // https://github.com/leebyron/ecmascript-more-export-from -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { stage: 1 diff --git a/packages/babel/src/transformation/transformers/es7/function-bind.js b/packages/babel-core/src/transformation/transformers/es7/function-bind.js similarity index 97% rename from packages/babel/src/transformation/transformers/es7/function-bind.js rename to packages/babel-core/src/transformation/transformers/es7/function-bind.js index 0c10e17a02..50f60d67f1 100644 --- a/packages/babel/src/transformation/transformers/es7/function-bind.js +++ b/packages/babel-core/src/transformation/transformers/es7/function-bind.js @@ -1,6 +1,6 @@ // https://github.com/zenparsing/es-function-bind -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { optional: true, diff --git a/packages/babel/src/transformation/transformers/es7/object-rest-spread.js b/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js similarity index 96% rename from packages/babel/src/transformation/transformers/es7/object-rest-spread.js rename to packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js index 4ce67eefb4..ca21f36a78 100644 --- a/packages/babel/src/transformation/transformers/es7/object-rest-spread.js +++ b/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js @@ -1,6 +1,6 @@ // https://github.com/sebmarkbage/ecmascript-rest-spread -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { stage: 2, diff --git a/packages/babel/src/transformation/transformers/es7/trailing-function-commas.js b/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js similarity index 100% rename from packages/babel/src/transformation/transformers/es7/trailing-function-commas.js rename to packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js diff --git a/packages/babel/src/transformation/transformers/filters.js b/packages/babel-core/src/transformation/transformers/filters.js similarity index 100% rename from packages/babel/src/transformation/transformers/filters.js rename to packages/babel-core/src/transformation/transformers/filters.js diff --git a/packages/babel/src/transformation/transformers/index.js b/packages/babel-core/src/transformation/transformers/index.js similarity index 100% rename from packages/babel/src/transformation/transformers/index.js rename to packages/babel-core/src/transformation/transformers/index.js diff --git a/packages/babel/src/transformation/transformers/internal/block-hoist.js b/packages/babel-core/src/transformation/transformers/internal/block-hoist.js similarity index 100% rename from packages/babel/src/transformation/transformers/internal/block-hoist.js rename to packages/babel-core/src/transformation/transformers/internal/block-hoist.js diff --git a/packages/babel/src/transformation/transformers/internal/hoist-directives.js b/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js similarity index 92% rename from packages/babel/src/transformation/transformers/internal/hoist-directives.js rename to packages/babel-core/src/transformation/transformers/internal/hoist-directives.js index c0ab685782..285e61b53b 100644 --- a/packages/babel/src/transformation/transformers/internal/hoist-directives.js +++ b/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-pre" diff --git a/packages/babel/src/transformation/transformers/internal/module-formatter.js b/packages/babel-core/src/transformation/transformers/internal/module-formatter.js similarity index 100% rename from packages/babel/src/transformation/transformers/internal/module-formatter.js rename to packages/babel-core/src/transformation/transformers/internal/module-formatter.js diff --git a/packages/babel/src/transformation/transformers/internal/modules.js b/packages/babel-core/src/transformation/transformers/internal/modules.js similarity index 98% rename from packages/babel/src/transformation/transformers/internal/modules.js rename to packages/babel-core/src/transformation/transformers/internal/modules.js index 10cb1c4851..d11fdabe2e 100644 --- a/packages/babel/src/transformation/transformers/internal/modules.js +++ b/packages/babel-core/src/transformation/transformers/internal/modules.js @@ -4,7 +4,7 @@ // a generator function as a default then regenerator will destroy the export // declaration and leave a variable declaration in it's place... yeah, handy. -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/internal/shadow-functions.js b/packages/babel-core/src/transformation/transformers/internal/shadow-functions.js similarity index 97% rename from packages/babel/src/transformation/transformers/internal/shadow-functions.js rename to packages/babel-core/src/transformation/transformers/internal/shadow-functions.js index dfda3b48f8..a3f8cc5c62 100644 --- a/packages/babel/src/transformation/transformers/internal/shadow-functions.js +++ b/packages/babel-core/src/transformation/transformers/internal/shadow-functions.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-trailing" diff --git a/packages/babel/src/transformation/transformers/internal/validation.js b/packages/babel-core/src/transformation/transformers/internal/validation.js similarity index 89% rename from packages/babel/src/transformation/transformers/internal/validation.js rename to packages/babel-core/src/transformation/transformers/internal/validation.js index c3279c48ec..8aa0896e57 100644 --- a/packages/babel/src/transformation/transformers/internal/validation.js +++ b/packages/babel-core/src/transformation/transformers/internal/validation.js @@ -1,5 +1,5 @@ -import * as messages from "../../../messages"; -import * as t from "../../../types"; +import * as messages from "babel-messages"; +import * as t from "babel-types"; export var metadata = { group: "builtin-pre" diff --git a/packages/babel/src/transformation/transformers/optimisation/flow.for-of.js b/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js similarity index 100% rename from packages/babel/src/transformation/transformers/optimisation/flow.for-of.js rename to packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js diff --git a/packages/babel/src/transformation/transformers/optimisation/modules.system.js b/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js similarity index 97% rename from packages/babel/src/transformation/transformers/optimisation/modules.system.js rename to packages/babel-core/src/transformation/transformers/optimisation/modules.system.js index 9c2388eb2c..cf60703d1e 100644 --- a/packages/babel/src/transformation/transformers/optimisation/modules.system.js +++ b/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { optional: true, diff --git a/packages/babel/src/transformation/transformers/optimisation/react.inline-elements.js b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js similarity index 96% rename from packages/babel/src/transformation/transformers/optimisation/react.inline-elements.js rename to packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js index 8c7c182ed4..d96ed7d27e 100644 --- a/packages/babel/src/transformation/transformers/optimisation/react.inline-elements.js +++ b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js @@ -1,5 +1,5 @@ -import * as react from "../../helpers/react"; -import * as t from "../../../types"; +import { react } from "babel-types"; +import * as t from "babel-types"; export var metadata = { optional: true diff --git a/packages/babel/src/transformation/transformers/other/async-to-generator.js b/packages/babel-core/src/transformation/transformers/other/async-to-generator.js similarity index 100% rename from packages/babel/src/transformation/transformers/other/async-to-generator.js rename to packages/babel-core/src/transformation/transformers/other/async-to-generator.js diff --git a/packages/babel/src/transformation/transformers/other/bluebird-coroutines.js b/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js similarity index 94% rename from packages/babel/src/transformation/transformers/other/bluebird-coroutines.js rename to packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js index 686d8f7c4f..c2aa18ac3f 100644 --- a/packages/babel/src/transformation/transformers/other/bluebird-coroutines.js +++ b/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js @@ -1,5 +1,5 @@ import remapAsyncToGenerator from "../../helpers/remap-async-to-generator"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/other/flow.js b/packages/babel-core/src/transformation/transformers/other/flow.js similarity index 97% rename from packages/babel/src/transformation/transformers/other/flow.js rename to packages/babel-core/src/transformation/transformers/other/flow.js index 08e5ac00e6..8bba081d4b 100644 --- a/packages/babel/src/transformation/transformers/other/flow.js +++ b/packages/babel-core/src/transformation/transformers/other/flow.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-trailing" diff --git a/packages/babel/src/transformation/transformers/other/react-compat.js b/packages/babel-core/src/transformation/transformers/other/react-compat.js similarity index 90% rename from packages/babel/src/transformation/transformers/other/react-compat.js rename to packages/babel-core/src/transformation/transformers/other/react-compat.js index f0d3442585..f18dc5e801 100644 --- a/packages/babel/src/transformation/transformers/other/react-compat.js +++ b/packages/babel-core/src/transformation/transformers/other/react-compat.js @@ -1,5 +1,5 @@ -import * as react from "../../helpers/react"; -import * as t from "../../../types"; +import { react } from "babel-types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/other/react.js b/packages/babel-core/src/transformation/transformers/other/react.js similarity index 94% rename from packages/babel/src/transformation/transformers/other/react.js rename to packages/babel-core/src/transformation/transformers/other/react.js index 8da3b76a45..1dea3075f4 100644 --- a/packages/babel/src/transformation/transformers/other/react.js +++ b/packages/babel-core/src/transformation/transformers/other/react.js @@ -1,5 +1,5 @@ -import * as react from "../../helpers/react"; -import * as t from "../../../types"; +import { react } from "babel-types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/other/regenerator.js b/packages/babel-core/src/transformation/transformers/other/regenerator.js similarity index 98% rename from packages/babel/src/transformation/transformers/other/regenerator.js rename to packages/babel-core/src/transformation/transformers/other/regenerator.js index 7bd0a45cdb..ad16230c99 100644 --- a/packages/babel/src/transformation/transformers/other/regenerator.js +++ b/packages/babel-core/src/transformation/transformers/other/regenerator.js @@ -1,5 +1,5 @@ import regenerator from "regenerator"; -import * as t from "../../../types"; +import * as t from "babel-types"; // It's important to use the exact same NodePath constructor that // Regenerator uses, rather than require("ast-types").NodePath, because diff --git a/packages/babel/src/transformation/transformers/other/strict.js b/packages/babel-core/src/transformation/transformers/other/strict.js similarity index 97% rename from packages/babel/src/transformation/transformers/other/strict.js rename to packages/babel-core/src/transformation/transformers/other/strict.js index 2887f42dbf..335f02de29 100644 --- a/packages/babel/src/transformation/transformers/other/strict.js +++ b/packages/babel-core/src/transformation/transformers/other/strict.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export var metadata = { group: "builtin-pre" diff --git a/packages/babel/src/transformation/transformers/spec/block-scoped-functions.js b/packages/babel-core/src/transformation/transformers/spec/block-scoped-functions.js similarity index 96% rename from packages/babel/src/transformation/transformers/spec/block-scoped-functions.js rename to packages/babel-core/src/transformation/transformers/spec/block-scoped-functions.js index 28241e22b1..9df667e213 100644 --- a/packages/babel/src/transformation/transformers/spec/block-scoped-functions.js +++ b/packages/babel-core/src/transformation/transformers/spec/block-scoped-functions.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/transformation/transformers/spec/function-name.js b/packages/babel-core/src/transformation/transformers/spec/function-name.js similarity index 100% rename from packages/babel/src/transformation/transformers/spec/function-name.js rename to packages/babel-core/src/transformation/transformers/spec/function-name.js diff --git a/packages/babel/src/transformation/transformers/validation/react.js b/packages/babel-core/src/transformation/transformers/validation/react.js similarity index 90% rename from packages/babel/src/transformation/transformers/validation/react.js rename to packages/babel-core/src/transformation/transformers/validation/react.js index 95e4af2e91..3e8660ae50 100644 --- a/packages/babel/src/transformation/transformers/validation/react.js +++ b/packages/babel-core/src/transformation/transformers/validation/react.js @@ -1,5 +1,5 @@ -import * as messages from "../../../messages"; -import * as t from "../../../types"; +import * as messages from "babel-messages"; +import * as t from "babel-types"; // check if the input Literal `source` is an alternate casing of "react" function check(source, file) { diff --git a/packages/babel/src/util.js b/packages/babel-core/src/util.js similarity index 97% rename from packages/babel/src/util.js rename to packages/babel-core/src/util.js index 2f0610873f..896408ad80 100644 --- a/packages/babel/src/util.js +++ b/packages/babel-core/src/util.js @@ -2,10 +2,10 @@ import escapeRegExp from "lodash/string/escapeRegExp"; import startsWith from "lodash/string/startsWith"; import cloneDeep from "lodash/lang/cloneDeep"; import isBoolean from "lodash/lang/isBoolean"; -import * as messages from "./messages"; +import * as messages from "babel-messages"; import minimatch from "minimatch"; import contains from "lodash/collection/contains"; -import traverse from "./traversal"; +import traverse from "babel-traverse"; import isString from "lodash/lang/isString"; import isRegExp from "lodash/lang/isRegExp"; import isEmpty from "lodash/lang/isEmpty"; @@ -13,7 +13,7 @@ import parse from "./helpers/parse"; import path from "path"; import has from "lodash/object/has"; import fs from "fs"; -import * as t from "./types"; +import * as t from "babel-types"; import slash from "slash"; import pathExists from "path-exists"; diff --git a/packages/babel/test/.babelrc b/packages/babel-core/test/.babelrc similarity index 100% rename from packages/babel/test/.babelrc rename to packages/babel-core/test/.babelrc diff --git a/packages/babel/test/_browser.js b/packages/babel-core/test/_browser.js similarity index 100% rename from packages/babel/test/_browser.js rename to packages/babel-core/test/_browser.js diff --git a/packages/babel/test/_transformation-helper.js b/packages/babel-core/test/_transformation-helper.js similarity index 98% rename from packages/babel/test/_transformation-helper.js rename to packages/babel-core/test/_transformation-helper.js index dd61dd4a65..ad40317383 100644 --- a/packages/babel/test/_transformation-helper.js +++ b/packages/babel-core/test/_transformation-helper.js @@ -2,7 +2,7 @@ var buildExernalHelpers = require("../lib/tools/build-external-helpers"); var getFixtures = require("mocha-fixtures"); var transform = require("../lib/transformation"); var sourceMap = require("source-map"); -var codeFrame = require("../lib/helpers/code-frame"); +var codeFrame = require("babel-code-frame"); var Module = require("module"); var assert = require("assert"); var chai = require("chai"); diff --git a/packages/babel/test/api.js b/packages/babel-core/test/api.js similarity index 100% rename from packages/babel/test/api.js rename to packages/babel-core/test/api.js diff --git a/packages/babel/test/browserify.js b/packages/babel-core/test/browserify.js similarity index 100% rename from packages/babel/test/browserify.js rename to packages/babel-core/test/browserify.js diff --git a/packages/babel/test/esnext.js b/packages/babel-core/test/esnext.js similarity index 100% rename from packages/babel/test/esnext.js rename to packages/babel-core/test/esnext.js diff --git a/packages/babel/test/fixtures/browserify/register.js b/packages/babel-core/test/fixtures/browserify/register.js similarity index 100% rename from packages/babel/test/fixtures/browserify/register.js rename to packages/babel-core/test/fixtures/browserify/register.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js diff --git a/packages/babel/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js rename to packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/anonymous-class.js b/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/anonymous-class.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/call-super-function.js b/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/call-super-function.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/class-expressions.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/class-expressions.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/class-extend.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/class-extend.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/class-with-constructor.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/class-with-constructor.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/class-with-method-declaration.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/class-with-method-declaration.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/empty-named-class.js b/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/empty-named-class.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/enumerable.js b/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/enumerable.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js b/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/extends-null.js b/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/extends-null.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/getter-setter-super.js b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/getter-setter-super.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/getter-setter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/getter-setter.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js b/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/methods-are-writable.js b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/methods-are-writable.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/methods-with-rest-params.js b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/methods-with-rest-params.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/static-getter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/static-getter.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/static-method.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/static-method.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/static-setter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/static-setter.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js diff --git a/packages/babel/test/fixtures/esnext/es6-classes/super-change-proto.js b/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-classes/super-change-proto.js rename to packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js diff --git a/packages/babel/test/fixtures/esnext/es6-computed-properties/accessor.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-computed-properties/accessor.js rename to packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js diff --git a/packages/babel/test/fixtures/esnext/es6-computed-properties/method.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-computed-properties/method.js rename to packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js diff --git a/packages/babel/test/fixtures/esnext/es6-computed-properties/nested.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-computed-properties/nested.js rename to packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js diff --git a/packages/babel/test/fixtures/esnext/es6-computed-properties/simple.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-computed-properties/simple.js rename to packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js diff --git a/packages/babel/test/fixtures/esnext/es6-default-parameters/arity.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-default-parameters/arity.js rename to packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js diff --git a/packages/babel/test/fixtures/esnext/es6-default-parameters/arrow-function.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-default-parameters/arrow-function.js rename to packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js diff --git a/packages/babel/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js rename to packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js diff --git a/packages/babel/test/fixtures/esnext/es6-default-parameters/scope.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-default-parameters/scope.js rename to packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js diff --git a/packages/babel/test/fixtures/esnext/es6-default-parameters/simple-function.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-default-parameters/simple-function.js rename to packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js diff --git a/packages/babel/test/fixtures/esnext/es6-object-concise/method-arguments.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-object-concise/method-arguments.js rename to packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js diff --git a/packages/babel/test/fixtures/esnext/es6-object-concise/method-context.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-object-concise/method-context.js rename to packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js diff --git a/packages/babel/test/fixtures/esnext/es6-object-concise/method-has-name.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-object-concise/method-has-name.js rename to packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js diff --git a/packages/babel/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js rename to packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js diff --git a/packages/babel/test/fixtures/esnext/es6-object-concise/method.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-object-concise/method.js rename to packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js diff --git a/packages/babel/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js rename to packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js diff --git a/packages/babel/test/fixtures/esnext/es6-rest-parameters/declaration.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-rest-parameters/declaration.js rename to packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js diff --git a/packages/babel/test/fixtures/esnext/es6-rest-parameters/rest.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-rest-parameters/rest.js rename to packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/arguments-as-array.js b/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/arguments-as-array.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/array-literal.js b/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/array-literal.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/call-with-array-literal.js b/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/call-with-array-literal.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/inside-function-expression.js b/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/inside-function-expression.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/iterator.js b/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/iterator.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/new-object.js b/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/new-object.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/preserve-context.js b/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/preserve-context.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js diff --git a/packages/babel/test/fixtures/esnext/es6-spread/simple-function-call.js b/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-spread/simple-function-call.js rename to packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js diff --git a/packages/babel/test/fixtures/esnext/es6-templates/multi-line.js b/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-templates/multi-line.js rename to packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js diff --git a/packages/babel/test/fixtures/esnext/es6-templates/nested-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-templates/nested-interpolation.js rename to packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js diff --git a/packages/babel/test/fixtures/esnext/es6-templates/no-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-templates/no-interpolation.js rename to packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js diff --git a/packages/babel/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js b/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js rename to packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js diff --git a/packages/babel/test/fixtures/esnext/es6-templates/simple-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-templates/simple-interpolation.js rename to packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js diff --git a/packages/babel/test/fixtures/esnext/es6-templates/tagged-template-expression.js b/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js similarity index 100% rename from packages/babel/test/fixtures/esnext/es6-templates/tagged-template-expression.js rename to packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js diff --git a/packages/babel/test/fixtures/generation/auto-indentation/hard-tab/actual.js b/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-indentation/hard-tab/actual.js rename to packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/actual.js diff --git a/packages/babel/test/fixtures/generation/auto-indentation/hard-tab/expected.js b/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-indentation/hard-tab/expected.js rename to packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/expected.js diff --git a/packages/babel/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js rename to packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js diff --git a/packages/babel/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js rename to packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js diff --git a/packages/babel/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js rename to packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js diff --git a/packages/babel/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js rename to packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js diff --git a/packages/babel/test/fixtures/generation/auto-string/double/actual.js b/packages/babel-core/test/fixtures/generation/auto-string/double/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-string/double/actual.js rename to packages/babel-core/test/fixtures/generation/auto-string/double/actual.js diff --git a/packages/babel/test/fixtures/generation/auto-string/double/expected.js b/packages/babel-core/test/fixtures/generation/auto-string/double/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-string/double/expected.js rename to packages/babel-core/test/fixtures/generation/auto-string/double/expected.js diff --git a/packages/babel/test/fixtures/generation/auto-string/single/actual.js b/packages/babel-core/test/fixtures/generation/auto-string/single/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-string/single/actual.js rename to packages/babel-core/test/fixtures/generation/auto-string/single/actual.js diff --git a/packages/babel/test/fixtures/generation/auto-string/single/expected.js b/packages/babel-core/test/fixtures/generation/auto-string/single/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/auto-string/single/expected.js rename to packages/babel-core/test/fixtures/generation/auto-string/single/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js rename to packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js rename to packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/2-space-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/2-space-multi-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/2-space-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/2-space-multi-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js rename to packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js rename to packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json similarity index 100% rename from packages/babel/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json rename to packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json diff --git a/packages/babel/test/fixtures/generation/comments/block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/block-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/block-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/block-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/block-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-only-with-space/actual.js b/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-only-with-space/actual.js rename to packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-only-with-space/expected.js b/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-only-with-space/expected.js rename to packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-only/actual.js b/packages/babel-core/test/fixtures/generation/comments/comment-only/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-only/actual.js rename to packages/babel-core/test/fixtures/generation/comments/comment-only/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-only/expected.js b/packages/babel-core/test/fixtures/generation/comments/comment-only/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-only/expected.js rename to packages/babel-core/test/fixtures/generation/comments/comment-only/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js rename to packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js rename to packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json similarity index 100% rename from packages/babel/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json rename to packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json diff --git a/packages/babel/test/fixtures/generation/comments/computed-property-comments-2/actual.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/computed-property-comments-2/actual.js rename to packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/computed-property-comments-2/expected.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/computed-property-comments-2/expected.js rename to packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/computed-property-comments/actual.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/computed-property-comments/actual.js rename to packages/babel-core/test/fixtures/generation/comments/computed-property-comments/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/computed-property-comments/expected.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/computed-property-comments/expected.js rename to packages/babel-core/test/fixtures/generation/comments/computed-property-comments/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/do-while-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/do-while-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/do-while-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/do-while-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/empty-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/empty-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/empty-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/empty-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/empty-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/empty-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/empty/actual.js b/packages/babel-core/test/fixtures/generation/comments/empty/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/empty/actual.js rename to packages/babel-core/test/fixtures/generation/comments/empty/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/empty/expected.js b/packages/babel-core/test/fixtures/generation/comments/empty/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/empty/expected.js rename to packages/babel-core/test/fixtures/generation/comments/empty/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/function-block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/function-block-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/function-block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/function-block-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/if-block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/if-block-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/if-block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/if-block-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/if-empty-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/if-empty-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/if-empty-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/if-empty-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/if-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/if-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/if-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/if-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/if-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/if-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/if-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/if-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/object_comments/actual.js b/packages/babel-core/test/fixtures/generation/comments/object_comments/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/object_comments/actual.js rename to packages/babel-core/test/fixtures/generation/comments/object_comments/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/object_comments/expected.js b/packages/babel-core/test/fixtures/generation/comments/object_comments/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/object_comments/expected.js rename to packages/babel-core/test/fixtures/generation/comments/object_comments/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/return-no-argument/actual.js b/packages/babel-core/test/fixtures/generation/comments/return-no-argument/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/return-no-argument/actual.js rename to packages/babel-core/test/fixtures/generation/comments/return-no-argument/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/return-no-argument/expected.js b/packages/babel-core/test/fixtures/generation/comments/return-no-argument/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/return-no-argument/expected.js rename to packages/babel-core/test/fixtures/generation/comments/return-no-argument/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/simple-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/simple-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-multi-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-multi-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-statement-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-statement-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/simple-statement-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/simple-statement-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/try-block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/try-block-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/try-block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/try-block-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js rename to packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js rename to packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/compact/options.json b/packages/babel-core/test/fixtures/generation/compact/options.json similarity index 100% rename from packages/babel/test/fixtures/generation/compact/options.json rename to packages/babel-core/test/fixtures/generation/compact/options.json diff --git a/packages/babel/test/fixtures/generation/compact/single-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/compact/single-line-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/compact/single-line-comment/actual.js rename to packages/babel-core/test/fixtures/generation/compact/single-line-comment/actual.js diff --git a/packages/babel/test/fixtures/generation/compact/single-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/compact/single-line-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/compact/single-line-comment/expected.js rename to packages/babel-core/test/fixtures/generation/compact/single-line-comment/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/bitwise-precedence/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/bitwise-precedence/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/bitwise-precedence/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/bitwise-precedence/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/floating-point/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/floating-point/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/floating-point/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/floating-point/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/floating-point/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/floating-point/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/floating-point/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/floating-point/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/for-in-no-in/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/for-in-no-in/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/for-in-no-in/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/for-in-no-in/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/new-precedence/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/new-precedence/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/new-precedence/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/new-precedence/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/new-precedence/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/new-precedence/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json rename to packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json diff --git a/packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json rename to packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json diff --git a/packages/babel/test/fixtures/generation/edgecase/unary-op/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/unary-op/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/unary-op/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/unary-op/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/unary-op/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/unary-op/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/unary-op/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/unary-op/expected.js diff --git a/packages/babel/test/fixtures/generation/edgecase/variable-declaration/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/variable-declaration/actual.js rename to packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/actual.js diff --git a/packages/babel/test/fixtures/generation/edgecase/variable-declaration/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/edgecase/variable-declaration/expected.js rename to packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/array-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/array-types/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/array-types/actual.js rename to packages/babel-core/test/fixtures/generation/flow/array-types/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/array-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/array-types/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/array-types/expected.js rename to packages/babel-core/test/fixtures/generation/flow/array-types/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/boolean-literal-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/boolean-literal-types/actual.js rename to packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/boolean-literal-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/boolean-literal-types/expected.js rename to packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/call-properties/actual.js b/packages/babel-core/test/fixtures/generation/flow/call-properties/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/call-properties/actual.js rename to packages/babel-core/test/fixtures/generation/flow/call-properties/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/call-properties/expected.js b/packages/babel-core/test/fixtures/generation/flow/call-properties/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/call-properties/expected.js rename to packages/babel-core/test/fixtures/generation/flow/call-properties/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/declare-module/actual.js b/packages/babel-core/test/fixtures/generation/flow/declare-module/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/declare-module/actual.js rename to packages/babel-core/test/fixtures/generation/flow/declare-module/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/declare-module/expected.js b/packages/babel-core/test/fixtures/generation/flow/declare-module/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/declare-module/expected.js rename to packages/babel-core/test/fixtures/generation/flow/declare-module/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/declare-statements/actual.js b/packages/babel-core/test/fixtures/generation/flow/declare-statements/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/declare-statements/actual.js rename to packages/babel-core/test/fixtures/generation/flow/declare-statements/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/declare-statements/expected.js b/packages/babel-core/test/fixtures/generation/flow/declare-statements/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/declare-statements/expected.js rename to packages/babel-core/test/fixtures/generation/flow/declare-statements/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/interfaces-module-and-script/actual.js b/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/interfaces-module-and-script/actual.js rename to packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/interfaces-module-and-script/expected.js b/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/interfaces-module-and-script/expected.js rename to packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/number-literal-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/number-literal-types/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/number-literal-types/actual.js rename to packages/babel-core/test/fixtures/generation/flow/number-literal-types/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/number-literal-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/number-literal-types/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/number-literal-types/expected.js rename to packages/babel-core/test/fixtures/generation/flow/number-literal-types/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/qualified-generic-type/actual.js b/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/qualified-generic-type/actual.js rename to packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/qualified-generic-type/expected.js b/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/qualified-generic-type/expected.js rename to packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/string-literal-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/string-literal-types/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/string-literal-types/actual.js rename to packages/babel-core/test/fixtures/generation/flow/string-literal-types/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/string-literal-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/string-literal-types/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/string-literal-types/expected.js rename to packages/babel-core/test/fixtures/generation/flow/string-literal-types/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/tuples/actual.js b/packages/babel-core/test/fixtures/generation/flow/tuples/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/tuples/actual.js rename to packages/babel-core/test/fixtures/generation/flow/tuples/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/tuples/expected.js b/packages/babel-core/test/fixtures/generation/flow/tuples/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/tuples/expected.js rename to packages/babel-core/test/fixtures/generation/flow/tuples/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/type-alias/actual.js b/packages/babel-core/test/fixtures/generation/flow/type-alias/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/type-alias/actual.js rename to packages/babel-core/test/fixtures/generation/flow/type-alias/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/type-alias/expected.js b/packages/babel-core/test/fixtures/generation/flow/type-alias/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/type-alias/expected.js rename to packages/babel-core/test/fixtures/generation/flow/type-alias/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/type-annotations/actual.js b/packages/babel-core/test/fixtures/generation/flow/type-annotations/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/type-annotations/actual.js rename to packages/babel-core/test/fixtures/generation/flow/type-annotations/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/type-annotations/expected.js b/packages/babel-core/test/fixtures/generation/flow/type-annotations/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/type-annotations/expected.js rename to packages/babel-core/test/fixtures/generation/flow/type-annotations/expected.js diff --git a/packages/babel/test/fixtures/generation/flow/typecasts/actual.js b/packages/babel-core/test/fixtures/generation/flow/typecasts/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/typecasts/actual.js rename to packages/babel-core/test/fixtures/generation/flow/typecasts/actual.js diff --git a/packages/babel/test/fixtures/generation/flow/typecasts/expected.js b/packages/babel-core/test/fixtures/generation/flow/typecasts/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/flow/typecasts/expected.js rename to packages/babel-core/test/fixtures/generation/flow/typecasts/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/class-expression/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/class-expression/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/class-expression/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/class-expression/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/computed-property/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/computed-property/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/computed-property/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/computed-property/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/exports/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/exports/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/exports/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/exports/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/imports/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/imports/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/imports/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/imports/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/spread-element/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/spread-element/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/spread-element/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/spread-element/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/templates/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/templates/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/templates/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/templates/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/expected.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js diff --git a/packages/babel/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js rename to packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js diff --git a/packages/babel/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js b/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js rename to packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js diff --git a/packages/babel/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js b/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js rename to packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js diff --git a/packages/babel/test/fixtures/generation/parentheses/terminator-break/actual.js b/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/parentheses/terminator-break/actual.js rename to packages/babel-core/test/fixtures/generation/parentheses/terminator-break/actual.js diff --git a/packages/babel/test/fixtures/generation/parentheses/terminator-break/expected.js b/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/parentheses/terminator-break/expected.js rename to packages/babel-core/test/fixtures/generation/parentheses/terminator-break/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js b/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js rename to packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js b/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js rename to packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ArrowFunctionExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ArrowFunctionExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ArrowFunctionExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ArrowFunctionExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/AwaitExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/AwaitExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/AwaitExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/AwaitExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/AwaitExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/AwaitExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/AwaitExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/AwaitExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/BindExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/BindExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/BindExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/BindExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/BindExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/BindExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/BindExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/BindExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/BlockStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/BlockStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/BlockStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/BlockStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/BlockStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/BlockStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/BlockStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/BlockStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/BreakStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/BreakStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/BreakStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/BreakStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/BreakStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/BreakStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/BreakStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/BreakStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/CallExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/CallExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/CallExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/CallExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/CallExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/CallExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/CallExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/CallExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js b/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js rename to packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js b/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js rename to packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ClassDeclaration/actual.js b/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ClassDeclaration/actual.js rename to packages/babel-core/test/fixtures/generation/types/ClassDeclaration/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ClassDeclaration/expected.js b/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ClassDeclaration/expected.js rename to packages/babel-core/test/fixtures/generation/types/ClassDeclaration/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ClassExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ClassExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ClassExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/ClassExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ClassExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ClassExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ClassExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/ClassExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ConditionalExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ConditionalExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/ConditionalExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ConditionalExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ConditionalExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/ConditionalExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ContinueStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ContinueStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ContinueStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/ContinueStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ContinueStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ContinueStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ContinueStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/ContinueStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/DebuggerStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/DebuggerStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/DebuggerStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/DebuggerStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/DebuggerStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/DebuggerStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/Decorator/actual.js b/packages/babel-core/test/fixtures/generation/types/Decorator/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/Decorator/actual.js rename to packages/babel-core/test/fixtures/generation/types/Decorator/actual.js diff --git a/packages/babel/test/fixtures/generation/types/Decorator/expected.js b/packages/babel-core/test/fixtures/generation/types/Decorator/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/Decorator/expected.js rename to packages/babel-core/test/fixtures/generation/types/Decorator/expected.js diff --git a/packages/babel/test/fixtures/generation/types/DoWhileStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/DoWhileStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/DoWhileStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/DoWhileStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/DoWhileStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/DoWhileStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/EmptyStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/EmptyStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/EmptyStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/EmptyStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/EmptyStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/EmptyStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/EmptyStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/EmptyStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js b/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js rename to packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js b/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js rename to packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ForInStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ForInStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ForInStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/ForInStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ForInStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ForInStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ForInStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/ForInStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ForOfStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ForOfStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ForOfStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/ForOfStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ForOfStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ForOfStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ForOfStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/ForOfStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ForStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ForStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ForStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/ForStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ForStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ForStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ForStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/ForStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/Identifier/actual.js b/packages/babel-core/test/fixtures/generation/types/Identifier/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/Identifier/actual.js rename to packages/babel-core/test/fixtures/generation/types/Identifier/actual.js diff --git a/packages/babel/test/fixtures/generation/types/Identifier/expected.js b/packages/babel-core/test/fixtures/generation/types/Identifier/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/Identifier/expected.js rename to packages/babel-core/test/fixtures/generation/types/Identifier/expected.js diff --git a/packages/babel/test/fixtures/generation/types/IfStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/IfStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/IfStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/IfStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/IfStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/IfStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/IfStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/IfStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js b/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js rename to packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js b/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js rename to packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js diff --git a/packages/babel/test/fixtures/generation/types/LabeledStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/LabeledStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/LabeledStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/LabeledStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/LabeledStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/LabeledStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/LabeledStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/LabeledStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/Literal/actual.js b/packages/babel-core/test/fixtures/generation/types/Literal/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/Literal/actual.js rename to packages/babel-core/test/fixtures/generation/types/Literal/actual.js diff --git a/packages/babel/test/fixtures/generation/types/Literal/expected.js b/packages/babel-core/test/fixtures/generation/types/Literal/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/Literal/expected.js rename to packages/babel-core/test/fixtures/generation/types/Literal/expected.js diff --git a/packages/babel/test/fixtures/generation/types/MemberExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/MemberExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/MemberExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/MemberExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/MemberExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/MemberExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/MemberExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/MemberExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/NewExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/NewExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/NewExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/NewExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/NewExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/NewExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/NewExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/NewExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js b/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js rename to packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js b/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js rename to packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ReturnStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ReturnStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ReturnStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/ReturnStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ReturnStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ReturnStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ReturnStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/ReturnStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/SequenceExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/SequenceExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/SequenceExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/SequenceExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/SequenceExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/SequenceExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/SequenceExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/SequenceExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js b/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js rename to packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js diff --git a/packages/babel/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js b/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js rename to packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js diff --git a/packages/babel/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js b/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js rename to packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js diff --git a/packages/babel/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js b/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js rename to packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js diff --git a/packages/babel/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js b/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js rename to packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js b/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js rename to packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ThisExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ThisExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ThisExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/ThisExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ThisExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ThisExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ThisExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/ThisExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/ThrowStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ThrowStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ThrowStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/ThrowStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/ThrowStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ThrowStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/ThrowStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/ThrowStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/TryStatement-CatchClause/actual.js b/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/TryStatement-CatchClause/actual.js rename to packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/actual.js diff --git a/packages/babel/test/fixtures/generation/types/TryStatement-CatchClause/expected.js b/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/TryStatement-CatchClause/expected.js rename to packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/expected.js diff --git a/packages/babel/test/fixtures/generation/types/UnaryExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/UnaryExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/UnaryExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/UnaryExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/UnaryExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/UnaryExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/UnaryExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/UnaryExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/UpdateExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/UpdateExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/UpdateExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/UpdateExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/UpdateExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/UpdateExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/UpdateExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/UpdateExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js b/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js rename to packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js diff --git a/packages/babel/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js b/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js rename to packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js diff --git a/packages/babel/test/fixtures/generation/types/WhileStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/WhileStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/WhileStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/WhileStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/WhileStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/WhileStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/WhileStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/WhileStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/WithStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/WithStatement/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/WithStatement/actual.js rename to packages/babel-core/test/fixtures/generation/types/WithStatement/actual.js diff --git a/packages/babel/test/fixtures/generation/types/WithStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/WithStatement/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/WithStatement/expected.js rename to packages/babel-core/test/fixtures/generation/types/WithStatement/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSAttribute/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSAttribute/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSAttribute/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSAttribute/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSAttribute/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSAttribute/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSAttribute/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSAttribute/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSEmptyExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSEmptyExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSEmptyExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSEmptyExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSExpressionContainer/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSExpressionContainer/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSExpressionContainer/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSExpressionContainer/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSMemberExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSMemberExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSMemberExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSMemberExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSNamespacedName/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSNamespacedName/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSNamespacedName/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSNamespacedName/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/expected.js diff --git a/packages/babel/test/fixtures/generation/types/XJSSpreadAttribute/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSSpreadAttribute/actual.js rename to packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/actual.js diff --git a/packages/babel/test/fixtures/generation/types/XJSSpreadAttribute/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/XJSSpreadAttribute/expected.js rename to packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/expected.js diff --git a/packages/babel/test/fixtures/generation/types/YieldExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/YieldExpression/actual.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/YieldExpression/actual.js rename to packages/babel-core/test/fixtures/generation/types/YieldExpression/actual.js diff --git a/packages/babel/test/fixtures/generation/types/YieldExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/YieldExpression/expected.js similarity index 100% rename from packages/babel/test/fixtures/generation/types/YieldExpression/expected.js rename to packages/babel-core/test/fixtures/generation/types/YieldExpression/expected.js diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js rename to packages/babel-core/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Closure.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Closure.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayComprehension/Closure.js rename to packages/babel-core/test/fixtures/traceur/ArrayComprehension/Closure.js diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js rename to packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/Simple.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayComprehension/Simple.js rename to packages/babel-core/test/fixtures/traceur/ArrayComprehension/Simple.js diff --git a/packages/babel/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js rename to packages/babel-core/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/Fill.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Fill.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayExtras/Fill.js rename to packages/babel-core/test/fixtures/traceur/ArrayExtras/Fill.js diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/Find.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Find.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayExtras/Find.js rename to packages/babel-core/test/fixtures/traceur/ArrayExtras/Find.js diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/FindIndex.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/FindIndex.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayExtras/FindIndex.js rename to packages/babel-core/test/fixtures/traceur/ArrayExtras/FindIndex.js diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/From.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/From.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayExtras/From.js rename to packages/babel-core/test/fixtures/traceur/ArrayExtras/From.js diff --git a/packages/babel/test/fixtures/traceur/ArrayExtras/Of.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Of.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayExtras/Of.js rename to packages/babel-core/test/fixtures/traceur/ArrayExtras/Of.js diff --git a/packages/babel/test/fixtures/traceur/ArrayIterator.js b/packages/babel-core/test/fixtures/traceur/ArrayIterator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrayIterator.js rename to packages/babel-core/test/fixtures/traceur/ArrayIterator.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRename.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/AlphaRename.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRename.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/AlphaRename.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/AlphaRenameThisArguments.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Arguments.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Arguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Arguments.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Arguments.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/ArrowFunctions.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/CoverInitializer.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer2.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_CoverInitializer3.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_FreeVariableChecker.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_InvalidFormalParameters.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_LineTerminator.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Precedence.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Precedence2.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_Precedence3.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_SpreadNotLast.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Error_SpreadOutsideFormals.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/FreeVariableChecker.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Parens.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Parens.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Parens.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Parens.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Skip_Frozen.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Skip_InitializerShorthand.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/Skip_SoftBind.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/SloppyArguments.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/ThisBindingInPropertyName.js diff --git a/packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindings.js b/packages/babel-core/test/fixtures/traceur/ArrowFunctions/ThisBindings.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ArrowFunctions/ThisBindings.js rename to packages/babel-core/test/fixtures/traceur/ArrowFunctions/ThisBindings.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AlphaRenaming.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrow.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrow2.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrowArguments.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncArrowThis.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncMethod.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncMethodObjectLiteral.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/AsyncSyntax.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Basics.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Basics.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Basics.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Basics.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Complete.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Complete.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Complete.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Complete.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Empty.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Empty.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Empty.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Empty.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Error_AsyncArrow2.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Export.module.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Export.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Export.module.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Export.module.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Finally.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Finally.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Finally.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Finally2.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Finally2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Finally2.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Finally2.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/PromiseCast.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/PromiseCast.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/PromiseCast.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/PromiseCast.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Prototype.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Prototype.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Prototype.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Prototype.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Rethrow.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Rethrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Rethrow.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Rethrow.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Return.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Return.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Return.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Return.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Throw.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Throw.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Throw.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Throw.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Timeout.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Timeout.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Timeout.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Timeout.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Value.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Value.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Value.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Value.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/Yield.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/Yield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/Yield.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/Yield.js diff --git a/packages/babel/test/fixtures/traceur/AsyncFunctions/resources/async-function.js b/packages/babel-core/test/fixtures/traceur/AsyncFunctions/resources/async-function.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncFunctions/resources/async-function.js rename to packages/babel-core/test/fixtures/traceur/AsyncFunctions/resources/async-function.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Array.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/Array.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/Array.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/Array.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/AsyncGenerator.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/AsyncObservable.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Demo.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/Demo.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/Demo.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/Demo.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOn.module.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/ForOn.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/ForOn.module.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/ForOn.module.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ForOnBody.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/ForOnBody.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/ForOnBody.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/ForOnBody.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Method.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/Method.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/Method.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/Method.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/Property.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/Property.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/Property.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/Property.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/ReturnAsyncGenerator.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/ThisAndArguments.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/ThrowInAsyncGenerator.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldFor.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/YieldFor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/YieldFor.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/YieldFor.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/YieldForOn.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/YieldForOn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/YieldForOn.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/YieldForOn.js diff --git a/packages/babel/test/fixtures/traceur/AsyncGenerators/resources/observable.js b/packages/babel-core/test/fixtures/traceur/AsyncGenerators/resources/observable.js similarity index 100% rename from packages/babel/test/fixtures/traceur/AsyncGenerators/resources/observable.js rename to packages/babel-core/test/fixtures/traceur/AsyncGenerators/resources/observable.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ClassMethodInheritance.js b/packages/babel-core/test/fixtures/traceur/Classes/ClassMethodInheritance.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ClassMethodInheritance.js rename to packages/babel-core/test/fixtures/traceur/Classes/ClassMethodInheritance.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ClassNameBinding.js b/packages/babel-core/test/fixtures/traceur/Classes/ClassNameBinding.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ClassNameBinding.js rename to packages/babel-core/test/fixtures/traceur/Classes/ClassNameBinding.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ClassNameInStack.js b/packages/babel-core/test/fixtures/traceur/Classes/ClassNameInStack.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ClassNameInStack.js rename to packages/babel-core/test/fixtures/traceur/Classes/ClassNameInStack.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Constructor.js b/packages/babel-core/test/fixtures/traceur/Classes/Constructor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Constructor.js rename to packages/babel-core/test/fixtures/traceur/Classes/Constructor.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ConstructorChaining.js b/packages/babel-core/test/fixtures/traceur/Classes/ConstructorChaining.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ConstructorChaining.js rename to packages/babel-core/test/fixtures/traceur/Classes/ConstructorChaining.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ConstructorMember.js b/packages/babel-core/test/fixtures/traceur/Classes/ConstructorMember.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ConstructorMember.js rename to packages/babel-core/test/fixtures/traceur/Classes/ConstructorMember.js diff --git a/packages/babel/test/fixtures/traceur/Classes/DefaultConstructor.js b/packages/babel-core/test/fixtures/traceur/Classes/DefaultConstructor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/DefaultConstructor.js rename to packages/babel-core/test/fixtures/traceur/Classes/DefaultConstructor.js diff --git a/packages/babel/test/fixtures/traceur/Classes/DeriveFromObject.js b/packages/babel-core/test/fixtures/traceur/Classes/DeriveFromObject.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/DeriveFromObject.js rename to packages/babel-core/test/fixtures/traceur/Classes/DeriveFromObject.js diff --git a/packages/babel/test/fixtures/traceur/Classes/EmptyClass.js b/packages/babel-core/test/fixtures/traceur/Classes/EmptyClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/EmptyClass.js rename to packages/babel-core/test/fixtures/traceur/Classes/EmptyClass.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_GH1556.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_GH1556.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_GH1556.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_GH1556.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_NestedFunctionSuper.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_NewSuper.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_NewSuper.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_NewSuper.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NewSuper2.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_NewSuper2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_NewSuper2.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_NewSuper2.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_NoSuperInDerivedClass.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_Super.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_Super.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_Super.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_Super.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_SuperAsTemplateTag.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_SuperCallInNonDerived.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperNestedClass.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_SuperNestedClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_SuperNestedClass.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_SuperNestedClass.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js b/packages/babel-core/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js rename to packages/babel-core/test/fixtures/traceur/Classes/Error_SuperPropertyOutsideMethod.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendCoverFormals.js b/packages/babel-core/test/fixtures/traceur/Classes/ExtendCoverFormals.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ExtendCoverFormals.js rename to packages/babel-core/test/fixtures/traceur/Classes/ExtendCoverFormals.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js b/packages/babel-core/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js rename to packages/babel-core/test/fixtures/traceur/Classes/ExtendNonConstructableFunction.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendObject.js b/packages/babel-core/test/fixtures/traceur/Classes/ExtendObject.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ExtendObject.js rename to packages/babel-core/test/fixtures/traceur/Classes/ExtendObject.js diff --git a/packages/babel/test/fixtures/traceur/Classes/ExtendStrange.js b/packages/babel-core/test/fixtures/traceur/Classes/ExtendStrange.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/ExtendStrange.js rename to packages/babel-core/test/fixtures/traceur/Classes/ExtendStrange.js diff --git a/packages/babel/test/fixtures/traceur/Classes/FieldInheritance.js b/packages/babel-core/test/fixtures/traceur/Classes/FieldInheritance.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/FieldInheritance.js rename to packages/babel-core/test/fixtures/traceur/Classes/FieldInheritance.js diff --git a/packages/babel/test/fixtures/traceur/Classes/FieldInitializers.js b/packages/babel-core/test/fixtures/traceur/Classes/FieldInitializers.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/FieldInitializers.js rename to packages/babel-core/test/fixtures/traceur/Classes/FieldInitializers.js diff --git a/packages/babel/test/fixtures/traceur/Classes/FieldLookup.js b/packages/babel-core/test/fixtures/traceur/Classes/FieldLookup.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/FieldLookup.js rename to packages/babel-core/test/fixtures/traceur/Classes/FieldLookup.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Fields.js b/packages/babel-core/test/fixtures/traceur/Classes/Fields.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Fields.js rename to packages/babel-core/test/fixtures/traceur/Classes/Fields.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Getters.js b/packages/babel-core/test/fixtures/traceur/Classes/Getters.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Getters.js rename to packages/babel-core/test/fixtures/traceur/Classes/Getters.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Inheritance.js b/packages/babel-core/test/fixtures/traceur/Classes/Inheritance.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Inheritance.js rename to packages/babel-core/test/fixtures/traceur/Classes/Inheritance.js diff --git a/packages/babel/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js b/packages/babel-core/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js rename to packages/babel-core/test/fixtures/traceur/Classes/InheritanceFromMemberExpression.js diff --git a/packages/babel/test/fixtures/traceur/Classes/InheritanceFromNonclass.js b/packages/babel-core/test/fixtures/traceur/Classes/InheritanceFromNonclass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/InheritanceFromNonclass.js rename to packages/babel-core/test/fixtures/traceur/Classes/InheritanceFromNonclass.js diff --git a/packages/babel/test/fixtures/traceur/Classes/InheritanceNameBinding.js b/packages/babel-core/test/fixtures/traceur/Classes/InheritanceNameBinding.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/InheritanceNameBinding.js rename to packages/babel-core/test/fixtures/traceur/Classes/InheritanceNameBinding.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Method.js b/packages/babel-core/test/fixtures/traceur/Classes/Method.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Method.js rename to packages/babel-core/test/fixtures/traceur/Classes/Method.js diff --git a/packages/babel/test/fixtures/traceur/Classes/MethodInheritance.js b/packages/babel-core/test/fixtures/traceur/Classes/MethodInheritance.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/MethodInheritance.js rename to packages/babel-core/test/fixtures/traceur/Classes/MethodInheritance.js diff --git a/packages/babel/test/fixtures/traceur/Classes/MethodLookup.js b/packages/babel-core/test/fixtures/traceur/Classes/MethodLookup.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/MethodLookup.js rename to packages/babel-core/test/fixtures/traceur/Classes/MethodLookup.js diff --git a/packages/babel/test/fixtures/traceur/Classes/NameBinding.js b/packages/babel-core/test/fixtures/traceur/Classes/NameBinding.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/NameBinding.js rename to packages/babel-core/test/fixtures/traceur/Classes/NameBinding.js diff --git a/packages/babel/test/fixtures/traceur/Classes/NestedClassSuper.js b/packages/babel-core/test/fixtures/traceur/Classes/NestedClassSuper.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/NestedClassSuper.js rename to packages/babel-core/test/fixtures/traceur/Classes/NestedClassSuper.js diff --git a/packages/babel/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js b/packages/babel-core/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js rename to packages/babel-core/test/fixtures/traceur/Classes/NestedClassSuperAnimal.js diff --git a/packages/babel/test/fixtures/traceur/Classes/NewClassExpression.js b/packages/babel-core/test/fixtures/traceur/Classes/NewClassExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/NewClassExpression.js rename to packages/babel-core/test/fixtures/traceur/Classes/NewClassExpression.js diff --git a/packages/babel/test/fixtures/traceur/Classes/NonEnum.js b/packages/babel-core/test/fixtures/traceur/Classes/NonEnum.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/NonEnum.js rename to packages/babel-core/test/fixtures/traceur/Classes/NonEnum.js diff --git a/packages/babel/test/fixtures/traceur/Classes/OptionalParams.js b/packages/babel-core/test/fixtures/traceur/Classes/OptionalParams.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/OptionalParams.js rename to packages/babel-core/test/fixtures/traceur/Classes/OptionalParams.js diff --git a/packages/babel/test/fixtures/traceur/Classes/PropertyAccessors.js b/packages/babel-core/test/fixtures/traceur/Classes/PropertyAccessors.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/PropertyAccessors.js rename to packages/babel-core/test/fixtures/traceur/Classes/PropertyAccessors.js diff --git a/packages/babel/test/fixtures/traceur/Classes/PrototypeDescriptor.js b/packages/babel-core/test/fixtures/traceur/Classes/PrototypeDescriptor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/PrototypeDescriptor.js rename to packages/babel-core/test/fixtures/traceur/Classes/PrototypeDescriptor.js diff --git a/packages/babel/test/fixtures/traceur/Classes/RestParams.js b/packages/babel-core/test/fixtures/traceur/Classes/RestParams.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/RestParams.js rename to packages/babel-core/test/fixtures/traceur/Classes/RestParams.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SemiColon.js b/packages/babel-core/test/fixtures/traceur/Classes/SemiColon.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SemiColon.js rename to packages/babel-core/test/fixtures/traceur/Classes/SemiColon.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SimpleSuper.js b/packages/babel-core/test/fixtures/traceur/Classes/SimpleSuper.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SimpleSuper.js rename to packages/babel-core/test/fixtures/traceur/Classes/SimpleSuper.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Skip_DerivedButton.js b/packages/babel-core/test/fixtures/traceur/Classes/Skip_DerivedButton.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Skip_DerivedButton.js rename to packages/babel-core/test/fixtures/traceur/Classes/Skip_DerivedButton.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js b/packages/babel-core/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js rename to packages/babel-core/test/fixtures/traceur/Classes/Skip_HTMLBlockquoteElement.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Static.js b/packages/babel-core/test/fixtures/traceur/Classes/Static.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Static.js rename to packages/babel-core/test/fixtures/traceur/Classes/Static.js diff --git a/packages/babel/test/fixtures/traceur/Classes/StaticSuper.js b/packages/babel-core/test/fixtures/traceur/Classes/StaticSuper.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/StaticSuper.js rename to packages/babel-core/test/fixtures/traceur/Classes/StaticSuper.js diff --git a/packages/babel/test/fixtures/traceur/Classes/StaticSuperNoExtends.js b/packages/babel-core/test/fixtures/traceur/Classes/StaticSuperNoExtends.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/StaticSuperNoExtends.js rename to packages/babel-core/test/fixtures/traceur/Classes/StaticSuperNoExtends.js diff --git a/packages/babel/test/fixtures/traceur/Classes/StaticSymbol.js b/packages/babel-core/test/fixtures/traceur/Classes/StaticSymbol.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/StaticSymbol.js rename to packages/babel-core/test/fixtures/traceur/Classes/StaticSymbol.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Strict.js b/packages/babel-core/test/fixtures/traceur/Classes/Strict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Strict.js rename to packages/babel-core/test/fixtures/traceur/Classes/Strict.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperChaining.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperChaining.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperChaining.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperChaining.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperChangeProto.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperChangeProto.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperChangeProto.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperChangeProto.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperInArrow.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperInArrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperInArrow.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperInArrow.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperMissing.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperMissing.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperMissing.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperMissing.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperNestedClass.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperNestedClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperNestedClass.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperNestedClass.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperPostfix.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperPostfix.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperPostfix.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperPostfix.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperSet.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperSet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperSet.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperSet.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperUnary.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperUnary.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperUnary.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperUnary.js diff --git a/packages/babel/test/fixtures/traceur/Classes/SuperWithoutExtends.js b/packages/babel-core/test/fixtures/traceur/Classes/SuperWithoutExtends.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/SuperWithoutExtends.js rename to packages/babel-core/test/fixtures/traceur/Classes/SuperWithoutExtends.js diff --git a/packages/babel/test/fixtures/traceur/Classes/Types.js b/packages/babel-core/test/fixtures/traceur/Classes/Types.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Classes/Types.js rename to packages/babel-core/test/fixtures/traceur/Classes/Types.js diff --git a/packages/babel/test/fixtures/traceur/Collections/Map.js b/packages/babel-core/test/fixtures/traceur/Collections/Map.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Collections/Map.js rename to packages/babel-core/test/fixtures/traceur/Collections/Map.js diff --git a/packages/babel/test/fixtures/traceur/Collections/Set.js b/packages/babel-core/test/fixtures/traceur/Collections/Set.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Collections/Set.js rename to packages/babel-core/test/fixtures/traceur/Collections/Set.js diff --git a/packages/babel/test/fixtures/traceur/Collections/SetWithSymbols.js b/packages/babel-core/test/fixtures/traceur/Collections/SetWithSymbols.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Collections/SetWithSymbols.js rename to packages/babel-core/test/fixtures/traceur/Collections/SetWithSymbols.js diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Class.js b/packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/Class.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ComputedPropertyNames/Class.js rename to packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/Class.js diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js b/packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js rename to packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/ComputedPropertyNames.js diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/ComputedPropertyNames/Symbol.js b/packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/Symbol.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ComputedPropertyNames/Symbol.js rename to packages/babel-core/test/fixtures/traceur/ComputedPropertyNames/Symbol.js diff --git a/packages/babel/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js b/packages/babel-core/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js rename to packages/babel-core/test/fixtures/traceur/DefaultParameters/Error_SetAccessor.js diff --git a/packages/babel/test/fixtures/traceur/DefaultParameters/Simple.js b/packages/babel-core/test/fixtures/traceur/DefaultParameters/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/DefaultParameters/Simple.js rename to packages/babel-core/test/fixtures/traceur/DefaultParameters/Simple.js diff --git a/packages/babel/test/fixtures/traceur/DefaultParameters/Strict.js b/packages/babel-core/test/fixtures/traceur/DefaultParameters/Strict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/DefaultParameters/Strict.js rename to packages/babel-core/test/fixtures/traceur/DefaultParameters/Strict.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Arguments.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Arguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Arguments.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Arguments.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Array.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Array.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Array.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Array.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ArrayPatternTrailingComma.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ArrayPatternWithCoverInitializedName.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ArrayPatternWithInitializer.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ArrowFunction.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ArrowFunction.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ArrowFunction.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ArrowFunction.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Catch.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Catch.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Catch.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Catch.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Class.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Class.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Class.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Class.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializedName.js b/packages/babel-core/test/fixtures/traceur/Destructuring/CoverInitializedName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/CoverInitializedName.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/CoverInitializedName.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializer.js b/packages/babel-core/test/fixtures/traceur/Destructuring/CoverInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/CoverInitializer.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/CoverInitializer.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js b/packages/babel-core/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/CoverInitializerInForOf.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/DefaultParams.js b/packages/babel-core/test/fixtures/traceur/Destructuring/DefaultParams.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/DefaultParams.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/DefaultParams.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Empty.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Empty.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Empty.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Empty.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Error_ForInWithInitializer.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Error_ForOfWithInitializer.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Error_InvalidArrowRest.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Error_InvalidCoverInitializedName.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js b/packages/babel-core/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/EvaluatesToRvalue.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/EvaluationOrder.js b/packages/babel-core/test/fixtures/traceur/Destructuring/EvaluationOrder.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/EvaluationOrder.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/EvaluationOrder.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ForInLoop.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ForInLoop.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ForInLoop.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ForInLoop.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ForOfLoop.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ForOfLoop.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ForOfLoop.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ForOfLoop.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js b/packages/babel-core/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/FunctionArrayPattern.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js b/packages/babel-core/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/FunctionObjectPattern.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Initializer.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Initializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Initializer.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Initializer.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/InitializerObject.js b/packages/babel-core/test/fixtures/traceur/Destructuring/InitializerObject.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/InitializerObject.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/InitializerObject.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Method.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Method.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Method.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Method.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js b/packages/babel-core/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/MultipleCoverInitializersInArrowFunction.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/NestedScopeArguments.js b/packages/babel-core/test/fixtures/traceur/Destructuring/NestedScopeArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/NestedScopeArguments.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/NestedScopeArguments.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Object.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Object.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Object.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Object.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Rest.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Rest.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Rest.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Rest.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/RestIterator.js b/packages/babel-core/test/fixtures/traceur/Destructuring/RestIterator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/RestIterator.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/RestIterator.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ScopeThis.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ScopeThis.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ScopeThis.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ScopeThis.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/SetAccessor.js b/packages/babel-core/test/fixtures/traceur/Destructuring/SetAccessor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/SetAccessor.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/SetAccessor.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Simplify.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Simplify.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Simplify.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Simplify.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/StrangeProperties.js b/packages/babel-core/test/fixtures/traceur/Destructuring/StrangeProperties.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/StrangeProperties.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/StrangeProperties.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/Strict.js b/packages/babel-core/test/fixtures/traceur/Destructuring/Strict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/Strict.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/Strict.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/TopLevel.js b/packages/babel-core/test/fixtures/traceur/Destructuring/TopLevel.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/TopLevel.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/TopLevel.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/ValueTypes.js b/packages/babel-core/test/fixtures/traceur/Destructuring/ValueTypes.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/ValueTypes.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/ValueTypes.js diff --git a/packages/babel/test/fixtures/traceur/Destructuring/VarDecl.js b/packages/babel-core/test/fixtures/traceur/Destructuring/VarDecl.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Destructuring/VarDecl.js rename to packages/babel-core/test/fixtures/traceur/Destructuring/VarDecl.js diff --git a/packages/babel/test/fixtures/traceur/Exponentiation/Basics.js b/packages/babel-core/test/fixtures/traceur/Exponentiation/Basics.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Exponentiation/Basics.js rename to packages/babel-core/test/fixtures/traceur/Exponentiation/Basics.js diff --git a/packages/babel/test/fixtures/traceur/ForOf/NewNoParens.js b/packages/babel-core/test/fixtures/traceur/ForOf/NewNoParens.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ForOf/NewNoParens.js rename to packages/babel-core/test/fixtures/traceur/ForOf/NewNoParens.js diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js b/packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js similarity index 100% rename from packages/babel/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js rename to packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Error_NotDefined.js diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Simple.js b/packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/GeneratorComprehension/Simple.js rename to packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Simple.js diff --git a/packages/babel/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js b/packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js similarity index 100% rename from packages/babel/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js rename to packages/babel-core/test/fixtures/traceur/GeneratorComprehension/Skip_Closure.js diff --git a/packages/babel/test/fixtures/traceur/LICENSE b/packages/babel-core/test/fixtures/traceur/LICENSE similarity index 100% rename from packages/babel/test/fixtures/traceur/LICENSE rename to packages/babel-core/test/fixtures/traceur/LICENSE diff --git a/packages/babel/test/fixtures/traceur/Math/acosh.module.js b/packages/babel-core/test/fixtures/traceur/Math/acosh.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/acosh.module.js rename to packages/babel-core/test/fixtures/traceur/Math/acosh.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/asinh.module.js b/packages/babel-core/test/fixtures/traceur/Math/asinh.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/asinh.module.js rename to packages/babel-core/test/fixtures/traceur/Math/asinh.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/atanh.module.js b/packages/babel-core/test/fixtures/traceur/Math/atanh.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/atanh.module.js rename to packages/babel-core/test/fixtures/traceur/Math/atanh.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/cbrt.module.js b/packages/babel-core/test/fixtures/traceur/Math/cbrt.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/cbrt.module.js rename to packages/babel-core/test/fixtures/traceur/Math/cbrt.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/clz32.module.js b/packages/babel-core/test/fixtures/traceur/Math/clz32.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/clz32.module.js rename to packages/babel-core/test/fixtures/traceur/Math/clz32.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/cosh.module.js b/packages/babel-core/test/fixtures/traceur/Math/cosh.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/cosh.module.js rename to packages/babel-core/test/fixtures/traceur/Math/cosh.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/expm1.module.js b/packages/babel-core/test/fixtures/traceur/Math/expm1.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/expm1.module.js rename to packages/babel-core/test/fixtures/traceur/Math/expm1.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/fround.module.js b/packages/babel-core/test/fixtures/traceur/Math/fround.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/fround.module.js rename to packages/babel-core/test/fixtures/traceur/Math/fround.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/hypot.module.js b/packages/babel-core/test/fixtures/traceur/Math/hypot.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/hypot.module.js rename to packages/babel-core/test/fixtures/traceur/Math/hypot.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/imul.module.js b/packages/babel-core/test/fixtures/traceur/Math/imul.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/imul.module.js rename to packages/babel-core/test/fixtures/traceur/Math/imul.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/log10.module.js b/packages/babel-core/test/fixtures/traceur/Math/log10.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/log10.module.js rename to packages/babel-core/test/fixtures/traceur/Math/log10.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/log1p.module.js b/packages/babel-core/test/fixtures/traceur/Math/log1p.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/log1p.module.js rename to packages/babel-core/test/fixtures/traceur/Math/log1p.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/log2.module.js b/packages/babel-core/test/fixtures/traceur/Math/log2.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/log2.module.js rename to packages/babel-core/test/fixtures/traceur/Math/log2.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/sign.module.js b/packages/babel-core/test/fixtures/traceur/Math/sign.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/sign.module.js rename to packages/babel-core/test/fixtures/traceur/Math/sign.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/sinh.module.js b/packages/babel-core/test/fixtures/traceur/Math/sinh.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/sinh.module.js rename to packages/babel-core/test/fixtures/traceur/Math/sinh.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/tanh.module.js b/packages/babel-core/test/fixtures/traceur/Math/tanh.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/tanh.module.js rename to packages/babel-core/test/fixtures/traceur/Math/tanh.module.js diff --git a/packages/babel/test/fixtures/traceur/Math/trunc.module.js b/packages/babel-core/test/fixtures/traceur/Math/trunc.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Math/trunc.module.js rename to packages/babel-core/test/fixtures/traceur/Math/trunc.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/EmptyNamedImport.module.js b/packages/babel-core/test/fixtures/traceur/Modules/EmptyNamedImport.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/EmptyNamedImport.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/EmptyNamedImport.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_DuplicateImport.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_ExportKeyword.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_ExportKeyword2.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_ExportStarConflict.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_ExportStarDuplicateExport.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ImportDefault.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_ImportDefault.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_ImportDefault.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_ImportDefault.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_ImportStar.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_ImportStar.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_ImportStar.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_ImportStar.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidExport.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidExport.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidExport2.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidExport3.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_InvalidModuleDeclaration2.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Error_MissingExport.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Error_MissingExport.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Error_MissingExport.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Error_MissingExport.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportDestructuring.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ExportDestructuring.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ExportDestructuring.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ExportDestructuring.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportForwardDefault.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ExportForwardDefault.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ExportForwardDefault.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ExportForwardDefault.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportStar.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ExportStar.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ExportStar.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ExportStar.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ExportStarAs.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ExportStarAs.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ExportStarAs.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ExportStarAs.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/Exports.module.js b/packages/babel-core/test/fixtures/traceur/Modules/Exports.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/Exports.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/Exports.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportAsExportAs.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportAsExportAs.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportAsExportAs.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportAsExportAs.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportBasic.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportBasic.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportBasic.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportBasic.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportCircular.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportCircular.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportCircular.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportCircular.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportDefault.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportDefault.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportDefault.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportDefault.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportEmptyImportClause.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportFromModule.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportFromModule.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportFromModule.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportFromModule.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportNoImportClause.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportNoImportClause.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportNoImportClause.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportNoImportClause.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportPair.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportPair.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportPair.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportPair.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefault.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportReExportDefault.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportReExportDefault.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportReExportDefault.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ImportReExportDefaultAs.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ModuleDefault.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ModuleDefault.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ModuleDefault.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ModuleDefault.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ModuleName.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ModuleName.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ModuleName.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ModuleName.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/StaticMethod.module.js b/packages/babel-core/test/fixtures/traceur/Modules/StaticMethod.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/StaticMethod.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/StaticMethod.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/ThisInModules.module.js b/packages/babel-core/test/fixtures/traceur/Modules/ThisInModules.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/ThisInModules.module.js rename to packages/babel-core/test/fixtures/traceur/Modules/ThisInModules.module.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/TestClass.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/TestClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/TestClass.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/TestClass.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/a.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/a.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/a.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/a.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/a2.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/a2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/a2.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/a2.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/b.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/b.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/b.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/b.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/c.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/c.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/c.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/c.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/clockwise.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/clockwise.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/clockwise.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/clockwise.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/d.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/d.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/d.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/d.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-and-named.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default-and-named.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default-and-named.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default-and-named.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-class-expression.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default-class-expression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default-class-expression.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default-class-expression.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-class.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default-class.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default-class.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default-class.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-function-expression.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default-function-expression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default-function-expression.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default-function-expression.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-function.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default-function.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default-function.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default-function.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default-name.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default-name.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default-name.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default-name.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/default.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/default.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/default.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/default.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-conflict.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/export-conflict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/export-conflict.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/export-conflict.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-destructuring.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/export-destructuring.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/export-destructuring.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/export-destructuring.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-forward-default-as.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/export-forward-default-as.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/export-forward-default-as.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/export-forward-default-as.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/export-star-as.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/export-star-as.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/export-star-as.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/export-star-as.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/f.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/f.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/f.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/f.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/i.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/i.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/i.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/i.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/m.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/m.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/m.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/m.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/m2.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/m2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/m2.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/m2.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/m3.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/m3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/m3.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/m3.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/n.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/n.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/n.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/n.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/o.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/o.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/o.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/o.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/p.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/p.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/p.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/p.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default-as.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/re-export-default-as.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/re-export-default-as.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/re-export-default-as.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/re-export-default.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/re-export-default.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/re-export-default.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/re-export-default.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/side-effect.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/side-effect.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/side-effect.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/side-effect.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/side-effect2.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/side-effect2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/side-effect2.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/side-effect2.js diff --git a/packages/babel/test/fixtures/traceur/Modules/resources/x.js b/packages/babel-core/test/fixtures/traceur/Modules/resources/x.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Modules/resources/x.js rename to packages/babel-core/test/fixtures/traceur/Modules/resources/x.js diff --git a/packages/babel/test/fixtures/traceur/Number/EPSILON.module.js b/packages/babel-core/test/fixtures/traceur/Number/EPSILON.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/EPSILON.module.js rename to packages/babel-core/test/fixtures/traceur/Number/EPSILON.module.js diff --git a/packages/babel/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js b/packages/babel-core/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js rename to packages/babel-core/test/fixtures/traceur/Number/MAX_SAFE_INTEGER.module.js diff --git a/packages/babel/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js b/packages/babel-core/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js rename to packages/babel-core/test/fixtures/traceur/Number/MIN_SAFE_INTEGER.module.js diff --git a/packages/babel/test/fixtures/traceur/Number/isFinite.module.js b/packages/babel-core/test/fixtures/traceur/Number/isFinite.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/isFinite.module.js rename to packages/babel-core/test/fixtures/traceur/Number/isFinite.module.js diff --git a/packages/babel/test/fixtures/traceur/Number/isInteger.module.js b/packages/babel-core/test/fixtures/traceur/Number/isInteger.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/isInteger.module.js rename to packages/babel-core/test/fixtures/traceur/Number/isInteger.module.js diff --git a/packages/babel/test/fixtures/traceur/Number/isNaN.module.js b/packages/babel-core/test/fixtures/traceur/Number/isNaN.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/isNaN.module.js rename to packages/babel-core/test/fixtures/traceur/Number/isNaN.module.js diff --git a/packages/babel/test/fixtures/traceur/Number/isSafeInteger.module.js b/packages/babel-core/test/fixtures/traceur/Number/isSafeInteger.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Number/isSafeInteger.module.js rename to packages/babel-core/test/fixtures/traceur/Number/isSafeInteger.module.js diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/NumericLiteral/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/NumericLiteral/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/NumericLiteral/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js b/packages/babel-core/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js similarity index 100% rename from packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js rename to packages/babel-core/test/fixtures/traceur/NumericLiteral/Error_NoBinaryDigits.js diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js b/packages/babel-core/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js similarity index 100% rename from packages/babel/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js rename to packages/babel-core/test/fixtures/traceur/NumericLiteral/Error_NoOctalDigits.js diff --git a/packages/babel/test/fixtures/traceur/NumericLiteral/Simple.js b/packages/babel-core/test/fixtures/traceur/NumericLiteral/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/NumericLiteral/Simple.js rename to packages/babel-core/test/fixtures/traceur/NumericLiteral/Simple.js diff --git a/packages/babel/test/fixtures/traceur/ObjectAssign.js b/packages/babel-core/test/fixtures/traceur/ObjectAssign.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectAssign.js rename to packages/babel-core/test/fixtures/traceur/ObjectAssign.js diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js b/packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js rename to packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_Keyword.js diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js b/packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js rename to packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_MissingVar.js diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js b/packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js rename to packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Error_StrictKeyword.js diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js b/packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js rename to packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/Ok.js diff --git a/packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js b/packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js rename to packages/babel-core/test/fixtures/traceur/ObjectInitializerShorthand/StrictKeyword.js diff --git a/packages/babel/test/fixtures/traceur/ObjectIs.js b/packages/babel-core/test/fixtures/traceur/ObjectIs.js similarity index 100% rename from packages/babel/test/fixtures/traceur/ObjectIs.js rename to packages/babel-core/test/fixtures/traceur/ObjectIs.js diff --git a/packages/babel/test/fixtures/traceur/PrependStatement.js b/packages/babel-core/test/fixtures/traceur/PrependStatement.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PrependStatement.js rename to packages/babel-core/test/fixtures/traceur/PrependStatement.js diff --git a/packages/babel/test/fixtures/traceur/Promise.js b/packages/babel-core/test/fixtures/traceur/Promise.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Promise.js rename to packages/babel-core/test/fixtures/traceur/Promise.js diff --git a/packages/babel/test/fixtures/traceur/PromiseAll.js b/packages/babel-core/test/fixtures/traceur/PromiseAll.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PromiseAll.js rename to packages/babel-core/test/fixtures/traceur/PromiseAll.js diff --git a/packages/babel/test/fixtures/traceur/PromiseResolve.js b/packages/babel-core/test/fixtures/traceur/PromiseResolve.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PromiseResolve.js rename to packages/babel-core/test/fixtures/traceur/PromiseResolve.js diff --git a/packages/babel/test/fixtures/traceur/PromiseThrowInResolve.js b/packages/babel-core/test/fixtures/traceur/PromiseThrowInResolve.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PromiseThrowInResolve.js rename to packages/babel-core/test/fixtures/traceur/PromiseThrowInResolve.js diff --git a/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/PropertyMethodAssignment/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js b/packages/babel-core/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js rename to packages/babel-core/test/fixtures/traceur/PropertyMethodAssignment/Error_NotNamed.js diff --git a/packages/babel/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js b/packages/babel-core/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js rename to packages/babel-core/test/fixtures/traceur/PropertyMethodAssignment/PropertyMethodAssignment.js diff --git a/packages/babel/test/fixtures/traceur/PureES6Transformer/Basic.js b/packages/babel-core/test/fixtures/traceur/PureES6Transformer/Basic.js similarity index 100% rename from packages/babel/test/fixtures/traceur/PureES6Transformer/Basic.js rename to packages/babel-core/test/fixtures/traceur/PureES6Transformer/Basic.js diff --git a/packages/babel/test/fixtures/traceur/RegularExpression/Simple.js b/packages/babel-core/test/fixtures/traceur/RegularExpression/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/RegularExpression/Simple.js rename to packages/babel-core/test/fixtures/traceur/RegularExpression/Simple.js diff --git a/packages/babel/test/fixtures/traceur/Rest/Error_NotLast.js b/packages/babel-core/test/fixtures/traceur/Rest/Error_NotLast.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Rest/Error_NotLast.js rename to packages/babel-core/test/fixtures/traceur/Rest/Error_NotLast.js diff --git a/packages/babel/test/fixtures/traceur/Rest/Error_SetAccessor.js b/packages/babel-core/test/fixtures/traceur/Rest/Error_SetAccessor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Rest/Error_SetAccessor.js rename to packages/babel-core/test/fixtures/traceur/Rest/Error_SetAccessor.js diff --git a/packages/babel/test/fixtures/traceur/Rest/Simple.js b/packages/babel-core/test/fixtures/traceur/Rest/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Rest/Simple.js rename to packages/babel-core/test/fixtures/traceur/Rest/Simple.js diff --git a/packages/babel/test/fixtures/traceur/Rest/Strict.js b/packages/babel-core/test/fixtures/traceur/Rest/Strict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Rest/Strict.js rename to packages/babel-core/test/fixtures/traceur/Rest/Strict.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding10.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding10.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding10.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding10.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding11.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding11.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding11.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding11.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding2.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding2.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding2.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding3.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding3.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding3.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding4.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding4.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding4.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding4.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding5.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding5.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding5.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding5.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding6.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding6.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding6.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding6.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding7.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding7.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding7.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding7.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding8.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding8.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding8.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding8.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBinding9.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBinding9.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBinding9.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBinding9.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBindingHiddenOuterLet.js diff --git a/packages/babel/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js b/packages/babel-core/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js rename to packages/babel-core/test/fixtures/traceur/Scope/BlockBindingSiblingRefenceError.js diff --git a/packages/babel/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js b/packages/babel-core/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js rename to packages/babel-core/test/fixtures/traceur/Scope/DeconstructingBlockBinding.js diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLet.js b/packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/DeepNestedLet.js rename to packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLet.js diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetConst.js b/packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLetConst.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/DeepNestedLetConst.js rename to packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLetConst.js diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVar.js b/packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLetVar.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVar.js rename to packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLetVar.js diff --git a/packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js b/packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js rename to packages/babel-core/test/fixtures/traceur/Scope/DeepNestedLetVarNoInit.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ConstMissingInitializer.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForInWithInitializerConst.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForInWithInitializerLet.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForInWithInitializerVar.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForOfWithInitializerConst.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForOfWithInitializerLet.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForOfWithInitializerVar.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_ForWithoutInitializerConst.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js b/packages/babel-core/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js rename to packages/babel-core/test/fixtures/traceur/Scope/Error_FunctionExpressionInBlock.js diff --git a/packages/babel/test/fixtures/traceur/Scope/ForInInitializers.js b/packages/babel-core/test/fixtures/traceur/Scope/ForInInitializers.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/ForInInitializers.js rename to packages/babel-core/test/fixtures/traceur/Scope/ForInInitializers.js diff --git a/packages/babel/test/fixtures/traceur/Scope/FunctionInBlock.js b/packages/babel-core/test/fixtures/traceur/Scope/FunctionInBlock.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/FunctionInBlock.js rename to packages/babel-core/test/fixtures/traceur/Scope/FunctionInBlock.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetForInInitializers1.js b/packages/babel-core/test/fixtures/traceur/Scope/LetForInInitializers1.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetForInInitializers1.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetForInInitializers1.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetForInitializers1.js b/packages/babel-core/test/fixtures/traceur/Scope/LetForInitializers1.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetForInitializers1.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetForInitializers1.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInClass.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInClass.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInClass.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInClosure.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInClosure.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInClosure.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInClosure.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInFor.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInFor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInFor.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInFor.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForBreak.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInForBreak.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInForBreak.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInForBreak.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForBreakInner.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInForBreakInner.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInForBreakInner.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInForBreakInner.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForBreakNamed.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInForBreakNamed.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInForBreakNamed.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInForBreakNamed.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForContinue.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInForContinue.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInForContinue.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInForContinue.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForContinueInner.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInForContinueInner.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInForContinueInner.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInForContinueInner.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInForContinueNamed.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInForContinueNamed.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInForContinueNamed.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInForContinueNamed.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInGenerators.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInGenerators.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInGenerators.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInGenerators.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInProperties.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInProperties.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInProperties.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInProperties.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInWhileLoop.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInWhileLoop.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInWhileLoop.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInWhileLoop.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor1.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInitializerFor1.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInitializerFor1.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInitializerFor1.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor2.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInitializerFor2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInitializerFor2.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInitializerFor2.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerFor3.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInitializerFor3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInitializerFor3.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInitializerFor3.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetInitializerForIn.js b/packages/babel-core/test/fixtures/traceur/Scope/LetInitializerForIn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetInitializerForIn.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetInitializerForIn.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetNoInitializer.js b/packages/babel-core/test/fixtures/traceur/Scope/LetNoInitializer.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetNoInitializer.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetNoInitializer.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js b/packages/babel-core/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetNoInitializerGlobal.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetReinitializeInLoop.js b/packages/babel-core/test/fixtures/traceur/Scope/LetReinitializeInLoop.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetReinitializeInLoop.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetReinitializeInLoop.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithFor.js b/packages/babel-core/test/fixtures/traceur/Scope/LetWithFor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetWithFor.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetWithFor.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithForIn.js b/packages/babel-core/test/fixtures/traceur/Scope/LetWithForIn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetWithForIn.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetWithForIn.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch.js b/packages/babel-core/test/fixtures/traceur/Scope/LetWithSwitch.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetWithSwitch.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetWithSwitch.js diff --git a/packages/babel/test/fixtures/traceur/Scope/LetWithSwitch2.js b/packages/babel-core/test/fixtures/traceur/Scope/LetWithSwitch2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/LetWithSwitch2.js rename to packages/babel-core/test/fixtures/traceur/Scope/LetWithSwitch2.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NameBindingInFunction.js b/packages/babel-core/test/fixtures/traceur/Scope/NameBindingInFunction.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NameBindingInFunction.js rename to packages/babel-core/test/fixtures/traceur/Scope/NameBindingInFunction.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedForLoops.js b/packages/babel-core/test/fixtures/traceur/Scope/NestedForLoops.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NestedForLoops.js rename to packages/babel-core/test/fixtures/traceur/Scope/NestedForLoops.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedFunction1.js b/packages/babel-core/test/fixtures/traceur/Scope/NestedFunction1.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NestedFunction1.js rename to packages/babel-core/test/fixtures/traceur/Scope/NestedFunction1.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedFunction2.js b/packages/babel-core/test/fixtures/traceur/Scope/NestedFunction2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NestedFunction2.js rename to packages/babel-core/test/fixtures/traceur/Scope/NestedFunction2.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedFunction3.js b/packages/babel-core/test/fixtures/traceur/Scope/NestedFunction3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NestedFunction3.js rename to packages/babel-core/test/fixtures/traceur/Scope/NestedFunction3.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedLet.js b/packages/babel-core/test/fixtures/traceur/Scope/NestedLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NestedLet.js rename to packages/babel-core/test/fixtures/traceur/Scope/NestedLet.js diff --git a/packages/babel/test/fixtures/traceur/Scope/NestedLetConflict.js b/packages/babel-core/test/fixtures/traceur/Scope/NestedLetConflict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/NestedLetConflict.js rename to packages/babel-core/test/fixtures/traceur/Scope/NestedLetConflict.js diff --git a/packages/babel/test/fixtures/traceur/Scope/Regress1381.js b/packages/babel-core/test/fixtures/traceur/Scope/Regress1381.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/Regress1381.js rename to packages/babel-core/test/fixtures/traceur/Scope/Regress1381.js diff --git a/packages/babel/test/fixtures/traceur/Scope/RenameFunctionBlock.js b/packages/babel-core/test/fixtures/traceur/Scope/RenameFunctionBlock.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/RenameFunctionBlock.js rename to packages/babel-core/test/fixtures/traceur/Scope/RenameFunctionBlock.js diff --git a/packages/babel/test/fixtures/traceur/Scope/SiblingScopes.js b/packages/babel-core/test/fixtures/traceur/Scope/SiblingScopes.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/SiblingScopes.js rename to packages/babel-core/test/fixtures/traceur/Scope/SiblingScopes.js diff --git a/packages/babel/test/fixtures/traceur/Scope/TopLevelLet.js b/packages/babel-core/test/fixtures/traceur/Scope/TopLevelLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/TopLevelLet.js rename to packages/babel-core/test/fixtures/traceur/Scope/TopLevelLet.js diff --git a/packages/babel/test/fixtures/traceur/Scope/TopLevelLetConst.js b/packages/babel-core/test/fixtures/traceur/Scope/TopLevelLetConst.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/TopLevelLetConst.js rename to packages/babel-core/test/fixtures/traceur/Scope/TopLevelLetConst.js diff --git a/packages/babel/test/fixtures/traceur/Scope/TopLevelLetVar.js b/packages/babel-core/test/fixtures/traceur/Scope/TopLevelLetVar.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Scope/TopLevelLetVar.js rename to packages/babel-core/test/fixtures/traceur/Scope/TopLevelLetVar.js diff --git a/packages/babel/test/fixtures/traceur/Spread/Array.js b/packages/babel-core/test/fixtures/traceur/Spread/Array.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/Array.js rename to packages/babel-core/test/fixtures/traceur/Spread/Array.js diff --git a/packages/babel/test/fixtures/traceur/Spread/Call.js b/packages/babel-core/test/fixtures/traceur/Spread/Call.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/Call.js rename to packages/babel-core/test/fixtures/traceur/Spread/Call.js diff --git a/packages/babel/test/fixtures/traceur/Spread/CallWithUndefined.js b/packages/babel-core/test/fixtures/traceur/Spread/CallWithUndefined.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/CallWithUndefined.js rename to packages/babel-core/test/fixtures/traceur/Spread/CallWithUndefined.js diff --git a/packages/babel/test/fixtures/traceur/Spread/Class.js b/packages/babel-core/test/fixtures/traceur/Spread/Class.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/Class.js rename to packages/babel-core/test/fixtures/traceur/Spread/Class.js diff --git a/packages/babel/test/fixtures/traceur/Spread/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/Spread/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/Spread/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/Spread/Iterators.js b/packages/babel-core/test/fixtures/traceur/Spread/Iterators.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/Iterators.js rename to packages/babel-core/test/fixtures/traceur/Spread/Iterators.js diff --git a/packages/babel/test/fixtures/traceur/Spread/MethodCall.js b/packages/babel-core/test/fixtures/traceur/Spread/MethodCall.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/MethodCall.js rename to packages/babel-core/test/fixtures/traceur/Spread/MethodCall.js diff --git a/packages/babel/test/fixtures/traceur/Spread/MethodCallQuotedName.js b/packages/babel-core/test/fixtures/traceur/Spread/MethodCallQuotedName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/MethodCallQuotedName.js rename to packages/babel-core/test/fixtures/traceur/Spread/MethodCallQuotedName.js diff --git a/packages/babel/test/fixtures/traceur/Spread/New.js b/packages/babel-core/test/fixtures/traceur/Spread/New.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/New.js rename to packages/babel-core/test/fixtures/traceur/Spread/New.js diff --git a/packages/babel/test/fixtures/traceur/Spread/New2.js b/packages/babel-core/test/fixtures/traceur/Spread/New2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/New2.js rename to packages/babel-core/test/fixtures/traceur/Spread/New2.js diff --git a/packages/babel/test/fixtures/traceur/Spread/NewBuiltin.js b/packages/babel-core/test/fixtures/traceur/Spread/NewBuiltin.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/NewBuiltin.js rename to packages/babel-core/test/fixtures/traceur/Spread/NewBuiltin.js diff --git a/packages/babel/test/fixtures/traceur/Spread/NoIterator.js b/packages/babel-core/test/fixtures/traceur/Spread/NoIterator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/NoIterator.js rename to packages/babel-core/test/fixtures/traceur/Spread/NoIterator.js diff --git a/packages/babel/test/fixtures/traceur/Spread/NotAnObject.js b/packages/babel-core/test/fixtures/traceur/Spread/NotAnObject.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/NotAnObject.js rename to packages/babel-core/test/fixtures/traceur/Spread/NotAnObject.js diff --git a/packages/babel/test/fixtures/traceur/Spread/String.js b/packages/babel-core/test/fixtures/traceur/Spread/String.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/String.js rename to packages/babel-core/test/fixtures/traceur/Spread/String.js diff --git a/packages/babel/test/fixtures/traceur/Spread/Type.js b/packages/babel-core/test/fixtures/traceur/Spread/Type.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Spread/Type.js rename to packages/babel-core/test/fixtures/traceur/Spread/Type.js diff --git a/packages/babel/test/fixtures/traceur/StringExtras/CodePointAt.js b/packages/babel-core/test/fixtures/traceur/StringExtras/CodePointAt.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringExtras/CodePointAt.js rename to packages/babel-core/test/fixtures/traceur/StringExtras/CodePointAt.js diff --git a/packages/babel/test/fixtures/traceur/StringExtras/EndsWith.js b/packages/babel-core/test/fixtures/traceur/StringExtras/EndsWith.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringExtras/EndsWith.js rename to packages/babel-core/test/fixtures/traceur/StringExtras/EndsWith.js diff --git a/packages/babel/test/fixtures/traceur/StringExtras/FromCodePoint.js b/packages/babel-core/test/fixtures/traceur/StringExtras/FromCodePoint.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringExtras/FromCodePoint.js rename to packages/babel-core/test/fixtures/traceur/StringExtras/FromCodePoint.js diff --git a/packages/babel/test/fixtures/traceur/StringExtras/Includes.js b/packages/babel-core/test/fixtures/traceur/StringExtras/Includes.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringExtras/Includes.js rename to packages/babel-core/test/fixtures/traceur/StringExtras/Includes.js diff --git a/packages/babel/test/fixtures/traceur/StringExtras/Repeat.js b/packages/babel-core/test/fixtures/traceur/StringExtras/Repeat.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringExtras/Repeat.js rename to packages/babel-core/test/fixtures/traceur/StringExtras/Repeat.js diff --git a/packages/babel/test/fixtures/traceur/StringExtras/StartsWith.js b/packages/babel-core/test/fixtures/traceur/StringExtras/StartsWith.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringExtras/StartsWith.js rename to packages/babel-core/test/fixtures/traceur/StringExtras/StartsWith.js diff --git a/packages/babel/test/fixtures/traceur/StringIterator.js b/packages/babel-core/test/fixtures/traceur/StringIterator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/StringIterator.js rename to packages/babel-core/test/fixtures/traceur/StringIterator.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/Error_Super.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperChaining.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperChangeProto.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperInArrow.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperNestedObject.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperPostfix.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperSet.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperUnary.js diff --git a/packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js b/packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js similarity index 100% rename from packages/babel/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js rename to packages/babel-core/test/fixtures/traceur/SuperObjectLiteral/SuperWithoutProto.js diff --git a/packages/babel/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js b/packages/babel-core/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js rename to packages/babel-core/test/fixtures/traceur/Symbol/GetOwnPropertySymbols.js diff --git a/packages/babel/test/fixtures/traceur/Symbol/Inherited.js b/packages/babel-core/test/fixtures/traceur/Symbol/Inherited.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Symbol/Inherited.js rename to packages/babel-core/test/fixtures/traceur/Symbol/Inherited.js diff --git a/packages/babel/test/fixtures/traceur/Symbol/Object.js b/packages/babel-core/test/fixtures/traceur/Symbol/Object.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Symbol/Object.js rename to packages/babel-core/test/fixtures/traceur/Symbol/Object.js diff --git a/packages/babel/test/fixtures/traceur/Symbol/ObjectModel.js b/packages/babel-core/test/fixtures/traceur/Symbol/ObjectModel.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Symbol/ObjectModel.js rename to packages/babel-core/test/fixtures/traceur/Symbol/ObjectModel.js diff --git a/packages/babel/test/fixtures/traceur/Symbol/TransformationOff.js b/packages/babel-core/test/fixtures/traceur/Symbol/TransformationOff.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Symbol/TransformationOff.js rename to packages/babel-core/test/fixtures/traceur/Symbol/TransformationOff.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/ArrayWithHoles.js b/packages/babel-core/test/fixtures/traceur/Syntax/ArrayWithHoles.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/ArrayWithHoles.js rename to packages/babel-core/test/fixtures/traceur/Syntax/ArrayWithHoles.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js b/packages/babel-core/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js rename to packages/babel-core/test/fixtures/traceur/Syntax/CaseClauseShouldBeStatementListItem.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Empty.js b/packages/babel-core/test/fixtures/traceur/Syntax/Empty.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Empty.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Empty.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_Arguments.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_Arguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_Arguments.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_Arguments.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileClass.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileConst.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileFunction.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLet.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInDoWhileLetOpenSquare.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInElse.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInFor.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInForIn.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInForOf.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInIf.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_DeclarationInWhile.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_ForInLoopTooManyVariableDeclarations.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_ForOfLoopTooManyVariableDeclarations.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_FunctionParam.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_FunctionParam.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_FunctionParam.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_FunctionParam.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_IllegalReturn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_IllegalReturn.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_IllegalReturn.module.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_IsValidSimpleAssignmentTarget.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_MultipleDefault.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_MultipleDefault.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_MultipleDefault.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_MultipleDefault.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_NoLineTerminatorPostfix.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheck.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_ParamDuplicateCheckNonSimple.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_RegExpNotClosed.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArguments.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInArgumentsPattern.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInPropertyDefinitionIdentifierReference.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_StrictKeywordsInStrict.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_UnicodeEscapeSequenceInName.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInClass.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInClass.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_WithInClass.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInClass.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInModule.module.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInModule.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_WithInModule.module.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInModule.module.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInStrictFunction.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_WithInStrictProgram.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js b/packages/babel-core/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js rename to packages/babel-core/test/fixtures/traceur/Syntax/Error_YieldStarNewLine.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/ExpressionValidation.js b/packages/babel-core/test/fixtures/traceur/Syntax/ExpressionValidation.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/ExpressionValidation.js rename to packages/babel-core/test/fixtures/traceur/Syntax/ExpressionValidation.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/ImplicitSemiColon.js b/packages/babel-core/test/fixtures/traceur/Syntax/ImplicitSemiColon.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/ImplicitSemiColon.js rename to packages/babel-core/test/fixtures/traceur/Syntax/ImplicitSemiColon.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/ImportFromTypo.module.js b/packages/babel-core/test/fixtures/traceur/Syntax/ImportFromTypo.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/ImportFromTypo.module.js rename to packages/babel-core/test/fixtures/traceur/Syntax/ImportFromTypo.module.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/InInBinding.js b/packages/babel-core/test/fixtures/traceur/Syntax/InInBinding.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/InInBinding.js rename to packages/babel-core/test/fixtures/traceur/Syntax/InInBinding.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js b/packages/babel-core/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js rename to packages/babel-core/test/fixtures/traceur/Syntax/IsValidSimpleAssignmentTarget.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js b/packages/babel-core/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js rename to packages/babel-core/test/fixtures/traceur/Syntax/MultlineCommentIsNewLine.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js b/packages/babel-core/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js rename to packages/babel-core/test/fixtures/traceur/Syntax/NoNewLineHereEndOfFile.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js b/packages/babel-core/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js rename to packages/babel-core/test/fixtures/traceur/Syntax/NumberLiteralMemberExpression.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js b/packages/babel-core/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js rename to packages/babel-core/test/fixtures/traceur/Syntax/ParamDuplicateCheckNonSimpleOk.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js b/packages/babel-core/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js rename to packages/babel-core/test/fixtures/traceur/Syntax/ParamDuplicateCheckOk.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/RegularExpression.js b/packages/babel-core/test/fixtures/traceur/Syntax/RegularExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/RegularExpression.js rename to packages/babel-core/test/fixtures/traceur/Syntax/RegularExpression.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/StrictKeywords.js b/packages/babel-core/test/fixtures/traceur/Syntax/StrictKeywords.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/StrictKeywords.js rename to packages/babel-core/test/fixtures/traceur/Syntax/StrictKeywords.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js b/packages/babel-core/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js rename to packages/babel-core/test/fixtures/traceur/Syntax/StrictKeywordsInPattern.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/StringEscapes.js b/packages/babel-core/test/fixtures/traceur/Syntax/StringEscapes.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/StringEscapes.js rename to packages/babel-core/test/fixtures/traceur/Syntax/StringEscapes.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js b/packages/babel-core/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js rename to packages/babel-core/test/fixtures/traceur/Syntax/UnicodeEscapeSequenceInName.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js b/packages/babel-core/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js rename to packages/babel-core/test/fixtures/traceur/Syntax/UseStrictEscapeSequence.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js b/packages/babel-core/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js rename to packages/babel-core/test/fixtures/traceur/Syntax/UseStrictLineContinuation.js diff --git a/packages/babel/test/fixtures/traceur/Syntax/null.js b/packages/babel-core/test/fixtures/traceur/Syntax/null.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Syntax/null.js rename to packages/babel-core/test/fixtures/traceur/Syntax/null.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/CallExpression.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/CallExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/CallExpression.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/CallExpression.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/CommaExpression.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/CommaExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/CommaExpression.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/CommaExpression.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Default.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Default.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Default.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Default.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_InvalidSubstitution2.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Error_NotClosed.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/InBlock.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/InBlock.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/InBlock.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/InBlock.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/InModule.module.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/InModule.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/InModule.module.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/InModule.module.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/MemberExpression.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/MemberExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/MemberExpression.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/MemberExpression.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/NewExpression.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/NewExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/NewExpression.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/NewExpression.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Strict.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Strict.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Strict.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Strict.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/StringRaw.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/StringRaw.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/StringRaw.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/StringRaw.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/Tag.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/Tag.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/Tag.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/Tag.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/TemplateObjectCaching.module.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/f.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/f.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/resources/f.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/f.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/m.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/m.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/resources/m.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/m.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/n.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/n.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/resources/n.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/n.js diff --git a/packages/babel/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js similarity index 100% rename from packages/babel/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js rename to packages/babel-core/test/fixtures/traceur/TemplateLiterals/resources/template-objects.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_CodePointTooHigh.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected2.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected3.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Error_HexDigitExpected4.js diff --git a/packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js b/packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js similarity index 100% rename from packages/babel/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js rename to packages/babel-core/test/fixtures/traceur/UnicodeEscapeSequence/Simple.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Arguments.js b/packages/babel-core/test/fixtures/traceur/Yield/Arguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Arguments.js rename to packages/babel-core/test/fixtures/traceur/Yield/Arguments.js diff --git a/packages/babel/test/fixtures/traceur/Yield/BadIterable.js b/packages/babel-core/test/fixtures/traceur/Yield/BadIterable.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/BadIterable.js rename to packages/babel-core/test/fixtures/traceur/Yield/BadIterable.js diff --git a/packages/babel/test/fixtures/traceur/Yield/BinaryOperator.js b/packages/babel-core/test/fixtures/traceur/Yield/BinaryOperator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/BinaryOperator.js rename to packages/babel-core/test/fixtures/traceur/Yield/BinaryOperator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Break.js b/packages/babel-core/test/fixtures/traceur/Yield/Break.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Break.js rename to packages/babel-core/test/fixtures/traceur/Yield/Break.js diff --git a/packages/babel/test/fixtures/traceur/Yield/BreakForOf.js b/packages/babel-core/test/fixtures/traceur/Yield/BreakForOf.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/BreakForOf.js rename to packages/babel-core/test/fixtures/traceur/Yield/BreakForOf.js diff --git a/packages/babel/test/fixtures/traceur/Yield/CommaOperator.js b/packages/babel-core/test/fixtures/traceur/Yield/CommaOperator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/CommaOperator.js rename to packages/babel-core/test/fixtures/traceur/Yield/CommaOperator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Continue.js b/packages/babel-core/test/fixtures/traceur/Yield/Continue.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Continue.js rename to packages/babel-core/test/fixtures/traceur/Yield/Continue.js diff --git a/packages/babel/test/fixtures/traceur/Yield/DefaultArguments.js b/packages/babel-core/test/fixtures/traceur/Yield/DefaultArguments.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/DefaultArguments.js rename to packages/babel-core/test/fixtures/traceur/Yield/DefaultArguments.js diff --git a/packages/babel/test/fixtures/traceur/Yield/DoGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/DoGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/DoGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/DoGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js b/packages/babel-core/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js rename to packages/babel-core/test/fixtures/traceur/Yield/DoWhileStatementWithYield.js diff --git a/packages/babel/test/fixtures/traceur/Yield/EmptyGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/EmptyGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/EmptyGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/EmptyGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/Yield/Error_Disabled.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Error_Disabled.js rename to packages/babel-core/test/fixtures/traceur/Yield/Error_Disabled.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Error_Disabled2.js b/packages/babel-core/test/fixtures/traceur/Yield/Error_Disabled2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Error_Disabled2.js rename to packages/babel-core/test/fixtures/traceur/Yield/Error_Disabled2.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Error_MissingStar.js b/packages/babel-core/test/fixtures/traceur/Yield/Error_MissingStar.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Error_MissingStar.js rename to packages/babel-core/test/fixtures/traceur/Yield/Error_MissingStar.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Finally.js b/packages/babel-core/test/fixtures/traceur/Yield/Finally.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Finally.js rename to packages/babel-core/test/fixtures/traceur/Yield/Finally.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForEmptyGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/ForEmptyGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForEmptyGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForEmptyGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/ForGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForInGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/ForInGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForInGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForInGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForInGenerator2.js b/packages/babel-core/test/fixtures/traceur/Yield/ForInGenerator2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForInGenerator2.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForInGenerator2.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForInGenerator3.js b/packages/babel-core/test/fixtures/traceur/Yield/ForInGenerator3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForInGenerator3.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForInGenerator3.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForLexicallyNestedGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForMissingParts.js b/packages/babel-core/test/fixtures/traceur/Yield/ForMissingParts.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForMissingParts.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForMissingParts.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForOfGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/ForOfGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForOfGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForOfGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForOfIteratorException.js b/packages/babel-core/test/fixtures/traceur/Yield/ForOfIteratorException.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForOfIteratorException.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForOfIteratorException.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ForStatement.js b/packages/babel-core/test/fixtures/traceur/Yield/ForStatement.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ForStatement.js rename to packages/babel-core/test/fixtures/traceur/Yield/ForStatement.js diff --git a/packages/babel/test/fixtures/traceur/Yield/FunctionDeclaration.js b/packages/babel-core/test/fixtures/traceur/Yield/FunctionDeclaration.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/FunctionDeclaration.js rename to packages/babel-core/test/fixtures/traceur/Yield/FunctionDeclaration.js diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorReturn.js b/packages/babel-core/test/fixtures/traceur/Yield/GeneratorReturn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/GeneratorReturn.js rename to packages/babel-core/test/fixtures/traceur/Yield/GeneratorReturn.js diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorSend.js b/packages/babel-core/test/fixtures/traceur/Yield/GeneratorSend.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/GeneratorSend.js rename to packages/babel-core/test/fixtures/traceur/Yield/GeneratorSend.js diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorThrow.js b/packages/babel-core/test/fixtures/traceur/Yield/GeneratorThrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/GeneratorThrow.js rename to packages/babel-core/test/fixtures/traceur/Yield/GeneratorThrow.js diff --git a/packages/babel/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js b/packages/babel-core/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js rename to packages/babel-core/test/fixtures/traceur/Yield/GeneratorWithoutYieldOrReturn.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Hoisting.js b/packages/babel-core/test/fixtures/traceur/Yield/Hoisting.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Hoisting.js rename to packages/babel-core/test/fixtures/traceur/Yield/Hoisting.js diff --git a/packages/babel/test/fixtures/traceur/Yield/HoistingBlockbinding.js b/packages/babel-core/test/fixtures/traceur/Yield/HoistingBlockbinding.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/HoistingBlockbinding.js rename to packages/babel-core/test/fixtures/traceur/Yield/HoistingBlockbinding.js diff --git a/packages/babel/test/fixtures/traceur/Yield/IfGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/IfGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/IfGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/IfGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/IfStatementWithYield.js b/packages/babel-core/test/fixtures/traceur/Yield/IfStatementWithYield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/IfStatementWithYield.js rename to packages/babel-core/test/fixtures/traceur/Yield/IfStatementWithYield.js diff --git a/packages/babel/test/fixtures/traceur/Yield/LabelledBlockGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/LabelledBlockGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/LabelledBlockGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/LabelledBlockGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/LabelledBreakGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/LabelledBreakGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/LabelledBreakGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/LabelledBreakGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/MapFilterGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/MapFilterGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/MapFilterGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/MapFilterGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ObjectModel.js b/packages/babel-core/test/fixtures/traceur/Yield/ObjectModel.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ObjectModel.js rename to packages/babel-core/test/fixtures/traceur/Yield/ObjectModel.js diff --git a/packages/babel/test/fixtures/traceur/Yield/OverrideGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/OverrideGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/OverrideGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/OverrideGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnCatch.js b/packages/babel-core/test/fixtures/traceur/Yield/ReturnCatch.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ReturnCatch.js rename to packages/babel-core/test/fixtures/traceur/Yield/ReturnCatch.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/ReturnGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ReturnGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ReturnGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnInFinally.js b/packages/babel-core/test/fixtures/traceur/Yield/ReturnInFinally.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ReturnInFinally.js rename to packages/babel-core/test/fixtures/traceur/Yield/ReturnInFinally.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnYield.js b/packages/babel-core/test/fixtures/traceur/Yield/ReturnYield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ReturnYield.js rename to packages/babel-core/test/fixtures/traceur/Yield/ReturnYield.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ReturnYieldFor.js b/packages/babel-core/test/fixtures/traceur/Yield/ReturnYieldFor.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ReturnYieldFor.js rename to packages/babel-core/test/fixtures/traceur/Yield/ReturnYieldFor.js diff --git a/packages/babel/test/fixtures/traceur/Yield/SequenceGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/SequenceGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/SequenceGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/SequenceGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/SimpleGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/SimpleGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/SimpleGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/SimpleGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/StatementTestGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/StatementTestGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/StatementTestGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/StatementTestGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/SwitchGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/SwitchGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/SwitchGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/SwitchGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/SwitchStatementWithYield.js b/packages/babel-core/test/fixtures/traceur/Yield/SwitchStatementWithYield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/SwitchStatementWithYield.js rename to packages/babel-core/test/fixtures/traceur/Yield/SwitchStatementWithYield.js diff --git a/packages/babel/test/fixtures/traceur/Yield/This.js b/packages/babel-core/test/fixtures/traceur/Yield/This.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/This.js rename to packages/babel-core/test/fixtures/traceur/Yield/This.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ThrowInCatch.js b/packages/babel-core/test/fixtures/traceur/Yield/ThrowInCatch.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ThrowInCatch.js rename to packages/babel-core/test/fixtures/traceur/Yield/ThrowInCatch.js diff --git a/packages/babel/test/fixtures/traceur/Yield/ThrowInIterator.js b/packages/babel-core/test/fixtures/traceur/Yield/ThrowInIterator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/ThrowInIterator.js rename to packages/babel-core/test/fixtures/traceur/Yield/ThrowInIterator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Tree.js b/packages/babel-core/test/fixtures/traceur/Yield/Tree.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Tree.js rename to packages/babel-core/test/fixtures/traceur/Yield/Tree.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try.js b/packages/babel-core/test/fixtures/traceur/Yield/Try.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try10.js b/packages/babel-core/test/fixtures/traceur/Yield/Try10.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try10.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try10.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try11.js b/packages/babel-core/test/fixtures/traceur/Yield/Try11.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try11.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try11.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try12.js b/packages/babel-core/test/fixtures/traceur/Yield/Try12.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try12.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try12.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try2.js b/packages/babel-core/test/fixtures/traceur/Yield/Try2.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try2.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try2.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try3.js b/packages/babel-core/test/fixtures/traceur/Yield/Try3.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try3.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try3.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try4.js b/packages/babel-core/test/fixtures/traceur/Yield/Try4.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try4.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try4.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try5.js b/packages/babel-core/test/fixtures/traceur/Yield/Try5.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try5.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try5.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try6.js b/packages/babel-core/test/fixtures/traceur/Yield/Try6.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try6.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try6.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try7.js b/packages/babel-core/test/fixtures/traceur/Yield/Try7.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try7.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try7.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try8.js b/packages/babel-core/test/fixtures/traceur/Yield/Try8.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try8.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try8.js diff --git a/packages/babel/test/fixtures/traceur/Yield/Try9.js b/packages/babel-core/test/fixtures/traceur/Yield/Try9.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/Try9.js rename to packages/babel-core/test/fixtures/traceur/Yield/Try9.js diff --git a/packages/babel/test/fixtures/traceur/Yield/TryCatchGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/TryCatchGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/TryCatchGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/TryCatchGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/TryCatchYieldGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/TryFinallyGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/TryFinallyGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/TryFinallyGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/TryFinallyGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/WhileGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/WhileGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/WhileGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/WhileGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/WhileStatementWithYield.js b/packages/babel-core/test/fixtures/traceur/Yield/WhileStatementWithYield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/WhileStatementWithYield.js rename to packages/babel-core/test/fixtures/traceur/Yield/WhileStatementWithYield.js diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldAssignThrow.js b/packages/babel-core/test/fixtures/traceur/Yield/YieldAssignThrow.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/YieldAssignThrow.js rename to packages/babel-core/test/fixtures/traceur/Yield/YieldAssignThrow.js diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldIdentifier.js b/packages/babel-core/test/fixtures/traceur/Yield/YieldIdentifier.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/YieldIdentifier.js rename to packages/babel-core/test/fixtures/traceur/Yield/YieldIdentifier.js diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldInFinally.js b/packages/babel-core/test/fixtures/traceur/Yield/YieldInFinally.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/YieldInFinally.js rename to packages/babel-core/test/fixtures/traceur/Yield/YieldInFinally.js diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldNoExpression.js b/packages/babel-core/test/fixtures/traceur/Yield/YieldNoExpression.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/YieldNoExpression.js rename to packages/babel-core/test/fixtures/traceur/Yield/YieldNoExpression.js diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/YieldUndefinedGenerator.js diff --git a/packages/babel/test/fixtures/traceur/Yield/YieldYield.js b/packages/babel-core/test/fixtures/traceur/Yield/YieldYield.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/YieldYield.js rename to packages/babel-core/test/fixtures/traceur/Yield/YieldYield.js diff --git a/packages/babel/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js b/packages/babel-core/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js similarity index 100% rename from packages/babel/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js rename to packages/babel-core/test/fixtures/traceur/Yield/tryFinallyFinallyGenerator.js diff --git a/packages/babel/test/fixtures/transformation/api/blacklist/actual.js b/packages/babel-core/test/fixtures/transformation/api/blacklist/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/api/blacklist/actual.js rename to packages/babel-core/test/fixtures/transformation/api/blacklist/actual.js diff --git a/packages/babel/test/fixtures/transformation/api/blacklist/expected.js b/packages/babel-core/test/fixtures/transformation/api/blacklist/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/api/blacklist/expected.js rename to packages/babel-core/test/fixtures/transformation/api/blacklist/expected.js diff --git a/packages/babel/test/fixtures/transformation/api/blacklist/options.json b/packages/babel-core/test/fixtures/transformation/api/blacklist/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/api/blacklist/options.json rename to packages/babel-core/test/fixtures/transformation/api/blacklist/options.json diff --git a/packages/babel/test/fixtures/transformation/api/unknown-module-formatter/options.json b/packages/babel-core/test/fixtures/transformation/api/unknown-module-formatter/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/api/unknown-module-formatter/options.json rename to packages/babel-core/test/fixtures/transformation/api/unknown-module-formatter/options.json diff --git a/packages/babel/test/fixtures/transformation/api/unknown-transformer-in-list/options.json b/packages/babel-core/test/fixtures/transformation/api/unknown-transformer-in-list/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/api/unknown-transformer-in-list/options.json rename to packages/babel-core/test/fixtures/transformation/api/unknown-transformer-in-list/options.json diff --git a/packages/babel/test/fixtures/transformation/api/whitelist/actual.js b/packages/babel-core/test/fixtures/transformation/api/whitelist/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/api/whitelist/actual.js rename to packages/babel-core/test/fixtures/transformation/api/whitelist/actual.js diff --git a/packages/babel/test/fixtures/transformation/api/whitelist/expected.js b/packages/babel-core/test/fixtures/transformation/api/whitelist/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/api/whitelist/expected.js rename to packages/babel-core/test/fixtures/transformation/api/whitelist/expected.js diff --git a/packages/babel/test/fixtures/transformation/api/whitelist/options.json b/packages/babel-core/test/fixtures/transformation/api/whitelist/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/api/whitelist/options.json rename to packages/babel-core/test/fixtures/transformation/api/whitelist/options.json diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/async/actual.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/async/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/async/actual.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/async/actual.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/async/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/async/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/async/expected.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/async/expected.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/expression/actual.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/expression/actual.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/expression/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/expression/expected.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/named-expression/actual.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/named-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/named-expression/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/named-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/options.json b/packages/babel-core/test/fixtures/transformation/async-to-generator/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/options.json rename to packages/babel-core/test/fixtures/transformation/async-to-generator/options.json diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/statement/actual.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/statement/actual.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/async-to-generator/statement/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/async-to-generator/statement/expected.js rename to packages/babel-core/test/fixtures/transformation/async-to-generator/statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/class/actual.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/class/actual.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/actual.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/class/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/class/expected.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/expected.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/class/options.json b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/class/options.json rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/options.json diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/expression/actual.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/expression/actual.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/expression/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/expression/expected.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/named-expression/actual.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/named-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/options.json b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/options.json rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/statement/actual.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/statement/actual.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/bluebird-coroutines/statement/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/bluebird-coroutines/statement/expected.js rename to packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/errors/constants/actual.js b/packages/babel-core/test/fixtures/transformation/errors/constants/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/errors/constants/actual.js rename to packages/babel-core/test/fixtures/transformation/errors/constants/actual.js diff --git a/packages/babel/test/fixtures/transformation/errors/constants/options.json b/packages/babel-core/test/fixtures/transformation/errors/constants/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/errors/constants/options.json rename to packages/babel-core/test/fixtures/transformation/errors/constants/options.json diff --git a/packages/babel/test/fixtures/transformation/errors/syntax/actual.js b/packages/babel-core/test/fixtures/transformation/errors/syntax/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/errors/syntax/actual.js rename to packages/babel-core/test/fixtures/transformation/errors/syntax/actual.js diff --git a/packages/babel/test/fixtures/transformation/errors/syntax/options.json b/packages/babel-core/test/fixtures/transformation/errors/syntax/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/errors/syntax/options.json rename to packages/babel-core/test/fixtures/transformation/errors/syntax/options.json diff --git a/packages/babel/test/fixtures/transformation/es3/member-expression-literals/actual.js b/packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es3/member-expression-literals/actual.js rename to packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/actual.js diff --git a/packages/babel/test/fixtures/transformation/es3/member-expression-literals/expected.js b/packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es3/member-expression-literals/expected.js rename to packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/expected.js diff --git a/packages/babel/test/fixtures/transformation/es3/property-literals/actual.js b/packages/babel-core/test/fixtures/transformation/es3/property-literals/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es3/property-literals/actual.js rename to packages/babel-core/test/fixtures/transformation/es3/property-literals/actual.js diff --git a/packages/babel/test/fixtures/transformation/es3/property-literals/expected.js b/packages/babel-core/test/fixtures/transformation/es3/property-literals/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es3/property-literals/expected.js rename to packages/babel-core/test/fixtures/transformation/es3/property-literals/expected.js diff --git a/packages/babel/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es5.properties.mutators/getter/actual.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es5.properties.mutators/getter/actual.js rename to packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es5.properties.mutators/getter/expected.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es5.properties.mutators/getter/expected.js rename to packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es5.properties.mutators/setter/actual.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es5.properties.mutators/setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es5.properties.mutators/setter/expected.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es5.properties.mutators/setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/arguments/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/arguments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/arguments/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/arguments/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/arguments/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/arguments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/arguments/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/arguments/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/default-parameters/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/default-parameters/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-arguments/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-arguments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-arguments/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-arguments/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-arguments/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-arguments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-arguments/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-arguments/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-block/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-block/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-block/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-block/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-block/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-block/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/empty-block/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/empty-block/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/inside-call/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/inside-call/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/inside-call/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/inside-call/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/inside-call/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/inside-call/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/inside-call/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/inside-call/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/multiple-arguments/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/nested/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/nested/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/nested/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/nested/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/nested/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/nested/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/nested/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/nested/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/options.json b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/options.json rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/paran-insertion/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/paran-insertion/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/paran-insertion/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/paran-insertion/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/paran-insertion/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/paran-insertion/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/paran-insertion/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/paran-insertion/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/single-argument/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/single-argument/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/single-argument/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/single-argument/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/single-argument/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/single-argument/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/single-argument/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/single-argument/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/spec/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/spec/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/spec/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/spec/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/spec/options.json b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/spec/options.json rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/statement/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/statement/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/this/actual.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/this/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/this/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/this/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.arrow-functions/this/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/this/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.arrow-functions/this/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.arrow-functions/this/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/block-scoped-2.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/block-scoped-2.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/block-scoped-2.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/block-scoped-2.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/block-scoped.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/block-scoped.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/block-scoped.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/block-scoped.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/closure-wrap-collision.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/closure-wrap-collision.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/closure-wrap-collision.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/closure-wrap-collision.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/collision-for.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/collision-for.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/collision-for.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/collision-for.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/destructuring-defaults.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/destructuring-defaults.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/destructuring-defaults.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/destructuring-defaults.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/duplicate-function-scope.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/duplicate-function-scope.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/duplicate-function-scope.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/duplicate-function-scope.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/for-continuation.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/for-continuation.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/for-continuation.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/for-continuation.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/for-loop-head.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/for-loop-head.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/for-loop-head.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/for-loop-head.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/label.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/label.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/label.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/label.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/multiple.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/multiple.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/multiple.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/multiple.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-2.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-2.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-2.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-2.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-3.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-3.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-3.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-3.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-4.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-4.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-4.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels-4.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/nested-labels.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/nested-labels.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping-exec/switch-break.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/switch-break.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping-exec/switch-break.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/switch-break.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/assignment-patterns/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/assignment-patterns/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/options.json b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/options.json rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break-continue-return/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-break/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-break/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-break/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-break/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-break/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-continuation/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continuation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-continuation/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continuation/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-continuation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continuation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-continuation/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continuation/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-continue/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continue/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-continue/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continue/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-continue/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continue/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-continue/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-continue/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-return-undefined/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return-undefined/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-return-undefined/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return-undefined/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-return-undefined/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return-undefined/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-return-undefined/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return-undefined/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-return/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-return/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/for-return/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/for-return/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/for-return/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/function/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/function/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/function/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/function/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/function/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/function/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/hoisting/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/hoisting/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-1051/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/issue-1051/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-973/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-973/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/issue-973/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-973/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/issue-973/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-973/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/issue-973/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-973/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/jsx-identifier/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/jsx-identifier/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/jsx-identifier/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/jsx-identifier/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/jsx-identifier/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/jsx-identifier/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/jsx-identifier/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/jsx-identifier/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/loop-initializer-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/program/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/program/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/program/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/program/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/program/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/program/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/program/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/program/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/switch/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/switch/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/switch/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/switch/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/switch/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/switch/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/switch/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/switch/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/actual.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping/wrap-closure-shadow-variables/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-exec/declaration-binding.js b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/declaration-binding.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-exec/declaration-binding.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-exec/declaration-binding.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-exec/expression-binding.js b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/expression-binding.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-exec/expression-binding.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-exec/expression-binding.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-exec/retain-no-call-on-reassign.js b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/retain-no-call-on-reassign.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-exec/retain-no-call-on-reassign.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-exec/retain-no-call-on-reassign.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-exec/shadow-container.js b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/shadow-container.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-exec/shadow-container.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-exec/shadow-container.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-exec/super-change-proto.js b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/super-change-proto.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-exec/super-change-proto.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-exec/super-change-proto.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/calling-super-properties/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/calling-super-properties/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/constructor-order/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/constructor-order/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/literal-key/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/literal-key/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/literal-key/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/literal-key/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/literal-key/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/literal-key/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/literal-key/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/literal-key/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/super-class/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/super-class/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/super-class/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/super-function-fallback/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-function-fallback/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/super-function-fallback/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-function-fallback/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes-loose/super-function-fallback/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-function-fallback/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes-loose/super-function-fallback/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-function-fallback/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/accessing-super-class/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/accessing-super-class/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/accessing-super-properties/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/accessing-super-properties/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/calling-super-properties/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/calling-super-properties/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/calling-super-properties/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/calling-super-properties/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/computed-methods/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/computed-methods/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/computed-methods/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/computed-methods/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/computed-methods/exec.js b/packages/babel-core/test/fixtures/transformation/es6.classes/computed-methods/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/computed-methods/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/computed-methods/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/computed-methods/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/computed-methods/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/computed-methods/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/computed-methods/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/constructor-binding-collision/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/constructor-binding-collision/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/constructor/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/constructor/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/constructor/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/constructor/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/constructor/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/constructor/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-getter-and-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter-and-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-getter-and-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter-and-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter-and-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-getter-and-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter-and-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-getter/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-getter/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-getter/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-getter/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-getter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-method/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-method/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-method/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-method/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-method/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-method/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-method/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-method/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/instance-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/instance-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/instance-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/instance-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/name-method-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/name-method-collision/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/name-method-collision/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/name-method-collision/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/plain-class/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/plain-class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/plain-class/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/plain-class/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/plain-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/plain-class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/plain-class/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/plain-class/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/preserves-directives/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/preserves-directives/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/preserves-directives/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/preserves-directives/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/relaxed-method-coercion/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/relaxed-method-coercion/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/relaxed-method-coercion/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/relaxed-method-coercion/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/relaxed-method-coercion/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/relaxed-method-coercion/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/relaxed-method-coercion/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/relaxed-method-coercion/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/statement/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/statement/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/static/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/static/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/static/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/static/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/static/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/static/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/static/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/static/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-class-anonymous/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-class-anonymous/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-class-id-member-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-class-id-member-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-class/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-class/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-class/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-class/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-class/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-function-fallback/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-function-fallback/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-function-fallback/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-function-fallback/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-function-fallback/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-function-fallback/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-function-fallback/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-function-fallback/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/super-reference-before-bare-super/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes-2/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/options.json rename to packages/babel-core/test/fixtures/transformation/es6.classes/this-not-allowed-before-super-in-derived-classes/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/block-scoped/exec.js b/packages/babel-core/test/fixtures/transformation/es6.constants/block-scoped/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/block-scoped/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/block-scoped/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/block-statement/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/block-statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/block-statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/block-statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/block-statement/expected.js b/packages/babel-core/test/fixtures/transformation/es6.constants/block-statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/block-statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/block-statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/destructuring-assignment/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/destructuring-assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/destructuring-assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/destructuring-assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/destructuring-assignment/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/destructuring-assignment/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/destructuring-assignment/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/destructuring-assignment/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/destructuring/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/destructuring/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/destructuring/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/destructuring/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/destructuring/expected.js b/packages/babel-core/test/fixtures/transformation/es6.constants/destructuring/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/destructuring/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/destructuring/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/ignore-member-expressions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/ignore-member-expressions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/ignore-member-expressions/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/ignore-member-expressions/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/ignore-member-expressions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.constants/ignore-member-expressions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/ignore-member-expressions/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/ignore-member-expressions/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/loop/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/loop/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/loop/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/loop/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/loop/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/loop/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/loop/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/loop/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-assignment/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/no-assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-assignment/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/no-assignment/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-assignment/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-assignment/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-classes/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/no-classes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-classes/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-classes/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-classes/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/no-classes/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-classes/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-classes/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-declaration/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/no-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-declaration/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/no-declaration/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-declaration/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-declaration/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-for-in/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/no-for-in/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-for-in/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-for-in/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-for-in/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/no-for-in/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-for-in/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-for-in/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-functions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/no-functions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-functions/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-functions/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/no-functions/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/no-functions/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/no-functions/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/no-functions/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.constants/program/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/program/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/program/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/program/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/program/expected.js b/packages/babel-core/test/fixtures/transformation/es6.constants/program/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/program/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/program/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/update-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.constants/update-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/update-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.constants/update-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.constants/update-expression/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/update-expression/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.constants/update-expression/options.json rename to packages/babel-core/test/fixtures/transformation/es6.constants/update-expression/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/array-unpack-optimisation/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/array/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/array/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/array/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/array/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/array/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/array/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/array/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/array/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-completion-record/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression-pattern/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-statement/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/assignment-statement/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/assignment-statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/assignment-statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/chained/exec.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/chained/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/chained/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/chained/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/empty-object-pattern/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty-object-pattern/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/empty-object-pattern/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/empty-object-pattern/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/empty-object-pattern/exec.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty-object-pattern/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/empty-object-pattern/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/empty-object-pattern/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/empty-object-pattern/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty-object-pattern/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/empty-object-pattern/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/empty-object-pattern/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/empty/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/empty/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/empty/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/empty/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/es7-object-rest/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/es7-object-rest/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/es7-object-rest/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/es7-object-rest/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/es7-object-rest/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/es7-object-rest/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/es7-object-rest/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/es7-object-rest/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/es7-object-rest/options.json b/packages/babel-core/test/fixtures/transformation/es6.destructuring/es7-object-rest/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/es7-object-rest/options.json rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/es7-object-rest/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/for-in/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-in/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/for-in/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/for-in/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/for-in/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-in/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/for-in/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/for-in/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/for-of/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/for-of/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/for-of/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/for-of/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/known-array/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/known-array/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/known-array/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/known-array/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/known-array/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/known-array/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/known-array/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/known-array/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/member-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/member-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/member-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/member-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/member-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/member-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/member-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/mixed/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/mixed/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/mixed/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/mixed/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/mixed/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/mixed/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/mixed/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/mixed/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/object-advanced/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/object-advanced/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/object-advanced/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/object-advanced/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/object-advanced/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/object-advanced/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/object-advanced/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/object-advanced/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/object-basic/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/object-basic/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/object-basic/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/object-basic/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/object-basic/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/object-basic/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/object-basic/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/object-basic/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/options.json b/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/options.json rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/parameters/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/parameters/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/parameters/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/spread-generator/exec.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/spread-generator/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/spread-generator/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/spread-generator/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/spread/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/spread/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/spread/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/spread/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/spread/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/spread/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/spread/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/spread/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.destructuring/spread/options.json b/packages/babel-core/test/fixtures/transformation/es6.destructuring/spread/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.destructuring/spread/options.json rename to packages/babel-core/test/fixtures/transformation/es6.destructuring/spread/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/identifier/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/identifier/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/identifier/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/identifier/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/identifier/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/identifier/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/identifier/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/identifier/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/ignore-cases/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/ignore-cases/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/ignore-cases/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/ignore-cases/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/ignore-cases/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/ignore-cases/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/ignore-cases/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/ignore-cases/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/let/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/let/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/let/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/let/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/member-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/member-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/member-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/member-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/member-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/member-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/member-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/options.json rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/var/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/var/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/var/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/var/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of-loose/var/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/var/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of-loose/var/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of-loose/var/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/identifier/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/identifier/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/identifier/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/identifier/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/ignore-cases/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/ignore-cases/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/let/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/let/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/let/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/let/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/let/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/let/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/let/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/let/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/member-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/member-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/member-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/nested-label-for-of/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/nested-label-for-of/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/var/actual.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/var/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/var/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/var/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.for-of/var/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/var/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.for-of/var/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.for-of/var/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/export-specifier-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/export-specifier-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-default/untitled b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/untitled similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-default/untitled rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/untitled diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-from/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-from/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/get-module-name-option/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/get-module-name-option/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/get-module-name-option/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/get-module-name-option/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-glob/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-glob/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-mixing/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-mixing/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/imports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/module-name/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/module-name/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/module-name/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/module-name/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/module-name/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/module-name/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/overview/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/overview/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/overview/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/remap/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/remap/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-amd/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-amd/remap/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-1/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-1/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-2/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-2/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/export/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/export/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/export/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/export/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/import/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/import/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/import/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/import/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common-strict/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common-strict/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-default-non-function/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-default-non-function/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-from/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-from/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-from/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/hoist-function-exports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/hoist-function-exports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule-2/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/illegal-export-esmodule/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-default/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-default/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-glob/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-glob/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-glob/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-glob/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-glob/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-glob/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-glob/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-mixing/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-mixing/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/imports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/imports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/loose-collision/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/loose-collision/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/loose/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/loose/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/loose/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/loose/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/loose/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/module-shadow/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/module-shadow/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/overview/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/overview/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/overview/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/overview/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/overview/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/remap/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/remap/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-common/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-common/remap/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/imports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/overview/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/overview/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/overview/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/remap/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/remap/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-ignore/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-ignore/remap/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-from/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-from/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-from/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/get-module-name-option/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/get-module-name-option/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/get-module-name-option/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/get-module-name-option/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/hoist-function-exports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/hoist-function-exports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/hoist-function-exports/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/hoist-function-exports/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-glob/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-glob/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-mixing/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-mixing/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/imports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/overview/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/overview/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/overview/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/remap/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/remap/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-system/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-system/remap/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-from/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-from/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/get-module-name-option/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/get-module-name-option/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/get-module-name-option/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/get-module-name-option/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-default/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-glob/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-glob/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-mixing/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-mixing/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-named/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/imports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/module-id/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/module-id/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/module-id/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/module-id/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/module-id/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/module-id/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/module-name/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/module-name/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/module-name/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/module-name/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/module-name/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/module-name/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/overview/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/overview/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/overview/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/remap/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/remap/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules-umd/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules-umd/remap/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/comments-explosion/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/comments-explosion/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/comments-explosion/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/comments-explosion/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules/retain-lines/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/retain-lines/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/retain-lines/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/retain-lines/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/retain-lines/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/retain-lines/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.modules/spec/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules/spec/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/spec/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.modules/spec/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/spec/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules/spec/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/spec/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.modules/spec/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.modules/spec/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules/spec/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.modules/spec/options.json rename to packages/babel-core/test/fixtures/transformation/es6.modules/spec/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.object-super/options.json b/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.object-super/options.json rename to packages/babel-core/test/fixtures/transformation/es6.object-super/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.object-super/simple.js b/packages/babel-core/test/fixtures/transformation/es6.object-super/simple.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.object-super/simple.js rename to packages/babel-core/test/fixtures/transformation/es6.object-super/simple.js diff --git a/packages/babel/test/fixtures/transformation/es6.object-super/statically-bound/actual.js b/packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.object-super/statically-bound/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.object-super/statically-bound/expected.js b/packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.object-super/statically-bound/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-before-last/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-before-last/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-before-last/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-before-last/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-destructuring/exec.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-destructuring/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-destructuring/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-destructuring/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-eval/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-eval/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-eval/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-eval/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-eval/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-eval/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-eval/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-eval/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-iife-1128/exec.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-iife-1128/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-iife-1128/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-iife-1128/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/default-single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/default-single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/options.json b/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/options.json rename to packages/babel-core/test/fixtures/transformation/es6.parameters/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-arrow-functions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-arrow-functions/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-async-function/options.json b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-async-function/options.json rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-deepest-common-ancestor-earliest-child/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-nested-iife/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-nested-iife/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.parameters/rest-spread-optimisation/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/argument/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/argument/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/argument/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/argument/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/argument/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/argument/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/argument/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/argument/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/assignment/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/assignment/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/assignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/coerce/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/coerce/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/coerce/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/coerce/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/coerce/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/coerce/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/coerce/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/coerce/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/ignore-symbol/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/method/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/method/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/method/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/method/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/method/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/method/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/method/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/method/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/mixed/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/mixed/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/mixed/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/mixed/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/mixed/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/mixed/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/mixed/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/mixed/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/options.json rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/this/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/this/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/this/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/this/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/this/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/this/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/this/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/this/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/two/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/two/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/two/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/two/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/two/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/two/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/two/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/two/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed-loose/variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed-loose/variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/argument/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/argument/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/argument/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/argument/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/argument/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/argument/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/argument/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/argument/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/assignment/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/assignment/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/assignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/ignore-symbol/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/ignore-symbol/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/ignore-symbol/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/ignore-symbol/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/ignore-symbol/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/ignore-symbol/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/ignore-symbol/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/ignore-symbol/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/method/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/method/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/method/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/method/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/method/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/method/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/method/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/method/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/mixed/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/mixed/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/mixed/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/mixed/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/mixed/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/mixed/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/mixed/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/mixed/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/options.json rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/this/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/this/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/this/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/this/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/this/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/this/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/this/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/this/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/two/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/two/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/two/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/two/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/two/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/two/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/two/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/two/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/variable/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/variable/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/variable/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.computed/variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/variable/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.computed/variable/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.computed/variable/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-plain/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-plain/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-mixed/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.sticky/basic/actual.js b/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/basic/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.sticky/basic/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.sticky/basic/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.sticky/basic/expected.js b/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/basic/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.sticky/basic/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.sticky/basic/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/actual.js b/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/expected.js b/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.sticky/ignore-non-sticky/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.unicode/basic/actual.js b/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/basic/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.unicode/basic/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.unicode/basic/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.unicode/basic/expected.js b/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/basic/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.unicode/basic/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.unicode/basic/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/actual.js b/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/expected.js b/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.regex.unicode/ignore-non-unicode/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/instanceof/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/instanceof/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/instanceof/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/instanceof/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/instanceof/exec.js b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/instanceof/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/instanceof/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/instanceof/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/instanceof/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/instanceof/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/instanceof/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/instanceof/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/options.json rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/typeof/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/typeof/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/typeof/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/typeof/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/typeof/exec.js b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/typeof/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/typeof/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/typeof/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.symbols/typeof/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/typeof/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.symbols/typeof/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.symbols/typeof/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/escape-quotes/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/functions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/functions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/functions/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/functions/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/functions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/functions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/functions/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/functions/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiline/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiline/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiline/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiline/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiline/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiline/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiline/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiline/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/none/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/none/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/none/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/none/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/none/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/none/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/none/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/none/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/only/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/only/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/only/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/only/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/only/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/only/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/only/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/only/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/options.json rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/statement/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spec.template-literals/statement/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spec.template-literals/statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/arguments-array/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/arguments-array/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/arguments-array/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/arguments-array/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/arguments-concat/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/arguments-concat/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/arguments-concat/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/arguments-concat/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/arguments/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/arguments/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/arguments/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/arguments/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/arguments/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/arguments/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literal-first/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-first/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literal-first/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-first/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literal-first/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-first/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literal-first/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-first/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literal-middle/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-middle/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literal-middle/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-middle/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literal-middle/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-middle/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literal-middle/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-middle/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literal-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literal-multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literal-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literal-multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literal-multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literals/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literals/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literals/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literals/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/array-literals/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/array-literals/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/array-literals/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/array-literals/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-multiple-args/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-computed-method-call-single-arg/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-multiple-args/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/contexted-method-call-single-arg/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/known-rest/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/known-rest/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/known-rest/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/known-rest/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/known-rest/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/known-rest/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/known-rest/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/known-rest/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-array-literal/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-array-literal/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-array-literal/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-array-literal/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-array-literal/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-array-literal/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-array-literal/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-array-literal/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-first/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-first/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-first/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-first/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-first/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-first/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-first/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-first/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-middle/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-middle/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-middle/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-middle/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-middle/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-middle/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-middle/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-middle/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple-args/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple-args/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple-args/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple-args/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple-args/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple-args/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple-args/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple-args/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-single-arg/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-single-arg/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-single-arg/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-single-arg/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/method-call-single-arg/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/method-call-single-arg/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/method-call-single-arg/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/method-call-single-arg/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/new-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/new-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/new-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/new-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/options.json b/packages/babel-core/test/fixtures/transformation/es6.spread/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/options.json rename to packages/babel-core/test/fixtures/transformation/es6.spread/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.spread/single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/this-context/actual.js b/packages/babel-core/test/fixtures/transformation/es6.spread/this-context/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/this-context/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/this-context/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.spread/this-context/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/this-context/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.spread/this-context/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.spread/this-context/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/call-apply/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/call-apply/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/call-apply/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/call-apply/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/expressions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/expressions/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/expressions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/expressions/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/factorial/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/factorial/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/factorial/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/factorial/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/max-args/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/max-args/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/max-args/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/max-args/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/recursion/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/recursion/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/recursion/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/recursion/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/shadow/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/shadow/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/shadow/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/shadow/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/try-catch/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/try-catch/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.tail-call/try-catch/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.tail-call/try-catch/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/escape-quotes/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/escape-quotes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/escape-quotes/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/escape-quotes/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/escape-quotes/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/escape-quotes/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/escape-quotes/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/escape-quotes/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/expression-first/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/expression-first/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/expression-first/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/expression-first/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/expression-first/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/expression-first/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/expression-first/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/expression-first/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/functions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/functions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/functions/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/functions/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/functions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/functions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/functions/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/functions/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/multiline/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/multiline/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/multiline/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/multiline/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/multiline/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/multiline/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/multiline/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/multiline/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/none/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/none/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/none/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/none/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/none/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/none/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/none/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/none/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/only/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/only/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/only/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/only/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/only/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/only/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/only/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/only/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/single/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/single/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/single/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/statement/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/statement/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/tag-loose/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/tag-loose/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/tag-loose/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/tag-loose/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/expected.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/tag-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/tag-loose/options.json rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/options.json diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/tag/actual.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/tag/actual.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/tag/actual.js diff --git a/packages/babel/test/fixtures/transformation/es6.template-literals/tag/expected.js b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es6.template-literals/tag/expected.js rename to packages/babel-core/test/fixtures/transformation/es6.template-literals/tag/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/constructor-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/constructor-collision/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/derived/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/derived/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/derived/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/derived/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/instance-undefined/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/instance-undefined/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/instance-undefined/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/instance-undefined/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/instance-undefined/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/instance-undefined/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/instance-undefined/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/instance-undefined/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/instance/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/instance/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/instance/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/instance/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/instance/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/instance/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/instance/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/instance/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/method-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/method-collision/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/method-collision/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/method-collision/options.json rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/options.json rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/static-undefined/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static-undefined/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/static-undefined/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/static-undefined/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/static-undefined/exec.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static-undefined/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/static-undefined/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/static-undefined/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/static-undefined/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static-undefined/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/static-undefined/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/static-undefined/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/static/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/static/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/static/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/static/exec.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/static/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/static/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/static/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/static/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/static/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/super-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/super-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/super-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/super-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/super-statement/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/super-statement/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.class-properties/super-statement/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.class-properties/super-statement/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/arguments/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/arguments/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/arguments/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/arguments/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-single/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-single/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-single/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-single/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-this/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-this/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/array-this/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/array-this/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/generator/exec.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/generator/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/generator/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/generator/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.comprehensions/options.json b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.comprehensions/options.json rename to packages/babel-core/test/fixtures/transformation/es7.comprehensions/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-getter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-getter/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-getter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-getter/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-method/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-method/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-method/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-method/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-modules/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-modules/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-modules/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-modules/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-super/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-super/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class-super/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class-super/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/class/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/class/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/class/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/member-expressions/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/member-expressions/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/member-expressions/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/member-expressions/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object-getter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object-getter/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object-getter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object-getter/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object-setter/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object-setter/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/object/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/object/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.decorators/object/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.decorators/options.json b/packages/babel-core/test/fixtures/transformation/es7.decorators/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.decorators/options.json rename to packages/babel-core/test/fixtures/transformation/es7.decorators/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/do-while.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/do-while.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/do-while.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/do-while.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/empty.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/empty.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/empty.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/empty.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/for-in.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/for-in.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/for-in.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/for-in.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/for.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/for.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/for.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/for.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/if-else-if.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/if-else-if.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/if-else-if.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/if-else-if.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/if-else.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/if-else.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/if-else.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/if-else.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/if.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/if.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/if.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/if.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/options.json b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/options.json rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/single-expression.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/single-expression.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/single-expression.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/single-expression.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/variable-declaration-end.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/variable-declaration-end.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/variable-declaration-end.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/variable-declaration-end.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/variable-declaration-start.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/variable-declaration-start.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/variable-declaration-start.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/variable-declaration-start.js diff --git a/packages/babel/test/fixtures/transformation/es7.do-expressions/while.js b/packages/babel-core/test/fixtures/transformation/es7.do-expressions/while.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.do-expressions/while.js rename to packages/babel-core/test/fixtures/transformation/es7.do-expressions/while.js diff --git a/packages/babel/test/fixtures/transformation/es7.exponentian-operator/assignment/actual.js b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.exponentian-operator/assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.exponentian-operator/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.exponentian-operator/assignment/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/assignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.exponentian-operator/binary/actual.js b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/binary/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.exponentian-operator/binary/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/binary/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.exponentian-operator/binary/expected.js b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/binary/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.exponentian-operator/binary/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/binary/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.exponentian-operator/comprehensive/exec.js b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/comprehensive/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.exponentian-operator/comprehensive/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/comprehensive/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-compound-es6/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-compound-es6/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-compound-es6/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-compound-es6/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-compound-es6/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-compound-es6/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-compound-es6/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-compound-es6/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-compound-es6/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-compound-es6/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-compound-es6/options.json rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-compound-es6/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-es6/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-es6/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-es6/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-es6/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-es6/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-es6/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-es6/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-es6/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/default-es6/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-es6/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/default-es6/options.json rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-es6/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/options.json rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-compound-es6/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-es6/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-es6/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-es6/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-es6/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-es6/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-es6/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-es6/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-es6/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-es6/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-es6/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/namespace-es6/options.json rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-es6/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.export-extensions/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.export-extensions/options.json rename to packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/bind/actual.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/bind/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/bind/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/bind/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/bind/expected.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/bind/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/bind/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/bind/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/call/actual.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/call/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/call/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/call/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/call/expected.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/call/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/call/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/call/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/complex-call/actual.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/complex-call/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/complex-call/exec.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/complex-call/exec.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/exec.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/complex-call/expected.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/complex-call/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/options.json b/packages/babel-core/test/fixtures/transformation/es7.function-bind/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/options.json rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/static-contexts/actual.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/static-contexts/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/assignment/actual.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/assignment/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/expression/actual.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/expression/expected.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/options.json b/packages/babel-core/test/fixtures/transformation/es7.object-spread/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/options.json rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/options.json diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/variable-declaration/actual.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/variable-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/variable-declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/variable-declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.object-spread/variable-declaration/expected.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/variable-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.object-spread/variable-declaration/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.object-spread/variable-declaration/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/actual.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/call/actual.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/call/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/call/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/call/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/call/expected.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/call/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/call/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/call/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/declaration/actual.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/declaration/expected.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/declaration/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/declaration/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/new-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/new-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/es7.trailing-function-commas/options.json b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/es7.trailing-function-commas/options.json rename to packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/options.json diff --git a/packages/babel/test/fixtures/transformation/flow/options.json b/packages/babel-core/test/fixtures/transformation/flow/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/options.json rename to packages/babel-core/test/fixtures/transformation/flow/options.json diff --git a/packages/babel/test/fixtures/transformation/flow/strip-array-types/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-array-types/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-array-types/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-array-types/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-array-types/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-array-types/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-array-types/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-array-types/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-call-properties/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-call-properties/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-call-properties/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-call-properties/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-call-properties/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-call-properties/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-call-properties/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-call-properties/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-declare-module/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-declare-module/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-declare-module/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-declare-module/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-declare-statements/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-declare-statements/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-declare-statements/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-declare-statements/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-directive/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-directive/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-directive/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-directive/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-directive/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-directive/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-directive/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-directive/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-interfaces-module-and-script/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-interfaces-module-and-script/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-interfaces-module-and-script/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-interfaces-module-and-script/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-interfaces-module-and-script/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-interfaces-module-and-script/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-interfaces-module-and-script/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-interfaces-module-and-script/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-qualified-generic-type/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-qualified-generic-type/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-qualified-generic-type/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-qualified-generic-type/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-qualified-generic-type/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-qualified-generic-type/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-qualified-generic-type/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-qualified-generic-type/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-string-literal-types/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-string-literal-types/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-string-literal-types/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-string-literal-types/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-string-literal-types/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-string-literal-types/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-string-literal-types/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-string-literal-types/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-tuples/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-tuples/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-tuples/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-tuples/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-tuples/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-tuples/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-tuples/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-tuples/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-type-alias/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-type-alias/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-type-alias/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-type-alias/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-type-annotations/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-type-annotations/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-type-annotations/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-type-annotations/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-typecasts/actual.js b/packages/babel-core/test/fixtures/transformation/flow/strip-typecasts/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-typecasts/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-typecasts/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/strip-typecasts/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-typecasts/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/strip-typecasts/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/strip-typecasts/expected.js diff --git a/packages/babel/test/fixtures/transformation/flow/type-comments/actual.js b/packages/babel-core/test/fixtures/transformation/flow/type-comments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/type-comments/actual.js rename to packages/babel-core/test/fixtures/transformation/flow/type-comments/actual.js diff --git a/packages/babel/test/fixtures/transformation/flow/type-comments/expected.js b/packages/babel-core/test/fixtures/transformation/flow/type-comments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/flow/type-comments/expected.js rename to packages/babel-core/test/fixtures/transformation/flow/type-comments/expected.js diff --git a/packages/babel/test/fixtures/transformation/jscript/arrow-function/exec.js b/packages/babel-core/test/fixtures/transformation/jscript/arrow-function/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/arrow-function/exec.js rename to packages/babel-core/test/fixtures/transformation/jscript/arrow-function/exec.js diff --git a/packages/babel/test/fixtures/transformation/jscript/options.json b/packages/babel-core/test/fixtures/transformation/jscript/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/options.json rename to packages/babel-core/test/fixtures/transformation/jscript/options.json diff --git a/packages/babel/test/fixtures/transformation/jscript/simple-class/actual.js b/packages/babel-core/test/fixtures/transformation/jscript/simple-class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/simple-class/actual.js rename to packages/babel-core/test/fixtures/transformation/jscript/simple-class/actual.js diff --git a/packages/babel/test/fixtures/transformation/jscript/simple-class/expected.js b/packages/babel-core/test/fixtures/transformation/jscript/simple-class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/simple-class/expected.js rename to packages/babel-core/test/fixtures/transformation/jscript/simple-class/expected.js diff --git a/packages/babel/test/fixtures/transformation/jscript/simple-class/options.json b/packages/babel-core/test/fixtures/transformation/jscript/simple-class/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/simple-class/options.json rename to packages/babel-core/test/fixtures/transformation/jscript/simple-class/options.json diff --git a/packages/babel/test/fixtures/transformation/jscript/var-named-function-expression/actual.js b/packages/babel-core/test/fixtures/transformation/jscript/var-named-function-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/var-named-function-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/jscript/var-named-function-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/jscript/var-named-function-expression/expected.js b/packages/babel-core/test/fixtures/transformation/jscript/var-named-function-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/jscript/var-named-function-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/jscript/var-named-function-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.dead-code-elimination/options.json b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.dead-code-elimination/options.json rename to packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/options.json diff --git a/packages/babel/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/actual.js b/packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/expected.js b/packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/invalid-identifiers/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.member-expression-literals/options.json b/packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.member-expression-literals/options.json rename to packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/options.json diff --git a/packages/babel/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/actual.js b/packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/expected.js b/packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.member-expression-literals/valid-identifiers/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.property-literals/invalid-identifiers/actual.js b/packages/babel-core/test/fixtures/transformation/minification.property-literals/invalid-identifiers/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.property-literals/invalid-identifiers/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.property-literals/invalid-identifiers/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.property-literals/invalid-identifiers/expected.js b/packages/babel-core/test/fixtures/transformation/minification.property-literals/invalid-identifiers/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.property-literals/invalid-identifiers/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.property-literals/invalid-identifiers/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.property-literals/options.json b/packages/babel-core/test/fixtures/transformation/minification.property-literals/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.property-literals/options.json rename to packages/babel-core/test/fixtures/transformation/minification.property-literals/options.json diff --git a/packages/babel/test/fixtures/transformation/minification.property-literals/valid-identifiers/actual.js b/packages/babel-core/test/fixtures/transformation/minification.property-literals/valid-identifiers/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.property-literals/valid-identifiers/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.property-literals/valid-identifiers/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.property-literals/valid-identifiers/expected.js b/packages/babel-core/test/fixtures/transformation/minification.property-literals/valid-identifiers/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.property-literals/valid-identifiers/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.property-literals/valid-identifiers/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/expression-nested/actual.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-nested/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/expression-nested/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-nested/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/expression-nested/expected.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-nested/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/expression-nested/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-nested/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/expression-top-level/actual.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-top-level/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/expression-top-level/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-top-level/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/expression-top-level/expected.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-top-level/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/expression-top-level/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/expression-top-level/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/options.json b/packages/babel-core/test/fixtures/transformation/minification.remove-console/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/options.json rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/options.json diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/statement-nested/actual.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-nested/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/statement-nested/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-nested/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/statement-nested/expected.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-nested/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/statement-nested/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-nested/expected.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/statement-top-level/actual.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-top-level/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/statement-top-level/actual.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-top-level/actual.js diff --git a/packages/babel/test/fixtures/transformation/minification.remove-console/statement-top-level/expected.js b/packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-top-level/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/minification.remove-console/statement-top-level/expected.js rename to packages/babel-core/test/fixtures/transformation/minification.remove-console/statement-top-level/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/actual.js b/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js b/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/options.json b/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/options.json rename to packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/options.json diff --git a/packages/babel/test/fixtures/transformation/misc/options.json b/packages/babel-core/test/fixtures/transformation/misc/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/options.json rename to packages/babel-core/test/fixtures/transformation/misc/options.json diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1130/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1130/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1130/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1130/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1130/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1130/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1130/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1130/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1149/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1149/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1149/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1149/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1149/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1149/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1149/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1149/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1155/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1155/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1155/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1155/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1155/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1155/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1168/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1168/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1168/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1168/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1168/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1168/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1168/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1168/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1169/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1169/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1169/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1169/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1169/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1169/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1199/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1199/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1199/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1199/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1199/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1199/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1199/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1199/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1489/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1489/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1489/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1489/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1489/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1489/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1489/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-1489/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-1489/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1489/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-1489/options.json rename to packages/babel-core/test/fixtures/transformation/misc/regression-1489/options.json diff --git a/packages/babel/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js diff --git a/packages/babel/test/fixtures/transformation/misc/shebang/actual.js b/packages/babel-core/test/fixtures/transformation/misc/shebang/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/shebang/actual.js rename to packages/babel-core/test/fixtures/transformation/misc/shebang/actual.js diff --git a/packages/babel/test/fixtures/transformation/misc/shebang/expected.js b/packages/babel-core/test/fixtures/transformation/misc/shebang/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/misc/shebang/expected.js rename to packages/babel-core/test/fixtures/transformation/misc/shebang/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.modules.system/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.modules.system/options.json rename to packages/babel-core/test/fixtures/transformation/optimisation.modules.system/options.json diff --git a/packages/babel/test/fixtures/transformation/optimisation.modules.system/setters/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.modules.system/setters/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.modules.system/setters/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.modules.system/setters/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/children/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/children/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/children/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/children/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/children/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/children/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/children/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/children/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/constructor/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/constructor/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/constructor/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/constructor/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/constructor/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/constructor/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/constructor/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/constructor/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/deep-constant-violation/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/dont-hoist-to-same-function/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/function-parameter/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/global-reference/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/html-element/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/html-element/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/html-element/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/html-element/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/html-element/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/html-element/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/html-element/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/html-element/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inner-declaration/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/options.json rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/options.json diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/parameter-reference/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/reassignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/ref-deopt/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/spread-deopt/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/key/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/key/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/options.json rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/options.json diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/ref-deopt/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/actual.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/actual.js diff --git a/packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/expected.js rename to packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/spread-deopt/expected.js diff --git a/packages/babel/test/fixtures/transformation/react-compat/convert-component/actual.js b/packages/babel-core/test/fixtures/transformation/react-compat/convert-component/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react-compat/convert-component/actual.js rename to packages/babel-core/test/fixtures/transformation/react-compat/convert-component/actual.js diff --git a/packages/babel/test/fixtures/transformation/react-compat/convert-component/expected.js b/packages/babel-core/test/fixtures/transformation/react-compat/convert-component/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react-compat/convert-component/expected.js rename to packages/babel-core/test/fixtures/transformation/react-compat/convert-component/expected.js diff --git a/packages/babel/test/fixtures/transformation/react-compat/convert-tags/actual.js b/packages/babel-core/test/fixtures/transformation/react-compat/convert-tags/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react-compat/convert-tags/actual.js rename to packages/babel-core/test/fixtures/transformation/react-compat/convert-tags/actual.js diff --git a/packages/babel/test/fixtures/transformation/react-compat/convert-tags/expected.js b/packages/babel-core/test/fixtures/transformation/react-compat/convert-tags/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react-compat/convert-tags/expected.js rename to packages/babel-core/test/fixtures/transformation/react-compat/convert-tags/expected.js diff --git a/packages/babel/test/fixtures/transformation/react-compat/options.json b/packages/babel-core/test/fixtures/transformation/react-compat/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react-compat/options.json rename to packages/babel-core/test/fixtures/transformation/react-compat/options.json diff --git a/packages/babel/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/actual.js b/packages/babel-core/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/actual.js rename to packages/babel-core/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/expected.js b/packages/babel-core/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/expected.js rename to packages/babel-core/test/fixtures/transformation/react/.should-not-strip-nbsp-even-coupled-with-other-whitespace/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/actual.js b/packages/babel-core/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/actual.js rename to packages/babel-core/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/expected.js b/packages/babel-core/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/expected.js rename to packages/babel-core/test/fixtures/transformation/react/.should-not-strip-tags-with-a-single-child-of-nbsp/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/actual.js b/packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/actual.js rename to packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/expected.js b/packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/expected.js rename to packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-adjacent-to-children/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/actual.js b/packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/actual.js rename to packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/expected.js b/packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/expected.js rename to packages/babel-core/test/fixtures/transformation/react/.should-properly-handle-comments-between-props/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/actual.js b/packages/babel-core/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/actual.js rename to packages/babel-core/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/expected.js b/packages/babel-core/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/expected.js rename to packages/babel-core/test/fixtures/transformation/react/adds-appropriate-newlines-when-using-spread-attribute/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/arrow-functions/actual.js b/packages/babel-core/test/fixtures/transformation/react/arrow-functions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/arrow-functions/actual.js rename to packages/babel-core/test/fixtures/transformation/react/arrow-functions/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/arrow-functions/expected.js b/packages/babel-core/test/fixtures/transformation/react/arrow-functions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/arrow-functions/expected.js rename to packages/babel-core/test/fixtures/transformation/react/arrow-functions/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/arrow-functions/options.json b/packages/babel-core/test/fixtures/transformation/react/arrow-functions/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/arrow-functions/options.json rename to packages/babel-core/test/fixtures/transformation/react/arrow-functions/options.json diff --git a/packages/babel/test/fixtures/transformation/react/concatenates-adjacent-string-literals/actual.js b/packages/babel-core/test/fixtures/transformation/react/concatenates-adjacent-string-literals/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/concatenates-adjacent-string-literals/actual.js rename to packages/babel-core/test/fixtures/transformation/react/concatenates-adjacent-string-literals/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/concatenates-adjacent-string-literals/expected.js b/packages/babel-core/test/fixtures/transformation/react/concatenates-adjacent-string-literals/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/concatenates-adjacent-string-literals/expected.js rename to packages/babel-core/test/fixtures/transformation/react/concatenates-adjacent-string-literals/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-assignment-expression/actual.js b/packages/babel-core/test/fixtures/transformation/react/display-name-assignment-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-assignment-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-assignment-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-assignment-expression/expected.js b/packages/babel-core/test/fixtures/transformation/react/display-name-assignment-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-assignment-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-assignment-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-export-default/actual.js b/packages/babel-core/test/fixtures/transformation/react/display-name-export-default/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-export-default/actual.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-export-default/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-export-default/expected.js b/packages/babel-core/test/fixtures/transformation/react/display-name-export-default/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-export-default/expected.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-export-default/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-if-missing/actual.js b/packages/babel-core/test/fixtures/transformation/react/display-name-if-missing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-if-missing/actual.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-if-missing/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-if-missing/expected.js b/packages/babel-core/test/fixtures/transformation/react/display-name-if-missing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-if-missing/expected.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-if-missing/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-object-declaration/actual.js b/packages/babel-core/test/fixtures/transformation/react/display-name-object-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-object-declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-object-declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-object-declaration/expected.js b/packages/babel-core/test/fixtures/transformation/react/display-name-object-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-object-declaration/expected.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-object-declaration/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-property-assignment/actual.js b/packages/babel-core/test/fixtures/transformation/react/display-name-property-assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-property-assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-property-assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-property-assignment/expected.js b/packages/babel-core/test/fixtures/transformation/react/display-name-property-assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-property-assignment/expected.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-property-assignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-variable-declaration/actual.js b/packages/babel-core/test/fixtures/transformation/react/display-name-variable-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-variable-declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-variable-declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/display-name-variable-declaration/expected.js b/packages/babel-core/test/fixtures/transformation/react/display-name-variable-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/display-name-variable-declaration/expected.js rename to packages/babel-core/test/fixtures/transformation/react/display-name-variable-declaration/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/dont-coerce-expression-containers/actual.js b/packages/babel-core/test/fixtures/transformation/react/dont-coerce-expression-containers/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/dont-coerce-expression-containers/actual.js rename to packages/babel-core/test/fixtures/transformation/react/dont-coerce-expression-containers/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/dont-coerce-expression-containers/expected.js b/packages/babel-core/test/fixtures/transformation/react/dont-coerce-expression-containers/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/dont-coerce-expression-containers/expected.js rename to packages/babel-core/test/fixtures/transformation/react/dont-coerce-expression-containers/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/actual.js b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/actual.js rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/expected.js b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/expected.js rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment/actual.js b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment/actual.js rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment/expected.js b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-comment/expected.js rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/actual.js b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/actual.js rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/expected.js b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/expected.js rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json rename to packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json diff --git a/packages/babel/test/fixtures/transformation/react/jsx-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/transformation/react/jsx-with-retainlines-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/jsx-with-retainlines-option/actual.js rename to packages/babel-core/test/fixtures/transformation/react/jsx-with-retainlines-option/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/jsx-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/transformation/react/jsx-with-retainlines-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/jsx-with-retainlines-option/expected.js rename to packages/babel-core/test/fixtures/transformation/react/jsx-with-retainlines-option/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/jsx-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/transformation/react/jsx-with-retainlines-option/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/jsx-with-retainlines-option/options.json rename to packages/babel-core/test/fixtures/transformation/react/jsx-with-retainlines-option/options.json diff --git a/packages/babel/test/fixtures/transformation/react/jsx-without-retainlines-option/actual.js b/packages/babel-core/test/fixtures/transformation/react/jsx-without-retainlines-option/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/jsx-without-retainlines-option/actual.js rename to packages/babel-core/test/fixtures/transformation/react/jsx-without-retainlines-option/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/jsx-without-retainlines-option/expected.js b/packages/babel-core/test/fixtures/transformation/react/jsx-without-retainlines-option/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/jsx-without-retainlines-option/expected.js rename to packages/babel-core/test/fixtures/transformation/react/jsx-without-retainlines-option/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js b/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js rename to packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js b/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js rename to packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json b/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json rename to packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json diff --git a/packages/babel/test/fixtures/transformation/react/options.json b/packages/babel-core/test/fixtures/transformation/react/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/options.json rename to packages/babel-core/test/fixtures/transformation/react/options.json diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-constructor-as-prop/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-constructor-as-prop/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-constructor-as-prop/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-constructor-as-prop/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-constructor-as-prop/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-constructor-as-prop/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-constructor-as-prop/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-constructor-as-prop/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-deeper-js-namespacing/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-js-namespacing/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-js-namespacing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-js-namespacing/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-js-namespacing/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-js-namespacing/blacklist.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-js-namespacing/blacklist.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-js-namespacing/blacklist.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-js-namespacing/blacklist.js diff --git a/packages/babel/test/fixtures/transformation/react/should-allow-js-namespacing/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-allow-js-namespacing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-allow-js-namespacing/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-allow-js-namespacing/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-avoid-wrapping-in-extra-parens-if-not-needed/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-convert-simple-tags/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-convert-simple-tags/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-convert-simple-tags/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-convert-simple-tags/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-convert-simple-tags/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-convert-simple-tags/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-convert-simple-tags/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-convert-simple-tags/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-convert-simple-text/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-convert-simple-text/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-convert-simple-text/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-convert-simple-text/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-convert-simple-text/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-convert-simple-text/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-convert-simple-text/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-convert-simple-text/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-disallow-xml-namespacing/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-disallow-xml-namespacing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-disallow-xml-namespacing/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-disallow-xml-namespacing/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-disallow-xml-namespacing/options.json b/packages/babel-core/test/fixtures/transformation/react/should-disallow-xml-namespacing/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-disallow-xml-namespacing/options.json rename to packages/babel-core/test/fixtures/transformation/react/should-disallow-xml-namespacing/options.json diff --git a/packages/babel/test/fixtures/transformation/react/should-handle-attributed-elements/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-handle-attributed-elements/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-handle-attributed-elements/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-handle-attributed-elements/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-handle-attributed-elements/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-handle-attributed-elements/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-handle-attributed-elements/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-handle-attributed-elements/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-handle-has-own-property-correctly/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-handle-has-own-property-correctly/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-handle-has-own-property-correctly/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-handle-has-own-property-correctly/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-handle-has-own-property-correctly/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-handle-has-own-property-correctly/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-handle-has-own-property-correctly/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-handle-has-own-property-correctly/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-have-correct-comma-in-nested-children/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-insert-commas-after-expressions-before-whitespace/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/actual.js b/packages/babel-core/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/actual.js rename to packages/babel-core/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/expected.js b/packages/babel-core/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/expected.js rename to packages/babel-core/test/fixtures/transformation/react/should-transform-known-hyphenated-tags/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/actual.js b/packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/actual.js rename to packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/expected.js b/packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/expected.js rename to packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-first-spread-attributes/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/actual.js b/packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/actual.js rename to packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/expected.js b/packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/expected.js rename to packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-last-spread-attributes/expected.js diff --git a/packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/actual.js b/packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/actual.js rename to packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/actual.js diff --git a/packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/expected.js b/packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/expected.js rename to packages/babel-core/test/fixtures/transformation/react/wraps-props-in-react-spread-for-middle-spread-attributes/expected.js diff --git a/packages/babel/test/fixtures/transformation/regenerator/default-parameters/exec.js b/packages/babel-core/test/fixtures/transformation/regenerator/default-parameters/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/regenerator/default-parameters/exec.js rename to packages/babel-core/test/fixtures/transformation/regenerator/default-parameters/exec.js diff --git a/packages/babel/test/fixtures/transformation/regenerator/destructuring-parameters/exec.js b/packages/babel-core/test/fixtures/transformation/regenerator/destructuring-parameters/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/regenerator/destructuring-parameters/exec.js rename to packages/babel-core/test/fixtures/transformation/regenerator/destructuring-parameters/exec.js diff --git a/packages/babel/test/fixtures/transformation/regenerator/destructuring/exec.js b/packages/babel-core/test/fixtures/transformation/regenerator/destructuring/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/regenerator/destructuring/exec.js rename to packages/babel-core/test/fixtures/transformation/regenerator/destructuring/exec.js diff --git a/packages/babel/test/fixtures/transformation/regenerator/rest-parameters/exec.js b/packages/babel-core/test/fixtures/transformation/regenerator/rest-parameters/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/regenerator/rest-parameters/exec.js rename to packages/babel-core/test/fixtures/transformation/regenerator/rest-parameters/exec.js diff --git a/packages/babel/test/fixtures/transformation/runtime/aliased-constructors/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/aliased-constructors/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/aliased-constructors/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/aliased-constructors/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/catch-all/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/catch-all/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/catch-all/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/catch-all/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/catch-all/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/catch-all/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/catch-all/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/catch-all/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/es6-for-of/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/es6-for-of/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/es6-for-of/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/es6-for-of/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/full/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/full/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/full/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/full/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/full/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/full/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/full/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/full/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-amd/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-amd/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-amd/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-amd/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-amd/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-amd/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-amd/options.json b/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-amd/options.json rename to packages/babel-core/test/fixtures/transformation/runtime/modules-amd/options.json diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-common/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-common/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-common/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-common/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-common/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-common/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-common/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-common/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-system/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-system/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-system/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-system/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-system/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-system/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-system/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-system/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-system/options.json b/packages/babel-core/test/fixtures/transformation/runtime/modules-system/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-system/options.json rename to packages/babel-core/test/fixtures/transformation/runtime/modules-system/options.json diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-umd/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-umd/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-umd/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-umd/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-umd/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/modules-umd/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/modules-umd/options.json b/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/modules-umd/options.json rename to packages/babel-core/test/fixtures/transformation/runtime/modules-umd/options.json diff --git a/packages/babel/test/fixtures/transformation/runtime/options.json b/packages/babel-core/test/fixtures/transformation/runtime/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/options.json rename to packages/babel-core/test/fixtures/transformation/runtime/options.json diff --git a/packages/babel/test/fixtures/transformation/runtime/regenerator-runtime/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/regenerator-runtime/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/regenerator-runtime/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/regenerator-runtime/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/symbol-iterator-in/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/symbol-iterator-in/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js diff --git a/packages/babel/test/fixtures/transformation/runtime/symbol-iterator/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/symbol-iterator/actual.js rename to packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/actual.js diff --git a/packages/babel/test/fixtures/transformation/runtime/symbol-iterator/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/runtime/symbol-iterator/expected.js rename to packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/expected.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/arrow-function/actual.js b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/arrow-function/actual.js rename to packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/actual.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/arrow-function/expected.js b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/arrow-function/expected.js rename to packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/expected.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json rename to packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json diff --git a/packages/babel/test/fixtures/transformation/source-maps/class/actual.js b/packages/babel-core/test/fixtures/transformation/source-maps/class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/class/actual.js rename to packages/babel-core/test/fixtures/transformation/source-maps/class/actual.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/class/expected.js b/packages/babel-core/test/fixtures/transformation/source-maps/class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/class/expected.js rename to packages/babel-core/test/fixtures/transformation/source-maps/class/expected.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/class/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/class/source-mappings.json rename to packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json diff --git a/packages/babel/test/fixtures/transformation/source-maps/full/actual.js b/packages/babel-core/test/fixtures/transformation/source-maps/full/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/full/actual.js rename to packages/babel-core/test/fixtures/transformation/source-maps/full/actual.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/full/expected.js b/packages/babel-core/test/fixtures/transformation/source-maps/full/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/full/expected.js rename to packages/babel-core/test/fixtures/transformation/source-maps/full/expected.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/full/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/full/source-map.json rename to packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json diff --git a/packages/babel/test/fixtures/transformation/source-maps/inline/actual.js b/packages/babel-core/test/fixtures/transformation/source-maps/inline/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/inline/actual.js rename to packages/babel-core/test/fixtures/transformation/source-maps/inline/actual.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/inline/expected.js b/packages/babel-core/test/fixtures/transformation/source-maps/inline/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/inline/expected.js rename to packages/babel-core/test/fixtures/transformation/source-maps/inline/expected.js diff --git a/packages/babel/test/fixtures/transformation/source-maps/inline/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/inline/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/inline/options.json rename to packages/babel-core/test/fixtures/transformation/source-maps/inline/options.json diff --git a/packages/babel/test/fixtures/transformation/source-maps/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/source-maps/options.json rename to packages/babel-core/test/fixtures/transformation/source-maps/options.json diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/assignment/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/assignment/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/assignment/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/basic/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/basic/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/basic/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/basic/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/basic/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/basic/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/basic/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/basic/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/class-method/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/class-method/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/class-method/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/class-method/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/collisions/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/collisions/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/collisions/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/collisions/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/eval/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/eval/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/eval/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/eval/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/eval/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/eval/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/eval/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/eval/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/export/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/export/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/export/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/export/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/export/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/export/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/export/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/export/options.json rename to packages/babel-core/test/fixtures/transformation/spec.function-name/export/options.json diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/global/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/global/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/global/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/global/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/global/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/global/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/global/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/global/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/modules-2/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/modules-2/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/modules-2/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/modules-2/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/modules-3/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/modules-3/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/modules-3/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/modules-3/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/modules/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/modules/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/modules/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/modules/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/modules/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/modules/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/object/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/object/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/object/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/object/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/object/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/object/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/object/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/object/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/options.json rename to packages/babel-core/test/fixtures/transformation/spec.function-name/options.json diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/own-bindings/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/own-bindings/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/own-bindings/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/own-bindings/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/own-bindings/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/own-bindings/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/own-bindings/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/own-bindings/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/self-reference/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/self-reference/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/self-reference/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/self-reference/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/self-reference/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/self-reference/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/self-reference/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/self-reference/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/shorthand-property/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/shorthand-property/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/smoke/exec.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/smoke/exec.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/exec.js diff --git a/packages/babel/test/fixtures/transformation/spec.function-name/smoke/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.function-name/smoke/options.json rename to packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/options.json diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/actual.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/expected.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/actual.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/expected.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/assignment-statement/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/class/actual.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/class/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/class/expected.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/class/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/object-literal/actual.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/object-literal/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/object-literal/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/object-literal/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/object-literal/expected.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/object-literal/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/object-literal/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/object-literal/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.proto-to-assign/options.json b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.proto-to-assign/options.json rename to packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/options.json diff --git a/packages/babel/test/fixtures/transformation/spec.undefined-to-void/basic/actual.js b/packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/basic/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.undefined-to-void/basic/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/basic/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.undefined-to-void/basic/expected.js b/packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/basic/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.undefined-to-void/basic/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/basic/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.undefined-to-void/member-expression/actual.js b/packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/member-expression/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.undefined-to-void/member-expression/actual.js rename to packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/member-expression/actual.js diff --git a/packages/babel/test/fixtures/transformation/spec.undefined-to-void/member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/member-expression/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.undefined-to-void/member-expression/expected.js rename to packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/member-expression/expected.js diff --git a/packages/babel/test/fixtures/transformation/spec.undefined-to-void/options.json b/packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/spec.undefined-to-void/options.json rename to packages/babel-core/test/fixtures/transformation/spec.undefined-to-void/options.json diff --git a/packages/babel/test/fixtures/transformation/strict/leading-comments-with-existing/actual.js b/packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/leading-comments-with-existing/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js b/packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/leading-comments/actual.js b/packages/babel-core/test/fixtures/transformation/strict/leading-comments/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/leading-comments/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/leading-comments/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/leading-comments/expected.js b/packages/babel-core/test/fixtures/transformation/strict/leading-comments/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/leading-comments/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/leading-comments/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-arrow-function/actual.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-arrow-function/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-root-call/actual.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-root-call/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-root-call/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-root-call/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-root-declaration/actual.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-root-declaration/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-root-reference/actual.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-root-reference/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/use-strict-add/actual.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-add/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/use-strict-add/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/use-strict-add/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/use-strict-add/expected.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-add/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/use-strict-add/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/use-strict-add/expected.js diff --git a/packages/babel/test/fixtures/transformation/strict/use-strict-exists/actual.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/actual.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/use-strict-exists/actual.js rename to packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/actual.js diff --git a/packages/babel/test/fixtures/transformation/strict/use-strict-exists/expected.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/expected.js similarity index 100% rename from packages/babel/test/fixtures/transformation/strict/use-strict-exists/expected.js rename to packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/expected.js diff --git a/packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/declared/exec.js b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/declared/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/declared/exec.js rename to packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/declared/exec.js diff --git a/packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/options.json b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/options.json rename to packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/options.json diff --git a/packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/exec.js b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/exec.js rename to packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/exec.js diff --git a/packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/options.json b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/options.json rename to packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared-shorthand-property/options.json diff --git a/packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/exec.js b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/exec.js similarity index 100% rename from packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/exec.js rename to packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/exec.js diff --git a/packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/options.json b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/options.json similarity index 100% rename from packages/babel/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/options.json rename to packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/undeclared/options.json diff --git a/packages/babel/test/generation.js b/packages/babel-core/test/generation.js similarity index 94% rename from packages/babel/test/generation.js rename to packages/babel-core/test/generation.js index c968672b71..b0534ab7a1 100644 --- a/packages/babel/test/generation.js +++ b/packages/babel-core/test/generation.js @@ -1,9 +1,9 @@ -var generate = require("../lib/generation"); +var generate = require("babel-generator"); var fixtures = require("mocha-fixtures"); var assert = require("assert"); var parse = require("../lib/helpers/parse"); var chai = require("chai"); -var t = require("../lib/types"); +var t = require("babel-types"); var _ = require("lodash"); suite("generation", function () { diff --git a/packages/babel/test/path.js b/packages/babel-core/test/path.js similarity index 100% rename from packages/babel/test/path.js rename to packages/babel-core/test/path.js diff --git a/packages/babel/test/traceur.js b/packages/babel-core/test/traceur.js similarity index 100% rename from packages/babel/test/traceur.js rename to packages/babel-core/test/traceur.js diff --git a/packages/babel/test/transformation.js b/packages/babel-core/test/transformation.js similarity index 100% rename from packages/babel/test/transformation.js rename to packages/babel-core/test/transformation.js diff --git a/packages/babel/test/traverse.js b/packages/babel-core/test/traverse.js similarity index 98% rename from packages/babel/test/traverse.js rename to packages/babel-core/test/traverse.js index d33dc90934..096b880826 100644 --- a/packages/babel/test/traverse.js +++ b/packages/babel-core/test/traverse.js @@ -1,4 +1,4 @@ -var traverse = require("../lib/traversal"); +var traverse = require("babel-traverse"); var assert = require("assert"); var _ = require("lodash"); diff --git a/packages/babel/test/types.js b/packages/babel-core/test/types.js similarity index 100% rename from packages/babel/test/types.js rename to packages/babel-core/test/types.js diff --git a/packages/babel/test/util.js b/packages/babel-core/test/util.js similarity index 99% rename from packages/babel/test/util.js rename to packages/babel-core/test/util.js index b85a6e837c..b57c84bf61 100644 --- a/packages/babel/test/util.js +++ b/packages/babel-core/test/util.js @@ -1,7 +1,7 @@ var assert = require("assert"); var util = require("../lib/util"); var parse = require("../lib/helpers/parse"); -var t = require("../lib/types"); +var t = require("babel-types"); suite("util", function () { test("invalid template", function () { diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json new file mode 100644 index 0000000000..b74448c7f2 --- /dev/null +++ b/packages/babel-generator/package.json @@ -0,0 +1,20 @@ +{ + "name": "babel-generator", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "babel-messages": "^5.8.22", + "babel-types": "^5.8.22", + "detect-indent": "^3.0.1", + "is-integer": "^1.0.4", + "lodash": "^3.10.1", + "repeating": "^1.1.3", + "source-map": "^0.4.4", + "trim-right": "^1.0.1" + } +} diff --git a/packages/babel/src/generation/README.md b/packages/babel-generator/src/README.md similarity index 100% rename from packages/babel/src/generation/README.md rename to packages/babel-generator/src/README.md diff --git a/packages/babel/src/generation/buffer.js b/packages/babel-generator/src/buffer.js similarity index 100% rename from packages/babel/src/generation/buffer.js rename to packages/babel-generator/src/buffer.js diff --git a/packages/babel/src/generation/generators/README.md b/packages/babel-generator/src/generators/README.md similarity index 100% rename from packages/babel/src/generation/generators/README.md rename to packages/babel-generator/src/generators/README.md diff --git a/packages/babel/src/generation/generators/base.js b/packages/babel-generator/src/generators/base.js similarity index 100% rename from packages/babel/src/generation/generators/base.js rename to packages/babel-generator/src/generators/base.js diff --git a/packages/babel/src/generation/generators/classes.js b/packages/babel-generator/src/generators/classes.js similarity index 100% rename from packages/babel/src/generation/generators/classes.js rename to packages/babel-generator/src/generators/classes.js diff --git a/packages/babel/src/generation/generators/comprehensions.js b/packages/babel-generator/src/generators/comprehensions.js similarity index 100% rename from packages/babel/src/generation/generators/comprehensions.js rename to packages/babel-generator/src/generators/comprehensions.js diff --git a/packages/babel/src/generation/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js similarity index 99% rename from packages/babel/src/generation/generators/expressions.js rename to packages/babel-generator/src/generators/expressions.js index 8d380dc507..856b83f461 100644 --- a/packages/babel/src/generation/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -1,6 +1,6 @@ import isInteger from "is-integer"; import isNumber from "lodash/lang/isNumber"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * RegExp for testing scientific notation in literals. diff --git a/packages/babel/src/generation/generators/flow.js b/packages/babel-generator/src/generators/flow.js similarity index 99% rename from packages/babel/src/generation/generators/flow.js rename to packages/babel-generator/src/generators/flow.js index e750a6dc1f..7872f86d16 100644 --- a/packages/babel/src/generation/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * Prints AnyTypeAnnotation. diff --git a/packages/babel/src/generation/generators/jsx.js b/packages/babel-generator/src/generators/jsx.js similarity index 98% rename from packages/babel/src/generation/generators/jsx.js rename to packages/babel-generator/src/generators/jsx.js index e3f695a99d..b2a8095f05 100644 --- a/packages/babel/src/generation/generators/jsx.js +++ b/packages/babel-generator/src/generators/jsx.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * Prints JSXAttribute, prints name and value. diff --git a/packages/babel/src/generation/generators/methods.js b/packages/babel-generator/src/generators/methods.js similarity index 98% rename from packages/babel/src/generation/generators/methods.js rename to packages/babel-generator/src/generators/methods.js index 9b40fc5f21..6796414879 100644 --- a/packages/babel/src/generation/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * Prints nodes with params, prints typeParameters, params, and returnType, handles optional params. diff --git a/packages/babel/src/generation/generators/modules.js b/packages/babel-generator/src/generators/modules.js similarity index 99% rename from packages/babel/src/generation/generators/modules.js rename to packages/babel-generator/src/generators/modules.js index 578a9fddf3..74659136ce 100644 --- a/packages/babel/src/generation/generators/modules.js +++ b/packages/babel-generator/src/generators/modules.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * Prints ImportSpecifier, prints imported and local. diff --git a/packages/babel/src/generation/generators/statements.js b/packages/babel-generator/src/generators/statements.js similarity index 99% rename from packages/babel/src/generation/generators/statements.js rename to packages/babel-generator/src/generators/statements.js index d6c1e4f0ed..8663839896 100644 --- a/packages/babel/src/generation/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -1,5 +1,5 @@ import repeating from "repeating"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * Prints WithStatement, prints object and body. diff --git a/packages/babel/src/generation/generators/template-literals.js b/packages/babel-generator/src/generators/template-literals.js similarity index 100% rename from packages/babel/src/generation/generators/template-literals.js rename to packages/babel-generator/src/generators/template-literals.js diff --git a/packages/babel/src/generation/generators/types.js b/packages/babel-generator/src/generators/types.js similarity index 99% rename from packages/babel/src/generation/generators/types.js rename to packages/babel-generator/src/generators/types.js index 32884649dd..990b9e41bd 100644 --- a/packages/babel/src/generation/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -1,6 +1,6 @@ /* eslint quotes: 0 */ -import * as t from "../../types"; +import * as t from "babel-types"; /** * Prints Identifier, prints name. diff --git a/packages/babel/src/generation/index.js b/packages/babel-generator/src/index.js similarity index 99% rename from packages/babel/src/generation/index.js rename to packages/babel-generator/src/index.js index eb83a5667b..e72d2eacdb 100644 --- a/packages/babel/src/generation/index.js +++ b/packages/babel-generator/src/index.js @@ -4,12 +4,12 @@ import NodePrinter from "./node/printer"; import repeating from "repeating"; import SourceMap from "./source-map"; import Position from "./position"; -import * as messages from "../messages"; +import * as messages from "babel-messages"; import Buffer from "./buffer"; import extend from "lodash/object/extend"; import each from "lodash/collection/each"; import n from "./node"; -import * as t from "../types"; +import * as t from "babel-types"; /** * Babel's code generator, turns an ast into code, maintaining sourcemaps, diff --git a/packages/babel/src/generation/node/index.js b/packages/babel-generator/src/node/index.js similarity index 98% rename from packages/babel/src/generation/node/index.js rename to packages/babel-generator/src/node/index.js index 4bdf38c3a7..ef60e3a2c8 100644 --- a/packages/babel/src/generation/node/index.js +++ b/packages/babel-generator/src/node/index.js @@ -2,7 +2,7 @@ import whitespace from "./whitespace"; import * as parens from "./parentheses"; import each from "lodash/collection/each"; import some from "lodash/collection/some"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * Test if node matches a set of type-matcher pairs. diff --git a/packages/babel/src/generation/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js similarity index 99% rename from packages/babel/src/generation/node/parentheses.js rename to packages/babel-generator/src/node/parentheses.js index 44201e11fb..60f90e66fc 100644 --- a/packages/babel/src/generation/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -1,5 +1,5 @@ import each from "lodash/collection/each"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * Create a mapping of operators to precendence. diff --git a/packages/babel/src/generation/node/printer.js b/packages/babel-generator/src/node/printer.js similarity index 100% rename from packages/babel/src/generation/node/printer.js rename to packages/babel-generator/src/node/printer.js diff --git a/packages/babel/src/generation/node/whitespace.js b/packages/babel-generator/src/node/whitespace.js similarity index 99% rename from packages/babel/src/generation/node/whitespace.js rename to packages/babel-generator/src/node/whitespace.js index 0d828ebbcd..055b803a93 100644 --- a/packages/babel/src/generation/node/whitespace.js +++ b/packages/babel-generator/src/node/whitespace.js @@ -1,7 +1,7 @@ import isBoolean from "lodash/lang/isBoolean"; import each from "lodash/collection/each"; import map from "lodash/collection/map"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * Crawl a node to test if it contains a CallExpression, a Function, or a Helper. diff --git a/packages/babel/src/generation/position.js b/packages/babel-generator/src/position.js similarity index 100% rename from packages/babel/src/generation/position.js rename to packages/babel-generator/src/position.js diff --git a/packages/babel/src/generation/source-map.js b/packages/babel-generator/src/source-map.js similarity index 97% rename from packages/babel/src/generation/source-map.js rename to packages/babel-generator/src/source-map.js index 197d1dbce9..51cb5665a7 100644 --- a/packages/babel/src/generation/source-map.js +++ b/packages/babel-generator/src/source-map.js @@ -1,5 +1,5 @@ import sourceMap from "source-map"; -import * as t from "../types"; +import * as t from "babel-types"; /** * Build a sourcemap. diff --git a/packages/babel/src/generation/whitespace.js b/packages/babel-generator/src/whitespace.js similarity index 100% rename from packages/babel/src/generation/whitespace.js rename to packages/babel-generator/src/whitespace.js diff --git a/packages/babel-messages/package.json b/packages/babel-messages/package.json new file mode 100644 index 0000000000..a3a0c3c318 --- /dev/null +++ b/packages/babel-messages/package.json @@ -0,0 +1,10 @@ +{ + "name": "babel-messages", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js" +} diff --git a/packages/babel/src/messages.js b/packages/babel-messages/src/index.js similarity index 99% rename from packages/babel/src/messages.js rename to packages/babel-messages/src/index.js index ef8f9689fd..59a7c3e20c 100644 --- a/packages/babel/src/messages.js +++ b/packages/babel-messages/src/index.js @@ -1,4 +1,4 @@ -import * as util from "util"; +import * as util from "util"; /** * Mapping of messages to be used in Babel. diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json new file mode 100644 index 0000000000..8994c73192 --- /dev/null +++ b/packages/babel-traverse/package.json @@ -0,0 +1,19 @@ +{ + "name": "babel-traverse", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "babel-code-frame": "^5.8.22", + "globals": "^8.3.0", + "lodash": "^3.10.1", + "repeating": "^1.1.3", + "babel-types": "^5.8.22", + "babel-messages": "^5.8.22", + "babylon": "^5.8.22" + } +} diff --git a/packages/babel/src/traversal/README.md b/packages/babel-traverse/src/README.md similarity index 100% rename from packages/babel/src/traversal/README.md rename to packages/babel-traverse/src/README.md diff --git a/packages/babel/src/traversal/context.js b/packages/babel-traverse/src/context.js similarity index 98% rename from packages/babel/src/traversal/context.js rename to packages/babel-traverse/src/context.js index 097a47bb3e..c890060a84 100644 --- a/packages/babel/src/traversal/context.js +++ b/packages/babel-traverse/src/context.js @@ -1,5 +1,5 @@ import NodePath from "./path"; -import * as t from "../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/hub.js b/packages/babel-traverse/src/hub.js similarity index 100% rename from packages/babel/src/traversal/hub.js rename to packages/babel-traverse/src/hub.js diff --git a/packages/babel/src/traversal/index.js b/packages/babel-traverse/src/index.js similarity index 93% rename from packages/babel/src/traversal/index.js rename to packages/babel-traverse/src/index.js index 8e2ec3ef3a..495212f7f7 100644 --- a/packages/babel/src/traversal/index.js +++ b/packages/babel-traverse/src/index.js @@ -1,8 +1,8 @@ import TraversalContext from "./context"; import * as visitors from "./visitors"; -import * as messages from "../messages"; +import * as messages from "babel-messages"; import includes from "lodash/collection/includes"; -import * as t from "../types"; +import * as t from "babel-types"; /** * [Please add a description.] @@ -34,6 +34,10 @@ traverse.visitors = visitors; traverse.verify = visitors.verify; traverse.explode = visitors.explode; +traverse.NodePath = require("./path"); +traverse.Scope = require("./scope"); +traverse.Hub = require("./hub"); + /** * [Please add a description.] */ diff --git a/packages/babel/src/traversal/path/README.md b/packages/babel-traverse/src/path/README.md similarity index 100% rename from packages/babel/src/traversal/path/README.md rename to packages/babel-traverse/src/path/README.md diff --git a/packages/babel/src/traversal/path/ancestry.js b/packages/babel-traverse/src/path/ancestry.js similarity index 99% rename from packages/babel/src/traversal/path/ancestry.js rename to packages/babel-traverse/src/path/ancestry.js index 734a3cf515..34515b509c 100644 --- a/packages/babel/src/traversal/path/ancestry.js +++ b/packages/babel-traverse/src/path/ancestry.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; import NodePath from "./index"; /** diff --git a/packages/babel/src/traversal/path/comments.js b/packages/babel-traverse/src/path/comments.js similarity index 100% rename from packages/babel/src/traversal/path/comments.js rename to packages/babel-traverse/src/path/comments.js diff --git a/packages/babel/src/traversal/path/context.js b/packages/babel-traverse/src/path/context.js similarity index 100% rename from packages/babel/src/traversal/path/context.js rename to packages/babel-traverse/src/path/context.js diff --git a/packages/babel/src/traversal/path/conversion.js b/packages/babel-traverse/src/path/conversion.js similarity index 93% rename from packages/babel/src/traversal/path/conversion.js rename to packages/babel-traverse/src/path/conversion.js index d7444aa224..071e324600 100644 --- a/packages/babel/src/traversal/path/conversion.js +++ b/packages/babel-traverse/src/path/conversion.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js similarity index 100% rename from packages/babel/src/traversal/path/evaluation.js rename to packages/babel-traverse/src/path/evaluation.js diff --git a/packages/babel/src/traversal/path/family.js b/packages/babel-traverse/src/path/family.js similarity index 98% rename from packages/babel/src/traversal/path/family.js rename to packages/babel-traverse/src/path/family.js index 8c04562006..99a2e7a2c6 100644 --- a/packages/babel/src/traversal/path/family.js +++ b/packages/babel-traverse/src/path/family.js @@ -1,6 +1,6 @@ import type TraversalContext from "../index"; import NodePath from "./index"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/path/index.js b/packages/babel-traverse/src/path/index.js similarity index 99% rename from packages/babel/src/traversal/path/index.js rename to packages/babel-traverse/src/path/index.js index 7d3b0ee90a..703f351298 100644 --- a/packages/babel/src/traversal/path/index.js +++ b/packages/babel-traverse/src/path/index.js @@ -2,7 +2,7 @@ import * as virtualTypes from "./lib/virtual-types"; import traverse from "../index"; import assign from "lodash/object/assign"; import Scope from "../scope"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/path/inference/README.md b/packages/babel-traverse/src/path/inference/README.md similarity index 100% rename from packages/babel/src/traversal/path/inference/README.md rename to packages/babel-traverse/src/path/inference/README.md diff --git a/packages/babel/src/traversal/path/inference/index.js b/packages/babel-traverse/src/path/inference/index.js similarity index 98% rename from packages/babel/src/traversal/path/inference/index.js rename to packages/babel-traverse/src/path/inference/index.js index b5d27426bc..61bb0dc2b8 100644 --- a/packages/babel/src/traversal/path/inference/index.js +++ b/packages/babel-traverse/src/path/inference/index.js @@ -1,6 +1,6 @@ import type NodePath from "./index"; import * as inferers from "./inferers"; -import * as t from "../../../types"; +import * as t from "babel-types"; /** * Infer the type of the current `NodePath`. diff --git a/packages/babel/src/traversal/path/inference/inferer-reference.js b/packages/babel-traverse/src/path/inference/inferer-reference.js similarity index 99% rename from packages/babel/src/traversal/path/inference/inferer-reference.js rename to packages/babel-traverse/src/path/inference/inferer-reference.js index 9fd4e1deae..eeb366a578 100644 --- a/packages/babel/src/traversal/path/inference/inferer-reference.js +++ b/packages/babel-traverse/src/path/inference/inferer-reference.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/path/inference/inferers.js b/packages/babel-traverse/src/path/inference/inferers.js similarity index 99% rename from packages/babel/src/traversal/path/inference/inferers.js rename to packages/babel-traverse/src/path/inference/inferers.js index 7f10704317..a785ac1c64 100644 --- a/packages/babel/src/traversal/path/inference/inferers.js +++ b/packages/babel-traverse/src/path/inference/inferers.js @@ -1,4 +1,4 @@ -import * as t from "../../../types"; +import * as t from "babel-types"; export { default as Identifier } from "./inferer-reference"; diff --git a/packages/babel/src/traversal/path/introspection.js b/packages/babel-traverse/src/path/introspection.js similarity index 99% rename from packages/babel/src/traversal/path/introspection.js rename to packages/babel-traverse/src/path/introspection.js index 0adafb130b..4b644e5637 100644 --- a/packages/babel/src/traversal/path/introspection.js +++ b/packages/babel-traverse/src/path/introspection.js @@ -1,6 +1,6 @@ import type NodePath from "./index"; import includes from "lodash/collection/includes"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * Match the current node if it matches the provided `pattern`. diff --git a/packages/babel/src/traversal/path/lib/hoister.js b/packages/babel-traverse/src/path/lib/hoister.js similarity index 97% rename from packages/babel/src/traversal/path/lib/hoister.js rename to packages/babel-traverse/src/path/lib/hoister.js index 5b3736a405..505fc01b80 100644 --- a/packages/babel/src/traversal/path/lib/hoister.js +++ b/packages/babel-traverse/src/path/lib/hoister.js @@ -1,5 +1,5 @@ -import * as react from "../../../transformation/helpers/react"; -import * as t from "../../../types"; +import { react } from "babel-types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/path/lib/removal-hooks.js b/packages/babel-traverse/src/path/lib/removal-hooks.js similarity index 98% rename from packages/babel/src/traversal/path/lib/removal-hooks.js rename to packages/babel-traverse/src/path/lib/removal-hooks.js index 75e01de83c..7b2d0c8fed 100644 --- a/packages/babel/src/traversal/path/lib/removal-hooks.js +++ b/packages/babel-traverse/src/path/lib/removal-hooks.js @@ -1,6 +1,6 @@ // this file contains hooks that handle ancestry cleanup of parent nodes when removing children -import * as t from "../../../types"; +import * as t from "babel-types"; /** * Pre hooks should be used for either rejecting removal or delegating removal diff --git a/packages/babel/src/traversal/path/lib/virtual-types.js b/packages/babel-traverse/src/path/lib/virtual-types.js similarity index 97% rename from packages/babel/src/traversal/path/lib/virtual-types.js rename to packages/babel-traverse/src/path/lib/virtual-types.js index 1595f47d7a..591041aaa5 100644 --- a/packages/babel/src/traversal/path/lib/virtual-types.js +++ b/packages/babel-traverse/src/path/lib/virtual-types.js @@ -1,5 +1,5 @@ -import * as react from "../../../transformation/helpers/react"; -import * as t from "../../../types"; +import { react } from "babel-types"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/path/modification.js b/packages/babel-traverse/src/path/modification.js similarity index 99% rename from packages/babel/src/traversal/path/modification.js rename to packages/babel-traverse/src/path/modification.js index 9048b64339..4d69086e5e 100644 --- a/packages/babel/src/traversal/path/modification.js +++ b/packages/babel-traverse/src/path/modification.js @@ -1,6 +1,6 @@ import PathHoister from "./lib/hoister"; import NodePath from "./index"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * Insert the provided nodes before the current one. diff --git a/packages/babel/src/traversal/path/removal.js b/packages/babel-traverse/src/path/removal.js similarity index 100% rename from packages/babel/src/traversal/path/removal.js rename to packages/babel-traverse/src/path/removal.js diff --git a/packages/babel/src/traversal/path/replacement.js b/packages/babel-traverse/src/path/replacement.js similarity index 97% rename from packages/babel/src/traversal/path/replacement.js rename to packages/babel-traverse/src/path/replacement.js index abaf3d5778..e3113feecd 100644 --- a/packages/babel/src/traversal/path/replacement.js +++ b/packages/babel-traverse/src/path/replacement.js @@ -1,8 +1,8 @@ -import codeFrame from "../../helpers/code-frame"; +import codeFrame from "babel-code-frame"; import traverse from "../index"; import NodePath from "./index"; -import parse from "../../helpers/parse"; -import * as t from "../../types"; +import { parse } from "babylon"; +import * as t from "babel-types"; /** * [Please add a description.] diff --git a/packages/babel/src/traversal/scope/README.md b/packages/babel-traverse/src/scope/README.md similarity index 100% rename from packages/babel/src/traversal/scope/README.md rename to packages/babel-traverse/src/scope/README.md diff --git a/packages/babel/src/traversal/scope/binding.js b/packages/babel-traverse/src/scope/binding.js similarity index 100% rename from packages/babel/src/traversal/scope/binding.js rename to packages/babel-traverse/src/scope/binding.js diff --git a/packages/babel/src/traversal/scope/index.js b/packages/babel-traverse/src/scope/index.js similarity index 98% rename from packages/babel/src/traversal/scope/index.js rename to packages/babel-traverse/src/scope/index.js index bd654df9ab..51777e6346 100644 --- a/packages/babel/src/traversal/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -3,13 +3,12 @@ import repeating from "repeating"; import type NodePath from "../path"; import traverse from "../index"; import defaults from "lodash/object/defaults"; -import * as messages from "../../messages"; +import * as messages from "babel-messages"; import Binding from "./binding"; import globals from "globals"; import flatten from "lodash/array/flatten"; import extend from "lodash/object/extend"; -import object from "../../helpers/object"; -import * as t from "../../types"; +import * as t from "babel-types"; /** * [Please add a description.] @@ -742,11 +741,11 @@ export default class Scope { if (info) return extend(this, info); info = this.block._scopeInfo = { - references: object(), - bindings: object(), - globals: object(), - uids: object(), - data: object(), + references: Object.create(null), + bindings: Object.create(null), + globals: Object.create(null), + uids: Object.create(null), + data: Object.create(null), }; extend(this, info); @@ -896,7 +895,7 @@ export default class Scope { */ getAllBindings(): Object { - var ids = object(); + var ids = Object.create(null); var scope = this; do { @@ -912,7 +911,7 @@ export default class Scope { */ getAllBindingsOfKind(): Object { - var ids = object(); + var ids = Object.create(null); for (let kind of (arguments: Array)) { var scope = this; diff --git a/packages/babel/src/traversal/visitors.js b/packages/babel-traverse/src/visitors.js similarity index 98% rename from packages/babel/src/traversal/visitors.js rename to packages/babel-traverse/src/visitors.js index 5e60c32976..9fc5624793 100644 --- a/packages/babel/src/traversal/visitors.js +++ b/packages/babel-traverse/src/visitors.js @@ -1,6 +1,6 @@ import * as virtualTypes from "./path/lib/virtual-types"; -import * as messages from "../messages"; -import * as t from "../types"; +import * as messages from "babel-messages"; +import * as t from "babel-types"; import clone from "lodash/lang/clone"; /** diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json new file mode 100644 index 0000000000..3251d6f52d --- /dev/null +++ b/packages/babel-types/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-types", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "esutils": "^2.0.2", + "lodash": "^3.10.1", + "to-fast-properties": "^1.0.1", + "babel-traverse": "^5.8.22" + } +} diff --git a/packages/babel/src/types/README.md b/packages/babel-types/src/README.md similarity index 100% rename from packages/babel/src/types/README.md rename to packages/babel-types/src/README.md diff --git a/packages/babel/src/types/converters.js b/packages/babel-types/src/converters.js similarity index 98% rename from packages/babel/src/types/converters.js rename to packages/babel-types/src/converters.js index 5bf1c02ac0..52d0966f70 100644 --- a/packages/babel/src/types/converters.js +++ b/packages/babel-types/src/converters.js @@ -2,8 +2,8 @@ import isPlainObject from "lodash/lang/isPlainObject"; import isNumber from "lodash/lang/isNumber"; import isRegExp from "lodash/lang/isRegExp"; import isString from "lodash/lang/isString"; -import traverse from "../traversal"; -import type Scope from "../traversal/scope"; +import traverse from "babel-traverse"; +import type { Scope } from "babel-traverse"; import * as t from "./index"; /** diff --git a/packages/babel/src/types/definitions/core.js b/packages/babel-types/src/definitions/core.js similarity index 100% rename from packages/babel/src/types/definitions/core.js rename to packages/babel-types/src/definitions/core.js diff --git a/packages/babel/src/types/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js similarity index 100% rename from packages/babel/src/types/definitions/es2015.js rename to packages/babel-types/src/definitions/es2015.js diff --git a/packages/babel/src/types/definitions/experimental.js b/packages/babel-types/src/definitions/experimental.js similarity index 100% rename from packages/babel/src/types/definitions/experimental.js rename to packages/babel-types/src/definitions/experimental.js diff --git a/packages/babel/src/types/definitions/flow.js b/packages/babel-types/src/definitions/flow.js similarity index 100% rename from packages/babel/src/types/definitions/flow.js rename to packages/babel-types/src/definitions/flow.js diff --git a/packages/babel/src/types/definitions/index.js b/packages/babel-types/src/definitions/index.js similarity index 100% rename from packages/babel/src/types/definitions/index.js rename to packages/babel-types/src/definitions/index.js diff --git a/packages/babel/src/types/definitions/init.js b/packages/babel-types/src/definitions/init.js similarity index 100% rename from packages/babel/src/types/definitions/init.js rename to packages/babel-types/src/definitions/init.js diff --git a/packages/babel/src/types/definitions/jsx.js b/packages/babel-types/src/definitions/jsx.js similarity index 100% rename from packages/babel/src/types/definitions/jsx.js rename to packages/babel-types/src/definitions/jsx.js diff --git a/packages/babel/src/types/definitions/misc.js b/packages/babel-types/src/definitions/misc.js similarity index 100% rename from packages/babel/src/types/definitions/misc.js rename to packages/babel-types/src/definitions/misc.js diff --git a/packages/babel/src/types/flow.js b/packages/babel-types/src/flow.js similarity index 100% rename from packages/babel/src/types/flow.js rename to packages/babel-types/src/flow.js diff --git a/packages/babel/src/types/index.js b/packages/babel-types/src/index.js similarity index 99% rename from packages/babel/src/types/index.js rename to packages/babel-types/src/index.js index c89df77750..7546f24fb4 100644 --- a/packages/babel/src/types/index.js +++ b/packages/babel-types/src/index.js @@ -51,6 +51,7 @@ export const STRING_UNARY_OPERATORS = ["typeof"]; import "./definitions/init"; import { VISITOR_KEYS, BUILDER_KEYS, ALIAS_KEYS } from "./definitions"; export { VISITOR_KEYS, BUILDER_KEYS, ALIAS_KEYS }; +export * as react from "./react"; /** * Registers `is[Type]` and `assert[Type]` for all types. diff --git a/packages/babel/src/transformation/helpers/react.js b/packages/babel-types/src/react.js similarity index 98% rename from packages/babel/src/transformation/helpers/react.js rename to packages/babel-types/src/react.js index b20f9408a5..9b0996f530 100644 --- a/packages/babel/src/transformation/helpers/react.js +++ b/packages/babel-types/src/react.js @@ -1,4 +1,4 @@ -import * as t from "../../types"; +import * as t from "./index"; export var isReactComponent = t.buildMatchMemberExpression("React.Component"); diff --git a/packages/babel/src/types/retrievers.js b/packages/babel-types/src/retrievers.js similarity index 96% rename from packages/babel/src/types/retrievers.js rename to packages/babel-types/src/retrievers.js index 8b5fcd9504..be6335fc0b 100644 --- a/packages/babel/src/types/retrievers.js +++ b/packages/babel-types/src/retrievers.js @@ -1,4 +1,3 @@ -import object from "../helpers/object"; import * as t from "./index"; /** @@ -7,7 +6,7 @@ import * as t from "./index"; export function getBindingIdentifiers(node: Object, duplicates?): Object { var search = [].concat(node); - var ids = object(); + var ids = Object.create(null); while (search.length) { var id = search.shift(); diff --git a/packages/babel/src/types/validators.js b/packages/babel-types/src/validators.js similarity index 100% rename from packages/babel/src/types/validators.js rename to packages/babel-types/src/validators.js diff --git a/packages/babel/test/fixtures/transformation/validation/for-in-assignment/actual.js b/packages/babel/test/fixtures/transformation/validation/for-in-assignment/actual.js deleted file mode 100644 index 167407a7da..0000000000 --- a/packages/babel/test/fixtures/transformation/validation/for-in-assignment/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -for (var i = 0 in obj) { - -} diff --git a/packages/babel/test/fixtures/transformation/validation/for-in-assignment/options.json b/packages/babel/test/fixtures/transformation/validation/for-in-assignment/options.json deleted file mode 100644 index c7ae9b8aa4..0000000000 --- a/packages/babel/test/fixtures/transformation/validation/for-in-assignment/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "No assignments allowed in for-in/of head" -} diff --git a/packages/babel/test/fixtures/transformation/validation/for-of-assignment/actual.js b/packages/babel/test/fixtures/transformation/validation/for-of-assignment/actual.js deleted file mode 100644 index 56e4dfef82..0000000000 --- a/packages/babel/test/fixtures/transformation/validation/for-of-assignment/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -for (var i = 0 of obj) { - -} diff --git a/packages/babel/test/fixtures/transformation/validation/for-of-assignment/options.json b/packages/babel/test/fixtures/transformation/validation/for-of-assignment/options.json deleted file mode 100644 index c7ae9b8aa4..0000000000 --- a/packages/babel/test/fixtures/transformation/validation/for-of-assignment/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "No assignments allowed in for-in/of head" -} diff --git a/scripts/test-browser.sh b/scripts/test-browser.sh index 40e5298879..6323ad089d 100755 --- a/scripts/test-browser.sh +++ b/scripts/test-browser.sh @@ -3,7 +3,7 @@ set -e mkdir -p dist -node packages/babel/scripts/cache-templates +node packages/babel-core/scripts/cache-templates for f in packages/*; do node node_modules/mocha-fixtures/bin/mocha-fixture-dump.js $f diff --git a/test/browser.js b/test/browser.js index 316525240e..6ba55da82d 100644 --- a/test/browser.js +++ b/test/browser.js @@ -1,4 +1,4 @@ if (process.browser) { - require("../packages/babel/test/_browser"); + require("../packages/babel-core/test/_browser"); require("../packages/babylon/test/index.js"); } From 67c96b6ed595c1286b0d4f7028a2e75f87063b56 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 12 Aug 2015 02:57:12 +0100 Subject: [PATCH 010/174] move babel polyfill into a separate package --- packages/babel-core/polyfill.js | 3 ++- packages/babel-core/scripts/build-dist.sh | 2 +- packages/babel-core/src/api/node.js | 3 ++- packages/babel-core/src/api/register/browser.js | 2 +- .../babel-core/src/api/register/node-polyfill.js | 2 +- packages/babel-core/test/_transformation-helper.js | 2 +- packages/babel-polyfill/.npmignore | 1 + packages/babel-polyfill/package.json | 14 ++++++++++++++ .../polyfill.js => babel-polyfill/src/index.js} | 0 9 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 packages/babel-polyfill/.npmignore create mode 100644 packages/babel-polyfill/package.json rename packages/{babel-core/src/polyfill.js => babel-polyfill/src/index.js} (100%) diff --git a/packages/babel-core/polyfill.js b/packages/babel-core/polyfill.js index b18f073c45..68b352b5d0 100644 --- a/packages/babel-core/polyfill.js +++ b/packages/babel-core/polyfill.js @@ -1 +1,2 @@ -module.exports = require("./lib/polyfill"); +console.trace('The use of `require("babel/polyfill") is deprecated. Please us require("babel-polyfill")'); +module.exports = require("babel-polyfill"); diff --git a/packages/babel-core/scripts/build-dist.sh b/packages/babel-core/scripts/build-dist.sh index 3993f3235f..c22ba61004 100755 --- a/packages/babel-core/scripts/build-dist.sh +++ b/packages/babel-core/scripts/build-dist.sh @@ -9,7 +9,7 @@ mkdir -p dist node scripts/cache-templates -node $BROWSERIFY_CMD -e lib/polyfill.js >dist/polyfill.js +node $BROWSERIFY_CMD -e ../babel-polyfill/lib/polyfill.js >dist/polyfill.js node $UGLIFY_CMD dist/polyfill.js >dist/polyfill.min.js # Add a Unicode BOM so browsers will interpret the file as UTF-8 diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 61ae53af31..1fedfd9b11 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -35,7 +35,8 @@ export function register(opts?: Object) { */ export function polyfill() { - require("../polyfill"); + console.trace('The use of `require("babel").polyfill() is deprecated. Please us require("babel-polyfill")'); + require("babel-polyfill"); } /** diff --git a/packages/babel-core/src/api/register/browser.js b/packages/babel-core/src/api/register/browser.js index 8ee46c7684..fcaba25cf4 100644 --- a/packages/babel-core/src/api/register/browser.js +++ b/packages/babel-core/src/api/register/browser.js @@ -2,4 +2,4 @@ export default function () {} -import "../../polyfill"; +import "babel-polyfill"; diff --git a/packages/babel-core/src/api/register/node-polyfill.js b/packages/babel-core/src/api/register/node-polyfill.js index bbdc316ac8..7de324de17 100644 --- a/packages/babel-core/src/api/register/node-polyfill.js +++ b/packages/babel-core/src/api/register/node-polyfill.js @@ -1,2 +1,2 @@ -import "../../polyfill"; +import "babel-polyfill"; export { default } from "./node"; diff --git a/packages/babel-core/test/_transformation-helper.js b/packages/babel-core/test/_transformation-helper.js index ad40317383..69a44a1384 100644 --- a/packages/babel-core/test/_transformation-helper.js +++ b/packages/babel-core/test/_transformation-helper.js @@ -14,7 +14,7 @@ exports.fixtures = getFixtures(__dirname + "/fixtures", function () { return require("../test-fixtures.json"); }); -require("../lib/polyfill"); +require("babel-polyfill"); eval(buildExernalHelpers()); diff --git a/packages/babel-polyfill/.npmignore b/packages/babel-polyfill/.npmignore new file mode 100644 index 0000000000..a57582cc39 --- /dev/null +++ b/packages/babel-polyfill/.npmignore @@ -0,0 +1 @@ +/src diff --git a/packages/babel-polyfill/package.json b/packages/babel-polyfill/package.json new file mode 100644 index 0000000000..2dca2a1d4f --- /dev/null +++ b/packages/babel-polyfill/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-polyfill", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "core-js": "^1.0.1", + "regenerator": "^0.8.36" + } +} diff --git a/packages/babel-core/src/polyfill.js b/packages/babel-polyfill/src/index.js similarity index 100% rename from packages/babel-core/src/polyfill.js rename to packages/babel-polyfill/src/index.js From 8c44aa4874bd1a8167cc3fcb74220136c221c569 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 12 Aug 2015 02:57:18 +0100 Subject: [PATCH 011/174] add more jsx tests --- .../jsx/basic/{9 => empty-expression-container}/actual.js | 0 .../jsx/basic/{9 => empty-expression-container}/expected.json | 0 packages/babylon/test/fixtures/jsx/basic/keyword-tag/actual.js | 1 + .../babylon/test/fixtures/jsx/basic/namespace-tag/actual.js | 2 ++ .../test/fixtures/jsx/errors/wrong-closing-tag/actual.js | 1 + .../test/fixtures/jsx/errors/wrong-closing-tag/options.json | 3 +++ 6 files changed, 7 insertions(+) rename packages/babylon/test/fixtures/jsx/basic/{9 => empty-expression-container}/actual.js (100%) rename packages/babylon/test/fixtures/jsx/basic/{9 => empty-expression-container}/expected.json (100%) create mode 100644 packages/babylon/test/fixtures/jsx/basic/keyword-tag/actual.js create mode 100644 packages/babylon/test/fixtures/jsx/basic/namespace-tag/actual.js create mode 100644 packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/actual.js create mode 100644 packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/options.json diff --git a/packages/babylon/test/fixtures/jsx/basic/9/actual.js b/packages/babylon/test/fixtures/jsx/basic/empty-expression-container/actual.js similarity index 100% rename from packages/babylon/test/fixtures/jsx/basic/9/actual.js rename to packages/babylon/test/fixtures/jsx/basic/empty-expression-container/actual.js diff --git a/packages/babylon/test/fixtures/jsx/basic/9/expected.json b/packages/babylon/test/fixtures/jsx/basic/empty-expression-container/expected.json similarity index 100% rename from packages/babylon/test/fixtures/jsx/basic/9/expected.json rename to packages/babylon/test/fixtures/jsx/basic/empty-expression-container/expected.json diff --git a/packages/babylon/test/fixtures/jsx/basic/keyword-tag/actual.js b/packages/babylon/test/fixtures/jsx/basic/keyword-tag/actual.js new file mode 100644 index 0000000000..607877f8af --- /dev/null +++ b/packages/babylon/test/fixtures/jsx/basic/keyword-tag/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babylon/test/fixtures/jsx/basic/namespace-tag/actual.js b/packages/babylon/test/fixtures/jsx/basic/namespace-tag/actual.js new file mode 100644 index 0000000000..743369ba07 --- /dev/null +++ b/packages/babylon/test/fixtures/jsx/basic/namespace-tag/actual.js @@ -0,0 +1,2 @@ +; + diff --git a/packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/actual.js b/packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/actual.js new file mode 100644 index 0000000000..e3cec40540 --- /dev/null +++ b/packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/actual.js @@ -0,0 +1 @@ + diff --git a/packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/options.json b/packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/options.json new file mode 100644 index 0000000000..f3afda9ee9 --- /dev/null +++ b/packages/babylon/test/fixtures/jsx/errors/wrong-closing-tag/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Expected corresponding JSX closing tag for (1:5)" +} From f923b2f5a497c29d60cd836911e5db91c5112db6 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 12 Aug 2015 02:57:30 +0100 Subject: [PATCH 012/174] remove object helper --- packages/babel-core/src/helpers/object.js | 7 ------- .../babel-core/src/transformation/modules/_default.js | 11 +++++------ packages/babel-core/src/transformation/pipeline.js | 9 ++++----- .../transformation/transformers/es6/block-scoping.js | 7 +++---- 4 files changed, 12 insertions(+), 22 deletions(-) delete mode 100644 packages/babel-core/src/helpers/object.js diff --git a/packages/babel-core/src/helpers/object.js b/packages/babel-core/src/helpers/object.js deleted file mode 100644 index c488a53173..0000000000 --- a/packages/babel-core/src/helpers/object.js +++ /dev/null @@ -1,7 +0,0 @@ -/** - * Create an object with a `null` prototype. - */ - -export default function () { - return Object.create(null); -} diff --git a/packages/babel-core/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js index 84d1f1182b..6b0d98b15f 100644 --- a/packages/babel-core/src/transformation/modules/_default.js +++ b/packages/babel-core/src/transformation/modules/_default.js @@ -1,7 +1,6 @@ import * as metadataVisitor from "./lib/metadata"; import * as messages from "babel-messages"; import Remaps from "./lib/remaps"; -import object from "../../helpers/object"; import * as util from "../../util"; import * as t from "babel-types"; @@ -12,11 +11,11 @@ import * as t from "babel-types"; export default class DefaultFormatter { constructor(file) { // object containg all module sources with the scope that they're contained in - this.sourceScopes = object(); + this.sourceScopes = Object.create(null); // ids for use in module ids - this.defaultIds = object(); - this.ids = object(); + this.defaultIds = Object.create(null); + this.ids = Object.create(null); // contains reference aliases for live bindings this.remaps = new Remaps(file, this); @@ -29,8 +28,8 @@ export default class DefaultFormatter { this.hasLocalExports = false; this.hasLocalImports = false; - this.localExports = object(); - this.localImports = object(); + this.localExports = Object.create(null); + this.localImports = Object.create(null); this.metadata = file.metadata.modules; this.getMetadata(); diff --git a/packages/babel-core/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js index ea9d337766..b541aa6c23 100644 --- a/packages/babel-core/src/transformation/pipeline.js +++ b/packages/babel-core/src/transformation/pipeline.js @@ -2,7 +2,6 @@ import PluginManager from "./file/plugin-manager"; import normalizeAst from "../helpers/normalize-ast"; import Plugin from "./plugin"; import assign from "lodash/object/assign"; -import object from "../helpers/object"; import File from "./file"; /** @@ -10,10 +9,10 @@ import File from "./file"; */ export default class Pipeline { - transformers = object(); - namespaces = object(); - deprecated = object(); - aliases = object(); + transformers = Object.create(null); + namespaces = Object.create(null); + deprecated = Object.create(null); + aliases = Object.create(null); filters = []; /** diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping.js index 437a5679c9..443d2ed003 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping.js @@ -2,7 +2,6 @@ import type NodePath from "../../../traversal/path"; import type Scope from "../../../traversal/scope"; import type File from "../../file"; import traverse from "babel-traverse"; -import object from "../../../helpers/object"; import * as util from "../../../util"; import * as t from "babel-types"; import values from "lodash/object/values"; @@ -381,9 +380,9 @@ class BlockScoping { this.blockPath = blockPath; this.block = blockPath.node; - this.outsideLetReferences = object(); + this.outsideLetReferences = Object.create(null); this.hasLetReferences = false; - this.letReferences = this.block._letReferences = object(); + this.letReferences = this.block._letReferences = Object.create(null); this.body = []; if (loopPath) { @@ -435,7 +434,7 @@ class BlockScoping { // we have to check if any of our let variables collide with // those in upper scopes and then if they do, generate a uid // for them and replace all references with it - var remaps = object(); + var remaps = Object.create(null); for (var key in letRefs) { // just an Identifier node we collected in `getLetReferences` From 39fbd550c4c8a4e5f3fe811312deb27d7c74d129 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 12 Aug 2015 02:57:36 +0100 Subject: [PATCH 013/174] also transforming of File asts --- packages/babel-core/src/helpers/normalize-ast.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/babel-core/src/helpers/normalize-ast.js b/packages/babel-core/src/helpers/normalize-ast.js index 50dd1aa321..dd295e6021 100644 --- a/packages/babel-core/src/helpers/normalize-ast.js +++ b/packages/babel-core/src/helpers/normalize-ast.js @@ -7,9 +7,13 @@ import * as t from "babel-types"; */ export default function (ast, comments, tokens) { - if (ast && ast.type === "Program") { - return t.file(ast, comments || [], tokens || []); - } else { - throw new Error("Not a valid ast?"); + if (ast) { + if (ast.type === "Program") { + return t.file(ast, comments || [], tokens || []); + } else if (ast.type === "File") { + return ast; + } } + + throw new Error("Not a valid ast?"); } From ebc80fe804ca1f0ac8031e0c57bab14e781a4881 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 12 Aug 2015 02:57:46 +0100 Subject: [PATCH 014/174] add missing npmignore files to packages --- packages/babel-code-frame/.npmignore | 1 + packages/babel-generator/.npmignore | 1 + packages/babel-messages/.npmignore | 1 + packages/babel-traverse/.npmignore | 1 + packages/babel-types/.npmignore | 1 + 5 files changed, 5 insertions(+) create mode 100644 packages/babel-code-frame/.npmignore create mode 100644 packages/babel-generator/.npmignore create mode 100644 packages/babel-messages/.npmignore create mode 100644 packages/babel-traverse/.npmignore create mode 100644 packages/babel-types/.npmignore diff --git a/packages/babel-code-frame/.npmignore b/packages/babel-code-frame/.npmignore new file mode 100644 index 0000000000..a57582cc39 --- /dev/null +++ b/packages/babel-code-frame/.npmignore @@ -0,0 +1 @@ +/src diff --git a/packages/babel-generator/.npmignore b/packages/babel-generator/.npmignore new file mode 100644 index 0000000000..a57582cc39 --- /dev/null +++ b/packages/babel-generator/.npmignore @@ -0,0 +1 @@ +/src diff --git a/packages/babel-messages/.npmignore b/packages/babel-messages/.npmignore new file mode 100644 index 0000000000..a57582cc39 --- /dev/null +++ b/packages/babel-messages/.npmignore @@ -0,0 +1 @@ +/src diff --git a/packages/babel-traverse/.npmignore b/packages/babel-traverse/.npmignore new file mode 100644 index 0000000000..a57582cc39 --- /dev/null +++ b/packages/babel-traverse/.npmignore @@ -0,0 +1 @@ +/src diff --git a/packages/babel-types/.npmignore b/packages/babel-types/.npmignore new file mode 100644 index 0000000000..a57582cc39 --- /dev/null +++ b/packages/babel-types/.npmignore @@ -0,0 +1 @@ +/src From 2cca81d4a36ccd4511f5e563e01850e8007ef3c4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 12 Aug 2015 02:57:55 +0100 Subject: [PATCH 015/174] remove dead packages --- packages/babel-core/package.json | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 298985211e..2908f2c0d6 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -27,9 +27,9 @@ "test": "make test" }, "dependencies": { + "babel-polyfill": "^5.8.22", "babel-code-frame": "^5.8.22", "babel-types": "^5.8.22", - "babel-util": "^5.8.22", "babel-traverse": "^5.8.22", "babel-generator": "^5.8.22", "babel-messages": "^5.8.22", @@ -49,36 +49,22 @@ "babel-plugin-undeclared-variables-check": "^1.0.2", "babel-plugin-undefined-to-void": "^1.1.6", "babylon": "^5.8.22", - "bluebird": "^2.9.33", - "chalk": "^1.0.0", "convert-source-map": "^1.1.0", - "core-js": "^1.0.0", "debug": "^2.1.1", - "detect-indent": "^3.0.0", "esutils": "^2.0.0", - "fs-readdir-recursive": "^0.1.0", - "globals": "^6.4.0", "home-or-tmp": "^1.0.0", - "is-integer": "^1.0.4", - "js-tokens": "1.0.1", "json5": "^0.4.0", - "line-numbers": "0.2.0", "lodash": "^3.10.0", "minimatch": "^2.0.3", - "output-file-sync": "^1.1.0", "path-exists": "^1.0.0", "path-is-absolute": "^1.0.0", "private": "^0.1.6", "regenerator": "0.8.35", "regexpu": "^1.1.2", - "repeating": "^1.1.2", - "resolve": "^1.1.6", "shebang-regex": "^1.0.0", "slash": "^1.0.0", "source-map": "^0.4.0", "source-map-support": "^0.2.10", - "to-fast-properties": "^1.0.0", - "trim-right": "^1.0.0", "try-resolve": "^1.0.0" } } From def1f8823e4f969d01c16dda079010cc4cb79f37 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 13 Aug 2015 15:32:50 +0100 Subject: [PATCH 016/174] don't statically evaluate Math.random - fixes babel-plugins/babel-plugin-constant-folding#1 --- packages/babel-traverse/src/path/evaluation.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/babel-traverse/src/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js index 36c6f159f6..cd2024004b 100644 --- a/packages/babel-traverse/src/path/evaluation.js +++ b/packages/babel-traverse/src/path/evaluation.js @@ -1,6 +1,7 @@ /* eslint eqeqeq: 0 */ const VALID_CALLEES = ["String", "Number", "Math"]; +const INVALID_METHODS = ["random"]; /** * Walk the input `node` and statically evaluate if it's truthy. @@ -180,7 +181,7 @@ export function evaluate(): { confident: boolean; value: any } { var property = callee.get("property"); // Math.min(1, 2) - if (object.isIdentifier() && property.isIdentifier() && VALID_CALLEES.indexOf(object.node.name) >= 0) { + if (object.isIdentifier() && property.isIdentifier() && VALID_CALLEES.indexOf(object.node.name) >= 0 && INVALID_METHODS.indexOf(property.node.name) < 0) { context = global[object.node.name]; func = context[property.node.name]; } From e382d34ed283a38d53c089fa9e9ab94ec58e6726 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 15 Aug 2015 19:07:42 -0400 Subject: [PATCH 017/174] parser: don't mutate or clone state arrays when doing a lookahead - fixes #2211 --- packages/babylon/src/tokenizer/index.js | 18 +++++++++++++----- packages/babylon/src/tokenizer/state.js | 8 ++++++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index c2248cb4fb..c8b06ef0d6 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -56,7 +56,9 @@ export default class Tokenizer { // Move to the next token next() { - this.state.tokens.push(new Token(this.state)); + if (!this.isLookahead) { + this.state.tokens.push(new Token(this.state)); + } this.state.lastTokEnd = this.state.end; this.state.lastTokStart = this.state.start; @@ -102,9 +104,13 @@ export default class Tokenizer { lookahead() { var old = this.state; - this.state = old.clone(); + this.state = old.clone(true); + + this.isLookahead = true; this.next(); - var curr = this.state.clone(); + this.isLookahead = false; + + var curr = this.state.clone(true); this.state = old; return curr; } @@ -172,8 +178,10 @@ export default class Tokenizer { range: [start, end] }; - this.state.tokens.push(comment); - this.state.comments.push(comment); + if (!this.isLookahead) { + this.state.tokens.push(comment); + this.state.comments.push(comment); + } this.addComment(comment); } diff --git a/packages/babylon/src/tokenizer/state.js b/packages/babylon/src/tokenizer/state.js index d5099ccaeb..4765017de3 100644 --- a/packages/babylon/src/tokenizer/state.js +++ b/packages/babylon/src/tokenizer/state.js @@ -70,11 +70,15 @@ export default class State { return new Position(this.curLine, this.pos - this.lineStart); } - clone() { + clone(skipArrays?) { var state = new State; for (var key in this) { var val = this[key]; - if (Array.isArray(val)) val = val.slice(); + + if (!skipArrays && Array.isArray(val)) { + val = val.slice(); + } + state[key] = val; } return state; From 6f4f3b784a445b99a609f90c953a022dc6e621a3 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 17 Aug 2015 14:34:39 -0700 Subject: [PATCH 018/174] update babel --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a229b833f1..214c276d15 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "devDependencies": { - "babel": "5.8.19", + "babel": "5.8.21", "babel-eslint": "^4.0.6", "browserify": "^11.0.0", "chai": "^2.2.0", From daf171770a4e3dee5e661ea47bb0382a750b7a22 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 17 Aug 2015 15:09:30 -0700 Subject: [PATCH 019/174] add support for evaluating template literals --- .../babel-traverse/src/path/evaluation.js | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/packages/babel-traverse/src/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js index cd2024004b..d22ec68540 100644 --- a/packages/babel-traverse/src/path/evaluation.js +++ b/packages/babel-traverse/src/path/evaluation.js @@ -69,6 +69,27 @@ export function evaluate(): { confident: boolean; value: any } { } } + if (path.isTemplateLiteral()) { + var str = ""; + + var i = 0; + var exprs = path.get("expressions"); + + for (let elem of (node.quasis: Array)) { + // not confident, evaluated an expression we don't like + if (!confident) break; + + // add on cooked element + str += elem.value.cooked; + + // add on interpolated expression if it's present + var expr = exprs[i++]; + if (expr) str += String(evaluate(expr)); + } + + if (confident) return str; + } + if (path.isConditionalExpression()) { if (evaluate(path.get("test"))) { return evaluate(path.get("consequent")); From 1de8a5710244f79242606c685a4e3c7eced83f2b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:31:30 -0400 Subject: [PATCH 020/174] never attempt to represent regexes natively --- packages/babylon/src/tokenizer/index.js | 52 ++----------------------- 1 file changed, 4 insertions(+), 48 deletions(-) diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index c8b06ef0d6..f01912ba5b 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -17,29 +17,13 @@ export class Token { this.end = state.end; this.loc = new SourceLocation(state.startLoc, state.endLoc); } -} -// ## Tokenizer - -// Are we running under Rhino? -/* global Packages */ -const isRhino = typeof Packages === "object" && Object.prototype.toString.call(Packages) === "[object JavaPackage]"; - -// Parse a regular expression. Some context-awareness is necessary, -// since a '/' inside a '[]' set does not end the expression. - -function tryCreateRegexp(src, flags, throwErrorStart) { - try { - return new RegExp(src, flags); - } catch (e) { - if (throwErrorStart !== undefined) { - if (e instanceof SyntaxError) this.raise(throwErrorStart, "Error parsing regular expression: " + e.message); - this.raise(e); - } + get range() { + return [this.start, this.end]; } } -var regexpUnicodeSupport = !!tryCreateRegexp("\uffff", "u"); +// ## Tokenizer function codePointToString(code) { // UTF-16 Decoding @@ -516,41 +500,13 @@ export default class Tokenizer { // Need to use `readWord1` because '\uXXXX' sequences are allowed // here (don't ask). let mods = this.readWord1(); - let tmp = content; if (mods) { let validFlags = /^[gmsiyu]*$/; if (!validFlags.test(mods)) this.raise(start, "Invalid regular expression flag"); - if (mods.indexOf("u") >= 0 && !regexpUnicodeSupport) { - // Replace each astral symbol and every Unicode escape sequence that - // possibly represents an astral symbol or a paired surrogate with a - // single ASCII symbol to avoid throwing on regular expressions that - // are only valid in combination with the `/u` flag. - // Note: replacing with the ASCII symbol `x` might cause false - // negatives in unlikely scenarios. For example, `[\u{61}-b]` is a - // perfectly valid pattern that is equivalent to `[a-b]`, but it would - // be replaced by `[x-b]` which throws an error. - tmp = tmp.replace(/\\u\{([0-9a-fA-F]+)\}/g, (match, code, offset) => { - code = Number("0x" + code); - if (code > 0x10FFFF) this.raise(start + offset + 3, "Code point out of bounds"); - return "x"; - }); - tmp = tmp.replace(/\\u([a-fA-F0-9]{4})|[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"); - } - } - // Detect invalid regular expressions. - let value = null; - // Rhino's regular expression parser is flaky and throws uncatchable exceptions, - // so don't do detection if we are running under Rhino - if (!isRhino) { - tryCreateRegexp.call(this, tmp, undefined, start); - // Get a regular expression object for this pattern-flag pair, or `null` in - // case the current environment doesn't support the flags it uses. - value = tryCreateRegexp.call(this, content, mods); } return this.finishToken(tt.regexp, { pattern: content, - flags: mods, - value + flags: mods }); } From 559272bb027f5158815f43f2f84ab1e8ea740f5c Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:31:41 -0400 Subject: [PATCH 021/174] fix weird legacy acorn formatting --- packages/babylon/src/tokenizer/index.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index f01912ba5b..b1b4f16f0d 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -27,8 +27,11 @@ export class Token { function codePointToString(code) { // UTF-16 Decoding - if (code <= 0xFFFF) return String.fromCharCode(code); - return String.fromCharCode(((code - 0x10000) >> 10) + 0xD800, ((code - 0x10000) & 1023) + 0xDC00); + if (code <= 0xFFFF) { + return String.fromCharCode(code); + } else { + return String.fromCharCode(((code - 0x10000) >> 10) + 0xD800, ((code - 0x10000) & 1023) + 0xDC00); + } } export default class Tokenizer { @@ -138,10 +141,11 @@ export default class Tokenizer { readToken(code) { // Identifier or keyword. '\uXXXX' sequences are allowed in // identifiers, so '\' also dispatches to that. - if (isIdentifierStart(code, true) || code === 92 /* '\' */) + if (isIdentifierStart(code, true) || code === 92 /* '\' */) { return this.readWord(); - - return this.getTokenFromCode(code); + } else { + return this.getTokenFromCode(code); + } } fullCharCodeAtPos() { @@ -166,6 +170,7 @@ export default class Tokenizer { this.state.tokens.push(comment); this.state.comments.push(comment); } + this.addComment(comment); } From 112e0890fbacb71901a8efe05221054a14252554 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:31:53 -0400 Subject: [PATCH 022/174] remove babel 5 backwards compat cli shim --- packages/babel-core/src/babel/transformation/modules.js | 1 - 1 file changed, 1 deletion(-) delete mode 100644 packages/babel-core/src/babel/transformation/modules.js diff --git a/packages/babel-core/src/babel/transformation/modules.js b/packages/babel-core/src/babel/transformation/modules.js deleted file mode 100644 index 27d856ede2..0000000000 --- a/packages/babel-core/src/babel/transformation/modules.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../transformation/modules"); From f66090d383dca8297bd6cb4f30c709327423c38e Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:32:20 -0400 Subject: [PATCH 023/174] add plugin modes --- packages/babel-core/src/api/node.js | 2 +- .../src/transformation/file/index.js | 6 ++++-- .../transformation/file/options/config.json | 5 +++++ .../babel-core/src/transformation/index.js | 1 + .../babel-core/src/transformation/pipeline.js | 5 +++-- .../src/transformation/plugin-pass.js | 18 +++++++++++++++--- .../babel-core/src/transformation/plugin.js | 3 ++- 7 files changed, 31 insertions(+), 9 deletions(-) diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 1fedfd9b11..1f3e4b7c61 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -5,7 +5,7 @@ import * as util from "../util"; import fs from "fs"; export { util, babylon as acorn, transform }; -export { pipeline } from "../transformation"; +export { pipeline, lint } from "../transformation"; export { canCompile } from "../util"; export { default as File } from "../transformation/file"; diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index 6c617656ec..819d61c262 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -44,6 +44,8 @@ export default class File { ast = {}; metadata = { + marked: [], + modules: { imports: [], exports: { @@ -518,7 +520,7 @@ export default class File { var features = parseOpts.features = {}; for (var key in this.transformers) { var transformer = this.transformers[key]; - features[key] = transformer.canTransform(); + features[key] = transformer.canRun(); } parseOpts.looseModules = this.isLoose("es6.modules"); @@ -660,7 +662,7 @@ export default class File { call(key: string) { for (var pass of (this.uncollapsedTransformerStack: Array)) { var fn = pass.plugin[key]; - if (fn) fn(this); + if (fn) fn.call(pass, this); } } diff --git a/packages/babel-core/src/transformation/file/options/config.json b/packages/babel-core/src/transformation/file/options/config.json index 205b06eefb..5a363712ec 100644 --- a/packages/babel-core/src/transformation/file/options/config.json +++ b/packages/babel-core/src/transformation/file/options/config.json @@ -25,6 +25,11 @@ "default": {} }, + "mode": { + "description": "", + "hidden": true + }, + "moduleId": { "description": "specify a custom name for module ids", "type": "string" diff --git a/packages/babel-core/src/transformation/index.js b/packages/babel-core/src/transformation/index.js index cd62db85a1..ace35aa71c 100644 --- a/packages/babel-core/src/transformation/index.js +++ b/packages/babel-core/src/transformation/index.js @@ -54,5 +54,6 @@ pipeline.addFilter(filters.optional); var transform = pipeline.transform.bind(pipeline); transform.fromAst = pipeline.transformFromAst.bind(pipeline); +transform.lint = pipeline.lint.bind(pipeline); transform.pipeline = pipeline; export default transform; diff --git a/packages/babel-core/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js index b541aa6c23..0e72a5325c 100644 --- a/packages/babel-core/src/transformation/pipeline.js +++ b/packages/babel-core/src/transformation/pipeline.js @@ -84,7 +84,7 @@ export default class Pipeline { * [Please add a description.] */ - canTransform(plugin, fileOpts) { + canRun(plugin, fileOpts) { if (plugin.metadata.plugin) { return true; } @@ -101,8 +101,9 @@ export default class Pipeline { * [Please add a description.] */ - analyze(code: string, opts?: Object = {}) { + lint(code: string, opts?: Object = {}) { opts.code = false; + opts.mode = "lint"; return this.transform(code, opts); } diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index 1cc7bf2c2f..02488d9755 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -21,12 +21,24 @@ export default class PluginPass { } /** - * [Please add a description.] - */ + * [Please add a description.] + */ canTransform(): boolean { + if (this.plugin.metadata.mode !== this.file.opts.mode) { + return false; + } else { + return this.canRun(); + } + } + + /** + * [Please add a description.] + */ + + canRun() { return this.file.transformerDependencies[this.key] || - this.file.pipeline.canTransform(this.plugin, this.file.opts); + this.file.pipeline.canRun(this.plugin, this.file.opts); } /** diff --git a/packages/babel-core/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js index 1a8ff2ffc6..e0724d5df6 100644 --- a/packages/babel-core/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -18,7 +18,8 @@ const VALID_METADATA_PROPERTES = [ "stage", "group", "experimental", - "secondPass" + "secondPass", + "mode" ]; /** From 171ba75140c645abf7d2ed5019066959ab762e3a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:32:48 -0400 Subject: [PATCH 024/174] split up block scoping transformer and embed TDZ into the main one rather than having a separate transformer --- .../transformers/deprecated.json | 3 +- .../index.js} | 36 +++--- .../transformers/es6/block-scoping/tdz.js | 104 +++++++++++++++++ .../transformers/es6/spec.block-scoping.js | 107 ------------------ 4 files changed, 128 insertions(+), 122 deletions(-) rename packages/babel-core/src/transformation/transformers/es6/{block-scoping.js => block-scoping/index.js} (95%) create mode 100644 packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js diff --git a/packages/babel-core/src/transformation/transformers/deprecated.json b/packages/babel-core/src/transformation/transformers/deprecated.json index ceb2a42800..e6220dc9f6 100644 --- a/packages/babel-core/src/transformation/transformers/deprecated.json +++ b/packages/babel-core/src/transformation/transformers/deprecated.json @@ -3,7 +3,8 @@ "unicode-regex": "regex.unicode", "spec.typeofSymbol": "es6.spec.symbols", "es6.symbols": "es6.spec.symbols", - "es6.blockScopingTDZ": "es6.spec.blockScoping", + "es6.blockScopingTDZ": "es6.blockScoping", + "es6.spec.blockScoping": "es6.blockScoping", "utility.inlineExpressions": "minification.constantFolding", "utility.deadCodeElimination": "minification.deadCodeElimination", diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js similarity index 95% rename from packages/babel-core/src/transformation/transformers/es6/block-scoping.js rename to packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js index 443d2ed003..50a920c305 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js @@ -1,8 +1,9 @@ -import type NodePath from "../../../traversal/path"; -import type Scope from "../../../traversal/scope"; -import type File from "../../file"; +import type NodePath from "babel-traverse"; +import type Scope from "babel-traverse"; +import type File from "../../../file"; import traverse from "babel-traverse"; -import * as util from "../../../util"; +import { visitor as tdzVisitor } from "./tdz"; +import * as util from "../../../../util"; import * as t from "babel-types"; import values from "lodash/object/values"; import extend from "lodash/object/extend"; @@ -72,7 +73,7 @@ export var visitor = { VariableDeclaration(node, parent, scope, file) { if (!isLet(node, parent)) return; - if (isLetInitable(node) && file.transformers["es6.spec.blockScoping"].canTransform()) { + if (isLetInitable(node) && node._tdzThis) { var nodes = [node]; for (var i = 0; i < node.declarations.length; i++) { @@ -87,6 +88,12 @@ export var visitor = { node._blockHoist = 2; + if (this.isCompletionRecord()) { + // ensure we don't break completion record semantics by returning + // the initialiser of the last declarator + nodes.push(t.expressionStatement(t.identifier("undefined"))); + } + return nodes; } }, @@ -178,7 +185,7 @@ function traverseReplace(node, parent, scope, remaps) { * [Please add a description.] */ -var letReferenceBlockVisitor = { +var letReferenceBlockVisitor = traverse.visitors.merge([{ /** * [Please add a description.] @@ -188,13 +195,13 @@ var letReferenceBlockVisitor = { this.traverse(letReferenceFunctionVisitor, state); return this.skip(); } -}; +}, tdzVisitor]); /** * [Please add a description.] */ -var letReferenceFunctionVisitor = { +var letReferenceFunctionVisitor = traverse.visitors.merge([{ /** * [Please add a description.] @@ -213,7 +220,7 @@ var letReferenceFunctionVisitor = { state.closurify = true; } -}; +}, tdzVisitor]); /** * [Please add a description.] @@ -273,13 +280,13 @@ var continuationVisitor = { * [Please add a description.] */ -var loopNodeTo = function (node) { +function loopNodeTo(node) { if (t.isBreakStatement(node)) { return "break"; } else if (t.isContinueStatement(node)) { return "continue"; } -}; +} /** * [Please add a description.] @@ -323,7 +330,7 @@ var loopVisitor = { * [Please add a description.] */ - enter(node, parent, scope, state) { + "BreakStatement|ContinueStatement|ReturnStatement"(node, parent, scope, state) { var replace; var loopText = loopNodeTo(node); @@ -382,7 +389,7 @@ class BlockScoping { this.outsideLetReferences = Object.create(null); this.hasLetReferences = false; - this.letReferences = this.block._letReferences = Object.create(null); + this.letReferences = Object.create(null); this.body = []; if (loopPath) { @@ -629,7 +636,8 @@ class BlockScoping { var state = { letReferences: this.letReferences, - closurify: false + closurify: false, + file: this.file }; // traverse through this block, stopping on functions and checking if they diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js new file mode 100644 index 0000000000..79ded06221 --- /dev/null +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js @@ -0,0 +1,104 @@ +import * as t from "babel-types"; + +/** + * [Please add a description.] + */ + +function getTDZStatus(refPath, bindingPath) { + var executionStatus = bindingPath._guessExecutionStatusRelativeTo(refPath); + + if (executionStatus === "before") { + return "inside"; + } else if (executionStatus === "after") { + return "outside" + } else { + return "maybe"; + } +} + +/** + * [Please add a description.] + */ + +function buildTDZAssert(node, file) { + return t.callExpression( + file.addHelper("temporal-assert-defined"), + [node, t.literal(node.name), file.addHelper("temporal-undefined")] + ); +} + +/** + * [Please add a description.] + */ + +function isReference(node, scope, state) { + var declared = state.letReferences[node.name]; + if (!declared) return false; + + // declared node is different in this scope + return scope.getBindingIdentifier(node.name) === declared; +} + +export var visitor = { + + /** + * [Please add a description.] + */ + + ReferencedIdentifier(node, parent, scope, state) { + if (t.isFor(parent, { left: node })) return; + if (!isReference(node, scope, state)) return; + + var bindingPath = scope.getBinding(node.name).path; + + var status = getTDZStatus(this, bindingPath); + if (status === "inside") return; + + if (status === "maybe") { + var assert = buildTDZAssert(node, state.file); + + // add tdzThis to parent variable declarator so it's exploded + bindingPath.parent._tdzThis = true; + + this.skip(); + + if (t.isUpdateExpression(parent)) { + if (parent._ignoreBlockScopingTDZ) return; + this.parentPath.replaceWith(t.sequenceExpression([assert, parent])); + } else { + return t.logicalExpression("&&", assert, node); + } + } else if (status === "outside") { + return t.throwStatement(t.newExpression(t.identifier("ReferenceError"), [ + t.literal(`${node.name} is not defined - temporal dead zone`) + ])); + } + }, + + /** + * [Please add a description.] + */ + + AssignmentExpression: { + exit(node, parent, scope, state) { + if (node._ignoreBlockScopingTDZ) return; + + var nodes = []; + var ids = this.getBindingIdentifiers(); + + for (var name in ids) { + var id = ids[name]; + + if (isReference(id, scope, state)) { + nodes.push(buildTDZAssert(id, state.file)); + } + } + + if (nodes.length) { + node._ignoreBlockScopingTDZ = true; + nodes.push(node); + return nodes.map(t.expressionStatement); + } + } + } +}; diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js b/packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js deleted file mode 100644 index 02fb3cbfa4..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/spec.block-scoping.js +++ /dev/null @@ -1,107 +0,0 @@ -import * as t from "babel-types"; - -/** - * [Please add a description.] - */ - -function buildAssert(node, file) { - return t.callExpression( - file.addHelper("temporal-assert-defined"), - [node, t.literal(node.name), file.addHelper("temporal-undefined")] - ); -} - -/** - * [Please add a description.] - */ - -function references(node, scope, state) { - var declared = state.letRefs[node.name]; - if (!declared) return false; - - // declared node is different in this scope - return scope.getBindingIdentifier(node.name) === declared; -} - -/** - * [Please add a description.] - */ - -var refVisitor = { - - /** - * [Please add a description.] - */ - - ReferencedIdentifier(node, parent, scope, state) { - if (t.isFor(parent) && parent.left === node) return; - - if (!references(node, scope, state)) return; - - var assert = buildAssert(node, state.file); - - this.skip(); - - if (t.isUpdateExpression(parent)) { - if (parent._ignoreBlockScopingTDZ) return; - this.parentPath.replaceWith(t.sequenceExpression([assert, parent])); - } else { - return t.logicalExpression("&&", assert, node); - } - }, - - /** - * [Please add a description.] - */ - - AssignmentExpression: { - exit(node, parent, scope, state) { - if (node._ignoreBlockScopingTDZ) return; - - var nodes = []; - var ids = this.getBindingIdentifiers(); - - for (var name in ids) { - var id = ids[name]; - - if (references(id, scope, state)) { - nodes.push(buildAssert(id, state.file)); - } - } - - if (nodes.length) { - node._ignoreBlockScopingTDZ = true; - nodes.push(node); - return nodes.map(t.expressionStatement); - } - } - } -}; - -export var metadata = { - optional: true, - group: "builtin-advanced" -}; - -/** - * [Please add a description.] - */ - -export var visitor = { - - /** - * [Please add a description.] - */ - - "Program|Loop|BlockStatement": { - exit(node, parent, scope, file) { - var letRefs = node._letReferences; - if (!letRefs) return; - - this.traverse(refVisitor, { - letRefs: letRefs, - file: file - }); - } - } -}; From 217a05ef9dac84e64736e1643deb1e1ca16d1492 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:33:27 -0400 Subject: [PATCH 025/174] add the ability to mark node paths --- packages/babel-traverse/src/path/index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/packages/babel-traverse/src/path/index.js b/packages/babel-traverse/src/path/index.js index 703f351298..07b286d366 100644 --- a/packages/babel-traverse/src/path/index.js +++ b/packages/babel-traverse/src/path/index.js @@ -118,6 +118,18 @@ export default class NodePath { traverse(visitor, state) { traverse(this.node, visitor, this.scope, state, this); } + + /** + * [Please add a description.] + */ + + mark(type, message) { + this.hub.file.metadata.marked.push({ + type, + message, + loc: this.node.loc + }); + } } /** From 56c2903811e55a31de2588f3cb825a3a672a8588 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:33:36 -0400 Subject: [PATCH 026/174] fix duplicate declarations --- packages/babel-traverse/src/path/evaluation.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babel-traverse/src/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js index d22ec68540..23f9bb75b8 100644 --- a/packages/babel-traverse/src/path/evaluation.js +++ b/packages/babel-traverse/src/path/evaluation.js @@ -57,7 +57,7 @@ export function evaluate(): { confident: boolean; value: any } { var node = path.node; if (path.isSequenceExpression()) { - var exprs = path.get("expressions"); + let exprs = path.get("expressions"); return evaluate(exprs[exprs.length - 1]); } @@ -73,7 +73,7 @@ export function evaluate(): { confident: boolean; value: any } { var str = ""; var i = 0; - var exprs = path.get("expressions"); + let exprs = path.get("expressions"); for (let elem of (node.quasis: Array)) { // not confident, evaluated an expression we don't like From 8408244d93b59db365665b531d73e6606019bd53 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 24 Aug 2015 15:34:31 -0400 Subject: [PATCH 027/174] add WIP build plugins --- .babelrc | 1 + scripts/build-plugins/inline-node-builders.js | 52 +++++++++ .../build-plugins/inline-node-type-checks.js | 107 ++++++++++++++++++ 3 files changed, 160 insertions(+) create mode 100644 scripts/build-plugins/inline-node-builders.js create mode 100644 scripts/build-plugins/inline-node-type-checks.js diff --git a/.babelrc b/.babelrc index 41671a95c3..f1732adf13 100644 --- a/.babelrc +++ b/.babelrc @@ -3,6 +3,7 @@ "loose": ["all"], "blacklist": ["es6.tailCall"], "optional": ["optimisation.flow.forOf", "bluebirdCoroutines"], + //"plugins": ["./scripts/build-plugins/inline-node-type-checks", "./scripts/build-plugins/inline-node-builders"], "env": { "test": { "auxiliaryCommentBefore": "istanbul ignore next" diff --git a/scripts/build-plugins/inline-node-builders.js b/scripts/build-plugins/inline-node-builders.js new file mode 100644 index 0000000000..d3ab9d689e --- /dev/null +++ b/scripts/build-plugins/inline-node-builders.js @@ -0,0 +1,52 @@ +module.exports = function (babel) { + var t = babel.types; + + return new babel.Plugin("inline-node-builders", { + visitor: { + CallExpression: function (node, parent, scope) { + var callee = this.get("callee"); + if (!callee.isMemberExpression()) return; + + var obj = callee.get("object"); + if (!obj.referencesImport("babel-types", "*")) return; + + var prop = callee.get("property"); + if (!prop.isIdentifier()) return; + + var type = prop.node.name; + var builder = t.BUILDER_KEYS[type] || t.BUILDER_KEYS[type[0].toUpperCase() + type.slice(1)]; + if (!builder) return; + + var props = []; + + var i = 0; + + for (var key in builder) { + var def = builder[key]; + var arg = node.arguments[i]; + + if (arg) { + if (t.isLiteral(arg)) { + props.push(t.property("init", t.identifier(key), arg)); + } else { + var uid = scope.generateDeclaredUidIdentifier("temp"); + props.push(t.property("init", t.identifier(key), t.sequenceExpression([ + t.assignmentExpression("=", uid, arg), + t.conditionalExpression( + t.logicalExpression("===", uid, t.identifier("undefined")), + t.valueToNode(def), + uid + ) + ]))); + } + } else { + props.push(t.property("init", t.identifier(key), t.valueToNode(def))); + } + } + + + return t.objectExpression(props); + } + } + }); +}; diff --git a/scripts/build-plugins/inline-node-type-checks.js b/scripts/build-plugins/inline-node-type-checks.js new file mode 100644 index 0000000000..e89923eb73 --- /dev/null +++ b/scripts/build-plugins/inline-node-type-checks.js @@ -0,0 +1,107 @@ +module.exports = function (babel) { + var t = babel.types; + + function buildOr(target, aliases) { + var conditions = []; + + target = t.memberExpression(target, t.identifier("type")); + + for (var i = 0; i < aliases.length; i++) { + var alias = aliases[i]; + conditions.push(t.binaryExpression("===", target, t.literal(alias))); + } + + if (conditions.length === 1) { + return conditions[0]; + } + + var root = t.logicalExpression("||", conditions.shift(), conditions.shift()); + + for (var i = 0; i < conditions.length; i++) { + root = t.logicalExpression("||", root, conditions[i]); + } + + return root; + } + + function maybeBuildArgsComparison(or, target, obj) { + if (!obj) return or; + + var conditions = []; + + for (var i = 0; i < obj.properties.length; i++) { + var prop = obj.properties[i]; + conditions.push(t.binaryExpression("===", + t.memberExpression(target, prop.key, t.isLiteral(prop.key)), + prop.value + )); + } + + var root; + + if (!conditions.length) { + return or; + } else if (conditions.length === 1) { + root = conditions[0]; + } else { + root = t.logicalExpression("&&", conditions.shift(), conditions.shift()); + for (var i = 0; i < conditions.length; i++) { + root = t.logicalExpression("&&", root, conditions[i]); + } + } + + return t.logicalExpression("&&", or, root); + } + + function shouldDeopt(args) { + if (args.length > 1) { + return true; + } + + if (args.length) { + var obj = args[0]; + if (!t.isObjectExpression(obj)) return true; + + for (var i = 0; i < obj.properties.length; i++) { + var prop = obj.properties[i]; + if (prop.computed) return true; + } + } + + return false; + } + + function buildCheck(target, args, aliases) { + if (shouldDeopt(args)) return; + + return t.logicalExpression( + "&&", + target, + maybeBuildArgsComparison(buildOr(target, aliases), target, args[0]) + ); + } + + return new babel.Plugin("inline-node-type-checks", { + visitor: { + CallExpression: function (node) { + var callee = this.get("callee"); + if (!callee.isMemberExpression()) return; + + var prop = callee.get("property"); + if (!prop.isIdentifier() || callee.is("computed")) return; + if (prop.node.name.indexOf("is") !== 0) return; + + var type = prop.node.name.slice(2); + var aliases = t.FLIPPED_ALIAS_KEYS[type] || [type]; + + var obj = callee.get("object"); + + if (obj.referencesImport("babel-types", "*")) { + return buildCheck(node.arguments.shift(), node.arguments, aliases, this.scope); + } else { + return buildCheck(t.memberExpression(obj.node, t.identifier("node")), node.arguments, aliases, this.scope); + } + } + } + }); +}; From 310de83b638347e665d5dadd03bf247577352de0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 25 Aug 2015 17:33:05 -0700 Subject: [PATCH 028/174] update function arity to be the number of params to the left of a default/rest - fixes #2262 --- .../src/transformation/helpers/get-function-arity.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/babel-core/src/transformation/helpers/get-function-arity.js b/packages/babel-core/src/transformation/helpers/get-function-arity.js index 43e135d1cd..6be07752a7 100644 --- a/packages/babel-core/src/transformation/helpers/get-function-arity.js +++ b/packages/babel-core/src/transformation/helpers/get-function-arity.js @@ -5,12 +5,11 @@ import * as t from "babel-types"; */ export default function (node) { - var lastNonDefault = 0; for (var i = 0; i < node.params.length; i++) { var param = node.params[i]; - if (!t.isAssignmentPattern(param) && !t.isRestElement(param)) { - lastNonDefault = i + 1; + if (t.isAssignmentPattern(param) || t.isRestElement(param)) { + return i; } } - return lastNonDefault; + return node.params.length; } From b8d53c1811ef600a7b49939573ea7fbde4f4ce1b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 27 Aug 2015 11:10:22 -0700 Subject: [PATCH 029/174] fix predence of destructuring parameters - fixes #2269 --- .../src/transformation/transformers/es6/destructuring.js | 2 +- .../es6.destructuring/default-precedence/exec.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js diff --git a/packages/babel-core/src/transformation/transformers/es6/destructuring.js b/packages/babel-core/src/transformation/transformers/es6/destructuring.js index ad7f3b4bf8..b64d89cfe3 100644 --- a/packages/babel-core/src/transformation/transformers/es6/destructuring.js +++ b/packages/babel-core/src/transformation/transformers/es6/destructuring.js @@ -95,7 +95,7 @@ export var visitor = { t.inherits(ref, pattern); var destructuring = new DestructuringTransformer({ - blockHoist: node.params.length - i, + blockHoist: node.params.length - i + 1, nodes: nodes, scope: scope, file: file, diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js new file mode 100644 index 0000000000..4cc3d913f3 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js @@ -0,0 +1,8 @@ +const f0 = (a, b = a, c = b) => [a, b, c]; +assert.deepEqual(f0(1), [1, 1, 1]); + +const f1 = ({a}, b = a, c = b) => [a, b, c]; +assert.deepEqual(f1({a: 1}), [1, 1, 1]); + +const f2 = ({a}, b = a, c = a) => [a, b, c]; +assert.deepEqual(f2({a: 1}), [1, 1, 1]); From 8067aa65ab8c8bd909ebcb6312dbf3156ed9162b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 27 Aug 2015 16:28:59 -0700 Subject: [PATCH 030/174] properly register a binding when pushing it to the scope --- packages/babel-traverse/src/scope/index.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index 51777e6346..2a27289bd5 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -829,21 +829,22 @@ export default class Scope { var blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; var dataKey = `declaration:${kind}:${blockHoist}`; - var declar = !unique && path.getData(dataKey); + var declarPath = !unique && path.getData(dataKey); - if (!declar) { - declar = t.variableDeclaration(kind, []); + if (!declarPath) { + var declar = t.variableDeclaration(kind, []); declar._generated = true; declar._blockHoist = blockHoist; this.hub.file.attachAuxiliaryComment(declar); - var [declarPath] = path.unshiftContainer("body", [declar]); - this.registerBinding(kind, declarPath); - if (!unique) path.setData(dataKey, declar); + [declarPath] = path.unshiftContainer("body", [declar]); + if (!unique) path.setData(dataKey, declarPath); } - declar.declarations.push(t.variableDeclarator(opts.id, opts.init)); + var declarator = t.variableDeclarator(opts.id, opts.init); + declarPath.node.declarations.push(declarator); + this.registerBinding(kind, declarPath.get("declarations").pop()); } /** From 9908f2420de9e4f8a7174d0d0b3f07cd7de4f8b2 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 29 Aug 2015 20:16:49 -0700 Subject: [PATCH 031/174] bump babel-plugin-react-display-name --- packages/babel-core/package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 2908f2c0d6..72ed641819 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,6 +1,6 @@ { "name": "babel-core", - "version": "5.8.22", + "version": "5.8.23", "description": "A compiler for writing next generation JavaScript", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -42,13 +42,13 @@ "babel-plugin-property-literals": "^1.0.1", "babel-plugin-proto-to-assign": "^1.0.3", "babel-plugin-react-constant-elements": "^1.0.3", - "babel-plugin-react-display-name": "^1.0.3", + "babel-plugin-react-display-name": "^2.0.0", "babel-plugin-remove-console": "^1.0.1", "babel-plugin-remove-debugger": "^1.0.1", "babel-plugin-runtime": "^1.0.7", "babel-plugin-undeclared-variables-check": "^1.0.2", "babel-plugin-undefined-to-void": "^1.1.6", - "babylon": "^5.8.22", + "babylon": "^5.8.23", "convert-source-map": "^1.1.0", "debug": "^2.1.1", "esutils": "^2.0.0", From 310f38f3e7584b69fc5ee223cad885490bdde0f0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sat, 29 Aug 2015 20:16:56 -0700 Subject: [PATCH 032/174] remove polyfill from main package --- packages/babel-core/polyfill.js | 2 -- packages/babel-core/src/api/node.js | 9 --------- 2 files changed, 11 deletions(-) delete mode 100644 packages/babel-core/polyfill.js diff --git a/packages/babel-core/polyfill.js b/packages/babel-core/polyfill.js deleted file mode 100644 index 68b352b5d0..0000000000 --- a/packages/babel-core/polyfill.js +++ /dev/null @@ -1,2 +0,0 @@ -console.trace('The use of `require("babel/polyfill") is deprecated. Please us require("babel-polyfill")'); -module.exports = require("babel-polyfill"); diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 1f3e4b7c61..c84869489d 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -30,15 +30,6 @@ export function register(opts?: Object) { return callback; } -/** - * Register polyfill globally. - */ - -export function polyfill() { - console.trace('The use of `require("babel").polyfill() is deprecated. Please us require("babel-polyfill")'); - require("babel-polyfill"); -} - /** * Asynchronously transform `filename` with optional `opts`, calls `callback` when complete. */ From 95f061b76e0c201a18c00c60598553e7b08a44b0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 1 Sep 2015 04:34:10 +0100 Subject: [PATCH 033/174] move some dotfiles into package.json --- .babelignore | 1 - .babelrc | 12 ------------ .eslintrc | 31 ------------------------------- package.json | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 45 insertions(+), 47 deletions(-) delete mode 100644 .babelignore delete mode 100644 .babelrc delete mode 100644 .eslintrc diff --git a/.babelignore b/.babelignore deleted file mode 100644 index 6a9d08f7a6..0000000000 --- a/.babelignore +++ /dev/null @@ -1 +0,0 @@ -packages/babel-cli/src/babel-plugin/templates diff --git a/.babelrc b/.babelrc deleted file mode 100644 index f1732adf13..0000000000 --- a/.babelrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "stage": 0, - "loose": ["all"], - "blacklist": ["es6.tailCall"], - "optional": ["optimisation.flow.forOf", "bluebirdCoroutines"], - //"plugins": ["./scripts/build-plugins/inline-node-type-checks", "./scripts/build-plugins/inline-node-builders"], - "env": { - "test": { - "auxiliaryCommentBefore": "istanbul ignore next" - } - } -} diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 8c566faa36..0000000000 --- a/.eslintrc +++ /dev/null @@ -1,31 +0,0 @@ -{ - "parser": "babel-eslint", - "extends": "eslint:recommended", - "rules": { - "quotes": [2, "double", "avoid-escape"], - "strict": 0, - "no-underscore-dangle": 0, - "curly": 0, - "no-multi-spaces": 0, - "key-spacing": 0, - "no-return-assign": 0, - "consistent-return": 0, - "no-shadow": 0, - "comma-dangle": 0, - "no-use-before-define": 0, - "no-empty": 0, - "new-parens": 0, - "no-cond-assign": 0, - "no-fallthrough": 0, - "new-cap": 0, - "no-loop-func": 0, - "no-unreachable": 0, - "no-labels": 0, - "no-process-exit": 0, - "camelcase": 0, - "no-console": 0 - }, - "env": { - "node": true - } -} diff --git a/package.json b/package.json index 214c276d15..4e76e52223 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,12 @@ { "private": true, + "license": "MIT", "devDependencies": { "babel": "5.8.21", "babel-eslint": "^4.0.6", "browserify": "^11.0.0", "chai": "^2.2.0", + "chalk": "^1.1.0", "es5-shim": "^4.1.7", "eslint": "^1.1.0", "fs-readdir-recursive": "^0.1.2", @@ -12,7 +14,7 @@ "lodash": "^3.10.0", "matcha": "^0.6.0", "mocha": "2.2.0", - "mocha-fixtures": "^1.0.5", + "mocha-fixtures": "^1.0.9", "output-file-sync": "^1.1.1", "path-exists": "^1.0.0", "readline-sync": "^1.2.19", @@ -21,7 +23,47 @@ "shelljs": "^0.5.1", "uglify-js": "^2.4.16" }, - "dependencies": { - "mocha-fixtures": "^1.0.9" + "babel": { + "ignore": ["packages/babel-cli/src/babel-plugin/templates"], + "stage": 0, + "loose": ["all"], + "blacklist": ["es6.tailCall"], + "optional": ["optimisation.flow.forOf", "bluebirdCoroutines"], + "env": { + "test": { + "auxiliaryCommentBefore": "istanbul ignore next" + } + } + }, + "eslintConfig": { + "parser": "babel-eslint", + "extends": "eslint:recommended", + "rules": { + "quotes": [2, "double", "avoid-escape"], + "strict": 0, + "no-underscore-dangle": 0, + "curly": 0, + "no-multi-spaces": 0, + "key-spacing": 0, + "no-return-assign": 0, + "consistent-return": 0, + "no-shadow": 0, + "comma-dangle": 0, + "no-use-before-define": 0, + "no-empty": 0, + "new-parens": 0, + "no-cond-assign": 0, + "no-fallthrough": 0, + "new-cap": 0, + "no-loop-func": 0, + "no-unreachable": 0, + "no-labels": 0, + "no-process-exit": 0, + "camelcase": 0, + "no-console": 0 + }, + "env": { + "node": true + } } } From 8d7b3c462fdf98a1b072b4ca4fb56f518e207f07 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 1 Sep 2015 04:49:16 +0100 Subject: [PATCH 034/174] unoverload Literal AST node --- .../helpers/build-react-transformer.js | 6 +- .../src/transformation/helpers/define-map.js | 6 +- .../src/transformation/helpers/regex.js | 8 +- .../transformation/helpers/replace-supers.js | 6 +- .../src/transformation/modules/_default.js | 2 +- .../src/transformation/modules/amd.js | 8 +- .../src/transformation/modules/lib/remaps.js | 6 +- .../src/transformation/modules/system.js | 8 +- .../src/transformation/modules/umd.js | 8 +- .../es3/member-expression-literals.js | 2 +- .../transformers/es6/block-scoping/index.js | 4 +- .../transformers/es6/block-scoping/tdz.js | 11 +- .../transformers/es6/classes/vanilla.js | 6 +- .../transformers/es6/destructuring.js | 6 +- .../transformers/es6/literals.js | 8 +- .../transformers/es6/parameters/default.js | 2 +- .../transformers/es6/parameters/rest.js | 8 +- .../transformers/es6/properties.computed.js | 2 +- .../transformers/es6/regex.sticky.js | 6 +- .../transformers/es6/regex.unicode.js | 4 +- .../transformers/es6/spec.modules.js | 2 +- .../transformers/es6/spec.symbols.js | 2 +- .../transformation/transformers/es6/spread.js | 2 +- .../transformers/es6/tail-call.js | 6 +- .../es7/exponentiation-operator.js | 4 +- .../optimisation/react.inline-elements.js | 6 +- .../transformers/other/react.js | 2 +- .../transformers/other/strict.js | 2 +- .../babel-generator/src/generators/types.js | 55 +--- packages/babel-types/src/converters.js | 32 +- packages/babylon/src/parser/expression.js | 41 ++- packages/babylon/src/parser/statement.js | 2 +- packages/babylon/src/parser/util.js | 2 +- packages/babylon/src/plugins/jsx/index.js | 2 +- .../surrounding-throw-comments/expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 4 +- .../switch-fallthrough-comment/expected.json | 4 +- .../expected.json | 4 +- .../expected.json | 6 +- .../switch-no-default-comment/expected.json | 2 +- .../regex-after-block/expected.json | 10 +- .../core/uncategorised/10/expected.json | 2 +- .../core/uncategorised/100/expected.json | 2 +- .../core/uncategorised/101/expected.json | 2 +- .../core/uncategorised/102/expected.json | 10 +- .../core/uncategorised/103/expected.json | 10 +- .../core/uncategorised/104/expected.json | 10 +- .../core/uncategorised/105/expected.json | 10 +- .../core/uncategorised/106/expected.json | 10 +- .../core/uncategorised/107/expected.json | 10 +- .../core/uncategorised/108/expected.json | 10 +- .../core/uncategorised/11/expected.json | 2 +- .../core/uncategorised/12/expected.json | 6 +- .../core/uncategorised/124/expected.json | 2 +- .../core/uncategorised/125/expected.json | 2 +- .../core/uncategorised/126/expected.json | 8 +- .../core/uncategorised/127/expected.json | 2 +- .../core/uncategorised/13/expected.json | 6 +- .../core/uncategorised/197/expected.json | 4 +- .../core/uncategorised/198/expected.json | 4 +- .../core/uncategorised/199/expected.json | 2 +- .../core/uncategorised/2/expected.json | 7 +- .../core/uncategorised/200/expected.json | 2 +- .../core/uncategorised/201/expected.json | 2 +- .../core/uncategorised/202/expected.json | 2 +- .../core/uncategorised/203/expected.json | 2 +- .../core/uncategorised/204/expected.json | 2 +- .../core/uncategorised/205/expected.json | 2 +- .../core/uncategorised/206/expected.json | 2 +- .../core/uncategorised/207/expected.json | 2 +- .../core/uncategorised/208/expected.json | 2 +- .../core/uncategorised/209/expected.json | 2 +- .../core/uncategorised/210/expected.json | 2 +- .../core/uncategorised/211/expected.json | 2 +- .../core/uncategorised/212/expected.json | 2 +- .../core/uncategorised/218/expected.json | 2 +- .../core/uncategorised/219/expected.json | 4 +- .../core/uncategorised/22/expected.json | 2 +- .../core/uncategorised/220/expected.json | 6 +- .../core/uncategorised/23/expected.json | 2 +- .../core/uncategorised/230/expected.json | 2 +- .../core/uncategorised/232/expected.json | 2 +- .../core/uncategorised/233/expected.json | 2 +- .../core/uncategorised/234/expected.json | 2 +- .../core/uncategorised/235/expected.json | 4 +- .../core/uncategorised/236/expected.json | 2 +- .../core/uncategorised/237/expected.json | 2 +- .../core/uncategorised/24/expected.json | 2 +- .../core/uncategorised/240/expected.json | 2 +- .../core/uncategorised/241/expected.json | 2 +- .../core/uncategorised/242/expected.json | 4 +- .../core/uncategorised/243/expected.json | 4 +- .../core/uncategorised/244/expected.json | 4 +- .../core/uncategorised/245/expected.json | 4 +- .../core/uncategorised/25/expected.json | 2 +- .../core/uncategorised/250/expected.json | 2 +- .../core/uncategorised/251/expected.json | 2 +- .../core/uncategorised/252/expected.json | 2 +- .../core/uncategorised/253/expected.json | 2 +- .../core/uncategorised/254/expected.json | 2 +- .../core/uncategorised/255/expected.json | 2 +- .../core/uncategorised/256/expected.json | 2 +- .../core/uncategorised/26/expected.json | 2 +- .../core/uncategorised/269/expected.json | 2 +- .../core/uncategorised/27/expected.json | 4 +- .../core/uncategorised/270/expected.json | 2 +- .../core/uncategorised/272/expected.json | 2 +- .../core/uncategorised/275/expected.json | 2 +- .../core/uncategorised/28/expected.json | 4 +- .../core/uncategorised/289/expected.json | 2 +- .../core/uncategorised/3/expected.json | 2 +- .../core/uncategorised/303/expected.json | 4 +- .../core/uncategorised/304/expected.json | 2 +- .../core/uncategorised/305/expected.json | 26 +- .../core/uncategorised/306/expected.json | 26 +- .../core/uncategorised/307/expected.json | 2 +- .../core/uncategorised/308/expected.json | 26 +- .../core/uncategorised/309/expected.json | 26 +- .../core/uncategorised/317/expected.json | 2 +- .../core/uncategorised/318/expected.json | 4 +- .../core/uncategorised/319/expected.json | 4 +- .../core/uncategorised/320/expected.json | 4 +- .../core/uncategorised/322/expected.json | 2 +- .../core/uncategorised/323/expected.json | 4 +- .../core/uncategorised/324/expected.json | 12 +- .../core/uncategorised/341/expected.json | 10 +- .../core/uncategorised/343/expected.json | 26 +- .../core/uncategorised/344/expected.json | 2 +- .../core/uncategorised/35/expected.json | 2 +- .../core/uncategorised/36/expected.json | 2 +- .../core/uncategorised/4/expected.json | 10 +- .../core/uncategorised/42/expected.json | 2 +- .../core/uncategorised/43/expected.json | 2 +- .../core/uncategorised/44/expected.json | 2 +- .../core/uncategorised/45/expected.json | 2 +- .../core/uncategorised/46/expected.json | 26 +- .../core/uncategorised/47/expected.json | 46 ++- .../core/uncategorised/48/expected.json | 46 ++- .../core/uncategorised/49/expected.json | 26 +- .../core/uncategorised/5/expected.json | 10 +- .../core/uncategorised/50/expected.json | 26 +- .../core/uncategorised/51/expected.json | 26 +- .../core/uncategorised/52/expected.json | 26 +- .../core/uncategorised/527/expected.json | 2 +- .../core/uncategorised/528/expected.json | 4 +- .../core/uncategorised/529/expected.json | 6 +- .../core/uncategorised/53/expected.json | 26 +- .../core/uncategorised/530/expected.json | 2 +- .../core/uncategorised/531/expected.json | 4 +- .../core/uncategorised/533/expected.json | 2 +- .../core/uncategorised/534/expected.json | 4 +- .../core/uncategorised/535/expected.json | 6 +- .../core/uncategorised/537/expected.json | 5 +- .../core/uncategorised/54/expected.json | 26 +- .../core/uncategorised/540/expected.json | 2 +- .../core/uncategorised/541/expected.json | 10 +- .../core/uncategorised/55/expected.json | 26 +- .../core/uncategorised/56/expected.json | 26 +- .../core/uncategorised/59/expected.json | 26 +- .../core/uncategorised/6/expected.json | 6 +- .../core/uncategorised/62/expected.json | 26 +- .../core/uncategorised/63/expected.json | 46 ++- .../core/uncategorised/65/expected.json | 26 +- .../core/uncategorised/66/expected.json | 2 +- .../core/uncategorised/67/expected.json | 2 +- .../core/uncategorised/68/expected.json | 2 +- .../core/uncategorised/69/expected.json | 2 +- .../core/uncategorised/70/expected.json | 2 +- .../core/uncategorised/71/expected.json | 2 +- .../core/uncategorised/72/expected.json | 2 +- .../core/uncategorised/73/expected.json | 2 +- .../core/uncategorised/74/expected.json | 2 +- .../core/uncategorised/75/expected.json | 2 +- .../core/uncategorised/76/expected.json | 2 +- .../core/uncategorised/77/expected.json | 2 +- .../core/uncategorised/78/expected.json | 2 +- .../core/uncategorised/79/expected.json | 2 +- .../core/uncategorised/80/expected.json | 2 +- .../core/uncategorised/81/expected.json | 2 +- .../core/uncategorised/82/expected.json | 2 +- .../core/uncategorised/83/expected.json | 2 +- .../core/uncategorised/84/expected.json | 2 +- .../core/uncategorised/85/expected.json | 2 +- .../core/uncategorised/86/expected.json | 2 +- .../core/uncategorised/87/expected.json | 2 +- .../core/uncategorised/88/expected.json | 2 +- .../core/uncategorised/89/expected.json | 2 +- .../core/uncategorised/9/expected.json | 2 +- .../core/uncategorised/90/expected.json | 2 +- .../core/uncategorised/91/expected.json | 2 +- .../core/uncategorised/92/expected.json | 2 +- .../core/uncategorised/93/expected.json | 2 +- .../core/uncategorised/94/expected.json | 2 +- .../core/uncategorised/95/expected.json | 2 +- .../core/uncategorised/96/expected.json | 2 +- .../core/uncategorised/97/expected.json | 2 +- .../core/uncategorised/98/expected.json | 2 +- .../core/uncategorised/99/expected.json | 2 +- .../migrated_0003/expected.json | 4 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../migrated_0006/expected.json | 2 +- .../migrated_0007/expected.json | 2 +- .../migrated_0008/expected.json | 2 +- .../migrated_0009/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 6 +- .../empty-param/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../migrated_0014/expected.json | 4 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 6 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../array-binding-pattern-01/expected.json | 2 +- .../array-binding-pattern-02/expected.json | 2 +- .../array-binding-pattern-03/expected.json | 2 +- .../array-binding-pattern-empty/expected.json | 2 +- .../elision/expected.json | 2 +- .../elision/expected.json | 2 +- .../empty-pattern-var/expected.json | 2 +- .../es2015-array-pattern/hole/expected.json | 2 +- .../nested-pattern/expected.json | 2 +- .../patterned-catch/expected.json | 4 +- .../es2015-array-pattern/rest/expected.json | 2 +- .../tailing-hold/expected.json | 2 +- .../with-default-catch-param/expected.json | 2 +- .../with-default-fn/expected.json | 2 +- .../with-object-pattern/expected.json | 2 +- .../expected.json | 2 +- .../arrow-with-only-rest/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 2 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../migrated_0006/expected.json | 2 +- .../migrated_0007/expected.json | 2 +- .../migrated_0008/expected.json | 2 +- .../migrated_0009/expected.json | 2 +- .../migrated_0010/expected.json | 2 +- .../migrated_0011/expected.json | 2 +- .../migrated_0012/expected.json | 2 +- .../migrated_0013/expected.json | 4 +- .../migrated_0014/expected.json | 4 +- .../migrated_0016/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 2 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../es2015-class/migrated_0001/expected.json | 2 +- .../es2015-class/migrated_0016/expected.json | 2 +- .../es2015-class/migrated_0019/expected.json | 4 +- .../es2015-class/migrated_0021/expected.json | 2 +- .../es2015-class/migrated_0024/expected.json | 2 +- .../es2015-class/migrated_0025/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../dup-assignment/expected.json | 2 +- .../elision/expected.json | 2 +- .../member-expr-in-rest/expected.json | 4 +- .../nested-assignment/expected.json | 6 +- .../nested-cover-grammar/expected.json | 2 +- .../simple-assignment/expected.json | 2 +- .../expected.json | 2 +- .../nested-cover-grammar/expected.json | 4 +- .../object-pattern-assignment/expected.json | 2 +- .../export-const-number/expected.json | 2 +- .../export-default-expression/expected.json | 4 +- .../export-default-number/expected.json | 2 +- .../export-default-object/expected.json | 2 +- .../export-from-batch/expected.json | 2 +- .../export-from-default/expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../export-from-specifier/expected.json | 2 +- .../export-from-specifiers/expected.json | 2 +- .../export-function-declaration/expected.json | 2 +- .../export-let-number/expected.json | 2 +- .../export-var-number/expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../module_await/expected.json | 2 +- .../expected.json | 2 +- .../expected.json | 2 +- .../import-default-as/expected.json | 2 +- .../import-default/expected.json | 2 +- .../import-jquery/expected.json | 2 +- .../import-module/expected.json | 2 +- .../import-named-as-specifier/expected.json | 2 +- .../import-named-as-specifiers/expected.json | 2 +- .../import-named-empty/expected.json | 2 +- .../import-named-specifier/expected.json | 2 +- .../expected.json | 2 +- .../import-named-specifiers/expected.json | 2 +- .../import-namespace-specifier/expected.json | 2 +- .../import-null-as-nil/expected.json | 2 +- .../migrated_0000/expected.json | 4 +- .../migrated_0002/expected.json | 2 +- .../expected.json | 238 +++++++++++++++ .../expected.json | 168 ++++++++++ .../expected.json | 168 ++++++++++ .../invalid-proto-literals/expected.json | 170 +++++++++++ .../expected.json | 255 ++++++++++++++++ .../expected.json | 7 +- .../proto-identifier-getter/expected.json | 7 +- .../proto-identifier-method/expected.json | 7 +- .../proto-identifier-setter/expected.json | 7 +- .../proto-literal-getter-setter/expected.json | 9 +- .../proto-literal-getter/expected.json | 9 +- .../proto-literal-method/expected.json | 9 +- .../proto-literal-setter/expected.json | 9 +- .../elision/expected.json | 2 +- .../empty-for-lex/expected.json | 2 +- .../empty-lexical/expected.json | 2 +- .../empty-var/expected.json | 2 +- .../nested/expected.json | 2 +- .../properties/expected.json | 6 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 4 +- .../migrated_0003/expected.json | 2 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../migrated_0006/expected.json | 4 +- .../call-spread-number/expected.json | 2 +- .../new-spread-number/expected.json | 2 +- .../super_computed/expected.json | 2 +- .../escape-sequences/expected.json | 2 +- .../line-terminators/expected.json | 2 +- .../literal-escape-sequences/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../yield-arrow-parameter-name/expected.json | 2 +- .../yield-lexical-declaration/expected.json | 4 +- .../expected.json | 2 +- .../yield-strict-method/expected.json | 2 +- .../migrated_0002/expected.json | 4 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 2 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../migrated_0006/expected.json | 2 +- .../migrated_0007/expected.json | 2 +- .../migrated_0008/expected.json | 2 +- .../migrated_0009/expected.json | 2 +- .../migrated_0010/expected.json | 2 +- .../migrated_0011/expected.json | 2 +- .../migrated_0012/expected.json | 2 +- .../migrated_0013/expected.json | 2 +- .../migrated_0000/expected.json | 4 +- .../migrated_0001/expected.json | 4 +- .../migrated_0002/expected.json | 6 +- .../migrated_0000/expected.json | 6 +- .../migrated_0001/expected.json | 6 +- .../migrated_0015/expected.json | 2 +- .../migrated_0016/expected.json | 2 +- .../migrated_0017/expected.json | 8 +- .../migrated_0018/expected.json | 2 +- .../migrated_0035/expected.json | 102 +++++++ .../invalid-syntax/migrated_0092/options.json | 4 +- .../invalid-syntax/migrated_0239/options.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 2 +- .../migrated_0004/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 2 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../statement-if/migrated_0002/expected.json | 2 +- .../statement-if/migrated_0005/expected.json | 2 +- .../statement-if/migrated_0006/expected.json | 2 +- .../migrated_0000/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 4 +- .../migrated_0004/expected.json | 2 +- .../migrated_0005/expected.json | 2 +- .../migrated_0006/expected.json | 2 +- .../migrated_0007/expected.json | 2 +- .../migrated_0010/expected.json | 2 +- .../migrated_0011/expected.json | 2 +- .../migrated_0012/expected.json | 2 +- .../migrated_0013/expected.json | 4 +- .../migrated_0014/expected.json | 4 +- .../migrated_0015/expected.json | 4 +- .../migrated_0016/expected.json | 4 +- .../migrated_0025/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0001/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0002/expected.json | 2 +- .../migrated_0003/expected.json | 4 +- .../migrated_0004/expected.json | 6 +- .../async-functions/pattern/expected.json | 2 +- .../uncategorised/21/expected.json | 2 +- .../uncategorised/26/expected.json | 7 +- .../uncategorised/28/expected.json | 5 +- .../uncategorised/3/expected.json | 2 +- .../uncategorised/30/expected.json | 2 +- .../uncategorised/39/expected.json | 2 +- .../uncategorised/4/expected.json | 4 +- .../uncategorised/43/expected.json | 2 +- .../uncategorised/46/expected.json | 2 +- .../uncategorised/47/expected.json | 2 +- .../uncategorised/48/expected.json | 2 +- .../uncategorised/49/expected.json | 2 +- .../uncategorised/5/expected.json | 6 +- .../uncategorised/50/expected.json | 2 +- .../uncategorised/51/expected.json | 2 +- .../uncategorised/52/expected.json | 2 +- .../uncategorised/53/expected.json | 2 +- .../uncategorised/54/expected.json | 2 +- .../uncategorised/55/expected.json | 4 +- .../uncategorised/58/expected.json | 2 +- .../uncategorised/6/expected.json | 6 +- .../uncategorised/62/expected.json | 9 +- .../uncategorised/7/expected.json | 6 +- .../uncategorised/8/expected.json | 6 +- .../flow/declare-module/2/expected.json | 5 +- .../flow/regression/issue-2083/expected.json | 4 +- .../test/fixtures/flow/tuples/3/expected.json | 5 +- .../test/fixtures/flow/tuples/4/expected.json | 7 +- .../flow/type-annotations/26/expected.json | 5 +- .../flow/type-annotations/44/expected.json | 9 +- .../flow/type-annotations/50/expected.json | 5 +- .../flow/type-annotations/51/expected.json | 5 +- .../flow/type-annotations/55/expected.json | 5 +- .../flow/type-annotations/60/expected.json | 5 +- .../flow/type-annotations/61/expected.json | 5 +- .../flow/type-annotations/62/expected.json | 5 +- .../flow/type-annotations/89/expected.json | 5 +- .../flow/type-annotations/90/expected.json | 5 +- .../flow/type-annotations/91/expected.json | 5 +- .../flow/type-annotations/92/expected.json | 5 +- .../flow/type-annotations/93/expected.json | 5 +- .../flow/type-annotations/94/expected.json | 5 +- .../flow/type-annotations/95/expected.json | 5 +- .../flow/type-annotations/96/expected.json | 5 +- .../type-exports/specifier-from/expected.json | 4 +- .../fixtures/flow/typecasts/2/expected.json | 7 +- .../fixtures/flow/typecasts/3/expected.json | 5 +- .../call-expression/expected.json | 5 +- .../harmony/uncategorised/1/expected.json | 5 +- .../harmony/uncategorised/10/expected.json | 5 +- .../harmony/uncategorised/106/expected.json | 5 +- .../harmony/uncategorised/11/expected.json | 5 +- .../harmony/uncategorised/12/expected.json | 5 +- .../harmony/uncategorised/123/expected.json | 5 +- .../harmony/uncategorised/124/expected.json | 2 +- .../harmony/uncategorised/13/expected.json | 5 +- .../harmony/uncategorised/130/expected.json | 5 +- .../harmony/uncategorised/14/expected.json | 5 +- .../harmony/uncategorised/141/expected.json | 5 +- .../harmony/uncategorised/142/expected.json | 9 +- .../harmony/uncategorised/144/expected.json | 7 +- .../harmony/uncategorised/15/expected.json | 5 +- .../harmony/uncategorised/152/expected.json | 7 +- .../harmony/uncategorised/153/expected.json | 7 +- .../harmony/uncategorised/154/expected.json | 7 +- .../harmony/uncategorised/155/expected.json | 7 +- .../harmony/uncategorised/156/expected.json | 7 +- .../harmony/uncategorised/157/expected.json | 7 +- .../harmony/uncategorised/158/expected.json | 5 +- .../harmony/uncategorised/159/expected.json | 7 +- .../harmony/uncategorised/16/expected.json | 5 +- .../harmony/uncategorised/160/expected.json | 7 +- .../harmony/uncategorised/161/expected.json | 7 +- .../harmony/uncategorised/162/expected.json | 7 +- .../harmony/uncategorised/17/expected.json | 5 +- .../harmony/uncategorised/195/expected.json | 8 +- .../harmony/uncategorised/196/expected.json | 8 +- .../harmony/uncategorised/197/expected.json | 2 +- .../harmony/uncategorised/2/expected.json | 5 +- .../harmony/uncategorised/256/expected.json | 5 +- .../harmony/uncategorised/257/expected.json | 5 +- .../harmony/uncategorised/259/expected.json | 5 +- .../harmony/uncategorised/26/expected.json | 4 +- .../harmony/uncategorised/27/expected.json | 7 +- .../harmony/uncategorised/28/expected.json | 5 +- .../harmony/uncategorised/29/expected.json | 5 +- .../harmony/uncategorised/3/expected.json | 5 +- .../harmony/uncategorised/30/expected.json | 5 +- .../harmony/uncategorised/300/expected.json | 4 +- .../harmony/uncategorised/301/expected.json | 2 +- .../harmony/uncategorised/307/expected.json | 7 +- .../harmony/uncategorised/308/expected.json | 7 +- .../harmony/uncategorised/309/expected.json | 7 +- .../harmony/uncategorised/31/expected.json | 5 +- .../harmony/uncategorised/310/expected.json | 7 +- .../harmony/uncategorised/317/expected.json | 14 +- .../harmony/uncategorised/318/expected.json | 2 +- .../harmony/uncategorised/319/expected.json | 2 +- .../harmony/uncategorised/32/expected.json | 5 +- .../harmony/uncategorised/320/expected.json | 2 +- .../harmony/uncategorised/322/expected.json | 2 +- .../harmony/uncategorised/33/expected.json | 5 +- .../harmony/uncategorised/338/expected.json | 2 +- .../harmony/uncategorised/34/expected.json | 5 +- .../harmony/uncategorised/343/expected.json | 68 +++++ .../harmony/uncategorised/349/expected.json | 174 +++++++++++ .../harmony/uncategorised/35/expected.json | 5 +- .../harmony/uncategorised/36/expected.json | 5 +- .../harmony/uncategorised/39/expected.json | 5 +- .../harmony/uncategorised/4/expected.json | 5 +- .../harmony/uncategorised/40/expected.json | 5 +- .../harmony/uncategorised/41/expected.json | 5 +- .../harmony/uncategorised/42/expected.json | 5 +- .../harmony/uncategorised/43/expected.json | 5 +- .../harmony/uncategorised/44/expected.json | 7 +- .../harmony/uncategorised/45/expected.json | 7 +- .../harmony/uncategorised/47/expected.json | 5 +- .../harmony/uncategorised/5/expected.json | 7 +- .../harmony/uncategorised/54/expected.json | 5 +- .../harmony/uncategorised/6/expected.json | 5 +- .../harmony/uncategorised/7/expected.json | 5 +- .../harmony/uncategorised/79/expected.json | 5 +- .../harmony/uncategorised/8/expected.json | 5 +- .../harmony/uncategorised/85/expected.json | 5 +- .../harmony/uncategorised/9/expected.json | 7 +- .../harmony/uncategorised/90/expected.json | 5 +- .../harmony/uncategorised/91/expected.json | 5 +- .../harmony/uncategorised/92/expected.json | 5 +- .../harmony/uncategorised/93/expected.json | 5 +- .../harmony/uncategorised/94/expected.json | 5 +- .../harmony/uncategorised/95/expected.json | 5 +- .../harmony/uncategorised/97/expected.json | 5 +- .../harmony/uncategorised/98/expected.json | 5 +- .../test/fixtures/jsx/basic/11/expected.json | 2 +- .../test/fixtures/jsx/basic/12/expected.json | 2 +- .../test/fixtures/jsx/basic/13/expected.json | 8 +- .../test/fixtures/jsx/basic/18/expected.json | 2 +- .../test/fixtures/jsx/basic/19/expected.json | 4 +- .../test/fixtures/jsx/basic/3/expected.json | 6 +- .../test/fixtures/jsx/basic/4/expected.json | 8 +- .../test/fixtures/jsx/basic/7/expected.json | 4 +- .../jsx/basic/keyword-tag/expected.json | 128 ++++++++ .../jsx/basic/namespace-tag/expected.json | 286 ++++++++++++++++++ .../fixtures/jsx/regression/1/expected.json | 8 +- .../fixtures/jsx/regression/4/expected.json | 2 +- .../fixtures/jsx/regression/6/expected.json | 2 +- .../fixtures/jsx/regression/7/expected.json | 2 +- .../jsx/regression/issue-2083/expected.json | 2 +- .../jsx/regression/issue-2114/expected.json | 2 +- 565 files changed, 3239 insertions(+), 1120 deletions(-) create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/343/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/349/expected.json create mode 100644 packages/babylon/test/fixtures/jsx/basic/keyword-tag/expected.json create mode 100644 packages/babylon/test/fixtures/jsx/basic/namespace-tag/expected.json diff --git a/packages/babel-core/src/transformation/helpers/build-react-transformer.js b/packages/babel-core/src/transformation/helpers/build-react-transformer.js index 5641b7d2a4..437a8a5f51 100644 --- a/packages/babel-core/src/transformation/helpers/build-react-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-react-transformer.js @@ -26,7 +26,7 @@ export default function (opts) { } else if (esutils.keyword.isIdentifierNameES6(node.name)) { node.type = "Identifier"; } else { - return t.literal(node.name); + return t.stringLiteral(node.name); } }; @@ -70,7 +70,7 @@ export default function (opts) { }, exit(node) { - var value = node.value || t.literal(true); + var value = node.value || t.booleanLiteral(true); return t.inherits(t.property("init", node.name, value), node); } }; @@ -107,7 +107,7 @@ export default function (opts) { if (attribs.length) { attribs = buildJSXOpeningElementAttributes(attribs, file); } else { - attribs = t.literal(null); + attribs = t.nullLiteral(); } args.push(attribs); diff --git a/packages/babel-core/src/transformation/helpers/define-map.js b/packages/babel-core/src/transformation/helpers/define-map.js index 95c7174abe..e7e52f0d0e 100644 --- a/packages/babel-core/src/transformation/helpers/define-map.js +++ b/packages/babel-core/src/transformation/helpers/define-map.js @@ -114,9 +114,9 @@ export function toClassObject(mutatorMap) { export function toDefineObject(mutatorMap) { each(mutatorMap, function (map) { - if (map.value) map.writable = t.literal(true); - map.configurable = t.literal(true); - map.enumerable = t.literal(true); + if (map.value) map.writable = t.booleanLiteral(true); + map.configurable = t.booleanLiteral(true); + map.enumerable = t.booleanLiteral(true); }); return toClassObject(mutatorMap); diff --git a/packages/babel-core/src/transformation/helpers/regex.js b/packages/babel-core/src/transformation/helpers/regex.js index 5cc83245b5..0f6ac2edb0 100644 --- a/packages/babel-core/src/transformation/helpers/regex.js +++ b/packages/babel-core/src/transformation/helpers/regex.js @@ -6,7 +6,7 @@ import * as t from "babel-types"; */ export function is(node, flag) { - return t.isLiteral(node) && node.regex && node.regex.flags.indexOf(flag) >= 0; + return t.isRegexLiteral(node) && node.flags.indexOf(flag) >= 0; } /** @@ -14,8 +14,8 @@ export function is(node, flag) { */ export function pullFlag(node, flag) { - var flags = node.regex.flags.split(""); - if (node.regex.flags.indexOf(flag) < 0) return; + var flags = node.flags.split(""); + if (node.flags.indexOf(flag) < 0) return; pull(flags, flag); - node.regex.flags = flags.join(""); + node.flags = flags.join(""); } diff --git a/packages/babel-core/src/transformation/helpers/replace-supers.js b/packages/babel-core/src/transformation/helpers/replace-supers.js index 7c5ac45fd7..4ac5170a52 100644 --- a/packages/babel-core/src/transformation/helpers/replace-supers.js +++ b/packages/babel-core/src/transformation/helpers/replace-supers.js @@ -107,7 +107,7 @@ export default class ReplaceSupers { this.isStatic ? this.getObjectRef() : t.memberExpression(this.getObjectRef(), t.identifier("prototype")) ] ), - isComputed ? property : t.literal(property.name), + isComputed ? property : t.stringLiteral(property.name), value, thisExpression ] @@ -133,7 +133,7 @@ export default class ReplaceSupers { this.isStatic ? this.getObjectRef() : t.memberExpression(this.getObjectRef(), t.identifier("prototype")) ] ), - isComputed ? property : t.literal(property.name), + isComputed ? property : t.stringLiteral(property.name), thisExpression ] ); @@ -301,7 +301,7 @@ export default class ReplaceSupers { property = node.property; computed = node.computed; } else if (t.isUpdateExpression(node) && isMemberExpressionSuper(node.argument)) { - var binary = t.binaryExpression(node.operator[0], node.argument, t.literal(1)); + var binary = t.binaryExpression(node.operator[0], node.argument, t.numberLiteral(1)); if (node.prefix) { // ++super.foo; -> super.foo += 1; return this.specHandleAssignmentExpression(null, path, binary, getThisReference); diff --git a/packages/babel-core/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js index 6b0d98b15f..1ec137ceaf 100644 --- a/packages/babel-core/src/transformation/modules/_default.js +++ b/packages/babel-core/src/transformation/modules/_default.js @@ -311,7 +311,7 @@ export default class DefaultFormatter { this.checkExportIdentifier(id); return util.template("exports-from-assign", { INIT: init, - ID: t.literal(id.name) + ID: t.stringLiteral(id.name) }, true); } diff --git a/packages/babel-core/src/transformation/modules/amd.js b/packages/babel-core/src/transformation/modules/amd.js index 1d1eb4d412..a363f2c673 100644 --- a/packages/babel-core/src/transformation/modules/amd.js +++ b/packages/babel-core/src/transformation/modules/amd.js @@ -26,7 +26,7 @@ export default class AMDFormatter extends DefaultFormatter { buildDependencyLiterals() { var names = []; for (var name in this.ids) { - names.push(t.literal(name)); + names.push(t.stringLiteral(name)); } return names; } @@ -42,8 +42,8 @@ export default class AMDFormatter extends DefaultFormatter { // build an array of module names - var names = [t.literal("exports")]; - if (this.passModuleArg) names.push(t.literal("module")); + var names = [t.stringLiteral("exports")]; + if (this.passModuleArg) names.push(t.stringLiteral("module")); names = names.concat(this.buildDependencyLiterals()); names = t.arrayExpression(names); @@ -57,7 +57,7 @@ export default class AMDFormatter extends DefaultFormatter { var defineArgs = [names, container]; var moduleName = this.getModuleName(); - if (moduleName) defineArgs.unshift(t.literal(moduleName)); + if (moduleName) defineArgs.unshift(t.stringLiteral(moduleName)); var call = t.callExpression(t.identifier("define"), defineArgs); diff --git a/packages/babel-core/src/transformation/modules/lib/remaps.js b/packages/babel-core/src/transformation/modules/lib/remaps.js index 34c375e521..859ac818d6 100644 --- a/packages/babel-core/src/transformation/modules/lib/remaps.js +++ b/packages/babel-core/src/transformation/modules/lib/remaps.js @@ -29,7 +29,7 @@ var remapVisitor = { if (!scope.hasBinding(node.name) || scope.bindingIdentifierEquals(node.name, formatter.localImports[node.name])) { if (!formatter.isLoose() && this.key === "callee" && this.parentPath.isCallExpression()) { - return t.sequenceExpression([t.literal(0), remap]); + return t.sequenceExpression([t.numberLiteral(0), remap]); } else { return remap; } @@ -62,7 +62,7 @@ var remapVisitor = { this.skip(); // expand to long file assignment expression - var assign = t.assignmentExpression(node.operator[0] + "=", node.argument, t.literal(1)); + var assign = t.assignmentExpression(node.operator[0] + "=", node.argument, t.numberLiteral(1)); // remap this assignment expression var remapped = formatter.remapExportAssignment(assign, exported); @@ -81,7 +81,7 @@ var remapVisitor = { } else { // "++" operator = "-"; } - nodes.push(t.binaryExpression(operator, node.argument, t.literal(1))); + nodes.push(t.binaryExpression(operator, node.argument, t.numberLiteral(1))); return t.sequenceExpression(nodes); } diff --git a/packages/babel-core/src/transformation/modules/system.js b/packages/babel-core/src/transformation/modules/system.js index 66b54acf51..1729b8e66e 100644 --- a/packages/babel-core/src/transformation/modules/system.js +++ b/packages/babel-core/src/transformation/modules/system.js @@ -149,7 +149,7 @@ export default class SystemFormatter extends AMDFormatter { var block = t.blockStatement([ t.ifStatement( - t.binaryExpression("!==", leftIdentifier, t.literal("default")), + t.binaryExpression("!==", leftIdentifier, t.stringLiteral("default")), t.expressionStatement(this._buildExportCall(leftIdentifier, valIdentifier)) ) ]); @@ -162,7 +162,7 @@ export default class SystemFormatter extends AMDFormatter { */ buildExportsAssignment(id, init, node) { - var call = this._buildExportCall(t.literal(id.name), init, true); + var call = this._buildExportCall(t.stringLiteral(id.name), init, true); return this._addImportSource(call, node); } @@ -182,7 +182,7 @@ export default class SystemFormatter extends AMDFormatter { var assign = node; for (var i = 0; i < exported.length; i++) { - assign = this._buildExportCall(t.literal(exported[i].name), assign); + assign = this._buildExportCall(t.stringLiteral(exported[i].name), assign); } return assign; @@ -256,7 +256,7 @@ export default class SystemFormatter extends AMDFormatter { var hoistDeclarators = []; var moduleName = this.getModuleName(); - var moduleNameLiteral = t.literal(moduleName); + var moduleNameLiteral = t.stringLiteral(moduleName); var block = t.blockStatement(program.body); diff --git a/packages/babel-core/src/transformation/modules/umd.js b/packages/babel-core/src/transformation/modules/umd.js index dde5b86ad9..5f8557836a 100644 --- a/packages/babel-core/src/transformation/modules/umd.js +++ b/packages/babel-core/src/transformation/modules/umd.js @@ -24,7 +24,7 @@ export default class UMDFormatter extends AMDFormatter { var names = []; for (let name in this.ids) { - names.push(t.literal(name)); + names.push(t.stringLiteral(name)); } // factory @@ -38,8 +38,8 @@ export default class UMDFormatter extends AMDFormatter { // amd - var defineArgs = [t.literal("exports")]; - if (this.passModuleArg) defineArgs.push(t.literal("module")); + var defineArgs = [t.stringLiteral("exports")]; + if (this.passModuleArg) defineArgs.push(t.stringLiteral("module")); defineArgs = defineArgs.concat(names); defineArgs = [t.arrayExpression(defineArgs)]; @@ -68,7 +68,7 @@ export default class UMDFormatter extends AMDFormatter { // var moduleName = this.getModuleName(); - if (moduleName) defineArgs.unshift(t.literal(moduleName)); + if (moduleName) defineArgs.unshift(t.stringLiteral(moduleName)); // var globalArg = this.file.opts.basename; diff --git a/packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js b/packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js index 22fea81804..0cb9484779 100644 --- a/packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js +++ b/packages/babel-core/src/transformation/transformers/es3/member-expression-literals.js @@ -34,7 +34,7 @@ export var visitor = { var prop = node.property; if (!node.computed && t.isIdentifier(prop) && !t.isValidIdentifier(prop.name)) { // foo.default -> foo["default"] - node.property = t.literal(prop.name); + node.property = t.stringLiteral(prop.name); node.computed = true; } } diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js index 50a920c305..cb86b1c521 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js @@ -356,7 +356,7 @@ var loopVisitor = { state.hasBreakContinue = true; state.map[loopText] = node; - replace = t.literal(loopText); + replace = t.stringLiteral(loopText); } if (this.isReturnStatement()) { @@ -733,7 +733,7 @@ class BlockScoping { if (has.hasBreakContinue) { for (var key in has.map) { - cases.push(t.switchCase(t.literal(key), [has.map[key]])); + cases.push(t.switchCase(t.stringLiteral(key), [has.map[key]])); } if (has.hasReturn) { diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js index 79ded06221..3f1bc87573 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js @@ -23,7 +23,7 @@ function getTDZStatus(refPath, bindingPath) { function buildTDZAssert(node, file) { return t.callExpression( file.addHelper("temporal-assert-defined"), - [node, t.literal(node.name), file.addHelper("temporal-undefined")] + [node, t.stringLiteral(node.name), file.addHelper("temporal-undefined")] ); } @@ -69,9 +69,12 @@ export var visitor = { return t.logicalExpression("&&", assert, node); } } else if (status === "outside") { - return t.throwStatement(t.newExpression(t.identifier("ReferenceError"), [ - t.literal(`${node.name} is not defined - temporal dead zone`) - ])); + return t.throwStatement(t.inherits( + t.newExpression(t.identifier("ReferenceError"), [ + t.stringLiteral(`${node.name} is not defined - temporal dead zone`) + ]), + node + )); } }, diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js index a72da30b4a..5776312fde 100644 --- a/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js @@ -248,7 +248,7 @@ export default class ClassTransformer { var map = defineMap.push(mutatorMap, node, kind, this.file); if (enumerable) { - map.enumerable = t.literal(true); + map.enumerable = t.booleanLiteral(true); } if (map.decorators) { @@ -383,7 +383,7 @@ export default class ClassTransformer { if (instanceProps) instanceProps = defineMap.toComputedObjectFromClass(instanceProps); if (staticProps) staticProps = defineMap.toComputedObjectFromClass(staticProps); - var nullNode = t.literal(null); + var nullNode = t.nullLiteral(); // (Constructor, instanceDescriptors, staticDescriptors, instanceInitializers, staticInitializers) var args = [this.classRef, nullNode, nullNode, nullNode, nullNode]; @@ -545,7 +545,7 @@ export default class ClassTransformer { body.push(t.returnStatement(node.value)); node.value = t.functionExpression(null, [], t.blockStatement(body)); } else { - node.value = t.literal(null); + node.value = t.nullLiteral(); } this.pushToMap(node, true, "initializer"); diff --git a/packages/babel-core/src/transformation/transformers/es6/destructuring.js b/packages/babel-core/src/transformation/transformers/es6/destructuring.js index b64d89cfe3..b7eee7a1a4 100644 --- a/packages/babel-core/src/transformation/transformers/es6/destructuring.js +++ b/packages/babel-core/src/transformation/transformers/es6/destructuring.js @@ -414,7 +414,7 @@ class DestructuringTransformer { if (t.isSpreadProperty(prop)) continue; var key = prop.key; - if (t.isIdentifier(key) && !prop.computed) key = t.literal(prop.key.name); + if (t.isIdentifier(key) && !prop.computed) key = t.stringLiteral(prop.key.name); keys.push(key); } @@ -579,14 +579,14 @@ class DestructuringTransformer { elemRef = this.toArray(arrayRef); if (i > 0) { - elemRef = t.callExpression(t.memberExpression(elemRef, t.identifier("slice")), [t.literal(i)]); + elemRef = t.callExpression(t.memberExpression(elemRef, t.identifier("slice")), [t.numberLiteral(i)]); } // set the element to the rest element argument since we've dealt with it // being a rest already elem = elem.argument; } else { - elemRef = t.memberExpression(arrayRef, t.literal(i), true); + elemRef = t.memberExpression(arrayRef, t.numberLiteral(i), true); } this.push(elem, elemRef); diff --git a/packages/babel-core/src/transformation/transformers/es6/literals.js b/packages/babel-core/src/transformation/transformers/es6/literals.js index f939688554..a4b80192c5 100644 --- a/packages/babel-core/src/transformation/transformers/es6/literals.js +++ b/packages/babel-core/src/transformation/transformers/es6/literals.js @@ -3,14 +3,16 @@ export var metadata = { }; export var visitor = { - Literal(node) { + NumberLiteral(node) { // number octal like 0b10 or 0o70 - if (typeof node.value === "number" && /^0[ob]/i.test(node.raw)) { + if (/^0[ob]/i.test(node.raw)) { node.raw = undefined; } + }, + StringLiteral(node) { // unicode escape - if (typeof node.value === "string" && /\\[u]/gi.test(node.raw)) { + if (/\\[u]/gi.test(node.raw)) { node.raw = undefined; } } diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/default.js b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js index ebda3963c4..717acd2e43 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/default.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js @@ -69,7 +69,7 @@ export var visitor = { defNode = util.template("default-parameter", { VARIABLE_NAME: left, DEFAULT_VALUE: right, - ARGUMENT_KEY: t.literal(i), + ARGUMENT_KEY: t.numberLiteral(i), ARGUMENTS: argsIdentifier }, true); } else { diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js b/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js index ef7497fc8d..738ac00ebe 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js @@ -107,7 +107,7 @@ function optimiseMemberExpression(parent, offset) { prop.value += offset; prop.raw = String(prop.value); } else { // // UnaryExpression, BinaryExpression - newExpr = t.binaryExpression("+", prop, t.literal(offset)); + newExpr = t.binaryExpression("+", prop, t.numberLiteral(offset)); parent.property = newExpr; } } @@ -147,7 +147,7 @@ export var visitor = { rest = scope.generateUidIdentifier("ref"); var declar = t.variableDeclaration("let", pattern.elements.map(function (elem, index) { - var accessExpr = t.memberExpression(rest, t.literal(index), true); + var accessExpr = t.memberExpression(rest, t.numberLiteral(index), true); return t.variableDeclarator(elem, accessExpr); })); node.body.body.unshift(declar); @@ -193,7 +193,7 @@ export var visitor = { // - var start = t.literal(node.params.length); + var start = t.numberLiteral(node.params.length); var key = scope.generateUidIdentifier("key"); var len = scope.generateUidIdentifier("len"); @@ -214,7 +214,7 @@ export var visitor = { arrLen = t.conditionalExpression( t.binaryExpression(">", len, start), t.binaryExpression("-", len, start), - t.literal(0) + t.numberLiteral(0) ); } diff --git a/packages/babel-core/src/transformation/transformers/es6/properties.computed.js b/packages/babel-core/src/transformation/transformers/es6/properties.computed.js index 322cc649a8..5ff8069d78 100644 --- a/packages/babel-core/src/transformation/transformers/es6/properties.computed.js +++ b/packages/babel-core/src/transformation/transformers/es6/properties.computed.js @@ -33,7 +33,7 @@ function spec(node, body, objId, initProps, file) { let key = prop.key; if (t.isIdentifier(key) && !prop.computed) { - key = t.literal(key.name); + key = t.stringLiteral(key.name); } var bodyNode = t.callExpression(file.addHelper("define-property"), [objId, key, prop.value]); diff --git a/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js index ea27221341..f8958100ac 100644 --- a/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js +++ b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js @@ -11,11 +11,11 @@ export var visitor = { * [Please add a description.] */ - Literal(node) { + RegexLiteral(node) { if (!regex.is(node, "y")) return; return t.newExpression(t.identifier("RegExp"), [ - t.literal(node.regex.pattern), - t.literal(node.regex.flags) + t.stringLiteral(node.pattern), + t.stringLiteral(node.flags) ]); } }; diff --git a/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js b/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js index 94f6c9ae07..f67c4aedde 100644 --- a/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js +++ b/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js @@ -11,9 +11,9 @@ export var visitor = { * [Please add a description.] */ - Literal(node) { + RegexLiteral(node) { if (!regex.is(node, "u")) return; - node.regex.pattern = rewritePattern(node.regex.pattern, node.regex.flags); + node.regex.pattern = rewritePattern(node.pattern, node.flags); regex.pullFlag(node, "u"); } }; diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.modules.js b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js index 70e6e4edd8..9e3f22640f 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spec.modules.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js @@ -10,7 +10,7 @@ export var visitor = { var id = this.scope.generateUidIdentifier("null"); this.unshiftContainer("body", [ t.variableDeclaration("var", [ - t.variableDeclarator(id, t.literal(null)) + t.variableDeclarator(id, t.nullLiteral()) ]), t.exportNamedDeclaration(null, [ t.exportSpecifier(id, t.identifier("__proto__")) diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js index f8fb28cb4b..34354e5eb8 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js @@ -26,7 +26,7 @@ export var visitor = { if (node.operator === "typeof") { var call = t.callExpression(file.addHelper("typeof"), [node.argument]); if (this.get("argument").isIdentifier()) { - var undefLiteral = t.literal("undefined"); + var undefLiteral = t.stringLiteral("undefined"); var unary = t.unaryExpression("typeof", node.argument); unary._ignoreSpecSymbols = true; return t.conditionalExpression( diff --git a/packages/babel-core/src/transformation/transformers/es6/spread.js b/packages/babel-core/src/transformation/transformers/es6/spread.js index c62acebf6e..d3ea13b42c 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spread.js +++ b/packages/babel-core/src/transformation/transformers/es6/spread.js @@ -138,7 +138,7 @@ export var visitor = { var nodes = build(args, scope); - var context = t.arrayExpression([t.literal(null)]); + var context = t.arrayExpression([t.nullLiteral()]); args = t.callExpression(t.memberExpression(context, t.identifier("concat")), nodes); diff --git a/packages/babel-core/src/transformation/transformers/es6/tail-call.js b/packages/babel-core/src/transformation/transformers/es6/tail-call.js index 3d95b0f170..b80b74f0ce 100644 --- a/packages/babel-core/src/transformation/transformers/es6/tail-call.js +++ b/packages/babel-core/src/transformation/transformers/es6/tail-call.js @@ -262,7 +262,7 @@ class TailCallTransformer { } body.unshift(t.expressionStatement( - t.assignmentExpression("=", this.getAgainId(), t.literal(false))) + t.assignmentExpression("=", this.getAgainId(), t.booleanLiteral(false))) ); node.body = util.template("tail-call-body", { @@ -482,14 +482,14 @@ class TailCallTransformer { body.push(t.expressionStatement(t.assignmentExpression( "=", param, - t.memberExpression(argumentsId, t.literal(i), true) + t.memberExpression(argumentsId, t.numberLiteral(i), true) ))); } } } body.push(t.expressionStatement( - t.assignmentExpression("=", this.getAgainId(), t.literal(true)) + t.assignmentExpression("=", this.getAgainId(), t.booleanLiteral(true)) )); body.push(t.continueStatement(this.getFunctionId())); diff --git a/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js index d2e65aea52..11a72314e2 100644 --- a/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js +++ b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js @@ -7,8 +7,6 @@ export var metadata = { stage: 2 }; -var MATH_POW = t.memberExpression(t.identifier("Math"), t.identifier("pow")); - /** * [Please add a description.] */ @@ -21,6 +19,6 @@ export var visitor = build({ */ build(left, right) { - return t.callExpression(MATH_POW, [left, right]); + return t.callExpression(t.memberExpression(t.identifier("Math"), t.identifier("pow")), [left, right]); } }); diff --git a/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js index d96ed7d27e..7a1046c985 100644 --- a/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js +++ b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js @@ -44,11 +44,11 @@ export var visitor = { var isComponent = true; var props = t.objectExpression([]); var obj = t.objectExpression([]); - var key = t.literal(null); + var key = t.nullLiteral(); var type = open.name; if (t.isJSXIdentifier(type) && react.isCompatTag(type.name)) { - type = t.literal(type.name); + type = t.stringLiteral(type.name); isComponent = false; } @@ -62,7 +62,7 @@ export var visitor = { // metadata pushElemProp("type", type); - pushElemProp("ref", t.literal(null)); + pushElemProp("ref", t.nullLiteral()); if (node.children.length) { var children = react.buildChildren(node); diff --git a/packages/babel-core/src/transformation/transformers/other/react.js b/packages/babel-core/src/transformation/transformers/other/react.js index 1dea3075f4..90d6c61e69 100644 --- a/packages/babel-core/src/transformation/transformers/other/react.js +++ b/packages/babel-core/src/transformation/transformers/other/react.js @@ -25,7 +25,7 @@ export var visitor = require("../../helpers/build-react-transformer")({ var tagName = state.tagName; var args = state.args; if (react.isCompatTag(tagName)) { - args.push(t.literal(tagName)); + args.push(t.stringLiteral(tagName)); } else { args.push(state.tagExpr); } diff --git a/packages/babel-core/src/transformation/transformers/other/strict.js b/packages/babel-core/src/transformation/transformers/other/strict.js index 335f02de29..ecc5d4094d 100644 --- a/packages/babel-core/src/transformation/transformers/other/strict.js +++ b/packages/babel-core/src/transformation/transformers/other/strict.js @@ -34,7 +34,7 @@ export var visitor = { if (t.isExpressionStatement(first) && isUseStrict(first.expression)) { directive = first; } else { - directive = t.expressionStatement(t.literal("use strict")); + directive = t.expressionStatement(t.stringLiteral("use strict")); this.unshiftContainer("body", directive); if (first) { directive.leadingComments = first.leadingComments; diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index c61fc1b96f..b50334fde2 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -125,50 +125,25 @@ export function ArrayExpression(node, print) { export { ArrayExpression as ArrayPattern }; -/** - * Prints Literal, prints value, regex, raw, handles val type. - */ - -export function Literal(node) { - this.push(""); // hack: catch up indentation - this._push(this._Literal(node)); +export function RegexLiteral(node) { + this.push(`/${node.pattern}/${node.flags}`); } -export function _Literal(node) { - var val = node.value; - - if (node.regex) { - return `/${node.regex.pattern}/${node.regex.flags}`; - } - - // just use the raw property if our current value is equivalent to the one we got - // when we populated raw - if (node.raw != null && node.rawValue != null && val === node.rawValue) { - return node.raw; - } - - switch (typeof val) { - case "string": - return this._stringLiteral(val); - - case "number": - return val + ""; - - case "boolean": - return val ? "true" : "false"; - - default: - if (val === null) { - return "null"; - } else { - throw new Error("Invalid Literal type"); - } - } +export function BooleanLiteral(node) { + this.push(node.value ? "true" : "false"); } -/** - * Prints string literals, handles format. - */ +export function NullLiteral() { + this.push("null"); +} + +export function NumberLiteral(node) { + this.push(node.value + ""); +} + +export function StringLiteral(node) { + this.push(this._stringLiteral(node.value)); +} export function _stringLiteral(val) { val = JSON.stringify(val); diff --git a/packages/babel-types/src/converters.js b/packages/babel-types/src/converters.js index 52d0966f70..1a01e069d1 100644 --- a/packages/babel-types/src/converters.js +++ b/packages/babel-types/src/converters.js @@ -12,7 +12,7 @@ import * as t from "./index"; export function toComputedKey(node: Object, key: Object = node.key || node.property): Object { if (!node.computed) { - if (t.isIdentifier(key)) key = t.literal(key.name); + if (t.isIdentifier(key)) key = t.stringLiteral(key.name); } return key; } @@ -112,7 +112,7 @@ export function toKeyAlias(node: Object, key: Object = node.key) { return toKeyAlias.uid++; } else if (t.isIdentifier(key)) { alias = key.name; - } else if (t.isLiteral(key)) { + } else if (t.isStringLiteral(key)) { alias = JSON.stringify(key.value); } else { alias = JSON.stringify(traverse.removeProperties(t.cloneDeep(key))); @@ -264,9 +264,31 @@ export function valueToNode(value: any): Object { return t.identifier("undefined"); } - // null, booleans, strings, numbers, regexs - if (value === true || value === false || value === null || isString(value) || isNumber(value) || isRegExp(value)) { - return t.literal(value); + // boolean + if (value === true || value === false) { + return t.booleanLiteral(value); + } + + // null + if (value === null) { + return t.nullLiteral(); + } + + // strings + if (isString(value)) { + return t.stringLiteral(value); + } + + // numbers + if (isNumber(value)) { + return t.numberLiteral(value); + } + + // regexes + if (isRegExp(value)) { + var pattern = value.source; + var flags = value.toString().match(/\/([a-z]+|)$/)[1]; + return t.regexLiteral(pattern, flags); } // array diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 9bd456fd1a..96ce489e71 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -32,9 +32,17 @@ pp.checkPropClash = function (prop, propHash) { let key = prop.key, name; switch (key.type) { - case "Identifier": name = key.name; break; - case "Literal": name = String(key.value); break; - default: return; + case "Identifier": + name = key.name; + break; + + case "StringLiteral": + case "NumberLiteral": + name = String(key.value); + break; + + default: + return; } let kind = prop.kind; @@ -377,19 +385,28 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { case tt.regexp: let value = this.state.value; - node = this.parseLiteral(value.value); - node.regex = {pattern: value.pattern, flags: value.flags}; + node = this.parseLiteral(value.value, "RegexLiteral"); + node.pattern = value.pattern; + node.flags = value.flags; return node; - case tt.num: case tt.string: - return this.parseLiteral(this.state.value); + case tt.num: + return this.parseLiteral(this.state.value, "NumberLiteral"); - case tt._null: case tt._true: case tt._false: + case tt.string: + return this.parseLiteral(this.state.value, "StringLiteral"); + + case tt._null: node = this.startNode(); - node.rawValue = node.value = this.match(tt._null) ? null : this.match(tt._true); + this.next(); + return this.finishNode(node, "NullLiteral"); + + case tt._true: case tt._false: + node = this.startNode(); + node.rawValue = node.value = this.match(tt._true); node.raw = this.state.type.keyword; this.next(); - return this.finishNode(node, "Literal"); + return this.finishNode(node, "BooleanLiteral"); case tt.parenL: return this.parseParenAndDistinguishExpression(null, null, canBeArrow); @@ -443,12 +460,12 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { } }; -pp.parseLiteral = function (value) { +pp.parseLiteral = function (value, type) { let node = this.startNode(); node.rawValue = node.value = value; node.raw = this.input.slice(this.state.start, this.state.end); this.next(); - return this.finishNode(node, "Literal"); + return this.finishNode(node, type); }; pp.parseParenExpression = function () { diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 9f5457f9c4..1d8ea87793 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -565,7 +565,7 @@ pp.parseClass = function (node, isStatement, optionalId) { key = this.parsePropertyName(method); } if (!method.static && (key.type === "Identifier" && key.name === "constructor" || - key.type === "Literal" && key.value === "constructor")) { + key.type === "StringLiteral" && key.value === "constructor")) { if (hadConstructor) this.raise(key.start, "Duplicate constructor in the same class"); if (isGetSet) this.raise(key.start, "Constructor can't have get/set modifier"); if (isGenerator) this.raise(key.start, "Constructor can't be a generator"); diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index 784daad310..29cdc074c6 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -9,7 +9,7 @@ const pp = Parser.prototype; // Test whether a statement node is the string literal `"use strict"`. pp.isUseStrict = function (stmt) { - return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && stmt.expression.raw.slice(1, -1) === "use strict"; + return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && stmt.expression.raw.slice(1, -1) === "use strict"; }; // TODO diff --git a/packages/babylon/src/plugins/jsx/index.js b/packages/babylon/src/plugins/jsx/index.js index f573fff9e9..b6ae663bee 100644 --- a/packages/babylon/src/plugins/jsx/index.js +++ b/packages/babylon/src/plugins/jsx/index.js @@ -382,7 +382,7 @@ export default function(instance) { instance.extend("parseExprAtom", function(inner) { return function(refShortHandDefaultPos) { if (this.match(tt.jsxText)) { - var node = this.parseLiteral(this.state.value); + var node = this.parseLiteral(this.state.value, "JSXText"); // https://github.com/babel/babel/issues/2078 node.rawValue = null; return node; diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json index 1d43e1eea5..41527785fb 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json @@ -91,7 +91,7 @@ } }, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 42, "end": 44, "loc": { diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json index c749fccc76..9d9f17495b 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json @@ -91,7 +91,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 37, "end": 41, "loc": { diff --git a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json index c53e024530..1258711857 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json @@ -140,7 +140,7 @@ }, "consequent": [], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 66, "end": 67, "loc": { @@ -267,7 +267,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 111, "end": 112, "loc": { diff --git a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json index 7bd86859b4..73e33512ba 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json @@ -75,7 +75,7 @@ }, "consequent": [], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 34, "end": 35, "loc": { @@ -202,7 +202,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 71, "end": 72, "loc": { diff --git a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json index e01a3fd11c..24a358f0e2 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json @@ -157,7 +157,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 48, "end": 49, "loc": { @@ -210,7 +210,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 83, "end": 84, "loc": { diff --git a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json index 2dbbec6d67..c3f7926916 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json @@ -501,7 +501,7 @@ }, "operator": "-", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 215, "end": 216, "loc": { @@ -527,7 +527,7 @@ } ], "test": { - "type": "Literal", + "type": "StringLiteral", "start": 116, "end": 136, "loc": { @@ -584,7 +584,7 @@ } }, "argument": { - "type": "Literal", + "type": "BooleanLiteral", "start": 271, "end": 276, "loc": { diff --git a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json index a895f6dde3..79727f2aa4 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json @@ -94,7 +94,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 22, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json b/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json index 9865ab3100..9abc79800a 100644 --- a/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json +++ b/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 4, "end": 8, "loc": { @@ -93,7 +93,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 15, "end": 20, "loc": { @@ -107,10 +107,8 @@ } }, "raw": "/foo/", - "regex": { - "pattern": "foo", - "flags": "" - } + "pattern": "foo", + "flags": "" } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/10/expected.json b/packages/babylon/test/fixtures/core/uncategorised/10/expected.json index 61f7bde252..da404948f1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/10/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/10/expected.json @@ -89,7 +89,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/100/expected.json b/packages/babylon/test/fixtures/core/uncategorised/100/expected.json index aaafd737c7..4b7d0df83e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/100/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/100/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/101/expected.json b/packages/babylon/test/fixtures/core/uncategorised/101/expected.json index bea6bba9b2..5255b7b53d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/101/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/101/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/102/expected.json b/packages/babylon/test/fixtures/core/uncategorised/102/expected.json index 009a9e4ed5..6146d006c2 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/102/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/102/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 16, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/[a-z]/i", - "regex": { - "pattern": "[a-z]", - "flags": "i" - } + "pattern": "[a-z]", + "flags": "i" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/103/expected.json b/packages/babylon/test/fixtures/core/uncategorised/103/expected.json index ed4fe7cded..e5403147fe 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/103/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/103/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 16, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/[x-z]/i", - "regex": { - "pattern": "[x-z]", - "flags": "i" - } + "pattern": "[x-z]", + "flags": "i" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/104/expected.json b/packages/babylon/test/fixtures/core/uncategorised/104/expected.json index b9f26b24b0..f998864e01 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/104/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/104/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 16, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/[a-c]/i", - "regex": { - "pattern": "[a-c]", - "flags": "i" - } + "pattern": "[a-c]", + "flags": "i" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/105/expected.json b/packages/babylon/test/fixtures/core/uncategorised/105/expected.json index 9a938ecee4..4119341722 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/105/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/105/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 17, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/[P QR]/i", - "regex": { - "pattern": "[P QR]", - "flags": "i" - } + "pattern": "[P QR]", + "flags": "i" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/106/expected.json b/packages/babylon/test/fixtures/core/uncategorised/106/expected.json index 25323deabf..323385e36b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/106/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/106/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 18, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/foo\\/bar/", - "regex": { - "pattern": "foo\\/bar", - "flags": "" - } + "pattern": "foo\\/bar", + "flags": "" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/107/expected.json b/packages/babylon/test/fixtures/core/uncategorised/107/expected.json index 85f4f1e155..b973814034 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/107/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/107/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 21, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/=([^=\\s])+/g", - "regex": { - "pattern": "=([^=\\s])+", - "flags": "g" - } + "pattern": "=([^=\\s])+", + "flags": "g" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/108/expected.json b/packages/babylon/test/fixtures/core/uncategorised/108/expected.json index d37baa6dd8..533ad1b064 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/108/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/108/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "RegexLiteral", "start": 8, "end": 22, "loc": { @@ -88,10 +88,8 @@ } }, "raw": "/[P QR]/\\u0067", - "regex": { - "pattern": "[P QR]", - "flags": "g" - } + "pattern": "[P QR]", + "flags": "g" } } ], @@ -99,4 +97,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/11/expected.json b/packages/babylon/test/fixtures/core/uncategorised/11/expected.json index 3eecd02bc8..e011780af1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/11/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/11/expected.json @@ -91,7 +91,7 @@ null, null, { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/12/expected.json b/packages/babylon/test/fixtures/core/uncategorised/12/expected.json index e41172db76..90a2413a90 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/12/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/12/expected.json @@ -89,7 +89,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -107,7 +107,7 @@ "raw": "1" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { @@ -125,7 +125,7 @@ "raw": "2" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/124/expected.json b/packages/babylon/test/fixtures/core/uncategorised/124/expected.json index cca9b0fc82..f26ab8b935 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/124/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/124/expected.json @@ -87,7 +87,7 @@ "name": "universe" }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/125/expected.json b/packages/babylon/test/fixtures/core/uncategorised/125/expected.json index 463a77c2e5..624c7b81b9 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/125/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/125/expected.json @@ -88,7 +88,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/126/expected.json b/packages/babylon/test/fixtures/core/uncategorised/126/expected.json index fab1521321..23d090fedc 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/126/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/126/expected.json @@ -116,7 +116,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { @@ -155,7 +155,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 22, "end": 24, "loc": { @@ -173,7 +173,7 @@ "raw": "14" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 26, "end": 27, "loc": { @@ -191,7 +191,7 @@ "raw": "3" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 29, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/127/expected.json b/packages/babylon/test/fixtures/core/uncategorised/127/expected.json index 762a4f980c..080068549b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/127/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/127/expected.json @@ -170,7 +170,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 40, "end": 44, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/13/expected.json b/packages/babylon/test/fixtures/core/uncategorised/13/expected.json index df8bef639b..9bc040d735 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/13/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/13/expected.json @@ -89,7 +89,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -107,7 +107,7 @@ "raw": "1" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { @@ -126,7 +126,7 @@ }, null, { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/197/expected.json b/packages/babylon/test/fixtures/core/uncategorised/197/expected.json index 355a73a1ad..9252297ac7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/197/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/197/expected.json @@ -73,7 +73,7 @@ "name": "y" }, "consequent": { - "type": "Literal", + "type": "NumberLiteral", "start": 4, "end": 5, "loc": { @@ -91,7 +91,7 @@ "raw": "1" }, "alternate": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/198/expected.json b/packages/babylon/test/fixtures/core/uncategorised/198/expected.json index 618615ef5f..6d0cf5e9ff 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/198/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/198/expected.json @@ -105,7 +105,7 @@ } }, "consequent": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { @@ -123,7 +123,7 @@ "raw": "1" }, "alternate": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/199/expected.json b/packages/babylon/test/fixtures/core/uncategorised/199/expected.json index dcfe85d992..886a4c91ba 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/199/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/199/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 4, "end": 6, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/2/expected.json b/packages/babylon/test/fixtures/core/uncategorised/2/expected.json index 62806e9393..9ca3c11021 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/2/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/2/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NullLiteral", "start": 0, "end": 4, "loc": { @@ -55,10 +55,7 @@ "line": 1, "column": 4 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/200/expected.json b/packages/babylon/test/fixtures/core/uncategorised/200/expected.json index 32e9683fad..087953e749 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/200/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/200/expected.json @@ -74,7 +74,7 @@ "name": "eval" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/201/expected.json b/packages/babylon/test/fixtures/core/uncategorised/201/expected.json index aadc603158..c40cefe77a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/201/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/201/expected.json @@ -74,7 +74,7 @@ "name": "arguments" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/202/expected.json b/packages/babylon/test/fixtures/core/uncategorised/202/expected.json index c68b13b4a8..77c0b3f6fd 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/202/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/202/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/203/expected.json b/packages/babylon/test/fixtures/core/uncategorised/203/expected.json index 2a2e320c76..3ea5616140 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/203/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/203/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/204/expected.json b/packages/babylon/test/fixtures/core/uncategorised/204/expected.json index f61cd91960..3bb965131c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/204/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/204/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/205/expected.json b/packages/babylon/test/fixtures/core/uncategorised/205/expected.json index d87bd7221e..623bec2d65 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/205/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/205/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/206/expected.json b/packages/babylon/test/fixtures/core/uncategorised/206/expected.json index 58ac4f76d5..169b55b357 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/206/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/206/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/207/expected.json b/packages/babylon/test/fixtures/core/uncategorised/207/expected.json index 6aec1fd6ae..395bbc5959 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/207/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/207/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/208/expected.json b/packages/babylon/test/fixtures/core/uncategorised/208/expected.json index 2afa7f1ab0..f2baaf2d7c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/208/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/208/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/209/expected.json b/packages/babylon/test/fixtures/core/uncategorised/209/expected.json index 34ae7fde25..63767ff44b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/209/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/209/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/210/expected.json b/packages/babylon/test/fixtures/core/uncategorised/210/expected.json index a97d4cb79e..22bf53cf58 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/210/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/210/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/211/expected.json b/packages/babylon/test/fixtures/core/uncategorised/211/expected.json index 7a092cae1b..52cfe31685 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/211/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/211/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/212/expected.json b/packages/babylon/test/fixtures/core/uncategorised/212/expected.json index 0c297787a4..0cb0e23497 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/212/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/212/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/218/expected.json b/packages/babylon/test/fixtures/core/uncategorised/218/expected.json index a5b0f49382..746c634e18 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/218/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/218/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/219/expected.json b/packages/babylon/test/fixtures/core/uncategorised/219/expected.json index 6ed6cc90fa..e88bd0e0af 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/219/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/219/expected.json @@ -74,7 +74,7 @@ "name": "eval" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { @@ -123,7 +123,7 @@ "name": "arguments" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 27, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/22/expected.json b/packages/babylon/test/fixtures/core/uncategorised/22/expected.json index e737e4bf96..6798856802 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/22/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/22/expected.json @@ -122,7 +122,7 @@ "name": "answer" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/220/expected.json b/packages/babylon/test/fixtures/core/uncategorised/220/expected.json index 6b9e9e3f3a..f0f1cc157c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/220/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/220/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -123,7 +123,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 17, "loc": { @@ -172,7 +172,7 @@ "name": "z" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 27, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/23/expected.json b/packages/babylon/test/fixtures/core/uncategorised/23/expected.json index b7e5bc565e..7d1d29919f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/23/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/23/expected.json @@ -122,7 +122,7 @@ "name": "if" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/230/expected.json b/packages/babylon/test/fixtures/core/uncategorised/230/expected.json index c1930814e6..086e802703 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/230/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/230/expected.json @@ -104,7 +104,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 21, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/232/expected.json b/packages/babylon/test/fixtures/core/uncategorised/232/expected.json index a065c54055..298c6ed2b8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/232/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/232/expected.json @@ -90,7 +90,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/233/expected.json b/packages/babylon/test/fixtures/core/uncategorised/233/expected.json index bcc441a257..cf9db0e4fd 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/233/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/233/expected.json @@ -90,7 +90,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/234/expected.json b/packages/babylon/test/fixtures/core/uncategorised/234/expected.json index 09c2e86050..3bd687b08d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/234/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/234/expected.json @@ -187,7 +187,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 28, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/235/expected.json b/packages/babylon/test/fixtures/core/uncategorised/235/expected.json index 2333bd0d07..5f92a264ce 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/235/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/235/expected.json @@ -74,7 +74,7 @@ "body": [] }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 16, "end": 21, "loc": { @@ -107,7 +107,7 @@ } }, "expression": { - "type": "Literal", + "type": "BooleanLiteral", "start": 23, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/236/expected.json b/packages/babylon/test/fixtures/core/uncategorised/236/expected.json index e3ddda1e17..b68c4e6106 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/236/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/236/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/237/expected.json b/packages/babylon/test/fixtures/core/uncategorised/237/expected.json index bf0cf79afd..c7381370ab 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/237/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/237/expected.json @@ -74,7 +74,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/24/expected.json b/packages/babylon/test/fixtures/core/uncategorised/24/expected.json index 91bb601500..80a4774e20 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/24/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/24/expected.json @@ -122,7 +122,7 @@ "name": "true" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/240/expected.json b/packages/babylon/test/fixtures/core/uncategorised/240/expected.json index 0221127370..f45ca7088d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/240/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/240/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/241/expected.json b/packages/babylon/test/fixtures/core/uncategorised/241/expected.json index 46c4e44c8f..6640f73295 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/241/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/241/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/242/expected.json b/packages/babylon/test/fixtures/core/uncategorised/242/expected.json index 20b89977b6..61391fdd9f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/242/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/242/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { @@ -137,7 +137,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/243/expected.json b/packages/babylon/test/fixtures/core/uncategorised/243/expected.json index 66dff360f5..fb76721dce 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/243/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/243/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { @@ -124,7 +124,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/244/expected.json b/packages/babylon/test/fixtures/core/uncategorised/244/expected.json index 1943c72a2e..f826f885de 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/244/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/244/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { @@ -124,7 +124,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/245/expected.json b/packages/babylon/test/fixtures/core/uncategorised/245/expected.json index ea41666efe..16f684a226 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/245/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/245/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { @@ -124,7 +124,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/25/expected.json b/packages/babylon/test/fixtures/core/uncategorised/25/expected.json index bf78e60abe..a6a31f5362 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/25/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/25/expected.json @@ -122,7 +122,7 @@ "name": "false" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/250/expected.json b/packages/babylon/test/fixtures/core/uncategorised/250/expected.json index 9ea0854331..40763456b0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/250/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/250/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/251/expected.json b/packages/babylon/test/fixtures/core/uncategorised/251/expected.json index 3cadc13b16..bfea074cf1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/251/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/251/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/252/expected.json b/packages/babylon/test/fixtures/core/uncategorised/252/expected.json index 661b7b9d0a..f43031468c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/252/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/252/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/253/expected.json b/packages/babylon/test/fixtures/core/uncategorised/253/expected.json index 3c06ab2a96..3b684f46cb 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/253/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/253/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/254/expected.json b/packages/babylon/test/fixtures/core/uncategorised/254/expected.json index 1d9fe4c071..15042df691 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/254/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/254/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/255/expected.json b/packages/babylon/test/fixtures/core/uncategorised/255/expected.json index de1ad554fa..be48009734 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/255/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/255/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/256/expected.json b/packages/babylon/test/fixtures/core/uncategorised/256/expected.json index 62a3160e6e..6c31c586d6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/256/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/256/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/26/expected.json b/packages/babylon/test/fixtures/core/uncategorised/26/expected.json index 4a45b6dd41..e516e972e9 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/26/expected.json @@ -122,7 +122,7 @@ "name": "null" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/269/expected.json b/packages/babylon/test/fixtures/core/uncategorised/269/expected.json index 62e79f338e..9758d61707 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/269/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/269/expected.json @@ -139,7 +139,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/27/expected.json b/packages/babylon/test/fixtures/core/uncategorised/27/expected.json index 8f6fb8980a..96a8fd0d09 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/27/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/27/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 6, "end": 14, "loc": { @@ -124,7 +124,7 @@ "raw": "\"answer\"" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/270/expected.json b/packages/babylon/test/fixtures/core/uncategorised/270/expected.json index b29ad0f66d..7400509d5f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/270/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/270/expected.json @@ -139,7 +139,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/272/expected.json b/packages/babylon/test/fixtures/core/uncategorised/272/expected.json index cddf16fc26..c4f9e0e386 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/272/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/272/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 14, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/275/expected.json b/packages/babylon/test/fixtures/core/uncategorised/275/expected.json index fe437eefa7..dc9afaed76 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/275/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/275/expected.json @@ -91,7 +91,7 @@ "name": "message" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 24, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/28/expected.json b/packages/babylon/test/fixtures/core/uncategorised/28/expected.json index 4a5cc05f3d..d754d81e2b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/28/expected.json @@ -122,7 +122,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { @@ -175,7 +175,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/289/expected.json b/packages/babylon/test/fixtures/core/uncategorised/289/expected.json index c1db4cf35a..f5013969f2 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/289/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/289/expected.json @@ -139,7 +139,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 37, "end": 49, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/3/expected.json b/packages/babylon/test/fixtures/core/uncategorised/3/expected.json index c05561829f..778ef2fe98 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/3/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/3/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/303/expected.json b/packages/babylon/test/fixtures/core/uncategorised/303/expected.json index 54b06ec57a..b3c4b6a133 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/303/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/303/expected.json @@ -89,7 +89,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { @@ -138,7 +138,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/304/expected.json b/packages/babylon/test/fixtures/core/uncategorised/304/expected.json index 417879a077..253be28d97 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/304/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/304/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/305/expected.json b/packages/babylon/test/fixtures/core/uncategorised/305/expected.json index 85d1c9cc9b..567f02ad8f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/305/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/305/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { @@ -172,5 +172,27 @@ } } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 24, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "range": [ + 24, + 34 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/306/expected.json b/packages/babylon/test/fixtures/core/uncategorised/306/expected.json index 420314dcf8..b094efe11f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/306/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/306/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { @@ -172,5 +172,27 @@ } } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 24, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 24, + 47 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/307/expected.json b/packages/babylon/test/fixtures/core/uncategorised/307/expected.json index 6f55ed4658..be91d94441 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/307/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/307/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/308/expected.json b/packages/babylon/test/fixtures/core/uncategorised/308/expected.json index 16b5f8de23..2fc3f311ee 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/308/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/308/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { @@ -172,5 +172,27 @@ } } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 21, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "range": [ + 21, + 31 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/309/expected.json b/packages/babylon/test/fixtures/core/uncategorised/309/expected.json index f41d20534e..6720b43723 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/309/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/309/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { @@ -172,5 +172,27 @@ } } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 21, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "range": [ + 21, + 44 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/317/expected.json b/packages/babylon/test/fixtures/core/uncategorised/317/expected.json index 70a7b043b5..77f0623dd0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/317/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/317/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 9, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/318/expected.json b/packages/babylon/test/fixtures/core/uncategorised/318/expected.json index 1af7d36137..a9f877830b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/318/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/318/expected.json @@ -104,7 +104,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 16, "end": 28, "loc": { @@ -137,7 +137,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 31, "end": 34, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/319/expected.json b/packages/babylon/test/fixtures/core/uncategorised/319/expected.json index 7bfda37783..c8465306e7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/319/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/319/expected.json @@ -71,7 +71,7 @@ } }, "object": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { @@ -108,7 +108,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/320/expected.json b/packages/babylon/test/fixtures/core/uncategorised/320/expected.json index d18528b0b3..dfcf159a6b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/320/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/320/expected.json @@ -57,7 +57,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { @@ -76,7 +76,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 6, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/322/expected.json b/packages/babylon/test/fixtures/core/uncategorised/322/expected.json index 4bb48ca6a4..312ab26090 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/322/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/322/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/323/expected.json b/packages/babylon/test/fixtures/core/uncategorised/323/expected.json index ed6fd4e376..a3669a1658 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/323/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/323/expected.json @@ -57,7 +57,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { @@ -121,7 +121,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/324/expected.json b/packages/babylon/test/fixtures/core/uncategorised/324/expected.json index e28711fe0b..5409838244 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/324/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/324/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 3, "end": 4, "loc": { @@ -75,7 +75,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 5, "end": 12, "loc": { @@ -89,14 +89,12 @@ } }, "raw": "/ foo/", - "regex": { - "pattern": " foo", - "flags": "" - } + "pattern": " foo", + "flags": "" } }, "alternate": null } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/341/expected.json b/packages/babylon/test/fixtures/core/uncategorised/341/expected.json index 88d5fefb2d..599c268bdf 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/341/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/341/expected.json @@ -59,7 +59,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 2, "end": 5, "loc": { @@ -73,12 +73,10 @@ } }, "raw": "/=/", - "regex": { - "pattern": "=", - "flags": "" - } + "pattern": "=", + "flags": "" } } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/343/expected.json b/packages/babylon/test/fixtures/core/uncategorised/343/expected.json index 4d99a8faca..16ef7df684 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/343/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/343/expected.json @@ -122,7 +122,7 @@ }, "operator": ">", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -165,5 +165,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " nothing", + "start": 13, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 12 + } + }, + "range": [ + 13, + 24 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/344/expected.json b/packages/babylon/test/fixtures/core/uncategorised/344/expected.json index d8e160600f..c8acee55d3 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/344/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/344/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/35/expected.json b/packages/babylon/test/fixtures/core/uncategorised/35/expected.json index d8f2ba1cf2..929aaebf51 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/35/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/35/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 10, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/36/expected.json b/packages/babylon/test/fixtures/core/uncategorised/36/expected.json index a9d4864fed..2249562b63 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/36/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/36/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/4/expected.json b/packages/babylon/test/fixtures/core/uncategorised/4/expected.json index 9c29ccb629..cfa64792cf 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/4/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/4/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 0, "end": 8, "loc": { @@ -57,12 +57,10 @@ } }, "raw": "/foobar/", - "regex": { - "pattern": "foobar", - "flags": "" - } + "pattern": "foobar", + "flags": "" } } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/42/expected.json b/packages/babylon/test/fixtures/core/uncategorised/42/expected.json index fbaae8d9f1..e1c3ca9d7e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/42/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/42/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 10, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/43/expected.json b/packages/babylon/test/fixtures/core/uncategorised/43/expected.json index ae9c51390d..831c152d07 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/43/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/44/expected.json b/packages/babylon/test/fixtures/core/uncategorised/44/expected.json index fa0228a80c..22361a57aa 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/44/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/44/expected.json @@ -122,7 +122,7 @@ "name": "get" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/45/expected.json b/packages/babylon/test/fixtures/core/uncategorised/45/expected.json index 360cc1183c..96f2955db3 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/45/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/45/expected.json @@ -122,7 +122,7 @@ "name": "set" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/46/expected.json b/packages/babylon/test/fixtures/core/uncategorised/46/expected.json index 70440e8cff..dd2e0291b4 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/46/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/46/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 22, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": " block comment ", + "start": 0, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "range": [ + 0, + 19 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/47/expected.json b/packages/babylon/test/fixtures/core/uncategorised/47/expected.json index 972e9a1f34..850a6eaa47 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/47/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/47/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { @@ -106,5 +106,47 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "The", + "start": 3, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "range": [ + 3, + 10 + ] + }, + { + "type": "CommentBlock", + "value": "Answer", + "start": 11, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "range": [ + 11, + 21 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/48/expected.json b/packages/babylon/test/fixtures/core/uncategorised/48/expected.json index 48a16dd3ba..128dc0844c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/48/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/48/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { @@ -106,5 +106,47 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "the", + "start": 3, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "range": [ + 3, + 10 + ] + }, + { + "type": "CommentBlock", + "value": "answer", + "start": 11, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "range": [ + 11, + 21 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/49/expected.json b/packages/babylon/test/fixtures/core/uncategorised/49/expected.json index 3571b1a22a..f60e121523 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/49/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/49/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 42, "end": 44, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": " multiline\ncomment\nshould\nbe\nignored ", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 10 + } + }, + "range": [ + 0, + 41 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/5/expected.json b/packages/babylon/test/fixtures/core/uncategorised/5/expected.json index 9b766664c8..00b6bbab99 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/5/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/5/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 0, "end": 8, "loc": { @@ -57,12 +57,10 @@ } }, "raw": "/[a-z]/g", - "regex": { - "pattern": "[a-z]", - "flags": "g" - } + "pattern": "[a-z]", + "flags": "g" } } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/50/expected.json b/packages/babylon/test/fixtures/core/uncategorised/50/expected.json index b39cabe82a..1941345514 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/50/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/50/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "a\nb", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "range": [ + 0, + 7 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/51/expected.json b/packages/babylon/test/fixtures/core/uncategorised/51/expected.json index 5028451839..a6794f44ff 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/51/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/51/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "a\rb", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "range": [ + 0, + 7 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/52/expected.json b/packages/babylon/test/fixtures/core/uncategorised/52/expected.json index b39cabe82a..1941345514 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/52/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/52/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "a\nb", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "range": [ + 0, + 7 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/527/expected.json b/packages/babylon/test/fixtures/core/uncategorised/527/expected.json index 26048dfd5a..966e0d2d6f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/527/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/527/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/528/expected.json b/packages/babylon/test/fixtures/core/uncategorised/528/expected.json index 769f0e0bf2..fc6d35a712 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/528/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/528/expected.json @@ -74,7 +74,7 @@ "name": "eval" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { @@ -123,7 +123,7 @@ "name": "arguments" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 27, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/529/expected.json b/packages/babylon/test/fixtures/core/uncategorised/529/expected.json index 72a0f70422..bd5767e5df 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/529/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/529/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -123,7 +123,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 17, "loc": { @@ -172,7 +172,7 @@ "name": "z" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 27, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/53/expected.json b/packages/babylon/test/fixtures/core/uncategorised/53/expected.json index 87e3d95851..3b798c3d36 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/53/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/53/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "a\nc", + "start": 0, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 3 + } + }, + "range": [ + 0, + 7 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/530/expected.json b/packages/babylon/test/fixtures/core/uncategorised/530/expected.json index 5f7188a434..e10d00d731 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/530/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/530/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/531/expected.json b/packages/babylon/test/fixtures/core/uncategorised/531/expected.json index e7d044a4ed..3d38c67b22 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/531/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/531/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { @@ -137,7 +137,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/533/expected.json b/packages/babylon/test/fixtures/core/uncategorised/533/expected.json index 7a3105b73c..dcf8a26650 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/533/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/533/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/534/expected.json b/packages/babylon/test/fixtures/core/uncategorised/534/expected.json index 6fe8322ba5..3a6addea10 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/534/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/534/expected.json @@ -74,7 +74,7 @@ "name": "eval" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 15, "loc": { @@ -123,7 +123,7 @@ "name": "arguments" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 29, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/535/expected.json b/packages/babylon/test/fixtures/core/uncategorised/535/expected.json index 8a1741ec4b..15ba33cd4d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/535/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/535/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { @@ -123,7 +123,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { @@ -172,7 +172,7 @@ "name": "z" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 25, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/537/expected.json b/packages/babylon/test/fixtures/core/uncategorised/537/expected.json index 7a71d52992..50fd4d6345 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/537/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/537/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { @@ -128,6 +128,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/54/expected.json b/packages/babylon/test/fixtures/core/uncategorised/54/expected.json index 848acc5805..526710b150 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/54/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 18, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " line comment", + "start": 0, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "range": [ + 0, + 15 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/540/expected.json b/packages/babylon/test/fixtures/core/uncategorised/540/expected.json index 1363375b12..3b9f0e4448 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/540/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/540/expected.json @@ -93,7 +93,7 @@ }, "operator": "/", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/541/expected.json b/packages/babylon/test/fixtures/core/uncategorised/541/expected.json index ece4393a86..93d8cd375b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/541/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/541/expected.json @@ -93,7 +93,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 16, "end": 21, "loc": { @@ -107,12 +107,10 @@ } }, "raw": "/ 1 /", - "regex": { - "pattern": " 1 ", - "flags": "" - } + "pattern": " 1 ", + "flags": "" } } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/55/expected.json b/packages/babylon/test/fixtures/core/uncategorised/55/expected.json index 5694227afb..b400dbe706 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/55/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/55/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { @@ -86,5 +86,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " line comment", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "range": [ + 3, + 18 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/56/expected.json b/packages/babylon/test/fixtures/core/uncategorised/56/expected.json index df154b7af9..337ed51862 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/56/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/56/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 19, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " Hello, world!", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "range": [ + 0, + 16 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/59/expected.json b/packages/babylon/test/fixtures/core/uncategorised/59/expected.json index 70cab4ee43..4ab335adab 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/59/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/59/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 3, "end": 5, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": "", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + }, + "range": [ + 0, + 2 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/6/expected.json b/packages/babylon/test/fixtures/core/uncategorised/6/expected.json index 22d4ac246e..deaf7c1729 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/6/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/6/expected.json @@ -71,7 +71,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 1, "end": 2, "loc": { @@ -90,7 +90,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 6, "loc": { @@ -111,7 +111,7 @@ }, "operator": "*", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/62/expected.json b/packages/babylon/test/fixtures/core/uncategorised/62/expected.json index b8e255f5e1..3b0389e5d0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/62/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/62/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 4, "end": 6, "loc": { @@ -85,5 +85,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": "", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "range": [ + 0, + 4 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/63/expected.json b/packages/babylon/test/fixtures/core/uncategorised/63/expected.json index b28ab11a53..291f749462 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/63/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/63/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 37, "end": 39, "loc": { @@ -105,5 +105,47 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " Hello, world!", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "range": [ + 0, + 16 + ] + }, + { + "type": "CommentLine", + "value": " Another hello", + "start": 18, + "end": 36, + "loc": { + "start": { + "line": 3, + "column": 0 + }, + "end": { + "line": 3, + "column": 18 + } + }, + "range": [ + 18, + 36 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/65/expected.json b/packages/babylon/test/fixtures/core/uncategorised/65/expected.json index 2ca6132248..2d16fc17b9 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/65/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/65/expected.json @@ -147,7 +147,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { @@ -168,5 +168,27 @@ ] } ] - } + }, + "comments": [ + { + "type": "CommentBlock", + "value": " perfect ", + "start": 27, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "range": [ + 27, + 40 + ] + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/66/expected.json b/packages/babylon/test/fixtures/core/uncategorised/66/expected.json index 3c10744dbc..ee7c3c8a44 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/66/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/66/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/67/expected.json b/packages/babylon/test/fixtures/core/uncategorised/67/expected.json index b5ce31672a..4e90f25295 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/67/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/67/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/68/expected.json b/packages/babylon/test/fixtures/core/uncategorised/68/expected.json index 8197c99729..5c479ec64e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/68/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/68/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/69/expected.json b/packages/babylon/test/fixtures/core/uncategorised/69/expected.json index c9032e42b5..674c028642 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/69/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/69/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/70/expected.json b/packages/babylon/test/fixtures/core/uncategorised/70/expected.json index 16bb765432..d8fd4c0959 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/70/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/70/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/71/expected.json b/packages/babylon/test/fixtures/core/uncategorised/71/expected.json index 77caa9f92d..c65f80bc71 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/71/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/71/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/72/expected.json b/packages/babylon/test/fixtures/core/uncategorised/72/expected.json index 0e80f889c4..6c9bd55f71 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/72/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/72/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/73/expected.json b/packages/babylon/test/fixtures/core/uncategorised/73/expected.json index a4929925aa..8aa93e63cc 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/73/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/73/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/74/expected.json b/packages/babylon/test/fixtures/core/uncategorised/74/expected.json index 80d8d72652..532733a4dd 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/74/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/74/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/75/expected.json b/packages/babylon/test/fixtures/core/uncategorised/75/expected.json index 9fbcefb6e6..58b2f24c7a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/75/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/75/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 6, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/76/expected.json b/packages/babylon/test/fixtures/core/uncategorised/76/expected.json index 76c1f1c523..ceaa8c3a17 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/76/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/76/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 5, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/77/expected.json b/packages/babylon/test/fixtures/core/uncategorised/77/expected.json index 0039bb62d0..f80d7c9cd5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/77/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/77/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 5, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/78/expected.json b/packages/babylon/test/fixtures/core/uncategorised/78/expected.json index 34f104d94a..75950798ba 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/78/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/78/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/79/expected.json b/packages/babylon/test/fixtures/core/uncategorised/79/expected.json index 60fe7b9e32..3ec2521ed5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/79/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/79/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/80/expected.json b/packages/babylon/test/fixtures/core/uncategorised/80/expected.json index 656eba441e..c9510f36fa 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/80/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/80/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 5, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/81/expected.json b/packages/babylon/test/fixtures/core/uncategorised/81/expected.json index 0f25cbbe5a..dd38ee8475 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/81/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/81/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/82/expected.json b/packages/babylon/test/fixtures/core/uncategorised/82/expected.json index a3d0753826..e4985f2b1e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/82/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/82/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/83/expected.json b/packages/babylon/test/fixtures/core/uncategorised/83/expected.json index 775be2d87f..8bb1dbdaf8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/83/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/83/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/84/expected.json b/packages/babylon/test/fixtures/core/uncategorised/84/expected.json index 3d5cb353e0..74b4910c7c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/84/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/84/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/85/expected.json b/packages/babylon/test/fixtures/core/uncategorised/85/expected.json index 8404808409..75243c6d6a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/85/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/85/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/86/expected.json b/packages/babylon/test/fixtures/core/uncategorised/86/expected.json index dcc47b071b..db9d18218f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/86/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/86/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/87/expected.json b/packages/babylon/test/fixtures/core/uncategorised/87/expected.json index 6fe6d8067b..21ac4d0633 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/87/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/87/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/88/expected.json b/packages/babylon/test/fixtures/core/uncategorised/88/expected.json index 6dd6810aa8..d98bbbf345 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/88/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/88/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 6, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/89/expected.json b/packages/babylon/test/fixtures/core/uncategorised/89/expected.json index 9cfa9faad2..fb56f80c47 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/89/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/89/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/9/expected.json b/packages/babylon/test/fixtures/core/uncategorised/9/expected.json index 6cae01b125..bd8886934c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/9/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/9/expected.json @@ -89,7 +89,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/90/expected.json b/packages/babylon/test/fixtures/core/uncategorised/90/expected.json index aaafd737c7..4b7d0df83e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/90/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/90/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/91/expected.json b/packages/babylon/test/fixtures/core/uncategorised/91/expected.json index 2e79d5b096..7f2af71438 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/91/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/91/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/92/expected.json b/packages/babylon/test/fixtures/core/uncategorised/92/expected.json index d25c9ba139..36c8089dfa 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/92/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/92/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/93/expected.json b/packages/babylon/test/fixtures/core/uncategorised/93/expected.json index 806ba7acba..73355963c0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/93/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/93/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/94/expected.json b/packages/babylon/test/fixtures/core/uncategorised/94/expected.json index 5b15026354..7fa2454d0e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/94/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/94/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/95/expected.json b/packages/babylon/test/fixtures/core/uncategorised/95/expected.json index e624d06929..f76c3f06ba 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/95/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/95/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/96/expected.json b/packages/babylon/test/fixtures/core/uncategorised/96/expected.json index bd2f1ea9ac..e3c5d34073 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/96/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/96/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/97/expected.json b/packages/babylon/test/fixtures/core/uncategorised/97/expected.json index 4ae045ff0c..313e3477d2 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/97/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/97/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/98/expected.json b/packages/babylon/test/fixtures/core/uncategorised/98/expected.json index 9774cae16c..ec00b5c923 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/98/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/98/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/core/uncategorised/99/expected.json b/packages/babylon/test/fixtures/core/uncategorised/99/expected.json index 09dd15f3b3..bdb5012bd7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/99/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/99/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json index 54b06ec57a..b3c4b6a133 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json @@ -89,7 +89,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { @@ -138,7 +138,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json index 417879a077..253be28d97 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json index 22f542ddac..567f02ad8f 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json index d4241aabc4..b094efe11f 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json index 6f55ed4658..be91d94441 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json index aaf8f84a1d..2fc3f311ee 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json index cae3efe70d..6720b43723 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json index 7a3105b73c..dcf8a26650 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json index 80198c2546..8b63e6bb33 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json @@ -89,7 +89,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json index 79a7b04629..55718cfc43 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json @@ -89,7 +89,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { @@ -138,7 +138,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 21, "loc": { @@ -187,7 +187,7 @@ "name": "z" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 27, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json index 546a1c4026..959d6454f7 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json @@ -124,7 +124,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 20, "end": 32, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json index c1db4cf35a..f5013969f2 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json @@ -139,7 +139,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 37, "end": 49, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json index 72f253f625..13d9c39d33 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json @@ -105,7 +105,7 @@ } }, "left": { - "type": "Literal", + "type": "StringLiteral", "start": 18, "end": 30, "loc": { @@ -124,7 +124,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 33, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json index 421e69547d..d6c387f1cf 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json @@ -89,7 +89,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json index 1614fceb4c..4159969a48 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json @@ -89,7 +89,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { @@ -138,7 +138,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { @@ -187,7 +187,7 @@ "name": "z" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 25, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json index 6fc51fdb6d..c18fa769b5 100644 --- a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json @@ -104,7 +104,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 15, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json index 97967a7597..32deb8d4e2 100644 --- a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json @@ -104,7 +104,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 15, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json index aac755fdd7..a37dc71384 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json @@ -110,7 +110,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json index acb3c68692..3952075405 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json @@ -111,7 +111,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json index bb4d92fc83..c80e27a7c8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json @@ -126,7 +126,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json index 055970fd64..11686156c6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json index 7c9c32e1c5..3f3f6aa64d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json @@ -81,7 +81,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json index f0c82eec3f..13bbbbceac 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json @@ -91,7 +91,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json index 536a85d158..2c1b12478e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json @@ -74,7 +74,7 @@ "elements": [] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json index 44ee381630..8dfe71997b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json @@ -108,7 +108,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json index 5d80c8dd9c..d06abc7113 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json @@ -91,7 +91,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json index 0a028a82f1..df31ae2fcd 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json @@ -249,7 +249,7 @@ "name": "e" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 28, "end": 29, "loc": { @@ -333,7 +333,7 @@ "name": "g" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 37, "end": 38, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json index 7118bc2683..cb533f681d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json @@ -106,7 +106,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json index 695be41271..c2fa502238 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json @@ -92,7 +92,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json index b45bc367e9..2726675278 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json @@ -118,7 +118,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 21, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json index da1c0b9799..48546eeb6c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json @@ -107,7 +107,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json index d7d0077c3d..982603fb4d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json @@ -143,7 +143,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json index 878f8d67a9..6e488ff2b1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json @@ -125,7 +125,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json index 7528bfa144..79abe75001 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json @@ -93,7 +93,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json index cdf259a636..ed4c1605fe 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json @@ -61,7 +61,7 @@ "expression": true, "params": [], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 6, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json index fd76eb8af9..c3e068731d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 5, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json index 1b9cab7e5c..dc38971fa7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 7, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json index 5a88aff7cb..4bdd74c258 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json @@ -94,7 +94,7 @@ } ], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 10, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json index a8c79cf5fc..ebd04a794b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json @@ -107,7 +107,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json index 616b8e8a5b..7a3afe8bd4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json @@ -126,7 +126,7 @@ "name": "property" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json index be00941649..287f532194 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json @@ -121,7 +121,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json index f79a8f0276..9a918edee0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json @@ -123,7 +123,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json index 7ad095e070..8b3e1161d1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json @@ -91,7 +91,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 3, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json index c45a0f326b..3351297bbe 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json index 6af42ac3f5..cdb3afb5bc 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json index 79998f9b16..c40f9bbb31 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json index 09c80c6f1e..95224d5129 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json @@ -94,7 +94,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json index 7549259432..645860e175 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json @@ -91,7 +91,7 @@ "name": "eval" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -111,7 +111,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json index 6ea224db79..fd39c13ced 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json @@ -107,7 +107,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { @@ -127,7 +127,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json index 8a76cf1c16..8368737c3f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json @@ -113,7 +113,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json index d75e50e145..607cd3e194 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json index 87c4066eaf..23356e76be 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json index 15344e54fd..be3c47afa8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json index 25eeb9786f..ae57cab25c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json index d42f8407c2..4937dfc854 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json index 6f8f49f4e1..e6cfe9f05a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json index 99cd27794e..0f5ada00b1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json @@ -59,7 +59,7 @@ "name": "A" }, "superClass": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json index 150f14ca4c..0048caa7d4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json @@ -104,7 +104,7 @@ "name": "A" }, "superClass": { - "type": "Literal", + "type": "NumberLiteral", "start": 24, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json index 8b28390427..c7f6cadc22 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json @@ -90,7 +90,7 @@ }, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 9, "end": 22, "loc": { @@ -161,7 +161,7 @@ }, "computed": true, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 28, "end": 41, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json index 0d65fe2441..90ed6197ca 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json @@ -90,7 +90,7 @@ }, "computed": true, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json index 897b90b1c4..0805cc723d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json @@ -58,7 +58,7 @@ }, "id": null, "superClass": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json index 80a74cd675..6b475a1756 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json @@ -73,7 +73,7 @@ "name": "A" }, "superClass": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json index 8b22c0b26b..8f7d2304f4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json @@ -122,7 +122,7 @@ "name": "y" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json index 8cbbeeddbb..beb32095e0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json @@ -92,7 +92,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json index 4f349927b9..133d3320bc 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json @@ -170,7 +170,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 21, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json index 574f634dc3..dcc67edb83 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json @@ -139,7 +139,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json index e56c4d8f57..734b745fab 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json @@ -77,7 +77,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 6, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json index 80579906b4..efd854b233 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json @@ -117,7 +117,7 @@ "name": "a" }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -140,7 +140,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json index b274610e61..63881f8131 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json @@ -119,7 +119,7 @@ "name": "b" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 6, "loc": { @@ -227,7 +227,7 @@ "name": "a" }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { @@ -269,7 +269,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 24, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json index 335b17c62c..72f41b4fa2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json @@ -172,7 +172,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json index 04a63a3079..17e17c57fe 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json @@ -91,7 +91,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json index 71ff2e0702..100e7a3484 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json @@ -74,7 +74,7 @@ "properties": [] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json index 65409260c0..a140649c5e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json @@ -467,7 +467,7 @@ "name": "b" }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 25, "end": 26, "loc": { @@ -531,7 +531,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 49, "end": 50, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json index 1689a3fe18..17e21344b3 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json @@ -543,7 +543,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 82, "end": 83, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json index 3291034455..49034362d5 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json @@ -90,7 +90,7 @@ "name": "foo" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json index 81384a8a1d..79dccfed7b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json @@ -57,7 +57,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 17, "loc": { @@ -76,7 +76,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 21, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json index b0579df273..440498ffc2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json index 3881690753..44f93db202 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json @@ -91,7 +91,7 @@ "name": "foo" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 22, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json index c23e216897..5c1b86ad08 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json @@ -43,7 +43,7 @@ } }, "source": { - "type": "Literal", + "type": "StringLiteral", "start": 14, "end": 19, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json index 9b94e4de83..d87b9e3ad0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json @@ -93,7 +93,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 22, "end": 27, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json index 1f80e99f3b..db67cc7139 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json @@ -93,7 +93,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 29, "end": 34, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json index 263e8769d4..2cf90b4252 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json @@ -93,7 +93,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 25, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json index 39ad36c9ac..dace6e4467 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json @@ -140,7 +140,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 34, "end": 39, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json index 37e27ba6b1..a8b61d3f41 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json @@ -93,7 +93,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 18, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json index 90f8b953b5..71f75f58fb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json @@ -140,7 +140,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 23, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json index a3474dbd50..c6b1bd5169 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json @@ -110,7 +110,7 @@ } }, "expression": { - "type": "Literal", + "type": "BooleanLiteral", "start": 26, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json index 63b6fdfeec..5801f4b21d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json @@ -90,7 +90,7 @@ "name": "foo" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json index af2ce633cb..9ebf178806 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json @@ -90,7 +90,7 @@ "name": "foo" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json index ed91c27238..f038000230 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json @@ -106,7 +106,7 @@ }, "delegate": true, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 25, "end": 26, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json index 1e6854a12e..3dc0ce6afb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json @@ -106,7 +106,7 @@ }, "delegate": false, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 24, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json index aada6e0350..273c61ba5e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json @@ -105,7 +105,7 @@ }, "delegate": false, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 21, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json index 86f538137e..4085e3da1c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json @@ -154,7 +154,7 @@ }, "delegate": true, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json index 652e20d1b3..1696922399 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json @@ -154,7 +154,7 @@ }, "delegate": false, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json index 4fc6768637..a207539d69 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json @@ -171,7 +171,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 24, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json index 9ceb584ddd..eff37004fc 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json @@ -74,7 +74,7 @@ "name": "await" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json index edc235cd14..fd674134a4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json @@ -123,7 +123,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 23, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json index f4121da033..c83ff40f18 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json @@ -107,7 +107,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 26, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json index ef53af8608..073f43503c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json @@ -92,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 29, "end": 34, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json index f65d947db8..691a530e45 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 16, "end": 21, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json index 5466ba5614..45b87643fb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 14, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json index bb56815106..652a62b72a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json @@ -44,7 +44,7 @@ }, "specifiers": [], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 7, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json index 58842b0c0d..4198564920 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json @@ -92,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 25, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json index b063a99cd2..197fd882b6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json @@ -139,7 +139,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 30, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json index a896b50ab1..45f291208c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json @@ -44,7 +44,7 @@ }, "specifiers": [], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 15, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json index 6a3be9f6d3..5c0b3036c9 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json @@ -92,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 18, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json index 2913832639..1dd153305f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json @@ -139,7 +139,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 24, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json index f5152845f5..afcf5e6751 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json @@ -139,7 +139,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 23, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json index 27b3e13863..7a3783c90d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 21, "end": 26, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json index 20286c5ce1..166aaf0ed8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json @@ -92,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 28, "end": 33, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json index 9cb6015642..e61945111a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json @@ -120,7 +120,7 @@ "name": "t" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 35, "end": 37, "loc": { @@ -159,7 +159,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json index c05da73d96..29fd63476c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 6, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/expected.json new file mode 100644 index 0000000000..6edbb3623f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/expected.json @@ -0,0 +1,238 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 7, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "__proto" + }, + "kind": "get", + "value": { + "type": "FunctionExpression", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "body": [] + } + } + }, + { + "type": "Property", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 20, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "NullLiteral", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 39, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 39, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NullLiteral", + "start": 50, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 50 + }, + "end": { + "line": 1, + "column": 54 + } + } + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/expected.json new file mode 100644 index 0000000000..9b1a68cb99 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NullLiteral", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 20, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 20, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "NullLiteral", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + } + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/expected.json new file mode 100644 index 0000000000..4b2175d058 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "NullLiteral", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 22, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NullLiteral", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + } + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/expected.json new file mode 100644 index 0000000000..2a84426d88 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "NullLiteral", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 22, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 22, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "'__proto__'" + }, + "value": { + "type": "NullLiteral", + "start": 35, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 39 + } + } + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/expected.json new file mode 100644 index 0000000000..7120e7bc0a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/expected.json @@ -0,0 +1,255 @@ +{ + "type": "File", + "start": 0, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 7, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "__proto__" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [] + } + } + }, + { + "type": "Property", + "start": 23, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 23, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": { + "type": "NullLiteral", + "start": 36, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 40 + } + } + }, + "kind": "init" + }, + { + "type": "Property", + "start": 42, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 42, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NullLiteral", + "start": 53, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 57 + } + } + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json index 226684195f..e61c4bc6c6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json @@ -91,7 +91,7 @@ "name": "__proto__" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 14, "end": 18, "loc": { @@ -103,10 +103,7 @@ "line": 1, "column": 18 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json index 799d51e116..10aa2e429a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json @@ -91,7 +91,7 @@ "name": "__proto__" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 14, "end": 18, "loc": { @@ -103,10 +103,7 @@ "line": 1, "column": 18 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json index 12192e3584..fb0485d90d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json @@ -91,7 +91,7 @@ "name": "__proto__" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 14, "end": 18, "loc": { @@ -103,10 +103,7 @@ "line": 1, "column": 18 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json index b85b34999c..b112cc6b98 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json @@ -91,7 +91,7 @@ "name": "__proto__" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 14, "end": 18, "loc": { @@ -103,10 +103,7 @@ "line": 1, "column": 18 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json index fb52590573..3a347ec1c3 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json @@ -75,7 +75,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 3, "end": 14, "loc": { @@ -93,7 +93,7 @@ "raw": "\"__proto__\"" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 16, "end": 20, "loc": { @@ -105,10 +105,7 @@ "line": 1, "column": 20 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json index 981e9ca6a1..ec071f8f38 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json @@ -75,7 +75,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 3, "end": 14, "loc": { @@ -93,7 +93,7 @@ "raw": "\"__proto__\"" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 16, "end": 20, "loc": { @@ -105,10 +105,7 @@ "line": 1, "column": 20 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json index aaff700170..a37ebb0e39 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json @@ -75,7 +75,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 3, "end": 14, "loc": { @@ -93,7 +93,7 @@ "raw": "\"__proto__\"" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 16, "end": 20, "loc": { @@ -105,10 +105,7 @@ "line": 1, "column": 20 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json index 92e920ccdd..5300afd3aa 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json @@ -75,7 +75,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 3, "end": 14, "loc": { @@ -93,7 +93,7 @@ "raw": "\"__proto__\"" }, "value": { - "type": "Literal", + "type": "NullLiteral", "start": 16, "end": 20, "loc": { @@ -105,10 +105,7 @@ "line": 1, "column": 20 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } }, "kind": "init" }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json index 7b239f85db..28f02d871c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json @@ -126,7 +126,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json index d3ba43788a..dd2b8aee4b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json @@ -93,7 +93,7 @@ "kind": "let" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json index dbbd5e0895..194a2277c7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json @@ -74,7 +74,7 @@ "properties": [] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json index 24ff27c2f1..cf2b1a4c73 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json @@ -74,7 +74,7 @@ "properties": [] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json index 1e70efa276..bcf6c6414e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json @@ -126,7 +126,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json index 3540998633..e35d04f735 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json @@ -188,7 +188,7 @@ "name": "b" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { @@ -322,7 +322,7 @@ "name": "f" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { @@ -413,7 +413,7 @@ ] }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 30, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json index 7071e2971b..1e3d179cd6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json index 198d34971a..ccdde2fe5f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json index 205a96ab16..b8fdcdd6b2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json @@ -91,7 +91,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 29, "loc": { @@ -124,7 +124,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 31, "end": 34, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json index 5e0a93482f..58c5a75980 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json index 99d27ef22c..fc506965ec 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json index b97a7679b0..0e4a704196 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json index e3ee2c9f37..ed92c39059 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json @@ -91,7 +91,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 29, "loc": { @@ -124,7 +124,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 31, "end": 34, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json index 0b852348e3..7c3f550db9 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json @@ -88,7 +88,7 @@ } }, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json index f0ce7bb220..0e3260dc1b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json @@ -88,7 +88,7 @@ } }, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json index ff1ee7f02a..d70c83f48b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json @@ -199,7 +199,7 @@ } }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 51, "end": 52, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json index 0dade7f955..6257eab282 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 45, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json index a2c5419a32..8119243646 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json index aa36f4ccae..84b416c9b8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 50, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json index 8572ac41d4..0ac274c801 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json index 0192886854..319843f197 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 45, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json index 965abbf51a..e2ea996f44 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 33, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json index 4fdb12deff..c1d8db8a5f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json index dec93c479a..950f430f09 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json @@ -74,7 +74,7 @@ "name": "yield" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { @@ -93,7 +93,7 @@ } } ], - "kind": "var" + "kind": "let" } ] } diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json index cff6332edb..b3a07a17aa 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json index 73ba30aca8..dc762096f1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json index d3ad9d674b..8adc9b67d6 100644 --- a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json @@ -57,7 +57,7 @@ } }, "left": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 12, "loc": { @@ -76,7 +76,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json index dcfe85d992..886a4c91ba 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 4, "end": 6, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json index 32e9683fad..087953e749 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json @@ -74,7 +74,7 @@ "name": "eval" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json index aadc603158..c40cefe77a 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json @@ -74,7 +74,7 @@ "name": "arguments" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json index c68b13b4a8..77c0b3f6fd 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json index 2a2e320c76..3ea5616140 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json index f61cd91960..3bb965131c 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json index d87bd7221e..623bec2d65 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json index 58ac4f76d5..169b55b357 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json index 6aec1fd6ae..395bbc5959 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json index 2afa7f1ab0..f2baaf2d7c 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json index 34ae7fde25..63767ff44b 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json index a97d4cb79e..22bf53cf58 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json index 7a092cae1b..52cfe31685 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json index 0c297787a4..0cb0e23497 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json index 355a73a1ad..9252297ac7 100644 --- a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json @@ -73,7 +73,7 @@ "name": "y" }, "consequent": { - "type": "Literal", + "type": "NumberLiteral", "start": 4, "end": 5, "loc": { @@ -91,7 +91,7 @@ "raw": "1" }, "alternate": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json index 618615ef5f..6d0cf5e9ff 100644 --- a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json @@ -105,7 +105,7 @@ } }, "consequent": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 10, "loc": { @@ -123,7 +123,7 @@ "raw": "1" }, "alternate": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json index 3875482cdf..9d2c4afc3f 100644 --- a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json @@ -88,7 +88,7 @@ } }, "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 6, "loc": { @@ -107,7 +107,7 @@ "parenthesizedExpression": true }, "consequent": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { @@ -125,7 +125,7 @@ "raw": "1" }, "alternate": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json index 68090be774..a926bd6ac4 100644 --- a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json @@ -71,7 +71,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 1, "end": 2, "loc": { @@ -91,7 +91,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 8, "loc": { @@ -112,7 +112,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json index df6409e3a6..efa51994a8 100644 --- a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json @@ -71,7 +71,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { @@ -90,7 +90,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 4, "end": 5, "loc": { @@ -110,7 +110,7 @@ }, "operator": "<<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json index cca9b0fc82..f26ab8b935 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json @@ -87,7 +87,7 @@ "name": "universe" }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json index 463a77c2e5..624c7b81b9 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json @@ -88,7 +88,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json index fab1521321..23d090fedc 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json @@ -116,7 +116,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 9, "end": 11, "loc": { @@ -155,7 +155,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 22, "end": 24, "loc": { @@ -173,7 +173,7 @@ "raw": "14" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 26, "end": 27, "loc": { @@ -191,7 +191,7 @@ "raw": "3" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 29, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json index 762a4f980c..080068549b 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json @@ -170,7 +170,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 40, "end": 44, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/expected.json new file mode 100644 index 0000000000..798f613862 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/expected.json @@ -0,0 +1,102 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 4, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "id": { + "type": "Identifier", + "start": 4, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "name": "x" + }, + "init": { + "type": "Literal", + "start": 8, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "raw": "/(s/g", + "regex": { + "pattern": "(s", + "flags": "g" + } + } + } + ], + "kind": "var" + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json index 167116741e..0590c2b7e6 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0092/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:7)" -} \ No newline at end of file + "throws": "Argument name clash in strict mode (1:4)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json index b3e95a5757..69a9237df8 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/options.json @@ -1,3 +1,3 @@ { - "throws": "Binding static in strict mode (1:23)" + "throws": "The keyword 'static' is reserved (1:23)" } diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json index 1d9fe4c071..15042df691 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json index de1ad554fa..be48009734 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json index 62a3160e6e..6c31c586d6 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json index afc5d3b147..650a39cbce 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json index 9ea0854331..40763456b0 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json index 3cadc13b16..bfea074cf1 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json index 661b7b9d0a..f43031468c 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json index 3c06ab2a96..3b684f46cb 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json index 9df58ecc04..6c809ee4ec 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json index 6ba5acf72c..5456f44f4a 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json index f78a5fc028..93af56eb06 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json index cf73b407c2..ddf30e2b43 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json index ab84cdb1ac..eee513b5d0 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json @@ -74,7 +74,7 @@ "name": "source" }, "init": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 24, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json index c1930814e6..086e802703 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json @@ -104,7 +104,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 21, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json index bede5565cc..07468bf95b 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 4, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json index 79b23952bd..828179ffc2 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 4, "end": 8, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json index a065c54055..298c6ed2b8 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json @@ -90,7 +90,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json index bcc441a257..cf9db0e4fd 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json @@ -90,7 +90,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json index 09c2e86050..3bd687b08d 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json @@ -187,7 +187,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 28, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json index 7a2fd03273..7666f67d1b 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json @@ -74,7 +74,7 @@ "body": [] }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 16, "end": 21, "loc": { @@ -107,7 +107,7 @@ } }, "expression": { - "type": "Literal", + "type": "BooleanLiteral", "start": 23, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json index a3c55814f4..033f8a99dd 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json @@ -90,7 +90,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 17, "end": 21, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json index 1ee7296f46..ff791459e4 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json @@ -90,7 +90,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 18, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json index e3ddda1e17..b68c4e6106 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json @@ -43,7 +43,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 7, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json index bf0cf79afd..c7381370ab 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json @@ -74,7 +74,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json index 0221127370..f45ca7088d 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json index 46c4e44c8f..6640f73295 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json index 5f7188a434..e10d00d731 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json index 20b89977b6..61391fdd9f 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json @@ -88,7 +88,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { @@ -137,7 +137,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json index 66dff360f5..fb76721dce 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { @@ -124,7 +124,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json index 1943c72a2e..f826f885de 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { @@ -124,7 +124,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json index ea41666efe..16f684a226 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { @@ -124,7 +124,7 @@ }, "operator": "<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json index eac72f5d2b..f06c613c23 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json @@ -138,7 +138,7 @@ ] }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json index cddf16fc26..c4f9e0e386 100644 --- a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 14, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json index 62e79f338e..9758d61707 100644 --- a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json @@ -139,7 +139,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json index b29ad0f66d..7400509d5f 100644 --- a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json @@ -139,7 +139,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json index fe437eefa7..dc9afaed76 100644 --- a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json @@ -91,7 +91,7 @@ "name": "message" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 24, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json index a5b0f49382..746c634e18 100644 --- a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json index 6ed6cc90fa..e88bd0e0af 100644 --- a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json @@ -74,7 +74,7 @@ "name": "eval" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { @@ -123,7 +123,7 @@ "name": "arguments" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 27, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json index 6b9e9e3f3a..f0f1cc157c 100644 --- a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json @@ -74,7 +74,7 @@ "name": "x" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -123,7 +123,7 @@ "name": "y" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 17, "loc": { @@ -172,7 +172,7 @@ "name": "z" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 27, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json b/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json index 6a7dde062f..1793ef0b6f 100644 --- a/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json +++ b/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json @@ -157,7 +157,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "StringLiteral", "start": 24, "end": 38, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json index 21fcf81f56..99ba85f172 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json @@ -122,7 +122,7 @@ "name": "a" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json index 04b1d89257..8ee2fcb4e1 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json @@ -121,7 +121,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 12, "loc": { @@ -139,7 +139,7 @@ "raw": "1" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { @@ -178,6 +178,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json index 2ac6e0d7d9..882187725b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json @@ -172,7 +172,7 @@ "name": "async" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 33, "end": 35, "loc": { @@ -197,6 +197,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json index b3b034a0f3..b292c27d73 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json @@ -74,7 +74,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json index b632f91acc..3f7882d5fb 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json @@ -121,7 +121,7 @@ "name": "async" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 19, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json index ae7ad96b18..10b9a29f22 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json @@ -170,7 +170,7 @@ "name": "foo" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json index b80d1e3d1d..3487223172 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json @@ -88,7 +88,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 15, "loc": { @@ -107,7 +107,7 @@ }, "operator": "**", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 19, "end": 20, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json index b60ecb31ce..fdf472db55 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json @@ -107,7 +107,7 @@ }, "static": false, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 18, "end": 23, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json index c04b1ed63a..9035cd541b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json @@ -107,7 +107,7 @@ }, "static": true, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 25, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json index bda9a3aa5f..529bbb3a16 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json @@ -140,7 +140,7 @@ }, "static": false, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 23, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json index 4a67cce782..0a295b8d9b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json @@ -140,7 +140,7 @@ }, "static": true, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 30, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json index dfcd786eed..1017436d55 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json @@ -155,7 +155,7 @@ "name": "bar" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 22, "end": 27, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json index 645aef02a4..8a1368ec93 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json @@ -57,7 +57,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { @@ -90,7 +90,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -109,7 +109,7 @@ }, "operator": "**", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json index 1ee24c7d22..982de0b582 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json @@ -123,7 +123,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 25, "end": 30, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json index fce4a529c1..6c2099d8f6 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json @@ -123,7 +123,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 30, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json index ce4be697a2..c0646aafb4 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 16, "end": 21, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json index 2808aa7406..1b94aadbe9 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 20, "end": 25, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json index a8787da9bf..e7128ee647 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 21, "end": 26, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json index 7f7e0e35a4..4935b2fec0 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json @@ -90,7 +90,7 @@ "name": "n" }, { - "type": "Literal", + "type": "StringLiteral", "start": 7, "end": 10, "loc": { @@ -108,7 +108,7 @@ "raw": "'='" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json index 81f0200f6c..9cf1dfe1ed 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json @@ -94,7 +94,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json index 15ed38285c..c0f4e3fb97 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json @@ -57,7 +57,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { @@ -90,7 +90,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 5, "end": 6, "loc": { @@ -109,7 +109,7 @@ }, "operator": "**", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/62/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/62/expected.json index 5b29d24e51..8b52f4f5bb 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/62/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/62/expected.json @@ -124,7 +124,7 @@ } ], "body": { - "type": "Literal", + "type": "NullLiteral", "start": 19, "end": 23, "loc": { @@ -136,10 +136,7 @@ "line": 1, "column": 23 } - }, - "value": null, - "rawValue": null, - "raw": "null" + } } } ] @@ -182,4 +179,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json index 2bf4b6353d..a2a7cb100c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json @@ -71,7 +71,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 1, "end": 2, "loc": { @@ -106,7 +106,7 @@ "operator": "-", "prefix": true, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 8, "loc": { @@ -128,7 +128,7 @@ }, "operator": "*", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json index f9cf647bff..adb1668c02 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json @@ -71,7 +71,7 @@ } }, "left": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 1, "loc": { @@ -106,7 +106,7 @@ "operator": "-", "prefix": true, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -127,7 +127,7 @@ }, "operator": "*", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { diff --git a/packages/babylon/test/fixtures/flow/declare-module/2/expected.json b/packages/babylon/test/fixtures/flow/declare-module/2/expected.json index 71ef4876cd..4b8d16c85b 100644 --- a/packages/babylon/test/fixtures/flow/declare-module/2/expected.json +++ b/packages/babylon/test/fixtures/flow/declare-module/2/expected.json @@ -43,7 +43,7 @@ } }, "id": { - "type": "Literal", + "type": "StringLiteral", "start": 15, "end": 25, "loc": { @@ -78,6 +78,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json b/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json index 41723449a1..b6f6514238 100644 --- a/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json +++ b/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json @@ -156,7 +156,7 @@ } }, "discriminant": { - "type": "Literal", + "type": "NumberLiteral", "start": 34, "end": 35, "loc": { @@ -436,7 +436,7 @@ }, "operator": "<<", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 144, "end": 145, "loc": { diff --git a/packages/babylon/test/fixtures/flow/tuples/3/expected.json b/packages/babylon/test/fixtures/flow/tuples/3/expected.json index 986bbd31ac..21c02d7040 100644 --- a/packages/babylon/test/fixtures/flow/tuples/3/expected.json +++ b/packages/babylon/test/fixtures/flow/tuples/3/expected.json @@ -136,7 +136,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 21, "end": 24, "loc": { @@ -160,6 +160,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/tuples/4/expected.json b/packages/babylon/test/fixtures/flow/tuples/4/expected.json index f78dc3b679..17eb3accf4 100644 --- a/packages/babylon/test/fixtures/flow/tuples/4/expected.json +++ b/packages/babylon/test/fixtures/flow/tuples/4/expected.json @@ -151,7 +151,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 28, "end": 31, "loc": { @@ -169,7 +169,7 @@ "raw": "123" }, { - "type": "Literal", + "type": "StringLiteral", "start": 33, "end": 39, "loc": { @@ -193,6 +193,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json index 6e91455db9..1b09f8300e 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "NumberLiteral", "start": 3, "end": 6, "loc": { @@ -310,6 +310,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json index 98db1ba294..a13ad52d6e 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json @@ -167,7 +167,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 24, "loc": { @@ -185,7 +185,7 @@ "raw": "1" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 26, "end": 27, "loc": { @@ -203,7 +203,7 @@ "raw": "2" }, { - "type": "Literal", + "type": "NumberLiteral", "start": 29, "end": 30, "loc": { @@ -227,6 +227,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json index a30fc23bd0..d251f51520 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json @@ -219,7 +219,7 @@ } }, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 40, "end": 42, "loc": { @@ -278,6 +278,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json index efaa54f891..1168baaca8 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json @@ -90,7 +90,7 @@ }, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 12, "end": 17, "loc": { @@ -183,6 +183,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json index ba55a107da..7b5fe45e43 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json @@ -136,7 +136,7 @@ } }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 26, "end": 27, "loc": { @@ -158,6 +158,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json index 4a4f09bb41..e74d96fd69 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json @@ -255,7 +255,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 30, "end": 37, "loc": { @@ -281,6 +281,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json index da30aa7d42..e0d9d00c06 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json @@ -255,7 +255,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 29, "end": 36, "loc": { @@ -281,6 +281,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json index bb2b505c32..505317d656 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json @@ -184,7 +184,7 @@ }, "elements": [ { - "type": "Literal", + "type": "StringLiteral", "start": 27, "end": 34, "loc": { @@ -208,6 +208,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json index 6e9f5fb118..6a74fc876f 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json @@ -77,7 +77,7 @@ ], "importKind": "type", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 21, "end": 26, "loc": { @@ -96,6 +96,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json index 6a3d90e3fc..645f92bcbf 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json @@ -77,7 +77,7 @@ ], "importKind": "typeof", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 23, "end": 28, "loc": { @@ -96,6 +96,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json index c89dc1f3e2..58a81038df 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json @@ -140,7 +140,7 @@ ], "importKind": "type", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 28, "end": 33, "loc": { @@ -159,6 +159,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json index bc7f70f9d0..3877416eba 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json @@ -93,7 +93,7 @@ ], "importKind": "typeof", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 32, "end": 37, "loc": { @@ -112,6 +112,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json index ea96875cff..11fcfc35ba 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json @@ -77,7 +77,7 @@ ], "importKind": "value", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 22, "loc": { @@ -96,6 +96,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json index 68d7ec00e2..f12baf85de 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json @@ -124,7 +124,7 @@ ], "importKind": "value", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 24, "end": 29, "loc": { @@ -143,6 +143,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json index ded0af06a1..770d5376af 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json @@ -77,7 +77,7 @@ ], "importKind": "type", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 32, "end": 37, "loc": { @@ -96,6 +96,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json index c1262eb5ba..4570cc24e3 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json @@ -77,7 +77,7 @@ ], "importKind": "typeof", "source": { - "type": "Literal", + "type": "StringLiteral", "start": 34, "end": 39, "loc": { @@ -96,6 +96,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json b/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json index b0ed4559fe..a02b5f1134 100644 --- a/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json +++ b/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json @@ -42,7 +42,6 @@ "column": 34 } }, - "exportKind": "type", "specifiers": [ { "type": "ExportSpecifier", @@ -93,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 25, "end": 33, "loc": { @@ -110,6 +109,7 @@ "rawValue": "foobar", "raw": "\"foobar\"" }, + "exportKind": "type", "declaration": null } ] diff --git a/packages/babylon/test/fixtures/flow/typecasts/2/expected.json b/packages/babylon/test/fixtures/flow/typecasts/2/expected.json index b703a717b9..d336563032 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/2/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/2/expected.json @@ -105,7 +105,7 @@ "name": "xxx" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 8, "loc": { @@ -158,7 +158,7 @@ "name": "yyy" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 15, "end": 20, "loc": { @@ -311,6 +311,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/typecasts/3/expected.json b/packages/babylon/test/fixtures/flow/typecasts/3/expected.json index 6a5173baa1..b11b08e49e 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/3/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/3/expected.json @@ -124,7 +124,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 17, "loc": { @@ -243,6 +243,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json b/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json index df5fedc3b7..ffcd91d394 100644 --- a/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json +++ b/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json @@ -138,7 +138,7 @@ "arguments": [] }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 23, "end": 25, "loc": { @@ -164,6 +164,5 @@ "kind": "var" } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json index a9ae440c03..6a4ff90185 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 18, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json index cf7579fc2b..263b4b83d5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json index 2bbbe1257e..2e0186e88f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json @@ -120,7 +120,7 @@ }, "delegate": false, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 28, "end": 30, "loc": { @@ -146,6 +146,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json index a6833d9df8..372c9fce63 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json index eaf92df189..607cd3e194 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json index 4cf591f784..76c74308aa 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 12, "loc": { @@ -243,6 +243,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json index 7a76a503ec..964171a1ab 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json @@ -90,7 +90,7 @@ }, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 9, "end": 22, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json index 2f625b7911..23356e76be 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json index c0bdfdc191..6f0fe5e565 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 12, "loc": { @@ -243,6 +243,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json index 49de700092..be3c47afa8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json index 3ab0349417..d47fdad79c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json @@ -91,7 +91,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { @@ -115,6 +115,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json index 970e72e609..259c9600a4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json @@ -89,7 +89,7 @@ } }, "left": { - "type": "Literal", + "type": "StringLiteral", "start": 3, "end": 6, "loc": { @@ -108,7 +108,7 @@ }, "operator": "+", "right": { - "type": "Literal", + "type": "StringLiteral", "start": 9, "end": 12, "loc": { @@ -127,7 +127,7 @@ } }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { @@ -151,6 +151,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json index 682d65ed9c..2e3bc139b5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json @@ -91,7 +91,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { @@ -144,7 +144,7 @@ "name": "y" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { @@ -168,6 +168,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json index 611801c26d..ae57cab25c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json index 045e5e565d..f48012f5a7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json @@ -124,7 +124,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { @@ -163,6 +163,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json index 2fbb48c993..c58bffb9c1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json @@ -192,7 +192,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 21, "end": 23, "loc": { @@ -233,6 +233,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json index 5c0d184dea..da3399ea06 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json @@ -222,7 +222,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { @@ -265,6 +265,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json index 446945cf11..e1d8689d55 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json @@ -239,7 +239,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 24, "end": 26, "loc": { @@ -286,6 +286,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json index f1b3b84818..02567ac39f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json @@ -240,7 +240,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { @@ -286,6 +286,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json index 8f9e16207b..2995b318d4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json @@ -255,7 +255,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 22, "loc": { @@ -302,6 +302,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json index eef638df4a..a58c38c687 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json @@ -191,7 +191,7 @@ "name": "x" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { @@ -234,6 +234,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json index 1f57c33a36..8f7d2304f4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json @@ -122,7 +122,7 @@ "name": "y" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 18, "loc": { @@ -161,6 +161,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json index 112c7f0752..4937dfc854 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json index b9dcf3ed65..beb32095e0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json @@ -92,7 +92,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 16, "loc": { @@ -129,6 +129,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json index 50711e7b4a..133d3320bc 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json @@ -170,7 +170,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 20, "end": 21, "loc": { @@ -213,6 +213,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json index 5ba4e49328..36f0dea590 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json @@ -171,7 +171,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { @@ -213,6 +213,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json index 5c09cfb02a..e6cfe9f05a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json index 2ca03c6467..0f0150fd2b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 0, "end": 8, "loc": { @@ -57,10 +57,8 @@ } }, "raw": "/[a-z]/u", - "regex": { - "pattern": "[a-z]", - "flags": "u" - } + "pattern": "[a-z]", + "flags": "u" } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json index c8b5823f15..13ccb35613 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "RegexLiteral", "start": 0, "end": 33, "loc": { @@ -57,10 +57,8 @@ } }, "raw": "/[\\uD834\\uDF06-\\uD834\\uDF08a-z]/u", - "regex": { - "pattern": "[\\uD834\\uDF06-\\uD834\\uDF08a-z]", - "flags": "u" - } + "pattern": "[\\uD834\\uDF06-\\uD834\\uDF08a-z]", + "flags": "u" } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json index 8b60d84c91..aa7ff354b4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json @@ -59,7 +59,7 @@ "body": [] }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 13, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json index fd4079e13c..5a854ab9f5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 0, "end": 27, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json index 836f9f66a5..3d0fad6ce6 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json @@ -74,7 +74,7 @@ }, "operator": "*", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { @@ -94,6 +94,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json index 4c98e444eb..3aef2ac8d9 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json @@ -109,7 +109,7 @@ }, "operator": "*", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { @@ -130,6 +130,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json index 0a6392a4fb..970d0563d8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json @@ -121,7 +121,7 @@ }, "operator": "*", "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 22, "end": 24, "loc": { @@ -146,6 +146,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json index a3d1a0b6eb..08ba30f47d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json @@ -154,7 +154,7 @@ "name": "y" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 16, "end": 18, "loc": { @@ -242,7 +242,7 @@ } }, "argument": { - "type": "Literal", + "type": "NumberLiteral", "start": 53, "end": 54, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json index e66752bc00..e61945111a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json @@ -120,7 +120,7 @@ "name": "t" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 35, "end": 37, "loc": { @@ -159,7 +159,7 @@ } ], "test": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { @@ -180,6 +180,5 @@ ] } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json index e05229464f..ed4c1605fe 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json @@ -61,7 +61,7 @@ "expression": true, "params": [], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 6, "end": 12, "loc": { @@ -81,6 +81,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json index 59c25b25cd..c3e068731d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 5, "end": 11, "loc": { @@ -98,6 +98,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json index f5ca6c6f39..1e3d179cd6 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 2, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json index b0d9fc44f3..dc38971fa7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 7, "end": 13, "loc": { @@ -98,6 +98,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json index c19f8b6668..89a1eb3ff5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json @@ -108,7 +108,7 @@ "name": "y" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 23, "end": 25, "loc": { @@ -146,4 +146,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json index 748f7b6f7d..448e59b1ff 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json @@ -107,7 +107,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 26, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json index 1fca349af8..293ea2a087 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json @@ -137,7 +137,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -178,6 +178,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json index dcfb5844b9..2517a00a40 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json @@ -140,7 +140,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 6, "end": 7, "loc": { @@ -181,6 +181,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json index 274eb057e7..78a133f6c2 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json @@ -216,7 +216,7 @@ "name": "c" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 14, "loc": { @@ -262,6 +262,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json index b53fa03e5e..4bdd74c258 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json @@ -94,7 +94,7 @@ } ], "body": { - "type": "Literal", + "type": "StringLiteral", "start": 10, "end": 16, "loc": { @@ -114,6 +114,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json index 6b94dc1312..aba62152a7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json @@ -122,7 +122,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 11, "loc": { @@ -176,6 +176,5 @@ } } ] - }, - "comments": [] -} + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json index a39ad7b107..49647b97c8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json @@ -100,7 +100,7 @@ } }, "object": { - "type": "Literal", + "type": "RegexLiteral", "start": 3, "end": 7, "loc": { @@ -114,10 +114,8 @@ } }, "raw": "/\\d/", - "regex": { - "pattern": "\\d", - "flags": "" - } + "pattern": "\\d", + "flags": "" }, "property": { "type": "Identifier", @@ -139,7 +137,7 @@ }, "arguments": [ { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 16, "loc": { @@ -159,7 +157,7 @@ ] }, "property": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 19, "loc": { @@ -225,4 +223,4 @@ } ] } -} +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json index 76c700c7ee..bb330b9204 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json @@ -74,7 +74,7 @@ "name": "_𐒦" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json index 15bd7d71f1..136c5bbf00 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json @@ -74,7 +74,7 @@ "name": "_𐒦" }, "init": { - "type": "Literal", + "type": "NumberLiteral", "start": 17, "end": 19, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json index 5f23cad1a9..ebd04a794b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json @@ -107,7 +107,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { @@ -130,6 +130,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json index 45a5aee6ba..e03993bade 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json @@ -106,7 +106,7 @@ }, "elements": [ { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 13, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json index 6f01dc81ea..4accd0cb4a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json @@ -92,7 +92,7 @@ ] }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 9, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json index 73ca4f7fdb..7a3afe8bd4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json @@ -126,7 +126,7 @@ "name": "property" }, "value": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 20, "loc": { @@ -151,6 +151,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json index 4df49d304a..1f7043e170 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json @@ -108,7 +108,7 @@ } }, "expression": { - "type": "Literal", + "type": "BooleanLiteral", "start": 33, "end": 38, "loc": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json index 959082456b..287f532194 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json @@ -121,7 +121,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { @@ -161,6 +161,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/343/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/343/expected.json new file mode 100644 index 0000000000..dd64dc845d --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/343/expected.json @@ -0,0 +1,68 @@ +{ + "type": "File", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "expression": { + "type": "Literal", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "raw": "/\\u{110000}/u", + "regex": { + "pattern": "\\u{110000}", + "flags": "u" + } + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/349/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/349/expected.json new file mode 100644 index 0000000000..0ea21db861 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/349/expected.json @@ -0,0 +1,174 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "properties": [ + { + "type": "Property", + "start": 3, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 3, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "value": "__proto__", + "rawValue": "__proto__", + "raw": "'__proto__'" + }, + "value": { + "type": "NumberLiteral", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "value": 1, + "rawValue": 1, + "raw": "1" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 19, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NumberLiteral", + "start": 30, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": 2, + "rawValue": 2, + "raw": "2" + }, + "kind": "init" + } + ], + "parenthesizedExpression": true + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json index 484d42d231..9a918edee0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json @@ -123,7 +123,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 12, "end": 14, "loc": { @@ -146,6 +146,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json index bde5188bf8..a1ba25b09e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json @@ -112,7 +112,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 14, "end": 16, "loc": { @@ -132,6 +132,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json index ad9e441cca..8b3e1161d1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json @@ -91,7 +91,7 @@ "name": "x" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 3, "end": 4, "loc": { @@ -161,6 +161,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json index 6288501cd1..ccdde2fe5f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json index 61c99a2fcc..3351297bbe 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -98,6 +98,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json index 94171780d3..cdb3afb5bc 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 15, "loc": { @@ -98,6 +98,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json index 657dea1e69..c40f9bbb31 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json @@ -78,7 +78,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 7, "end": 9, "loc": { @@ -98,6 +98,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json index a7af5109dd..95224d5129 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json @@ -94,7 +94,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 13, "end": 15, "loc": { @@ -114,6 +114,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json index f887ecd168..645860e175 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json @@ -91,7 +91,7 @@ "name": "eval" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 8, "end": 10, "loc": { @@ -111,7 +111,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { @@ -131,6 +131,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json index f45d522944..fd39c13ced 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json @@ -107,7 +107,7 @@ "name": "a" }, "right": { - "type": "Literal", + "type": "NumberLiteral", "start": 11, "end": 13, "loc": { @@ -127,7 +127,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 18, "end": 20, "loc": { @@ -147,6 +147,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json index 3b77c8e476..8368737c3f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json @@ -113,7 +113,7 @@ } ], "body": { - "type": "Literal", + "type": "NumberLiteral", "start": 10, "end": 12, "loc": { @@ -134,6 +134,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json index e213587beb..b8fdcdd6b2 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json @@ -91,7 +91,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 29, "loc": { @@ -124,7 +124,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 31, "end": 34, "loc": { @@ -146,6 +146,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json index 8d4c180d13..29fd63476c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json @@ -106,7 +106,7 @@ "shorthand": false, "computed": false, "key": { - "type": "Literal", + "type": "StringLiteral", "start": 6, "end": 14, "loc": { @@ -165,6 +165,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json index 920e80aa74..58c5a75980 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json index 32784e3d69..fc506965ec 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 4, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json index 5fcf2bac2b..514934f092 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "Literal", + "type": "NumberLiteral", "start": 15, "end": 17, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json index 1f7b741877..0e4a704196 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json @@ -43,7 +43,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 0, "end": 3, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json index 0650eea051..70d15519cf 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json @@ -43,7 +43,7 @@ } }, "source": { - "type": "Literal", + "type": "StringLiteral", "start": 14, "end": 22, "loc": { @@ -62,6 +62,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json index cfb1516d82..ed92c39059 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json @@ -91,7 +91,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 17, "end": 29, "loc": { @@ -124,7 +124,7 @@ } }, "expression": { - "type": "Literal", + "type": "NumberLiteral", "start": 31, "end": 34, "loc": { @@ -146,6 +146,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json index 49b363d4b6..ff8fd42d6a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json @@ -93,7 +93,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 24, "end": 31, "loc": { @@ -112,6 +112,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json index 2f38963800..6e11605ec5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json @@ -44,7 +44,7 @@ }, "specifiers": [], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 7, "end": 15, "loc": { @@ -63,6 +63,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json index 4682d05c0c..45b87643fb 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 14, "end": 22, "loc": { @@ -95,6 +95,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json index 082b8631eb..6c4333a59a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json @@ -139,7 +139,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 33, "end": 41, "loc": { @@ -158,6 +158,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json index 00a9ffa137..9df1956fbe 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json @@ -92,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 31, "end": 39, "loc": { @@ -111,6 +111,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json index 0d5c48622d..140aa920e3 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json @@ -170,7 +170,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 48, "end": 56, "loc": { @@ -189,6 +189,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json index d5bc7664d0..166aaf0ed8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json @@ -92,7 +92,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 28, "end": 33, "loc": { @@ -111,6 +111,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json index 1687774468..3ab53b9b3e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json @@ -76,7 +76,7 @@ } ], "source": { - "type": "Literal", + "type": "StringLiteral", "start": 24, "end": 32, "loc": { @@ -95,6 +95,5 @@ } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/11/expected.json b/packages/babylon/test/fixtures/jsx/basic/11/expected.json index 032ce25604..0386be294e 100644 --- a/packages/babylon/test/fixtures/jsx/basic/11/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/11/expected.json @@ -122,7 +122,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 5, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/12/expected.json b/packages/babylon/test/fixtures/jsx/basic/12/expected.json index 1f3d2013ac..ebf4b56508 100644 --- a/packages/babylon/test/fixtures/jsx/basic/12/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/12/expected.json @@ -172,7 +172,7 @@ "children": [] }, { - "type": "Literal", + "type": "JSXText", "start": 11, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/13/expected.json b/packages/babylon/test/fixtures/jsx/basic/13/expected.json index 4d358e1604..6021b7c324 100644 --- a/packages/babylon/test/fixtures/jsx/basic/13/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/13/expected.json @@ -149,7 +149,8 @@ "selfClosing": true }, "closingElement": null, - "children": [] + "children": [], + "rawValue": null } }, { @@ -262,7 +263,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 31, "end": 50, "loc": { @@ -279,7 +280,8 @@ "rawValue": null, "raw": "monkeys /> gorillas" } - ] + ], + "rawValue": null } } ], diff --git a/packages/babylon/test/fixtures/jsx/basic/18/expected.json b/packages/babylon/test/fixtures/jsx/basic/18/expected.json index d1b336d98a..4e3544be8b 100644 --- a/packages/babylon/test/fixtures/jsx/basic/18/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/18/expected.json @@ -133,7 +133,7 @@ "name": "post" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 21, "end": 32, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/19/expected.json b/packages/babylon/test/fixtures/jsx/basic/19/expected.json index bce1bcea7f..ebafdd1cd7 100644 --- a/packages/babylon/test/fixtures/jsx/basic/19/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/19/expected.json @@ -102,7 +102,7 @@ "name": "pre" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 9, "end": 18, "loc": { @@ -151,7 +151,7 @@ "name": "pre2" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 24, "end": 35, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/3/expected.json b/packages/babylon/test/fixtures/jsx/basic/3/expected.json index 0f475db901..bbea012bdf 100644 --- a/packages/babylon/test/fixtures/jsx/basic/3/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/3/expected.json @@ -133,7 +133,7 @@ } }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 9, "end": 14, "loc": { @@ -203,7 +203,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 15, "end": 16, "loc": { @@ -252,7 +252,7 @@ } }, { - "type": "Literal", + "type": "JSXText", "start": 23, "end": 24, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/4/expected.json b/packages/babylon/test/fixtures/jsx/basic/4/expected.json index 7d7feea21e..f0367e5afa 100644 --- a/packages/babylon/test/fixtures/jsx/basic/4/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/4/expected.json @@ -116,7 +116,7 @@ } }, "expression": { - "type": "Literal", + "type": "StringLiteral", "start": 6, "end": 9, "loc": { @@ -166,7 +166,7 @@ "name": "c" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 16, "loc": { @@ -215,7 +215,7 @@ "name": "d" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 19, "end": 26, "loc": { @@ -264,7 +264,7 @@ "name": "e" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 29, "end": 37, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/7/expected.json b/packages/babylon/test/fixtures/jsx/basic/7/expected.json index 86927f63d6..6a87f0a92a 100644 --- a/packages/babylon/test/fixtures/jsx/basic/7/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/7/expected.json @@ -102,7 +102,7 @@ "name": "test" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 16, "end": 31, "loc": { @@ -172,7 +172,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 32, "end": 41, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/basic/keyword-tag/expected.json b/packages/babylon/test/fixtures/jsx/basic/keyword-tag/expected.json new file mode 100644 index 0000000000..310e29dd35 --- /dev/null +++ b/packages/babylon/test/fixtures/jsx/basic/keyword-tag/expected.json @@ -0,0 +1,128 @@ +{ + "type": "File", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "JSXElement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "openingElement": { + "type": "JSXOpeningElement", + "start": 0, + "end": 5, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 5 + } + }, + "attributes": [], + "name": { + "type": "JSXIdentifier", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "var" + }, + "selfClosing": false + }, + "closingElement": { + "type": "JSXClosingElement", + "start": 5, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": { + "type": "JSXIdentifier", + "start": 7, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "var" + } + }, + "children": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/namespace-tag/expected.json b/packages/babylon/test/fixtures/jsx/basic/namespace-tag/expected.json new file mode 100644 index 0000000000..9070b5a80f --- /dev/null +++ b/packages/babylon/test/fixtures/jsx/basic/namespace-tag/expected.json @@ -0,0 +1,286 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "expression": { + "type": "JSXElement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "openingElement": { + "type": "JSXOpeningElement", + "start": 0, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "attributes": [], + "name": { + "type": "JSXNamespacedName", + "start": 1, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "namespace": { + "type": "JSXIdentifier", + "start": 1, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 4 + } + }, + "name": "Foo" + }, + "name": { + "type": "JSXIdentifier", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "Bar" + } + }, + "selfClosing": true + }, + "closingElement": null, + "children": [] + } + }, + { + "type": "ExpressionStatement", + "start": 13, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "expression": { + "type": "JSXElement", + "start": 13, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "openingElement": { + "type": "JSXOpeningElement", + "start": 13, + "end": 22, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 9 + } + }, + "attributes": [], + "name": { + "type": "JSXNamespacedName", + "start": 14, + "end": 21, + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "namespace": { + "type": "JSXIdentifier", + "start": 14, + "end": 17, + "loc": { + "start": { + "line": 2, + "column": 1 + }, + "end": { + "line": 2, + "column": 4 + } + }, + "name": "Foo" + }, + "name": { + "type": "JSXIdentifier", + "start": 18, + "end": 21, + "loc": { + "start": { + "line": 2, + "column": 5 + }, + "end": { + "line": 2, + "column": 8 + } + }, + "name": "Bar" + } + }, + "selfClosing": false + }, + "closingElement": { + "type": "JSXClosingElement", + "start": 22, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "name": { + "type": "JSXNamespacedName", + "start": 24, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "namespace": { + "type": "JSXIdentifier", + "start": 24, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "name": "Foo" + }, + "name": { + "type": "JSXIdentifier", + "start": 28, + "end": 31, + "loc": { + "start": { + "line": 2, + "column": 15 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "name": "Bar" + } + } + }, + "children": [] + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/1/expected.json b/packages/babylon/test/fixtures/jsx/regression/1/expected.json index 5a09d6bfde..e81c2275a0 100644 --- a/packages/babylon/test/fixtures/jsx/regression/1/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/1/expected.json @@ -122,7 +122,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 3, "end": 7, "loc": { @@ -199,7 +199,7 @@ "name": "href" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 15, "end": 21, "loc": { @@ -269,7 +269,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 22, "end": 26, "loc": { @@ -289,7 +289,7 @@ ] }, { - "type": "Literal", + "type": "JSXText", "start": 30, "end": 34, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/regression/4/expected.json b/packages/babylon/test/fixtures/jsx/regression/4/expected.json index f3c24eb4d5..3b7587e891 100644 --- a/packages/babylon/test/fixtures/jsx/regression/4/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/4/expected.json @@ -122,7 +122,7 @@ }, "children": [ { - "type": "Literal", + "type": "JSXText", "start": 5, "end": 10, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/regression/6/expected.json b/packages/babylon/test/fixtures/jsx/regression/6/expected.json index dda6e404ca..8a34a3b69a 100644 --- a/packages/babylon/test/fixtures/jsx/regression/6/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/6/expected.json @@ -102,7 +102,7 @@ "name": "pre" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 9, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/regression/7/expected.json b/packages/babylon/test/fixtures/jsx/regression/7/expected.json index a37ebed7c8..0a092459c2 100644 --- a/packages/babylon/test/fixtures/jsx/regression/7/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/7/expected.json @@ -102,7 +102,7 @@ "name": "d" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 8, "end": 60, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json b/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json index 258d659c46..fd7a654768 100644 --- a/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json @@ -57,7 +57,7 @@ } }, "test": { - "type": "Literal", + "type": "BooleanLiteral", "start": 0, "end": 4, "loc": { diff --git a/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json b/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json index 9259331d8f..303c0e4ca7 100644 --- a/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json @@ -102,7 +102,7 @@ "name": "pattern" }, "value": { - "type": "Literal", + "type": "StringLiteral", "start": 13, "end": 43, "loc": { From 20bcdc0206df263ad5d5d2d7786e2a3a8240333d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 1 Sep 2015 04:49:29 +0100 Subject: [PATCH 035/174] add rollback support to publish script --- scripts/publish.js | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/scripts/publish.js b/scripts/publish.js index 5a10aa948e..6961235436 100755 --- a/scripts/publish.js +++ b/scripts/publish.js @@ -2,6 +2,7 @@ require("shelljs/global"); var readline = require("readline-sync"); var semver = require("semver"); +var chalk = require("chalk"); var child = require("child_process"); var fs = require("fs"); @@ -55,6 +56,10 @@ function getPackageLocation(name) { return PACKAGE_LOC + "/" + name; } +function getPackageConfig(name) { + return require(getPackageLocation(name) + "/package.json"); +} + // function publish() { @@ -69,23 +74,25 @@ function publish() { var changedFiles = [VERSION_LOC]; packageNames.forEach(function (name) { + var config = getPackageConfig(name); + if (config.private) return; + // check if package has changed since last release var diff = exec("git diff " + lastTag + " -- " + getPackageLocation(name)); if (diff || FORCE_VERSION.indexOf("*") >= 0 || FORCE_VERSION.indexOf(name) >= 0) { - console.log("Changes detected to package", name); + console.log(chalk.green("Changes detected to package", name)); changedPackages.push(name); } }); if (!changedPackages.length) { - throw new Error("No packages changed."); + throw new Error(chalk.red("No packages changed.")); } // changedPackages.forEach(function (name) { - var loc = getPackageLocation(name); - var pkgLoc = loc + "/package.json"; + var pkgLoc = getPackageLocation(name) + "/package.json"; var pkg = require(pkgLoc); // set new version @@ -128,18 +135,37 @@ function publish() { // postpublish script var postPub = loc + "/scripts/postpublish.js"; if (fs.existsSync(postPub)) require(postPub); + publishedPackages.push(name); }); } -var originalCommit = exec(""); +var publishedPackages = []; +var originalCommit = exec("git rev-list --all --max-count=1");; try { publish(); } catch (err) { - // todo: unpublish npm packages already created + console.log(chalk.red("There was a problem publishing.")); console.log(err.stack); - console.log("Rolling back to commit", originalCommit, "..."); - exec("git checkout --hard " + originalCommit, true); + + if (publishedPackages.length) { + console.log(chalk.warning("Unpublishing published packages...")); + + publishedPackages.forEach(function () { + var verInfo = name + "@" + NEW_VERSION; + try { + console.log(chalk.warning("Unpublishing " + verInfo "...")); + exec("npm unpublish --force " + verInfo); + } catch (err) { + console.log(chalk.red("Failed to unpublish " + verInfo)); + console.log(err.stack); + } + }); + } else { + console.log(chalk.warning("Rolling back to commit", originalCommit, "...")); + exec("git checkout --hard " + originalCommit, true); + } + return; } From 582061a9e8c44388beaf1808b48139649f0f7a7b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 1 Sep 2015 04:49:42 +0100 Subject: [PATCH 036/174] move mocha.opts into test directory --- mocha.opts => test/mocha.opts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mocha.opts => test/mocha.opts (100%) diff --git a/mocha.opts b/test/mocha.opts similarity index 100% rename from mocha.opts rename to test/mocha.opts From 15f73b4fc393fef9763051f242d9466b633fbc83 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 1 Sep 2015 04:56:03 +0100 Subject: [PATCH 037/174] remove noisy comments/documentation --- packages/babel-cli/README.md | 4 - packages/babel-code-frame/README.md | 1 + packages/babel-core/README.md | 1 + packages/babel-core/src/README.md | 4 - packages/babel-core/src/api/README.md | 18 -- packages/babel-core/src/helpers/README.md | 4 - packages/babel-core/src/tools/README.md | 15 -- .../src/tools/build-external-helpers.js | 22 +-- .../babel-core/src/transformation/README.md | 3 - .../src/transformation/file/README.md | 3 - .../src/transformation/file/logger.js | 32 ---- .../src/transformation/file/options/README.md | 3 - .../file/options/option-manager.js | 24 --- .../transformation/file/options/parsers.js | 4 - .../src/transformation/file/plugin-manager.js | 37 ---- .../src/transformation/helpers/README.md | 3 - ...-binary-assignment-operator-transformer.js | 24 --- .../helpers/build-comprehension.js | 4 - ...itional-assignment-operator-transformer.js | 17 -- .../helpers/build-react-transformer.js | 32 ---- .../transformation/helpers/call-delegate.js | 17 -- .../src/transformation/helpers/define-map.js | 20 -- .../helpers/explode-assignable-expression.js | 12 -- .../helpers/get-function-arity.js | 4 - .../helpers/memoise-decorators.js | 4 - .../src/transformation/helpers/name-method.js | 37 ---- .../src/transformation/helpers/regex.js | 8 - .../helpers/remap-async-to-generator.js | 26 --- .../transformation/helpers/replace-supers.js | 53 ------ .../babel-core/src/transformation/index.js | 24 --- .../src/transformation/modules/README.md | 3 - .../src/transformation/modules/_default.js | 88 --------- .../src/transformation/modules/_strict.js | 4 - .../src/transformation/modules/amd-strict.js | 4 - .../src/transformation/modules/amd.js | 33 ---- .../transformation/modules/common-strict.js | 4 - .../src/transformation/modules/common.js | 37 ---- .../src/transformation/modules/ignore.js | 13 -- .../transformation/modules/lib/metadata.js | 16 -- .../src/transformation/modules/lib/remaps.js | 49 ----- .../src/transformation/modules/system.js | 79 -------- .../src/transformation/modules/umd-strict.js | 4 - .../src/transformation/modules/umd.js | 9 - .../babel-core/src/transformation/pipeline.js | 44 ----- .../src/transformation/plugin-pass.js | 12 -- .../babel-core/src/transformation/plugin.js | 16 -- .../src/transformation/transformers/README.md | 3 - .../es3/member-expression-literals.js | 1 - .../transformers/es3/property-literals.js | 3 +- .../transformers/es5/properties.mutators.js | 1 - .../transformers/es6/arrow-functions.js | 1 - .../transformers/es6/block-scoping/index.js | 128 +------------ .../transformers/es6/block-scoping/tdz.js | 21 --- .../transformers/es6/classes/index.js | 12 -- .../transformers/es6/classes/loose.js | 8 - .../transformers/es6/classes/vanilla.js | 104 +---------- .../transformers/es6/constants.js | 1 - .../transformers/es6/destructuring.js | 86 --------- .../transformation/transformers/es6/for-of.js | 21 --- .../transformers/es6/modules.js | 21 --- .../transformers/es6/object-super.js | 13 -- .../transformers/es6/parameters/default.js | 22 --- .../transformers/es6/parameters/index.js | 4 - .../transformers/es6/parameters/rest.js | 40 +--- .../transformers/es6/properties.computed.js | 17 -- .../transformers/es6/properties.shorthand.js | 5 - .../transformers/es6/regex.sticky.js | 9 - .../transformers/es6/regex.unicode.js | 9 - .../transformers/es6/spec.symbols.js | 17 -- .../es6/spec.template-literals.js | 9 - .../transformation/transformers/es6/spread.js | 29 --- .../transformers/es6/tail-call.js | 98 ---------- .../transformers/es6/template-literals.js | 33 +--- .../transformers/es7/comprehensions.js | 17 -- .../transformers/es7/decorators.js | 9 - .../transformers/es7/do-expressions.js | 9 - .../es7/exponentiation-operator.js | 8 - .../transformers/es7/export-extensions.js | 13 -- .../transformers/es7/function-bind.js | 25 --- .../transformers/es7/object-rest-spread.js | 13 -- .../transformation/transformers/filters.js | 20 -- .../src/transformation/transformers/index.js | 1 - .../transformers/internal/block-hoist.js | 5 - .../transformers/internal/hoist-directives.js | 9 - .../transformers/internal/module-formatter.js | 9 - .../transformers/internal/modules.js | 25 --- .../transformers/internal/shadow-functions.js | 17 -- .../transformers/internal/validation.js | 13 -- .../transformers/optimisation/flow.for-of.js | 9 - .../optimisation/react.inline-elements.js | 17 -- .../transformers/other/async-to-generator.js | 9 - .../transformers/other/bluebird-coroutines.js | 13 -- .../transformation/transformers/other/flow.js | 29 --- .../transformers/other/react-compat.js | 17 -- .../transformers/other/react.js | 21 --- .../transformers/other/regenerator.js | 9 - .../transformers/other/strict.js | 13 -- .../spec/block-scoped-functions.js | 17 -- .../transformers/spec/function-name.js | 13 -- .../transformers/validation/react.js | 13 -- packages/babel-core/src/util.js | 1 - packages/babel-generator/README.md | 1 + packages/babel-generator/src/README.md | 16 -- packages/babel-generator/src/buffer.js | 2 +- .../babel-generator/src/generators/README.md | 10 - .../babel-generator/src/generators/base.js | 23 +-- .../babel-generator/src/generators/classes.js | 21 --- .../src/generators/comprehensions.js | 8 - .../src/generators/expressions.js | 94 +--------- .../babel-generator/src/generators/flow.js | 141 -------------- .../babel-generator/src/generators/jsx.js | 50 +---- .../babel-generator/src/generators/methods.js | 21 --- .../babel-generator/src/generators/modules.js | 44 ----- .../src/generators/statements.js | 74 +------- .../src/generators/template-literals.js | 12 -- .../babel-generator/src/generators/types.js | 33 ---- packages/babel-generator/src/index.js | 64 ------- .../babel-generator/src/node/parentheses.js | 58 ------ .../babel-generator/src/node/whitespace.js | 4 - packages/babel-generator/src/whitespace.js | 7 +- packages/babel-runtime/README.md | 4 - packages/babel-traverse/README.md | 1 + packages/babel-traverse/src/README.md | 3 - packages/babel-traverse/src/context.js | 24 --- packages/babel-traverse/src/hub.js | 3 +- packages/babel-traverse/src/index.js | 32 ---- packages/babel-traverse/src/path/README.md | 15 -- packages/babel-traverse/src/path/ancestry.js | 6 +- packages/babel-traverse/src/path/comments.js | 6 +- packages/babel-traverse/src/path/context.js | 72 +------- .../babel-traverse/src/path/conversion.js | 10 +- .../babel-traverse/src/path/evaluation.js | 2 + packages/babel-traverse/src/path/family.js | 34 +--- packages/babel-traverse/src/path/index.js | 52 ++---- .../src/path/inference/README.md | 3 - .../src/path/inference/index.js | 22 +-- .../src/path/inference/inferer-reference.js | 24 --- .../src/path/inference/inferers.js | 76 -------- .../babel-traverse/src/path/introspection.js | 10 +- .../babel-traverse/src/path/lib/hoister.js | 36 ---- .../src/path/lib/removal-hooks.js | 20 -- .../src/path/lib/virtual-types.js | 52 ------ .../babel-traverse/src/path/modification.js | 30 +-- packages/babel-traverse/src/path/removal.js | 17 +- .../babel-traverse/src/path/replacement.js | 18 +- packages/babel-traverse/src/scope/README.md | 3 - packages/babel-traverse/src/scope/binding.js | 16 +- packages/babel-traverse/src/scope/index.js | 172 ------------------ packages/babel-types/README.md | 1 + packages/babel-types/src/converters.js | 30 +-- 150 files changed, 66 insertions(+), 3376 deletions(-) create mode 100644 packages/babel-code-frame/README.md create mode 100644 packages/babel-core/README.md delete mode 100644 packages/babel-core/src/README.md delete mode 100644 packages/babel-core/src/api/README.md delete mode 100644 packages/babel-core/src/helpers/README.md delete mode 100644 packages/babel-core/src/tools/README.md delete mode 100644 packages/babel-core/src/transformation/README.md delete mode 100644 packages/babel-core/src/transformation/file/README.md delete mode 100644 packages/babel-core/src/transformation/file/options/README.md delete mode 100644 packages/babel-core/src/transformation/helpers/README.md delete mode 100644 packages/babel-core/src/transformation/modules/README.md delete mode 100644 packages/babel-core/src/transformation/transformers/README.md create mode 100644 packages/babel-generator/README.md delete mode 100644 packages/babel-generator/src/README.md delete mode 100644 packages/babel-generator/src/generators/README.md create mode 100644 packages/babel-traverse/README.md delete mode 100644 packages/babel-traverse/src/README.md delete mode 100644 packages/babel-traverse/src/path/README.md delete mode 100644 packages/babel-traverse/src/path/inference/README.md delete mode 100644 packages/babel-traverse/src/scope/README.md create mode 100644 packages/babel-types/README.md diff --git a/packages/babel-cli/README.md b/packages/babel-cli/README.md index 7af3d66051..0d36b69f45 100644 --- a/packages/babel-cli/README.md +++ b/packages/babel-cli/README.md @@ -1,5 +1 @@ # babel-cli - -Babel CLI - -For more information please look at [babel](https://github.com/babel/babel). diff --git a/packages/babel-code-frame/README.md b/packages/babel-code-frame/README.md new file mode 100644 index 0000000000..35f7c2ebf7 --- /dev/null +++ b/packages/babel-code-frame/README.md @@ -0,0 +1 @@ +# babel-code-frame diff --git a/packages/babel-core/README.md b/packages/babel-core/README.md new file mode 100644 index 0000000000..beb313b67f --- /dev/null +++ b/packages/babel-core/README.md @@ -0,0 +1 @@ +# babel-core diff --git a/packages/babel-core/src/README.md b/packages/babel-core/src/README.md deleted file mode 100644 index 6831fbaa9b..0000000000 --- a/packages/babel-core/src/README.md +++ /dev/null @@ -1,4 +0,0 @@ -## Diving into Babel - -If you look around in the various directories in here you'll find some details -about the organization of the Babel codebase. diff --git a/packages/babel-core/src/api/README.md b/packages/babel-core/src/api/README.md deleted file mode 100644 index f1816a11f0..0000000000 --- a/packages/babel-core/src/api/README.md +++ /dev/null @@ -1,18 +0,0 @@ -## API - -In this directory you'll find all the public interfaces to using Babel for both -node and the browser. - -### Node - -There are two ways people use Babel within Node, they either are manipulating -strings of code with `babel.transform` or `babel.parse`, they also might be -running their code through Babel before execution via `register` or `polyfill`. - -### Browser - -Usage of Babel in the browser is extremely uncommon and in most cases -considered A Bad Idea™. However it works by loading ` - */ - -var runScripts = function () { +function runScripts() { var scripts = []; var types = ["text/ecmascript-6", "text/6to5", "text/babel", "module"]; var index = 0; @@ -72,24 +39,24 @@ var runScripts = function () { * Transform and execute script. Ensures correct load order. */ - var exec = function () { + function exec() { var param = scripts[index]; if (param instanceof Array) { - transform.run.apply(transform, param); + run(param); index++; exec(); } - }; + } /** * Load, transform, and execute all scripts. */ - var run = function (script, i) { + function run(script, i) { var opts = {}; if (script.src) { - transform.load(script.src, function (param) { + load(script.src, function (param) { scripts[i] = param; exec(); }, opts, true); @@ -97,7 +64,7 @@ var runScripts = function () { opts.filename = "embedded"; scripts[i] = [script.innerHTML, opts]; } - }; + } // Collect scripts with Babel `types`. @@ -113,7 +80,7 @@ var runScripts = function () { } exec(); -}; +} /** * Register load event to transform and execute scripts. From 6e38c037d58709bbd6e5ec044c3eb6e5c4dc1f9b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:10:52 +0100 Subject: [PATCH 075/174] removal redundant comments --- packages/babel-core/src/api/node.js | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 8a68053853..9816b1bc0e 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -18,20 +18,12 @@ export { version } from "../../package"; import * as t from "babel-types"; export { t as types }; -/** - * Register Babel and polyfill globally. - */ - export function register(opts?: Object) { var callback = require("./register/node-polyfill"); if (opts != null) callback(opts); return callback; } -/** - * Asynchronously transform `filename` with optional `opts`, calls `callback` when complete. - */ - export function transformFile(filename: string, opts?: Object, callback: Function) { if (isFunction(opts)) { callback = opts; @@ -55,19 +47,11 @@ export function transformFile(filename: string, opts?: Object, callback: Functio }); } -/** - * Synchronous form of `transformFile`. - */ - export function transformFileSync(filename: string, opts?: Object = {}) { opts.filename = filename; return transform(fs.readFileSync(filename, "utf8"), opts); } -/** - * Parse script with Babel's parser. - */ - export function parse(code, opts = {}) { opts.allowHashBang = true; opts.sourceType = "module"; From 248d457d87d63033dd01fcce01e108738caadc67 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:11:14 +0100 Subject: [PATCH 076/174] remove parse API from referring to transformers --- packages/babel-core/src/api/node.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 9816b1bc0e..e7163921d3 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -62,10 +62,6 @@ export function parse(code, opts = {}) { }; opts.features = {}; - for (var key in transform.pipeline.transformers) { - opts.features[key] = true; - } - var ast = babylon.parse(code, opts); if (opts.onToken) { From daa95ad40005995774eeb38b752271e5a37e2bfe Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:11:25 +0100 Subject: [PATCH 077/174] simplify parse helper options --- packages/babel-core/src/helpers/parse.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/babel-core/src/helpers/parse.js b/packages/babel-core/src/helpers/parse.js index 7ed93238f0..cb6eb42ba9 100644 --- a/packages/babel-core/src/helpers/parse.js +++ b/packages/babel-core/src/helpers/parse.js @@ -8,13 +8,10 @@ export default function (code, opts = {}) { var parseOpts = { allowImportExportEverywhere: opts.looseModules, allowReturnOutsideFunction: opts.looseModules, - allowHashBang: true, - ecmaVersion: 6, - strictMode: opts.strictMode, - sourceType: opts.sourceType, - locations: true, - features: opts.features || {}, - plugins: opts.plugins || {} + strictMode: opts.strictMode, + sourceType: opts.sourceType, + features: opts.features || {}, + plugins: opts.plugins || {} }; if (opts.nonStandard) { From 3e8cbc60eb603728f477e932e6ef764f412075d9 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:11:38 +0100 Subject: [PATCH 078/174] export babel-template from babel-core --- packages/babel-core/src/api/node.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index e7163921d3..6f6f6b1c11 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -13,6 +13,7 @@ export { default as options } from "../transformation/file/options/config"; export { default as Plugin } from "../transformation/plugin"; export { default as Pipeline } from "../transformation/pipeline"; export { default as buildExternalHelpers } from "../tools/build-external-helpers"; +export { default as template } from "babel-template"; export { version } from "../../package"; import * as t from "babel-types"; From 9969224a93956fa29d1dde61a720d1727f212603 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:12:46 +0100 Subject: [PATCH 079/174] add more plugins, rename some --- .../README.md | 35 --- .../babel-plugin-builder-react-jsx/README.md | 22 ++ .../package.json | 13 + .../src/index.js | 153 ++++++++++++ .../babel-plugin-class-properties/.gitignore | 3 - .../babel-plugin-comprehensions/.gitignore | 3 - .../babel-plugin-comprehensions/src/index.js | 7 - .../README.md | 35 --- packages/babel-plugin-decorators/.gitignore | 3 - packages/babel-plugin-decorators/src/index.js | 7 - .../babel-plugin-do-expressions/.gitignore | 3 - .../babel-plugin-do-expressions/src/index.js | 7 - .../.gitignore | 3 - .../README.md | 35 --- .../src/index.js | 12 - .../README.md | 35 --- .../.gitignore | 3 - .../src/index.js | 7 - .../babel-plugin-es2015-classes/.gitignore | 3 - .../babel-plugin-es2015-classes/src/index.js | 7 - .../.gitignore | 3 - .../README.md | 35 --- .../babel-plugin-es2015-constants/.gitignore | 3 - .../README.md | 35 --- .../babel-plugin-es2015-for-of/.gitignore | 3 - .../babel-plugin-es2015-for-of/src/index.js | 7 - .../.gitignore | 3 - .../src/index.js | 7 - .../babel-plugin-es2015-literals/.gitignore | 3 - .../.gitignore | 3 - .../README.md | 35 --- .../src/index.js | 7 - .../babel-plugin-es2015-parameters/.gitignore | 3 - .../src/index.js | 7 - .../.gitignore | 3 - .../README.md | 35 --- .../babel-plugin-es2015-spread/.gitignore | 3 - .../.gitignore | 3 - .../src/index.js | 7 - .../babel-plugin-es2015-tail-call/.gitignore | 3 - .../src/index.js | 7 - .../.gitignore | 3 - .../README.md | 35 --- .../.gitignore | 3 - .../README.md | 35 --- .../src/index.js | 7 - .../.gitignore | 3 - .../README.md | 35 --- .../.gitignore | 3 - .../.gitignore | 3 - .../src/index.js | 7 - .../.gitignore | 3 - .../README.md | 35 --- .../src/index.js | 7 - .../babel-plugin-export-extensions/.gitignore | 3 - .../src/index.js | 7 - .../.npmignore | 0 .../babel-plugin-external-helpers/README.md | 33 +++ .../package.json | 2 +- .../src/index.js | 7 + .../babel-plugin-function-bind/.gitignore | 3 - .../babel-plugin-function-bind/src/index.js | 7 - .../README.md | 35 --- .../src/index.js | 18 -- .../babel-plugin-node-env-inline/src/index.js | 22 -- .../babel-plugin-object-assign/src/index.js | 15 -- .../.gitignore | 3 - .../src/index.js | 7 - .../src/index.js | 11 - .../babel-plugin-react-compat-jsx/.gitignore | 3 - .../src/index.js | 7 - .../src/index.js | 46 ---- .../.gitignore | 3 - .../README.md | 35 --- .../src/index.js | 7 - packages/babel-plugin-react-jsx/.gitignore | 3 - packages/babel-plugin-react-jsx/src/index.js | 7 - .../babel-plugin-remove-console/src/index.js | 15 -- .../babel-plugin-remove-debugger/src/index.js | 13 - .../.npmignore | 0 .../README.md | 10 +- .../babel-plugin-syntax-flow/package.json | 11 + .../babel-plugin-syntax-flow/src/index.js | 11 + .../.npmignore | 0 .../README.md | 12 +- packages/babel-plugin-syntax-jsx/package.json | 11 + packages/babel-plugin-syntax-jsx/src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 7 + .../.gitignore | 3 - .../README.md | 35 --- .../src/index.js | 7 - .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 2 +- .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 2 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 2 +- .../.npmignore | 0 .../README.md | 33 +++ .../package.json | 11 + .../src/index.js | 2 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 37 ++- .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 4 +- .../src/index.js | 52 ++-- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 32 +++ .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 4 +- .../src/index.js | 11 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 11 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 8 +- .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 90 ++----- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 227 ++++++++++++++++++ .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 4 - .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 4 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 23 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 20 +- .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 4 - .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 5 - .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 10 +- .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 27 +-- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 4 +- .../src/index.js | 14 ++ .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 6 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 4 - .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 14 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 4 - .../.npmignore | 0 .../LICENSE | 0 .../README.md | 12 +- .../package.json | 4 +- .../src/index.js | 18 ++ .../.npmignore | 0 .../LICENSE | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 11 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 2 +- .../src/index.js | 7 + .../.npmignore | 0 .../LICENSE | 0 .../README.md | 12 +- .../package.json | 4 +- .../src/index.js | 11 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 4 - .../.npmignore | 0 .../README.md | 10 +- .../package.json | 5 +- .../src/index.js | 24 +- .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 42 ++++ .../.npmignore | 0 .../README.md | 10 +- .../package.json | 9 +- .../src/index.js | 8 +- .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 2 +- .../src/index.js | 74 ++++++ .../.npmignore | 0 .../README.md | 10 +- .../package.json | 8 +- .../src/index.js | 22 ++ .../.npmignore | 0 .../README.md | 10 +- .../package.json | 8 +- .../src/index.js | 42 ++++ .../.npmignore | 0 .../README.md | 35 +++ .../package.json | 4 +- .../src/index.js | 11 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 9 + .../.npmignore | 0 .../README.md | 10 +- .../package.json | 9 +- .../src/definitions.json | 1 - .../src/index.js | 49 ++-- .../.npmignore} | 2 +- .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 4 - .../.npmignore} | 2 +- .../README.md | 35 +++ .../package.json | 5 +- .../src/index.js | 14 +- .../.npmignore} | 2 +- .../README.md | 10 +- .../package.json | 4 +- .../src/index.js | 4 - .../README.md | 35 --- packages/babel-polyfill/README.md | 1 + 328 files changed, 2013 insertions(+), 1543 deletions(-) delete mode 100644 packages/babel-plugin-async-to-bluebird-coroutines/README.md create mode 100644 packages/babel-plugin-builder-react-jsx/README.md create mode 100644 packages/babel-plugin-builder-react-jsx/package.json create mode 100644 packages/babel-plugin-builder-react-jsx/src/index.js delete mode 100644 packages/babel-plugin-class-properties/.gitignore delete mode 100644 packages/babel-plugin-comprehensions/.gitignore delete mode 100644 packages/babel-plugin-comprehensions/src/index.js delete mode 100644 packages/babel-plugin-dead-code-elimination/README.md delete mode 100644 packages/babel-plugin-decorators/.gitignore delete mode 100644 packages/babel-plugin-decorators/src/index.js delete mode 100644 packages/babel-plugin-do-expressions/.gitignore delete mode 100644 packages/babel-plugin-do-expressions/src/index.js delete mode 100644 packages/babel-plugin-es2015-arrow-functions/.gitignore delete mode 100644 packages/babel-plugin-es2015-arrow-functions/README.md delete mode 100644 packages/babel-plugin-es2015-arrow-functions/src/index.js delete mode 100644 packages/babel-plugin-es2015-block-scoped-functions/README.md delete mode 100644 packages/babel-plugin-es2015-block-scoping/.gitignore delete mode 100644 packages/babel-plugin-es2015-block-scoping/src/index.js delete mode 100644 packages/babel-plugin-es2015-classes/.gitignore delete mode 100644 packages/babel-plugin-es2015-classes/src/index.js delete mode 100644 packages/babel-plugin-es2015-computed-properties/.gitignore delete mode 100644 packages/babel-plugin-es2015-computed-properties/README.md delete mode 100644 packages/babel-plugin-es2015-constants/.gitignore delete mode 100644 packages/babel-plugin-es2015-destructuring/README.md delete mode 100644 packages/babel-plugin-es2015-for-of/.gitignore delete mode 100644 packages/babel-plugin-es2015-for-of/src/index.js delete mode 100644 packages/babel-plugin-es2015-function-name/.gitignore delete mode 100644 packages/babel-plugin-es2015-function-name/src/index.js delete mode 100644 packages/babel-plugin-es2015-literals/.gitignore delete mode 100644 packages/babel-plugin-es2015-object-super/.gitignore delete mode 100644 packages/babel-plugin-es2015-object-super/README.md delete mode 100644 packages/babel-plugin-es2015-object-super/src/index.js delete mode 100644 packages/babel-plugin-es2015-parameters/.gitignore delete mode 100644 packages/babel-plugin-es2015-parameters/src/index.js delete mode 100644 packages/babel-plugin-es2015-shorthand-properties/.gitignore delete mode 100644 packages/babel-plugin-es2015-shorthand-properties/README.md delete mode 100644 packages/babel-plugin-es2015-spread/.gitignore delete mode 100644 packages/babel-plugin-es2015-sticky-regex/.gitignore delete mode 100644 packages/babel-plugin-es2015-sticky-regex/src/index.js delete mode 100644 packages/babel-plugin-es2015-tail-call/.gitignore delete mode 100644 packages/babel-plugin-es2015-tail-call/src/index.js delete mode 100644 packages/babel-plugin-es2015-template-literals/.gitignore delete mode 100644 packages/babel-plugin-es2015-template-literals/README.md delete mode 100644 packages/babel-plugin-es2015-unicode-regex/.gitignore delete mode 100644 packages/babel-plugin-es2015-unicode-regex/README.md delete mode 100644 packages/babel-plugin-es2015-unicode-regex/src/index.js delete mode 100644 packages/babel-plugin-es3-member-expression-literals/.gitignore delete mode 100644 packages/babel-plugin-es3-member-expression-literals/README.md delete mode 100644 packages/babel-plugin-es3-property-literals/.gitignore delete mode 100644 packages/babel-plugin-es5-property-mutators/.gitignore delete mode 100644 packages/babel-plugin-es5-property-mutators/src/index.js delete mode 100644 packages/babel-plugin-exponentiation-operator/.gitignore delete mode 100644 packages/babel-plugin-exponentiation-operator/README.md delete mode 100644 packages/babel-plugin-exponentiation-operator/src/index.js delete mode 100644 packages/babel-plugin-export-extensions/.gitignore delete mode 100644 packages/babel-plugin-export-extensions/src/index.js rename packages/{babel-plugin-async-functions => babel-plugin-external-helpers}/.npmignore (100%) create mode 100644 packages/babel-plugin-external-helpers/README.md rename packages/{babel-plugin-class-properties => babel-plugin-external-helpers}/package.json (79%) create mode 100644 packages/babel-plugin-external-helpers/src/index.js delete mode 100644 packages/babel-plugin-function-bind/.gitignore delete mode 100644 packages/babel-plugin-function-bind/src/index.js delete mode 100644 packages/babel-plugin-inline-environment-variables/README.md delete mode 100644 packages/babel-plugin-inline-environment-variables/src/index.js delete mode 100644 packages/babel-plugin-node-env-inline/src/index.js delete mode 100644 packages/babel-plugin-object-assign/src/index.js delete mode 100644 packages/babel-plugin-object-rest-spread/.gitignore delete mode 100644 packages/babel-plugin-object-rest-spread/src/index.js delete mode 100644 packages/babel-plugin-object-set-prototype-of-to-assign/src/index.js delete mode 100644 packages/babel-plugin-react-compat-jsx/.gitignore delete mode 100644 packages/babel-plugin-react-compat-jsx/src/index.js delete mode 100644 packages/babel-plugin-react-constant-elements/src/index.js delete mode 100644 packages/babel-plugin-react-inline-elements/.gitignore delete mode 100644 packages/babel-plugin-react-inline-elements/README.md delete mode 100644 packages/babel-plugin-react-inline-elements/src/index.js delete mode 100644 packages/babel-plugin-react-jsx/.gitignore delete mode 100644 packages/babel-plugin-react-jsx/src/index.js delete mode 100644 packages/babel-plugin-remove-console/src/index.js delete mode 100644 packages/babel-plugin-remove-debugger/src/index.js rename packages/{babel-plugin-async-to-bluebird-coroutines => babel-plugin-syntax-flow}/.npmignore (100%) rename packages/{babel-plugin-class-properties => babel-plugin-syntax-flow}/README.md (53%) create mode 100644 packages/babel-plugin-syntax-flow/package.json create mode 100644 packages/babel-plugin-syntax-flow/src/index.js rename packages/{babel-plugin-async-to-generator => babel-plugin-syntax-jsx}/.npmignore (100%) rename packages/{babel-plugin-remove-console => babel-plugin-syntax-jsx}/README.md (51%) create mode 100644 packages/babel-plugin-syntax-jsx/package.json create mode 100644 packages/babel-plugin-syntax-jsx/src/index.js rename packages/{babel-plugin-class-properties => babel-plugin-syntax-trailing-function-commas}/.npmignore (100%) create mode 100644 packages/babel-plugin-syntax-trailing-function-commas/README.md rename packages/{babel-plugin-trailing-function-commas => babel-plugin-syntax-trailing-function-commas}/package.json (77%) create mode 100644 packages/babel-plugin-syntax-trailing-function-commas/src/index.js delete mode 100644 packages/babel-plugin-trailing-function-commas/.gitignore delete mode 100644 packages/babel-plugin-trailing-function-commas/README.md delete mode 100644 packages/babel-plugin-trailing-function-commas/src/index.js rename packages/{babel-plugin-comprehensions => babel-plugin-transform-async-functions}/.npmignore (100%) rename packages/{babel-plugin-async-functions => babel-plugin-transform-async-functions}/README.md (51%) rename packages/{babel-plugin-async-functions => babel-plugin-transform-async-functions}/package.json (78%) rename packages/{babel-plugin-async-to-bluebird-coroutines => babel-plugin-transform-async-functions}/src/index.js (65%) rename packages/{babel-plugin-constant-folding => babel-plugin-transform-async-to-bluebird-coroutines}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md rename packages/{babel-plugin-async-to-bluebird-coroutines => babel-plugin-transform-async-to-bluebird-coroutines}/package.json (76%) rename packages/{babel-plugin-async-to-generator => babel-plugin-transform-async-to-bluebird-coroutines}/src/index.js (65%) rename packages/{babel-plugin-dead-code-elimination => babel-plugin-transform-async-to-generator}/.npmignore (100%) rename packages/{babel-plugin-async-to-generator => babel-plugin-transform-async-to-generator}/README.md (50%) rename packages/{babel-plugin-async-to-generator => babel-plugin-transform-async-to-generator}/package.json (78%) rename packages/{babel-plugin-class-properties => babel-plugin-transform-async-to-generator}/src/index.js (65%) rename packages/{babel-plugin-decorators => babel-plugin-transform-class-properties}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-class-properties/README.md create mode 100644 packages/babel-plugin-transform-class-properties/package.json rename packages/{babel-plugin-async-functions => babel-plugin-transform-class-properties}/src/index.js (65%) rename packages/{babel-plugin-do-expressions => babel-plugin-transform-comprehensions}/.npmignore (100%) rename packages/{babel-plugin-comprehensions => babel-plugin-transform-comprehensions}/README.md (53%) rename packages/{babel-plugin-comprehensions => babel-plugin-transform-comprehensions}/package.json (80%) create mode 100644 packages/babel-plugin-transform-comprehensions/src/index.js rename packages/{babel-plugin-es2015-arrow-functions => babel-plugin-transform-constant-folding}/.npmignore (100%) rename packages/{babel-plugin-constant-folding => babel-plugin-transform-constant-folding}/README.md (56%) rename packages/{babel-plugin-constant-folding => babel-plugin-transform-constant-folding}/package.json (68%) rename packages/{babel-plugin-constant-folding => babel-plugin-transform-constant-folding}/src/index.js (61%) rename packages/{babel-plugin-es2015-block-scoped-functions => babel-plugin-transform-dead-code-elimination}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-dead-code-elimination/README.md rename packages/{babel-plugin-dead-code-elimination => babel-plugin-transform-dead-code-elimination}/package.json (57%) rename packages/{babel-plugin-dead-code-elimination => babel-plugin-transform-dead-code-elimination}/src/index.js (78%) rename packages/{babel-plugin-es2015-block-scoping => babel-plugin-transform-decorators}/.npmignore (100%) rename packages/{babel-plugin-decorators => babel-plugin-transform-decorators}/README.md (55%) rename packages/{babel-plugin-decorators => babel-plugin-transform-decorators}/package.json (81%) create mode 100644 packages/babel-plugin-transform-decorators/src/index.js rename packages/{babel-plugin-es2015-classes => babel-plugin-transform-do-expressions}/.npmignore (100%) rename packages/{babel-plugin-do-expressions => babel-plugin-transform-do-expressions}/README.md (51%) rename packages/{babel-plugin-do-expressions => babel-plugin-transform-do-expressions}/package.json (79%) create mode 100644 packages/babel-plugin-transform-do-expressions/src/index.js rename packages/{babel-plugin-es2015-computed-properties => babel-plugin-transform-es2015-arrow-functions}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-arrow-functions/README.md rename packages/{babel-plugin-es2015-arrow-functions => babel-plugin-transform-es2015-arrow-functions}/package.json (77%) create mode 100644 packages/babel-plugin-transform-es2015-arrow-functions/src/index.js rename packages/{babel-plugin-es2015-constants => babel-plugin-transform-es2015-block-scoped-functions}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-block-scoped-functions/README.md rename packages/{babel-plugin-es2015-block-scoped-functions => babel-plugin-transform-es2015-block-scoped-functions}/package.json (66%) rename packages/{babel-plugin-es2015-block-scoped-functions => babel-plugin-transform-es2015-block-scoped-functions}/src/index.js (76%) rename packages/{babel-plugin-es2015-destructuring => babel-plugin-transform-es2015-block-scoping}/.npmignore (100%) rename packages/{babel-plugin-es2015-block-scoping => babel-plugin-transform-es2015-block-scoping}/README.md (50%) rename packages/{babel-plugin-es2015-block-scoping => babel-plugin-transform-es2015-block-scoping}/package.json (78%) create mode 100644 packages/babel-plugin-transform-es2015-block-scoping/src/index.js rename packages/{babel-plugin-es2015-for-of => babel-plugin-transform-es2015-classes}/.npmignore (100%) rename packages/{babel-plugin-es2015-classes => babel-plugin-transform-es2015-classes}/README.md (51%) rename packages/{babel-plugin-es2015-classes => babel-plugin-transform-es2015-classes}/package.json (79%) create mode 100644 packages/babel-plugin-transform-es2015-classes/src/index.js rename packages/{babel-plugin-es2015-function-name => babel-plugin-transform-es2015-computed-properties}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-computed-properties/README.md rename packages/{babel-plugin-es2015-computed-properties => babel-plugin-transform-es2015-computed-properties}/package.json (76%) rename packages/{babel-plugin-es2015-computed-properties => babel-plugin-transform-es2015-computed-properties}/src/index.js (96%) rename packages/{babel-plugin-es2015-literals => babel-plugin-transform-es2015-constants}/.npmignore (100%) rename packages/{babel-plugin-es2015-constants => babel-plugin-transform-es2015-constants}/README.md (50%) rename packages/{babel-plugin-es2015-constants => babel-plugin-transform-es2015-constants}/package.json (78%) rename packages/{babel-plugin-es2015-constants => babel-plugin-transform-es2015-constants}/src/index.js (70%) rename packages/{babel-plugin-es2015-object-super => babel-plugin-transform-es2015-destructuring}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-destructuring/README.md rename packages/{babel-plugin-es2015-destructuring => babel-plugin-transform-es2015-destructuring}/package.json (77%) rename packages/{babel-plugin-es2015-destructuring => babel-plugin-transform-es2015-destructuring}/src/index.js (84%) rename packages/{babel-plugin-es2015-parameters => babel-plugin-transform-es2015-for-of}/.npmignore (100%) rename packages/{babel-plugin-es2015-for-of => babel-plugin-transform-es2015-for-of}/README.md (52%) rename packages/{babel-plugin-es2015-for-of => babel-plugin-transform-es2015-for-of}/package.json (79%) create mode 100644 packages/babel-plugin-transform-es2015-for-of/src/index.js rename packages/{babel-plugin-es2015-shorthand-properties => babel-plugin-transform-es2015-function-name}/.npmignore (100%) rename packages/{babel-plugin-es2015-function-name => babel-plugin-transform-es2015-function-name}/README.md (50%) rename packages/{babel-plugin-es2015-function-name => babel-plugin-transform-es2015-function-name}/package.json (79%) create mode 100644 packages/babel-plugin-transform-es2015-function-name/src/index.js rename packages/{babel-plugin-es2015-spread => babel-plugin-transform-es2015-literals}/.npmignore (100%) rename packages/{babel-plugin-es2015-literals => babel-plugin-transform-es2015-literals}/README.md (53%) rename packages/{babel-plugin-es2015-literals => babel-plugin-transform-es2015-literals}/package.json (80%) rename packages/{babel-plugin-es2015-literals => babel-plugin-transform-es2015-literals}/src/index.js (88%) rename packages/{babel-plugin-es2015-sticky-regex => babel-plugin-transform-es2015-object-super}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-object-super/README.md rename packages/{babel-plugin-es2015-object-super => babel-plugin-transform-es2015-object-super}/package.json (77%) create mode 100644 packages/babel-plugin-transform-es2015-object-super/src/index.js rename packages/{babel-plugin-es2015-tail-call => babel-plugin-transform-es2015-parameters}/.npmignore (100%) rename packages/{babel-plugin-es2015-parameters => babel-plugin-transform-es2015-parameters}/README.md (51%) rename packages/{babel-plugin-es2015-parameters => babel-plugin-transform-es2015-parameters}/package.json (79%) create mode 100644 packages/babel-plugin-transform-es2015-parameters/src/index.js rename packages/{babel-plugin-es2015-template-literals => babel-plugin-transform-es2015-shorthand-properties}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-shorthand-properties/README.md rename packages/{babel-plugin-es2015-shorthand-properties => babel-plugin-transform-es2015-shorthand-properties}/package.json (76%) rename packages/{babel-plugin-es2015-shorthand-properties => babel-plugin-transform-es2015-shorthand-properties}/src/index.js (74%) rename packages/{babel-plugin-es2015-unicode-regex => babel-plugin-transform-es2015-spread}/.npmignore (100%) rename packages/{babel-plugin-es2015-spread => babel-plugin-transform-es2015-spread}/README.md (51%) rename packages/{babel-plugin-es2015-spread => babel-plugin-transform-es2015-spread}/package.json (79%) rename packages/{babel-plugin-es2015-spread => babel-plugin-transform-es2015-spread}/src/index.js (88%) rename packages/{babel-plugin-es3-member-expression-literals => babel-plugin-transform-es2015-sticky-regex}/.npmignore (100%) rename packages/{babel-plugin-es2015-sticky-regex => babel-plugin-transform-es2015-sticky-regex}/README.md (51%) rename packages/{babel-plugin-es2015-sticky-regex => babel-plugin-transform-es2015-sticky-regex}/package.json (79%) create mode 100644 packages/babel-plugin-transform-es2015-sticky-regex/src/index.js rename packages/{babel-plugin-es3-property-literals => babel-plugin-transform-es2015-tail-call}/.npmignore (100%) rename packages/{babel-plugin-es2015-tail-call => babel-plugin-transform-es2015-tail-call}/README.md (50%) rename packages/{babel-plugin-es2015-tail-call => babel-plugin-transform-es2015-tail-call}/package.json (78%) create mode 100644 packages/babel-plugin-transform-es2015-tail-call/src/index.js rename packages/{babel-plugin-es5-property-mutators => babel-plugin-transform-es2015-template-literals}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-template-literals/README.md rename packages/{babel-plugin-es2015-template-literals => babel-plugin-transform-es2015-template-literals}/package.json (76%) rename packages/{babel-plugin-es2015-template-literals => babel-plugin-transform-es2015-template-literals}/src/index.js (85%) rename packages/{babel-plugin-eval => babel-plugin-transform-es2015-unicode-regex}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-unicode-regex/README.md rename packages/{babel-plugin-es2015-unicode-regex => babel-plugin-transform-es2015-unicode-regex}/package.json (77%) create mode 100644 packages/babel-plugin-transform-es2015-unicode-regex/src/index.js rename packages/{babel-plugin-exponentiation-operator => babel-plugin-transform-es3-member-expression-literals}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es3-member-expression-literals/README.md rename packages/{babel-plugin-es3-member-expression-literals => babel-plugin-transform-es3-member-expression-literals}/package.json (76%) rename packages/{babel-plugin-es3-member-expression-literals => babel-plugin-transform-es3-member-expression-literals}/src/index.js (88%) rename packages/{babel-plugin-export-extensions => babel-plugin-transform-es3-property-literals}/.npmignore (100%) rename packages/{babel-plugin-es3-property-literals => babel-plugin-transform-es3-property-literals}/README.md (51%) rename packages/{babel-plugin-es3-property-literals => babel-plugin-transform-es3-property-literals}/package.json (79%) rename packages/{babel-plugin-es3-property-literals => babel-plugin-transform-es3-property-literals}/src/index.js (86%) rename packages/{babel-plugin-flow-strip-types => babel-plugin-transform-es5-property-mutators}/.npmignore (100%) rename packages/{babel-plugin-es5-property-mutators => babel-plugin-transform-es5-property-mutators}/README.md (51%) rename packages/{babel-plugin-es5-property-mutators => babel-plugin-transform-es5-property-mutators}/package.json (80%) create mode 100644 packages/babel-plugin-transform-es5-property-mutators/src/index.js rename packages/{babel-plugin-function-bind => babel-plugin-transform-eval}/.npmignore (100%) rename packages/{babel-plugin-eval => babel-plugin-transform-eval}/README.md (68%) rename packages/{babel-plugin-eval => babel-plugin-transform-eval}/package.json (68%) rename packages/{babel-plugin-eval => babel-plugin-transform-eval}/src/index.js (58%) rename packages/{babel-plugin-inline-environment-variables => babel-plugin-transform-exponentiation-operator}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-exponentiation-operator/README.md rename packages/{babel-plugin-exponentiation-operator => babel-plugin-transform-exponentiation-operator}/package.json (77%) create mode 100644 packages/babel-plugin-transform-exponentiation-operator/src/index.js rename packages/{babel-plugin-jscript => babel-plugin-transform-export-extensions}/.npmignore (100%) rename packages/{babel-plugin-export-extensions => babel-plugin-transform-export-extensions}/README.md (50%) rename packages/{babel-plugin-export-extensions => babel-plugin-transform-export-extensions}/package.json (78%) create mode 100644 packages/babel-plugin-transform-export-extensions/src/index.js rename packages/{babel-plugin-member-expression-literals => babel-plugin-transform-flow-strip-types}/.npmignore (100%) rename packages/{babel-plugin-flow-strip-types => babel-plugin-transform-flow-strip-types}/README.md (52%) rename packages/{babel-plugin-flow-strip-types => babel-plugin-transform-flow-strip-types}/package.json (80%) rename packages/{babel-plugin-flow-strip-types => babel-plugin-transform-flow-strip-types}/src/index.js (66%) rename packages/{babel-plugin-merge-sibling-variables => babel-plugin-transform-function-bind}/.npmignore (100%) rename packages/{babel-plugin-function-bind => babel-plugin-transform-function-bind}/README.md (52%) rename packages/{babel-plugin-function-bind => babel-plugin-transform-function-bind}/package.json (80%) create mode 100644 packages/babel-plugin-transform-function-bind/src/index.js rename packages/{babel-plugin-minify-booleans => babel-plugin-transform-inline-environment-variables}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-inline-environment-variables/README.md rename packages/{babel-plugin-inline-environment-variables => babel-plugin-transform-inline-environment-variables}/package.json (55%) create mode 100644 packages/babel-plugin-transform-inline-environment-variables/src/index.js rename packages/{babel-plugin-node-env-inline => babel-plugin-transform-jscript}/.npmignore (100%) rename packages/{babel-plugin-jscript => babel-plugin-transform-jscript}/README.md (58%) rename packages/{babel-plugin-jscript => babel-plugin-transform-jscript}/package.json (69%) rename packages/{babel-plugin-jscript => babel-plugin-transform-jscript}/src/index.js (79%) rename packages/{babel-plugin-object-assign => babel-plugin-transform-member-expression-literals}/.npmignore (100%) rename packages/{babel-plugin-member-expression-literals => babel-plugin-transform-member-expression-literals}/README.md (63%) rename packages/{babel-plugin-member-expression-literals => babel-plugin-transform-member-expression-literals}/package.json (62%) rename packages/{babel-plugin-member-expression-literals => babel-plugin-transform-member-expression-literals}/src/index.js (87%) rename packages/{babel-plugin-object-rest-spread => babel-plugin-transform-merge-sibling-variables}/.npmignore (100%) rename packages/{babel-plugin-merge-sibling-variables => babel-plugin-transform-merge-sibling-variables}/README.md (59%) rename packages/{babel-plugin-merge-sibling-variables => babel-plugin-transform-merge-sibling-variables}/package.json (56%) rename packages/{babel-plugin-merge-sibling-variables => babel-plugin-transform-merge-sibling-variables}/src/index.js (55%) rename packages/{babel-plugin-object-set-prototype-of-to-assign => babel-plugin-transform-minify-booleans}/.npmignore (100%) rename packages/{babel-plugin-minify-booleans => babel-plugin-transform-minify-booleans}/README.md (53%) rename packages/{babel-plugin-minify-booleans => babel-plugin-transform-minify-booleans}/package.json (65%) rename packages/{babel-plugin-minify-booleans => babel-plugin-transform-minify-booleans}/src/index.js (82%) rename packages/{babel-plugin-property-literals => babel-plugin-transform-node-env-inline}/.npmignore (100%) rename packages/{babel-plugin-node-env-inline => babel-plugin-transform-node-env-inline}/LICENSE (100%) rename packages/{babel-plugin-node-env-inline => babel-plugin-transform-node-env-inline}/README.md (64%) rename packages/{babel-plugin-node-env-inline => babel-plugin-transform-node-env-inline}/package.json (56%) create mode 100644 packages/babel-plugin-transform-node-env-inline/src/index.js rename packages/{babel-plugin-proto-to-assign => babel-plugin-transform-object-assign}/.npmignore (100%) rename packages/{babel-plugin-object-assign => babel-plugin-transform-object-assign}/LICENSE (100%) rename packages/{babel-plugin-object-assign => babel-plugin-transform-object-assign}/README.md (63%) rename packages/{babel-plugin-object-assign => babel-plugin-transform-object-assign}/package.json (80%) create mode 100644 packages/babel-plugin-transform-object-assign/src/index.js rename packages/{babel-plugin-react-compat-jsx => babel-plugin-transform-object-rest-spread}/.npmignore (100%) rename packages/{babel-plugin-object-rest-spread => babel-plugin-transform-object-rest-spread}/README.md (50%) rename packages/{babel-plugin-object-rest-spread => babel-plugin-transform-object-rest-spread}/package.json (78%) create mode 100644 packages/babel-plugin-transform-object-rest-spread/src/index.js rename packages/{babel-plugin-react-constant-elements => babel-plugin-transform-object-set-prototype-of-to-assign}/.npmignore (100%) rename packages/{babel-plugin-object-set-prototype-of-to-assign => babel-plugin-transform-object-set-prototype-of-to-assign}/LICENSE (100%) rename packages/{babel-plugin-object-set-prototype-of-to-assign => babel-plugin-transform-object-set-prototype-of-to-assign}/README.md (55%) rename packages/{babel-plugin-object-set-prototype-of-to-assign => babel-plugin-transform-object-set-prototype-of-to-assign}/package.json (55%) create mode 100644 packages/babel-plugin-transform-object-set-prototype-of-to-assign/src/index.js rename packages/{babel-plugin-react-display-name => babel-plugin-transform-property-literals}/.npmignore (100%) rename packages/{babel-plugin-property-literals => babel-plugin-transform-property-literals}/README.md (66%) rename packages/{babel-plugin-property-literals => babel-plugin-transform-property-literals}/package.json (63%) rename packages/{babel-plugin-property-literals => babel-plugin-transform-property-literals}/src/index.js (86%) rename packages/{babel-plugin-react-inline-elements => babel-plugin-transform-proto-to-assign}/.npmignore (100%) rename packages/{babel-plugin-proto-to-assign => babel-plugin-transform-proto-to-assign}/README.md (79%) rename packages/{babel-plugin-proto-to-assign => babel-plugin-transform-proto-to-assign}/package.json (67%) rename packages/{babel-plugin-proto-to-assign => babel-plugin-transform-proto-to-assign}/src/index.js (69%) rename packages/{babel-plugin-react-jsx => babel-plugin-transform-react-constant-elements}/.npmignore (100%) rename packages/{babel-plugin-react-constant-elements => babel-plugin-transform-react-constant-elements}/README.md (51%) rename packages/{babel-plugin-react-constant-elements => babel-plugin-transform-react-constant-elements}/package.json (63%) create mode 100644 packages/babel-plugin-transform-react-constant-elements/src/index.js rename packages/{babel-plugin-remove-console => babel-plugin-transform-react-display-name}/.npmignore (100%) rename packages/{babel-plugin-react-display-name => babel-plugin-transform-react-display-name}/README.md (50%) rename packages/{babel-plugin-react-display-name => babel-plugin-transform-react-display-name}/package.json (53%) rename packages/{babel-plugin-react-display-name => babel-plugin-transform-react-display-name}/src/index.js (91%) rename packages/{babel-plugin-remove-debugger => babel-plugin-transform-react-inline-elements}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-react-inline-elements/README.md rename packages/{babel-plugin-react-inline-elements => babel-plugin-transform-react-inline-elements}/package.json (78%) create mode 100644 packages/babel-plugin-transform-react-inline-elements/src/index.js rename packages/{babel-plugin-runtime => babel-plugin-transform-react-jsx-compat}/.npmignore (100%) rename packages/{babel-plugin-react-compat-jsx => babel-plugin-transform-react-jsx-compat}/README.md (51%) rename packages/{babel-plugin-react-compat-jsx => babel-plugin-transform-react-jsx-compat}/package.json (54%) create mode 100644 packages/babel-plugin-transform-react-jsx-compat/src/index.js rename packages/{babel-plugin-simplify-comparison-operators => babel-plugin-transform-react-jsx}/.npmignore (100%) rename packages/{babel-plugin-react-jsx => babel-plugin-transform-react-jsx}/README.md (54%) rename packages/{babel-plugin-react-jsx => babel-plugin-transform-react-jsx}/package.json (54%) create mode 100644 packages/babel-plugin-transform-react-jsx/src/index.js rename packages/{babel-plugin-trailing-function-commas => babel-plugin-transform-remove-console}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-remove-console/README.md rename packages/{babel-plugin-remove-console => babel-plugin-transform-remove-console}/package.json (60%) create mode 100644 packages/babel-plugin-transform-remove-console/src/index.js rename packages/{babel-plugin-undeclared-variables-check => babel-plugin-transform-remove-debugger}/.npmignore (100%) rename packages/{babel-plugin-remove-debugger => babel-plugin-transform-remove-debugger}/README.md (50%) rename packages/{babel-plugin-remove-debugger => babel-plugin-transform-remove-debugger}/package.json (61%) create mode 100644 packages/babel-plugin-transform-remove-debugger/src/index.js rename packages/{babel-plugin-undefined-to-void => babel-plugin-transform-runtime}/.npmignore (100%) rename packages/{babel-plugin-runtime => babel-plugin-transform-runtime}/README.md (62%) rename packages/{babel-plugin-runtime => babel-plugin-transform-runtime}/package.json (63%) rename packages/{babel-plugin-runtime => babel-plugin-transform-runtime}/src/definitions.json (99%) rename packages/{babel-plugin-runtime => babel-plugin-transform-runtime}/src/index.js (71%) rename packages/{babel-plugin-async-functions/.gitignore => babel-plugin-transform-simplify-comparison-operators/.npmignore} (82%) rename packages/{babel-plugin-simplify-comparison-operators => babel-plugin-transform-simplify-comparison-operators}/README.md (57%) rename packages/{babel-plugin-simplify-comparison-operators => babel-plugin-transform-simplify-comparison-operators}/package.json (61%) rename packages/{babel-plugin-simplify-comparison-operators => babel-plugin-transform-simplify-comparison-operators}/src/index.js (88%) rename packages/{babel-plugin-async-to-bluebird-coroutines/.gitignore => babel-plugin-transform-undeclared-variables-check/.npmignore} (82%) create mode 100644 packages/babel-plugin-transform-undeclared-variables-check/README.md rename packages/{babel-plugin-undeclared-variables-check => babel-plugin-transform-undeclared-variables-check}/package.json (65%) rename packages/{babel-plugin-undeclared-variables-check => babel-plugin-transform-undeclared-variables-check}/src/index.js (74%) rename packages/{babel-plugin-async-to-generator/.gitignore => babel-plugin-transform-undefined-to-void/.npmignore} (82%) rename packages/{babel-plugin-undefined-to-void => babel-plugin-transform-undefined-to-void}/README.md (70%) rename packages/{babel-plugin-undefined-to-void => babel-plugin-transform-undefined-to-void}/package.json (63%) rename packages/{babel-plugin-undefined-to-void => babel-plugin-transform-undefined-to-void}/src/index.js (82%) delete mode 100644 packages/babel-plugin-undeclared-variables-check/README.md create mode 100644 packages/babel-polyfill/README.md diff --git a/packages/babel-plugin-async-to-bluebird-coroutines/README.md b/packages/babel-plugin-async-to-bluebird-coroutines/README.md deleted file mode 100644 index 5f91ef8045..0000000000 --- a/packages/babel-plugin-async-to-bluebird-coroutines/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-async-to-bluebird-coroutines - -Turn async functions into a Bluebird coroutine - -## Installation - -```sh -$ npm install babel-plugin-async-to-bluebird-coroutines -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["async-to-bluebird-coroutines"] -} -``` - -### Via CLI - -```sh -$ babel --plugins async-to-bluebird-coroutines script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["async-to-bluebird-coroutines"] -}); -``` diff --git a/packages/babel-plugin-builder-react-jsx/README.md b/packages/babel-plugin-builder-react-jsx/README.md new file mode 100644 index 0000000000..41fa28bf58 --- /dev/null +++ b/packages/babel-plugin-builder-react-jsx/README.md @@ -0,0 +1,22 @@ +# babel-plugin-builder-react-jsx + +## Usage + +```javascript +type ElementState = { + tagExpr: Object; // tag node + tagName: string; // raw string tag name + args: Array; // array of call arguments + call?: Object; // optional call property that can be set to override the call expression returned +}; + +require("babel-plugin-builder-react-jsx")({ + pre: function (state: ElementState) { + // called before building the element + }, + + post: function (state: ElementState) { + // called after building the element + } +}); +``` diff --git a/packages/babel-plugin-builder-react-jsx/package.json b/packages/babel-plugin-builder-react-jsx/package.json new file mode 100644 index 0000000000..2ff46f80bc --- /dev/null +++ b/packages/babel-plugin-builder-react-jsx/package.json @@ -0,0 +1,13 @@ +{ + "name": "babel-plugin-builder-react-jsx", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "esutils": "^2.0.0", + "lodash": "^3.10.0" + } +} diff --git a/packages/babel-plugin-builder-react-jsx/src/index.js b/packages/babel-plugin-builder-react-jsx/src/index.js new file mode 100644 index 0000000000..7eb9f43691 --- /dev/null +++ b/packages/babel-plugin-builder-react-jsx/src/index.js @@ -0,0 +1,153 @@ +import isString from "lodash/lang/isString"; +import esutils from "esutils"; + +export default function (t, opts) { + var visitor = {}; + + visitor.JSXNamespacedName = function (path) { + throw path.buildCodeFrameError("Namespace tags are not supported. ReactJSX is not XML."); + }; + + visitor.JSXElement = { + exit(path, file) { + var callExpr = buildElementCall(path.get("openingElement"), file); + + callExpr.arguments = callExpr.arguments.concat(path.node.children); + + if (callExpr.arguments.length >= 3) { + callExpr._prettyCall = true; + } + + return t.inherits(callExpr, path.node); + } + }; + + return visitor; + + function convertFunctionName(path) { + var { node } = path; + + if (path.isJSXIdentifier()) { + if (node.name === "this" && path.isReferenced()) { + return t.thisExpression(); + } else if (esutils.keyword.isIdentifierNameES6(node.name)) { + node.type = "Identifier"; + } else { + return t.stringLiteral(node.name); + } + } else if (path.isJSXMemberExpression()) { + node.computed = t.isLiteral(node.property); + node.type = "MemberExpression"; + } + + return node; + } + + function convertAttributeValue(node) { + if (t.isJSXExpressionContainer(node)) { + return node.expression; + } else { + return node; + } + } + + function convertAttribute(node) { + var value = convertAttributeValue(node.value || t.booleanLiteral(true)); + + if (t.isLiteral(value) && isString(value.value)) { + value.value = value.value.replace(/\n\s+/g, " "); + } + + node.name.type = "Identifier"; + + return t.inherits(t.property("init", node.name, value), node); + } + + function buildElementCall(path, file) { + path.parent.children = t.react.buildChildren(path.parent); + + var tagExpr = convertFunctionName(path.get("name")); + var args = []; + + var tagName; + if (t.isIdentifier(tagExpr)) { + tagName = tagExpr.name; + } else if (t.isLiteral(tagExpr)) { + tagName = tagExpr.value; + } + + var state = { + tagExpr: tagExpr, + tagName: tagName, + args: args + }; + + if (opts.pre) { + opts.pre(state, file); + } + + var attribs = path.node.attributes; + if (attribs.length) { + attribs = buildOpeningElementAttributes(attribs, file); + } else { + attribs = t.nullLiteral(); + } + + args.push(attribs); + + if (opts.post) { + opts.post(state, file); + } + + return state.call || t.callExpression(state.callee, args); + } + + /** + * The logic for this is quite terse. It's because we need to + * support spread elements. We loop over all attributes, + * breaking on spreads, we then push a new object containg + * all prior attributes to an array for later processing. + */ + + function buildOpeningElementAttributes(attribs, file) { + var _props = []; + var objs = []; + + function pushProps() { + if (!_props.length) return; + + objs.push(t.objectExpression(_props)); + _props = []; + } + + while (attribs.length) { + var prop = attribs.shift(); + if (t.isJSXSpreadAttribute(prop)) { + pushProps(); + objs.push(prop.argument); + } else { + _props.push(convertAttribute(prop)); + } + } + + pushProps(); + + if (objs.length === 1) { + // only one object + attribs = objs[0]; + } else { + // looks like we have multiple objects + if (!t.isObjectExpression(objs[0])) { + objs.unshift(t.objectExpression([])); + } + + // spread it + attribs = t.callExpression( + file.addHelper("extends"), + objs + ); + } + + return attribs; + } +} diff --git a/packages/babel-plugin-class-properties/.gitignore b/packages/babel-plugin-class-properties/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-class-properties/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-comprehensions/.gitignore b/packages/babel-plugin-comprehensions/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-comprehensions/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-comprehensions/src/index.js b/packages/babel-plugin-comprehensions/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-comprehensions/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-dead-code-elimination/README.md b/packages/babel-plugin-dead-code-elimination/README.md deleted file mode 100644 index af182e81e8..0000000000 --- a/packages/babel-plugin-dead-code-elimination/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-dead-code-elimination - -Eliminate dead code - -## Installation - -```sh -$ npm install babel-plugin-dead-code-elimination -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["dead-code-elimination"] -} -``` - -### Via CLI - -```sh -$ babel --plugins dead-code-elimination script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["dead-code-elimination"] -}); -``` diff --git a/packages/babel-plugin-decorators/.gitignore b/packages/babel-plugin-decorators/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-decorators/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-decorators/src/index.js b/packages/babel-plugin-decorators/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-decorators/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-do-expressions/.gitignore b/packages/babel-plugin-do-expressions/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-do-expressions/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-do-expressions/src/index.js b/packages/babel-plugin-do-expressions/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-do-expressions/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-arrow-functions/.gitignore b/packages/babel-plugin-es2015-arrow-functions/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-arrow-functions/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-arrow-functions/README.md b/packages/babel-plugin-es2015-arrow-functions/README.md deleted file mode 100644 index 8acd5de1b1..0000000000 --- a/packages/babel-plugin-es2015-arrow-functions/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-arrow-functions - -Compile ES2015 arrow functions to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-arrow-functions -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-arrow-functions"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-arrow-functions script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-arrow-functions"] -}); -``` diff --git a/packages/babel-plugin-es2015-arrow-functions/src/index.js b/packages/babel-plugin-es2015-arrow-functions/src/index.js deleted file mode 100644 index 369977afe9..0000000000 --- a/packages/babel-plugin-es2015-arrow-functions/src/index.js +++ /dev/null @@ -1,12 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - ArrowFunctionExpression(node) { - this.ensureBlock(); - node.expression = false; - node.type = "FunctionExpression"; - node.shadow = node.shadow || true; - } - } - }; -} diff --git a/packages/babel-plugin-es2015-block-scoped-functions/README.md b/packages/babel-plugin-es2015-block-scoped-functions/README.md deleted file mode 100644 index 494c432297..0000000000 --- a/packages/babel-plugin-es2015-block-scoped-functions/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-block-scoped-functions - -Babel plugin to ensure function declarations at the block level are block scoped. - -## Installation - -```sh -$ npm install babel-plugin-es2015-block-scoped-functions -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-block-scoped-functions"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-block-scoped-functions script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-block-scoped-functions"] -}); -``` diff --git a/packages/babel-plugin-es2015-block-scoping/.gitignore b/packages/babel-plugin-es2015-block-scoping/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-block-scoping/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-block-scoping/src/index.js b/packages/babel-plugin-es2015-block-scoping/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-block-scoping/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-classes/.gitignore b/packages/babel-plugin-es2015-classes/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-classes/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-classes/src/index.js b/packages/babel-plugin-es2015-classes/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-classes/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-computed-properties/.gitignore b/packages/babel-plugin-es2015-computed-properties/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-computed-properties/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-computed-properties/README.md b/packages/babel-plugin-es2015-computed-properties/README.md deleted file mode 100644 index a26309d67e..0000000000 --- a/packages/babel-plugin-es2015-computed-properties/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-computed-properties - -Compile ES2015 computed properties to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-computed-properties -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-computed-properties"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-computed-properties script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-computed-properties"] -}); -``` diff --git a/packages/babel-plugin-es2015-constants/.gitignore b/packages/babel-plugin-es2015-constants/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-constants/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-destructuring/README.md b/packages/babel-plugin-es2015-destructuring/README.md deleted file mode 100644 index 4813d210af..0000000000 --- a/packages/babel-plugin-es2015-destructuring/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-destructuring - -Compile ES2015 destructuring to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-destructuring -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-destructuring"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-destructuring script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-destructuring"] -}); -``` diff --git a/packages/babel-plugin-es2015-for-of/.gitignore b/packages/babel-plugin-es2015-for-of/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-for-of/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-for-of/src/index.js b/packages/babel-plugin-es2015-for-of/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-for-of/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-function-name/.gitignore b/packages/babel-plugin-es2015-function-name/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-function-name/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-function-name/src/index.js b/packages/babel-plugin-es2015-function-name/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-function-name/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-literals/.gitignore b/packages/babel-plugin-es2015-literals/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-literals/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-object-super/.gitignore b/packages/babel-plugin-es2015-object-super/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-object-super/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-object-super/README.md b/packages/babel-plugin-es2015-object-super/README.md deleted file mode 100644 index 6e351e407e..0000000000 --- a/packages/babel-plugin-es2015-object-super/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-object-super - -Compile ES2015 object super to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-object-super -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-object-super"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-object-super script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-object-super"] -}); -``` diff --git a/packages/babel-plugin-es2015-object-super/src/index.js b/packages/babel-plugin-es2015-object-super/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-object-super/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-parameters/.gitignore b/packages/babel-plugin-es2015-parameters/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-parameters/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-parameters/src/index.js b/packages/babel-plugin-es2015-parameters/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-parameters/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-shorthand-properties/.gitignore b/packages/babel-plugin-es2015-shorthand-properties/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-shorthand-properties/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-shorthand-properties/README.md b/packages/babel-plugin-es2015-shorthand-properties/README.md deleted file mode 100644 index 6712c94a83..0000000000 --- a/packages/babel-plugin-es2015-shorthand-properties/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-shorthand-properties - -Compile ES2015 shorthand properties to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-shorthand-properties -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-shorthand-properties"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-shorthand-properties script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-shorthand-properties"] -}); -``` diff --git a/packages/babel-plugin-es2015-spread/.gitignore b/packages/babel-plugin-es2015-spread/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-spread/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-sticky-regex/.gitignore b/packages/babel-plugin-es2015-sticky-regex/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-sticky-regex/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-sticky-regex/src/index.js b/packages/babel-plugin-es2015-sticky-regex/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-sticky-regex/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-tail-call/.gitignore b/packages/babel-plugin-es2015-tail-call/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-tail-call/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-tail-call/src/index.js b/packages/babel-plugin-es2015-tail-call/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-tail-call/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es2015-template-literals/.gitignore b/packages/babel-plugin-es2015-template-literals/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-template-literals/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-template-literals/README.md b/packages/babel-plugin-es2015-template-literals/README.md deleted file mode 100644 index f8d5f93194..0000000000 --- a/packages/babel-plugin-es2015-template-literals/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-template-literals - -Compile ES2015 template literals to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-template-literals -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-template-literals"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-template-literals script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-template-literals"] -}); -``` diff --git a/packages/babel-plugin-es2015-unicode-regex/.gitignore b/packages/babel-plugin-es2015-unicode-regex/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es2015-unicode-regex/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es2015-unicode-regex/README.md b/packages/babel-plugin-es2015-unicode-regex/README.md deleted file mode 100644 index 5e5fd22db0..0000000000 --- a/packages/babel-plugin-es2015-unicode-regex/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es2015-unicode-regex - -Compile ES2015 unicode regex to ES5 - -## Installation - -```sh -$ npm install babel-plugin-es2015-unicode-regex -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es2015-unicode-regex"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es2015-unicode-regex script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es2015-unicode-regex"] -}); -``` diff --git a/packages/babel-plugin-es2015-unicode-regex/src/index.js b/packages/babel-plugin-es2015-unicode-regex/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es2015-unicode-regex/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-es3-member-expression-literals/.gitignore b/packages/babel-plugin-es3-member-expression-literals/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es3-member-expression-literals/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es3-member-expression-literals/README.md b/packages/babel-plugin-es3-member-expression-literals/README.md deleted file mode 100644 index 588911bf08..0000000000 --- a/packages/babel-plugin-es3-member-expression-literals/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-es3-member-expression-literals - -Ensure that reserved words are quoted in property accesses - -## Installation - -```sh -$ npm install babel-plugin-es3-member-expression-literals -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["es3-member-expression-literals"] -} -``` - -### Via CLI - -```sh -$ babel --plugins es3-member-expression-literals script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["es3-member-expression-literals"] -}); -``` diff --git a/packages/babel-plugin-es3-property-literals/.gitignore b/packages/babel-plugin-es3-property-literals/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es3-property-literals/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es5-property-mutators/.gitignore b/packages/babel-plugin-es5-property-mutators/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-es5-property-mutators/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-es5-property-mutators/src/index.js b/packages/babel-plugin-es5-property-mutators/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-es5-property-mutators/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-exponentiation-operator/.gitignore b/packages/babel-plugin-exponentiation-operator/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-exponentiation-operator/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-exponentiation-operator/README.md b/packages/babel-plugin-exponentiation-operator/README.md deleted file mode 100644 index 39eeb12ed5..0000000000 --- a/packages/babel-plugin-exponentiation-operator/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-exponentiation-operator - -Compile exponentiation operator to ES5 - -## Installation - -```sh -$ npm install babel-plugin-exponentiation-operator -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["exponentiation-operator"] -} -``` - -### Via CLI - -```sh -$ babel --plugins exponentiation-operator script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["exponentiation-operator"] -}); -``` diff --git a/packages/babel-plugin-exponentiation-operator/src/index.js b/packages/babel-plugin-exponentiation-operator/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-exponentiation-operator/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-export-extensions/.gitignore b/packages/babel-plugin-export-extensions/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-export-extensions/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-export-extensions/src/index.js b/packages/babel-plugin-export-extensions/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-export-extensions/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-async-functions/.npmignore b/packages/babel-plugin-external-helpers/.npmignore similarity index 100% rename from packages/babel-plugin-async-functions/.npmignore rename to packages/babel-plugin-external-helpers/.npmignore diff --git a/packages/babel-plugin-external-helpers/README.md b/packages/babel-plugin-external-helpers/README.md new file mode 100644 index 0000000000..d7e0860bf8 --- /dev/null +++ b/packages/babel-plugin-external-helpers/README.md @@ -0,0 +1,33 @@ +# babel-plugin-external-helpers + +## Installation + +```sh +$ npm install babel-plugin-external-helpers +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["external-helpers"] +} +``` + +### Via CLI + +```sh +$ babel --plugins external-helpers script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["external-helpers"] +}); +``` diff --git a/packages/babel-plugin-class-properties/package.json b/packages/babel-plugin-external-helpers/package.json similarity index 79% rename from packages/babel-plugin-class-properties/package.json rename to packages/babel-plugin-external-helpers/package.json index 7563a01b87..61bc719e42 100644 --- a/packages/babel-plugin-class-properties/package.json +++ b/packages/babel-plugin-external-helpers/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-class-properties", + "name": "babel-plugin-external-helpers", "version": "1.0.0", "description": "", "repository": "babel/babel", diff --git a/packages/babel-plugin-external-helpers/src/index.js b/packages/babel-plugin-external-helpers/src/index.js new file mode 100644 index 0000000000..2103ae9131 --- /dev/null +++ b/packages/babel-plugin-external-helpers/src/index.js @@ -0,0 +1,7 @@ +export default function ({ types: t }) { + return { + pre(file) { + file.set("helpersNamespace", t.identifier("babelHelpers")); + } + }; +} diff --git a/packages/babel-plugin-function-bind/.gitignore b/packages/babel-plugin-function-bind/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-function-bind/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-function-bind/src/index.js b/packages/babel-plugin-function-bind/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-function-bind/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-inline-environment-variables/README.md b/packages/babel-plugin-inline-environment-variables/README.md deleted file mode 100644 index 8e4a154852..0000000000 --- a/packages/babel-plugin-inline-environment-variables/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-inline-environment-variables - -Inline environment variables - -## Installation - -```sh -$ npm install babel-plugin-inline-environment-variables -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["inline-environment-variables"] -} -``` - -### Via CLI - -```sh -$ babel --plugins inline-environment-variables script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["inline-environment-variables"] -}); -``` diff --git a/packages/babel-plugin-inline-environment-variables/src/index.js b/packages/babel-plugin-inline-environment-variables/src/index.js deleted file mode 100644 index 1f37d9afa6..0000000000 --- a/packages/babel-plugin-inline-environment-variables/src/index.js +++ /dev/null @@ -1,18 +0,0 @@ -export default function ({ Plugin, types: t }) { - return { - metadata: { - group: "builtin-pre" - }, - - visitor: { - MemberExpression() { - if (this.get("object").matchesPattern("process.env")) { - var key = this.toComputedKey(); - if (t.isStringLiteral(key)) { - return t.valueToNode(process.env[key.value]); - } - } - } - } - }; -} diff --git a/packages/babel-plugin-node-env-inline/src/index.js b/packages/babel-plugin-node-env-inline/src/index.js deleted file mode 100644 index 3dadb8cf28..0000000000 --- a/packages/babel-plugin-node-env-inline/src/index.js +++ /dev/null @@ -1,22 +0,0 @@ -export default function ({ types: t }) { - return { - metadata: { - group: "builtin-pre" - }, - - visitor: { - MemberExpression() { - if (this.matchesPattern("process.env.NODE_ENV")) { - this.replaceWith(t.valueToNode(process.env.NODE_ENV)); - - if (this.parentPath.isBinaryExpression()) { - var evaluated = this.parentPath.evaluate(); - if (evaluated.confident) { - this.parentPath.replaceWith(t.valueToNode(evaluated.value)); - } - } - } - } - } - }; -} diff --git a/packages/babel-plugin-object-assign/src/index.js b/packages/babel-plugin-object-assign/src/index.js deleted file mode 100644 index 10581931af..0000000000 --- a/packages/babel-plugin-object-assign/src/index.js +++ /dev/null @@ -1,15 +0,0 @@ -export default function () { - return { - metadata: { - group: "builtin-pre" - }, - - visitor: { - CallExpression: function (node, parent, scope, file) { - if (this.get("callee").matchesPattern("Object.assign")) { - node.callee = file.addHelper("extends"); - } - } - } - }; -} diff --git a/packages/babel-plugin-object-rest-spread/.gitignore b/packages/babel-plugin-object-rest-spread/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-object-rest-spread/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-object-rest-spread/src/index.js b/packages/babel-plugin-object-rest-spread/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-object-rest-spread/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-object-set-prototype-of-to-assign/src/index.js b/packages/babel-plugin-object-set-prototype-of-to-assign/src/index.js deleted file mode 100644 index db03a93c67..0000000000 --- a/packages/babel-plugin-object-set-prototype-of-to-assign/src/index.js +++ /dev/null @@ -1,11 +0,0 @@ -export default function () { - return { - visitor: { - CallExpression(node, parent, scope, file) { - if (this.get("callee").matchesPattern("Object.setPrototypeOf")) { - node.callee = file.addHelper("defaults"); - } - } - } - }; -} diff --git a/packages/babel-plugin-react-compat-jsx/.gitignore b/packages/babel-plugin-react-compat-jsx/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-react-compat-jsx/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-react-compat-jsx/src/index.js b/packages/babel-plugin-react-compat-jsx/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-react-compat-jsx/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-react-constant-elements/src/index.js b/packages/babel-plugin-react-constant-elements/src/index.js deleted file mode 100644 index e6b2505f78..0000000000 --- a/packages/babel-plugin-react-constant-elements/src/index.js +++ /dev/null @@ -1,46 +0,0 @@ -export default function () { - var immutabilityVisitor = { - enter(node, parent, scope, state) { - var stop = () => { - state.isImmutable = false; - this.stop(); - }; - - if (this.isJSXClosingElement()) { - this.skip(); - return; - } - - if (this.isJSXIdentifier({ name: "ref" }) && this.parentPath.isJSXAttribute({ name: node })) { - return stop(); - } - - if (this.isJSXIdentifier() || this.isIdentifier() || this.isJSXMemberExpression()) { - return; - } - - if (!this.isImmutable()) stop(); - } - }; - - return { - metadata: { - group: "builtin-basic" - }, - - visitor: { - JSXElement(node) { - if (node._hoisted) return; - - var state = { isImmutable: true }; - this.traverse(immutabilityVisitor, state); - - if (state.isImmutable) { - this.hoist(); - } else { - node._hoisted = true; - } - } - } - }; -} diff --git a/packages/babel-plugin-react-inline-elements/.gitignore b/packages/babel-plugin-react-inline-elements/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-react-inline-elements/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-react-inline-elements/README.md b/packages/babel-plugin-react-inline-elements/README.md deleted file mode 100644 index 150e2ff60e..0000000000 --- a/packages/babel-plugin-react-inline-elements/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-react-inline-elements - -Turn JSX elements into exploded React objects - -## Installation - -```sh -$ npm install babel-plugin-react-inline-elements -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["react-inline-elements"] -} -``` - -### Via CLI - -```sh -$ babel --plugins react-inline-elements script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["react-inline-elements"] -}); -``` diff --git a/packages/babel-plugin-react-inline-elements/src/index.js b/packages/babel-plugin-react-inline-elements/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-react-inline-elements/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-react-jsx/.gitignore b/packages/babel-plugin-react-jsx/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-react-jsx/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-react-jsx/src/index.js b/packages/babel-plugin-react-jsx/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-react-jsx/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-remove-console/src/index.js b/packages/babel-plugin-remove-console/src/index.js deleted file mode 100644 index 60a934e8db..0000000000 --- a/packages/babel-plugin-remove-console/src/index.js +++ /dev/null @@ -1,15 +0,0 @@ -export default function () { - return { - metadata: { - group: "builtin-pre" - }, - - visitor: { - CallExpression() { - if (this.get("callee").matchesPattern("console", true)) { - this.dangerouslyRemove(); - } - } - } - }; -} diff --git a/packages/babel-plugin-remove-debugger/src/index.js b/packages/babel-plugin-remove-debugger/src/index.js deleted file mode 100644 index c3ba51604d..0000000000 --- a/packages/babel-plugin-remove-debugger/src/index.js +++ /dev/null @@ -1,13 +0,0 @@ -export default function () { - return { - metadata: { - group: "builtin-pre" - }, - - visitor: { - DebuggerStatement() { - this.dangerouslyRemove(); - } - } - }; -} diff --git a/packages/babel-plugin-async-to-bluebird-coroutines/.npmignore b/packages/babel-plugin-syntax-flow/.npmignore similarity index 100% rename from packages/babel-plugin-async-to-bluebird-coroutines/.npmignore rename to packages/babel-plugin-syntax-flow/.npmignore diff --git a/packages/babel-plugin-class-properties/README.md b/packages/babel-plugin-syntax-flow/README.md similarity index 53% rename from packages/babel-plugin-class-properties/README.md rename to packages/babel-plugin-syntax-flow/README.md index 02487c6f48..0e4691f553 100644 --- a/packages/babel-plugin-class-properties/README.md +++ b/packages/babel-plugin-syntax-flow/README.md @@ -1,11 +1,11 @@ -# babel-plugin-class-properties +# babel-plugin-syntax-flow ## Installation ```sh -$ npm install babel-plugin-class-properties +$ npm install babel-plugin-syntax-flow ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-class-properties ```json { - "plugins": ["class-properties"] + "plugins": ["syntax-flow"] } ``` ### Via CLI ```sh -$ babel --plugins class-properties script.js +$ babel --plugins syntax-flow script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["class-properties"] + plugins: ["syntax-flow"] }); ``` diff --git a/packages/babel-plugin-syntax-flow/package.json b/packages/babel-plugin-syntax-flow/package.json new file mode 100644 index 0000000000..ce8a7e48a3 --- /dev/null +++ b/packages/babel-plugin-syntax-flow/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-flow", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-flow/src/index.js b/packages/babel-plugin-syntax-flow/src/index.js new file mode 100644 index 0000000000..499d12a023 --- /dev/null +++ b/packages/babel-plugin-syntax-flow/src/index.js @@ -0,0 +1,11 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + var jsx = parserOpts.plugins.jsx; + delete parserOpts.plugins.jsx; + + parserOpts.plugins.flow = true; + if (jsx) parserOpts.plugins.jsx = true; + } + }; +} diff --git a/packages/babel-plugin-async-to-generator/.npmignore b/packages/babel-plugin-syntax-jsx/.npmignore similarity index 100% rename from packages/babel-plugin-async-to-generator/.npmignore rename to packages/babel-plugin-syntax-jsx/.npmignore diff --git a/packages/babel-plugin-remove-console/README.md b/packages/babel-plugin-syntax-jsx/README.md similarity index 51% rename from packages/babel-plugin-remove-console/README.md rename to packages/babel-plugin-syntax-jsx/README.md index 5518aa1532..e8c7e6b5fc 100644 --- a/packages/babel-plugin-remove-console/README.md +++ b/packages/babel-plugin-syntax-jsx/README.md @@ -1,11 +1,11 @@ -# babel-plugin-remove-console +# babel-plugin-syntax-jsx + -Remove console.* calls ## Installation ```sh -$ npm install babel-plugin-remove-console +$ npm install babel-plugin-syntax-jsx ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-remove-console ```json { - "plugins": ["remove-console"] + "plugins": ["syntax-jsx"] } ``` ### Via CLI ```sh -$ babel --plugins remove-console script.js +$ babel --plugins syntax-jsx script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["remove-console"] + plugins: ["syntax-jsx"] }); ``` diff --git a/packages/babel-plugin-syntax-jsx/package.json b/packages/babel-plugin-syntax-jsx/package.json new file mode 100644 index 0000000000..144fe23dcd --- /dev/null +++ b/packages/babel-plugin-syntax-jsx/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-jsx", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-jsx/src/index.js b/packages/babel-plugin-syntax-jsx/src/index.js new file mode 100644 index 0000000000..2c2767cdf9 --- /dev/null +++ b/packages/babel-plugin-syntax-jsx/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.jsx = true; + } + }; +} diff --git a/packages/babel-plugin-class-properties/.npmignore b/packages/babel-plugin-syntax-trailing-function-commas/.npmignore similarity index 100% rename from packages/babel-plugin-class-properties/.npmignore rename to packages/babel-plugin-syntax-trailing-function-commas/.npmignore diff --git a/packages/babel-plugin-syntax-trailing-function-commas/README.md b/packages/babel-plugin-syntax-trailing-function-commas/README.md new file mode 100644 index 0000000000..61e15051e0 --- /dev/null +++ b/packages/babel-plugin-syntax-trailing-function-commas/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-trailing-function-commas + +Compile trailing function commas to ES5 + +## Installation + +```sh +$ npm install babel-plugin-syntax-trailing-function-commas +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-trailing-function-commas"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-trailing-function-commas script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-trailing-function-commas"] +}); +``` diff --git a/packages/babel-plugin-trailing-function-commas/package.json b/packages/babel-plugin-syntax-trailing-function-commas/package.json similarity index 77% rename from packages/babel-plugin-trailing-function-commas/package.json rename to packages/babel-plugin-syntax-trailing-function-commas/package.json index f6217f7423..a97ab921e0 100644 --- a/packages/babel-plugin-trailing-function-commas/package.json +++ b/packages/babel-plugin-syntax-trailing-function-commas/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-trailing-function-commas", + "name": "babel-plugin-syntax-trailing-function-commas", "version": "1.0.0", "description": "Compile trailing function commas to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-syntax-trailing-function-commas/src/index.js b/packages/babel-plugin-syntax-trailing-function-commas/src/index.js new file mode 100644 index 0000000000..a22832bd31 --- /dev/null +++ b/packages/babel-plugin-syntax-trailing-function-commas/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.features["es7.trailingFunctionCommas"] = true; + } + }; +} diff --git a/packages/babel-plugin-trailing-function-commas/.gitignore b/packages/babel-plugin-trailing-function-commas/.gitignore deleted file mode 100644 index 45f7222308..0000000000 --- a/packages/babel-plugin-trailing-function-commas/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -lib diff --git a/packages/babel-plugin-trailing-function-commas/README.md b/packages/babel-plugin-trailing-function-commas/README.md deleted file mode 100644 index e66d11c783..0000000000 --- a/packages/babel-plugin-trailing-function-commas/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-trailing-function-commas - -Compile trailing function commas to ES5 - -## Installation - -```sh -$ npm install babel-plugin-trailing-function-commas -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["trailing-function-commas"] -} -``` - -### Via CLI - -```sh -$ babel --plugins trailing-function-commas script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["trailing-function-commas"] -}); -``` diff --git a/packages/babel-plugin-trailing-function-commas/src/index.js b/packages/babel-plugin-trailing-function-commas/src/index.js deleted file mode 100644 index 9e1abb71bf..0000000000 --- a/packages/babel-plugin-trailing-function-commas/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-comprehensions/.npmignore b/packages/babel-plugin-transform-async-functions/.npmignore similarity index 100% rename from packages/babel-plugin-comprehensions/.npmignore rename to packages/babel-plugin-transform-async-functions/.npmignore diff --git a/packages/babel-plugin-async-functions/README.md b/packages/babel-plugin-transform-async-functions/README.md similarity index 51% rename from packages/babel-plugin-async-functions/README.md rename to packages/babel-plugin-transform-async-functions/README.md index 2afc6fa67f..204eabd515 100644 --- a/packages/babel-plugin-async-functions/README.md +++ b/packages/babel-plugin-transform-async-functions/README.md @@ -1,11 +1,11 @@ -# babel-plugin-async-functions +# babel-plugin-transform-async-functions Compile async functions to ES5 ## Installation ```sh -$ npm install babel-plugin-async-functions +$ npm install babel-plugin-transform-async-functions ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-async-functions ```json { - "plugins": ["async-functions"] + "plugins": ["transform-async-functions"] } ``` ### Via CLI ```sh -$ babel --plugins async-functions script.js +$ babel --plugins transform-async-functions script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["async-functions"] + plugins: ["transform-async-functions"] }); ``` diff --git a/packages/babel-plugin-async-functions/package.json b/packages/babel-plugin-transform-async-functions/package.json similarity index 78% rename from packages/babel-plugin-async-functions/package.json rename to packages/babel-plugin-transform-async-functions/package.json index cbf78e07d2..c78d4154f7 100644 --- a/packages/babel-plugin-async-functions/package.json +++ b/packages/babel-plugin-transform-async-functions/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-async-functions", + "name": "babel-plugin-transform-async-functions", "version": "1.0.0", "description": "Compile async functions to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-async-to-bluebird-coroutines/src/index.js b/packages/babel-plugin-transform-async-functions/src/index.js similarity index 65% rename from packages/babel-plugin-async-to-bluebird-coroutines/src/index.js rename to packages/babel-plugin-transform-async-functions/src/index.js index 9e1abb71bf..6845446a11 100644 --- a/packages/babel-plugin-async-to-bluebird-coroutines/src/index.js +++ b/packages/babel-plugin-transform-async-functions/src/index.js @@ -1,4 +1,4 @@ -export default function ({ types: t }) { +export default function () { return { visitor: { // your visitor methods go here diff --git a/packages/babel-plugin-constant-folding/.npmignore b/packages/babel-plugin-transform-async-to-bluebird-coroutines/.npmignore similarity index 100% rename from packages/babel-plugin-constant-folding/.npmignore rename to packages/babel-plugin-transform-async-to-bluebird-coroutines/.npmignore diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md b/packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md new file mode 100644 index 0000000000..6cf96b4373 --- /dev/null +++ b/packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-async-to-bluebird-coroutines + +Turn async functions into a Bluebird coroutine + +## Installation + +```sh +$ npm install babel-plugin-transform-async-to-bluebird-coroutines +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-async-to-bluebird-coroutines"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-async-to-bluebird-coroutines script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-async-to-bluebird-coroutines"] +}); +``` diff --git a/packages/babel-plugin-async-to-bluebird-coroutines/package.json b/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json similarity index 76% rename from packages/babel-plugin-async-to-bluebird-coroutines/package.json rename to packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json index 827967e422..8ed13dc485 100644 --- a/packages/babel-plugin-async-to-bluebird-coroutines/package.json +++ b/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-async-to-bluebird-coroutines", + "name": "babel-plugin-transform-async-to-bluebird-coroutines", "version": "1.0.0", "description": "Turn async functions into a Bluebird coroutine", "repository": "babel/babel", diff --git a/packages/babel-plugin-async-to-generator/src/index.js b/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js similarity index 65% rename from packages/babel-plugin-async-to-generator/src/index.js rename to packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js index 9e1abb71bf..6845446a11 100644 --- a/packages/babel-plugin-async-to-generator/src/index.js +++ b/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js @@ -1,4 +1,4 @@ -export default function ({ types: t }) { +export default function () { return { visitor: { // your visitor methods go here diff --git a/packages/babel-plugin-dead-code-elimination/.npmignore b/packages/babel-plugin-transform-async-to-generator/.npmignore similarity index 100% rename from packages/babel-plugin-dead-code-elimination/.npmignore rename to packages/babel-plugin-transform-async-to-generator/.npmignore diff --git a/packages/babel-plugin-async-to-generator/README.md b/packages/babel-plugin-transform-async-to-generator/README.md similarity index 50% rename from packages/babel-plugin-async-to-generator/README.md rename to packages/babel-plugin-transform-async-to-generator/README.md index c5a76edbff..b9b6f1d1af 100644 --- a/packages/babel-plugin-async-to-generator/README.md +++ b/packages/babel-plugin-transform-async-to-generator/README.md @@ -1,11 +1,11 @@ -# babel-plugin-async-to-generator +# babel-plugin-transform-async-to-generator Turn async functions into ES2015 generators ## Installation ```sh -$ npm install babel-plugin-async-to-generator +$ npm install babel-plugin-transform-async-to-generator ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-async-to-generator ```json { - "plugins": ["async-to-generator"] + "plugins": ["transform-async-to-generator"] } ``` ### Via CLI ```sh -$ babel --plugins async-to-generator script.js +$ babel --plugins transform-async-to-generator script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["async-to-generator"] + plugins: ["transform-async-to-generator"] }); ``` diff --git a/packages/babel-plugin-async-to-generator/package.json b/packages/babel-plugin-transform-async-to-generator/package.json similarity index 78% rename from packages/babel-plugin-async-to-generator/package.json rename to packages/babel-plugin-transform-async-to-generator/package.json index 2b306cb4c6..1f6dcf377a 100644 --- a/packages/babel-plugin-async-to-generator/package.json +++ b/packages/babel-plugin-transform-async-to-generator/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-async-to-generator", + "name": "babel-plugin-transform-async-to-generator", "version": "1.0.0", "description": "Turn async functions into ES2015 generators", "repository": "babel/babel", diff --git a/packages/babel-plugin-class-properties/src/index.js b/packages/babel-plugin-transform-async-to-generator/src/index.js similarity index 65% rename from packages/babel-plugin-class-properties/src/index.js rename to packages/babel-plugin-transform-async-to-generator/src/index.js index 9e1abb71bf..6845446a11 100644 --- a/packages/babel-plugin-class-properties/src/index.js +++ b/packages/babel-plugin-transform-async-to-generator/src/index.js @@ -1,4 +1,4 @@ -export default function ({ types: t }) { +export default function () { return { visitor: { // your visitor methods go here diff --git a/packages/babel-plugin-decorators/.npmignore b/packages/babel-plugin-transform-class-properties/.npmignore similarity index 100% rename from packages/babel-plugin-decorators/.npmignore rename to packages/babel-plugin-transform-class-properties/.npmignore diff --git a/packages/babel-plugin-transform-class-properties/README.md b/packages/babel-plugin-transform-class-properties/README.md new file mode 100644 index 0000000000..6b66fcc4f8 --- /dev/null +++ b/packages/babel-plugin-transform-class-properties/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-class-properties + +## Installation + +```sh +$ npm install babel-plugin-transform-class-properties +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-class-properties"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-class-properties script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-class-properties"] +}); +``` diff --git a/packages/babel-plugin-transform-class-properties/package.json b/packages/babel-plugin-transform-class-properties/package.json new file mode 100644 index 0000000000..3fd49e2d99 --- /dev/null +++ b/packages/babel-plugin-transform-class-properties/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-transform-class-properties", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-async-functions/src/index.js b/packages/babel-plugin-transform-class-properties/src/index.js similarity index 65% rename from packages/babel-plugin-async-functions/src/index.js rename to packages/babel-plugin-transform-class-properties/src/index.js index 9e1abb71bf..6845446a11 100644 --- a/packages/babel-plugin-async-functions/src/index.js +++ b/packages/babel-plugin-transform-class-properties/src/index.js @@ -1,4 +1,4 @@ -export default function ({ types: t }) { +export default function () { return { visitor: { // your visitor methods go here diff --git a/packages/babel-plugin-do-expressions/.npmignore b/packages/babel-plugin-transform-comprehensions/.npmignore similarity index 100% rename from packages/babel-plugin-do-expressions/.npmignore rename to packages/babel-plugin-transform-comprehensions/.npmignore diff --git a/packages/babel-plugin-comprehensions/README.md b/packages/babel-plugin-transform-comprehensions/README.md similarity index 53% rename from packages/babel-plugin-comprehensions/README.md rename to packages/babel-plugin-transform-comprehensions/README.md index 53d1f3e140..96577a2e44 100644 --- a/packages/babel-plugin-comprehensions/README.md +++ b/packages/babel-plugin-transform-comprehensions/README.md @@ -1,11 +1,11 @@ -# babel-plugin-comprehensions +# babel-plugin-transform-comprehensions Compile array and generator comprehensions to ES5 ## Installation ```sh -$ npm install babel-plugin-comprehensions +$ npm install babel-plugin-transform-comprehensions ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-comprehensions ```json { - "plugins": ["comprehensions"] + "plugins": ["transform-comprehensions"] } ``` ### Via CLI ```sh -$ babel --plugins comprehensions script.js +$ babel --plugins transform-comprehensions script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["comprehensions"] + plugins: ["transform-comprehensions"] }); ``` diff --git a/packages/babel-plugin-comprehensions/package.json b/packages/babel-plugin-transform-comprehensions/package.json similarity index 80% rename from packages/babel-plugin-comprehensions/package.json rename to packages/babel-plugin-transform-comprehensions/package.json index 870755f3c0..65d8471a42 100644 --- a/packages/babel-plugin-comprehensions/package.json +++ b/packages/babel-plugin-transform-comprehensions/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-comprehensions", + "name": "babel-plugin-transform-comprehensions", "version": "1.0.0", "description": "Compile array and generator comprehensions to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-comprehensions/src/index.js b/packages/babel-plugin-transform-comprehensions/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-comprehensions/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-arrow-functions/.npmignore b/packages/babel-plugin-transform-constant-folding/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-arrow-functions/.npmignore rename to packages/babel-plugin-transform-constant-folding/.npmignore diff --git a/packages/babel-plugin-constant-folding/README.md b/packages/babel-plugin-transform-constant-folding/README.md similarity index 56% rename from packages/babel-plugin-constant-folding/README.md rename to packages/babel-plugin-transform-constant-folding/README.md index ea3628c133..4e54697dd5 100644 --- a/packages/babel-plugin-constant-folding/README.md +++ b/packages/babel-plugin-transform-constant-folding/README.md @@ -1,11 +1,11 @@ -# babel-plugin-constant-folding +# babel-plugin-transform-constant-folding Compile static constants (ie. code that we can statically determine to be constant at runtime) ## Installation ```sh -$ npm install babel-plugin-constant-folding +$ npm install babel-plugin-transform-constant-folding ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-constant-folding ```json { - "plugins": ["constant-folding"] + "plugins": ["transform-constant-folding"] } ``` ### Via CLI ```sh -$ babel --plugins constant-folding script.js +$ babel --plugins transform-constant-folding script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["constant-folding"] + plugins: ["transform-constant-folding"] }); ``` diff --git a/packages/babel-plugin-constant-folding/package.json b/packages/babel-plugin-transform-constant-folding/package.json similarity index 68% rename from packages/babel-plugin-constant-folding/package.json rename to packages/babel-plugin-transform-constant-folding/package.json index 583b981b9e..c0a30610ec 100644 --- a/packages/babel-plugin-constant-folding/package.json +++ b/packages/babel-plugin-transform-constant-folding/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-constant-folding", + "name": "babel-plugin-transform-constant-folding", "version": "1.0.1", "description": "Compile static constants (ie. code that we can statically determine to be constant at runtime)", - "repository": "babel/babelbabel-plugin-constant-folding", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-constant-folding/src/index.js b/packages/babel-plugin-transform-constant-folding/src/index.js similarity index 61% rename from packages/babel-plugin-constant-folding/src/index.js rename to packages/babel-plugin-transform-constant-folding/src/index.js index 32f26caa9a..885f285ac8 100644 --- a/packages/babel-plugin-constant-folding/src/index.js +++ b/packages/babel-plugin-transform-constant-folding/src/index.js @@ -1,10 +1,5 @@ -export default function ({ Plugin, types: t }) { +export default function ({ types: t }) { return { - metadata: { - group: "builtin-prepass", - experimental: true - }, - visitor: { AssignmentExpression() { var left = this.get("left"); @@ -21,29 +16,29 @@ export default function ({ Plugin, types: t }) { } }, - IfStatement() { - var evaluated = this.get("test").evaluate(); + IfStatement(path) { + var evaluated = path.get("test").evaluate(); if (!evaluated.confident) { // todo: deopt binding values for constant violations inside - return this.skip(); + return path.skip(); } if (evaluated.value) { - this.skipKey("alternate"); + path.skipKey("alternate"); } else { - this.skipKey("consequent"); + path.skipKey("consequent"); } }, Scopable: { - enter() { - var funcScope = this.scope.getFunctionParent(); + enter(path) { + var funcScope = path.scope.getFunctionParent(); - for (var name in this.scope.bindings) { - var binding = this.scope.bindings[name]; + for (var name in path.scope.bindings) { + var binding = path.scope.bindings[name]; var deopt = false; - for (var path of (binding.constantViolations: Array)) { + for (let path of (binding.constantViolations: Array)) { var funcViolationScope = path.scope.getFunctionParent(); if (funcViolationScope !== funcScope) { deopt = true; @@ -55,17 +50,17 @@ export default function ({ Plugin, types: t }) { } }, - exit() { - for (var name in this.scope.bindings) { - var binding = this.scope.bindings[name]; + exit(path) { + for (var name in path.scope.bindings) { + var binding = path.scope.bindings[name]; binding.clearValue(); } } }, Expression: { - exit() { - var res = this.evaluate(); + exit(path) { + var res = path.evaluate(); if (res.confident) return t.valueToNode(res.value); } } diff --git a/packages/babel-plugin-es2015-block-scoped-functions/.npmignore b/packages/babel-plugin-transform-dead-code-elimination/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-block-scoped-functions/.npmignore rename to packages/babel-plugin-transform-dead-code-elimination/.npmignore diff --git a/packages/babel-plugin-transform-dead-code-elimination/README.md b/packages/babel-plugin-transform-dead-code-elimination/README.md new file mode 100644 index 0000000000..d5c9c10eb8 --- /dev/null +++ b/packages/babel-plugin-transform-dead-code-elimination/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-dead-code-elimination + +Eliminate dead code + +## Installation + +```sh +$ npm install babel-plugin-transform-dead-code-elimination +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-dead-code-elimination"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-dead-code-elimination script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-dead-code-elimination"] +}); +``` diff --git a/packages/babel-plugin-dead-code-elimination/package.json b/packages/babel-plugin-transform-dead-code-elimination/package.json similarity index 57% rename from packages/babel-plugin-dead-code-elimination/package.json rename to packages/babel-plugin-transform-dead-code-elimination/package.json index ece753b8c7..ccae3de84f 100644 --- a/packages/babel-plugin-dead-code-elimination/package.json +++ b/packages/babel-plugin-transform-dead-code-elimination/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-dead-code-elimination", + "name": "babel-plugin-transform-dead-code-elimination", "version": "1.0.2", "description": "Eliminate dead code", - "repository": "babel/babelbabel-plugin-dead-code-elimination", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-dead-code-elimination/src/index.js b/packages/babel-plugin-transform-dead-code-elimination/src/index.js similarity index 78% rename from packages/babel-plugin-dead-code-elimination/src/index.js rename to packages/babel-plugin-transform-dead-code-elimination/src/index.js index 98d0eb4d02..ea219b213d 100644 --- a/packages/babel-plugin-dead-code-elimination/src/index.js +++ b/packages/babel-plugin-transform-dead-code-elimination/src/index.js @@ -1,4 +1,4 @@ -export default function ({ Plugin, types: t }) { +export default function ({ types: t }) { function toStatements(node) { if (t.isBlockStatement(node)) { var hasBlockScoped = false; @@ -17,7 +17,9 @@ export default function ({ Plugin, types: t }) { } var visitor = { - ReferencedIdentifier(node, parent, scope) { + ReferencedIdentifier(path) { + var { node, scope } = path; + var binding = scope.getBinding(node.name); if (!binding || binding.references > 1 || !binding.constant) return; if (binding.kind === "param" || binding.kind === "module") return; @@ -38,63 +40,62 @@ export default function ({ Plugin, types: t }) { if (binding.path.scope.parent !== scope) return; } - if (this.findParent((path) => path.node === replacement)) { + if (path.findParent((path) => path.node === replacement)) { return; } t.toExpression(replacement); scope.removeBinding(node.name); - binding.path.dangerouslyRemove(); + binding.path.remove(); return replacement; }, - "ClassDeclaration|FunctionDeclaration"(node, parent, scope) { - var binding = scope.getBinding(node.id.name); + "ClassDeclaration|FunctionDeclaration"(path) { + var binding = path.scope.getBinding(path.node.id.name); if (binding && !binding.referenced) { - this.dangerouslyRemove(); + path.remove(); } }, - VariableDeclarator(node, parent, scope) { + VariableDeclarator({ node, scope }) { if (!t.isIdentifier(node.id) || !scope.isPure(node.init, true)) return; visitor["ClassDeclaration|FunctionDeclaration"].apply(this, arguments); }, - ConditionalExpression(node) { - var evaluateTest = this.get("test").evaluateTruthy(); + ConditionalExpression(path) { + var evaluateTest = path.get("test").evaluateTruthy(); if (evaluateTest === true) { - return node.consequent; + return path.node.consequent; } else if (evaluateTest === false) { - return node.alternate; + return path.node.alternate; } }, - BlockStatement() { - var paths = this.get("body"); + BlockStatement(path) { + var paths: Array = path.get("body"); var purge = false; - for (var i = 0; i < paths.length; i++) { - let path = paths[i]; - + for (let path of paths) { if (!purge && path.isCompletionStatement()) { purge = true; continue; } if (purge && !path.isFunctionDeclaration()) { - path.dangerouslyRemove(); + path.remove(); } } }, IfStatement: { - exit(node) { + exit(path) { + var { node } = path; var consequent = node.consequent; var alternate = node.alternate; var test = node.test; - var evaluateTest = this.get("test").evaluateTruthy(); + var evaluateTest = path.get("test").evaluateTruthy(); // we can check if a test will be truthy 100% and if so then we can inline // the consequent and completely ignore the alternate @@ -118,7 +119,7 @@ export default function ({ Plugin, types: t }) { if (alternate) { return toStatements(alternate); } else { - return this.dangerouslyRemove(); + return path.remove(); } } @@ -146,12 +147,5 @@ export default function ({ Plugin, types: t }) { } }; - return { - metadata: { - group: "builtin-pre", - experimental: true - }, - - visitor - }; + return { visitor }; } diff --git a/packages/babel-plugin-es2015-block-scoping/.npmignore b/packages/babel-plugin-transform-decorators/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-block-scoping/.npmignore rename to packages/babel-plugin-transform-decorators/.npmignore diff --git a/packages/babel-plugin-decorators/README.md b/packages/babel-plugin-transform-decorators/README.md similarity index 55% rename from packages/babel-plugin-decorators/README.md rename to packages/babel-plugin-transform-decorators/README.md index c06fd0b75b..7a0d76196d 100644 --- a/packages/babel-plugin-decorators/README.md +++ b/packages/babel-plugin-transform-decorators/README.md @@ -1,11 +1,11 @@ -# babel-plugin-decorators +# babel-plugin-transform-decorators Compile class and object decorators to ES5 ## Installation ```sh -$ npm install babel-plugin-decorators +$ npm install babel-plugin-transform-decorators ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-decorators ```json { - "plugins": ["decorators"] + "plugins": ["transform-decorators"] } ``` ### Via CLI ```sh -$ babel --plugins decorators script.js +$ babel --plugins transform-decorators script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["decorators"] + plugins: ["transform-decorators"] }); ``` diff --git a/packages/babel-plugin-decorators/package.json b/packages/babel-plugin-transform-decorators/package.json similarity index 81% rename from packages/babel-plugin-decorators/package.json rename to packages/babel-plugin-transform-decorators/package.json index fbf71128a6..d42435aa62 100644 --- a/packages/babel-plugin-decorators/package.json +++ b/packages/babel-plugin-transform-decorators/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-decorators", + "name": "babel-plugin-transform-decorators", "version": "1.0.0", "description": "Compile class and object decorators to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-decorators/src/index.js b/packages/babel-plugin-transform-decorators/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-decorators/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-classes/.npmignore b/packages/babel-plugin-transform-do-expressions/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-classes/.npmignore rename to packages/babel-plugin-transform-do-expressions/.npmignore diff --git a/packages/babel-plugin-do-expressions/README.md b/packages/babel-plugin-transform-do-expressions/README.md similarity index 51% rename from packages/babel-plugin-do-expressions/README.md rename to packages/babel-plugin-transform-do-expressions/README.md index 62dd32cf8b..bdf303c85d 100644 --- a/packages/babel-plugin-do-expressions/README.md +++ b/packages/babel-plugin-transform-do-expressions/README.md @@ -1,11 +1,11 @@ -# babel-plugin-do-expressions +# babel-plugin-transform-do-expressions Compile do expressions to ES5 ## Installation ```sh -$ npm install babel-plugin-do-expressions +$ npm install babel-plugin-transform-do-expressions ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-do-expressions ```json { - "plugins": ["do-expressions"] + "plugins": ["transform-do-expressions"] } ``` ### Via CLI ```sh -$ babel --plugins do-expressions script.js +$ babel --plugins transform-do-expressions script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["do-expressions"] + plugins: ["transform-do-expressions"] }); ``` diff --git a/packages/babel-plugin-do-expressions/package.json b/packages/babel-plugin-transform-do-expressions/package.json similarity index 79% rename from packages/babel-plugin-do-expressions/package.json rename to packages/babel-plugin-transform-do-expressions/package.json index 8572ad3331..a9bd561141 100644 --- a/packages/babel-plugin-do-expressions/package.json +++ b/packages/babel-plugin-transform-do-expressions/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-do-expressions", + "name": "babel-plugin-transform-do-expressions", "version": "1.0.0", "description": "Compile do expressions to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-do-expressions/src/index.js b/packages/babel-plugin-transform-do-expressions/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-do-expressions/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-computed-properties/.npmignore b/packages/babel-plugin-transform-es2015-arrow-functions/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-computed-properties/.npmignore rename to packages/babel-plugin-transform-es2015-arrow-functions/.npmignore diff --git a/packages/babel-plugin-transform-es2015-arrow-functions/README.md b/packages/babel-plugin-transform-es2015-arrow-functions/README.md new file mode 100644 index 0000000000..4ae0a29cde --- /dev/null +++ b/packages/babel-plugin-transform-es2015-arrow-functions/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-arrow-functions + +Compile ES2015 arrow functions to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-arrow-functions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-arrow-functions"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-arrow-functions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-arrow-functions"] +}); +``` diff --git a/packages/babel-plugin-es2015-arrow-functions/package.json b/packages/babel-plugin-transform-es2015-arrow-functions/package.json similarity index 77% rename from packages/babel-plugin-es2015-arrow-functions/package.json rename to packages/babel-plugin-transform-es2015-arrow-functions/package.json index 9fe2dfcc8a..42eabb2309 100644 --- a/packages/babel-plugin-es2015-arrow-functions/package.json +++ b/packages/babel-plugin-transform-es2015-arrow-functions/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-arrow-functions", + "name": "babel-plugin-transform-es2015-arrow-functions", "version": "1.0.0", "description": "Compile ES2015 arrow functions to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js b/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js new file mode 100644 index 0000000000..017853c983 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js @@ -0,0 +1,32 @@ +export default function ({ types: t }) { + return { + visitor: { + ArrowFunctionExpression(path, state) { + if (state.opts.spec) { + if (path.node.shadow) return; + path.node.shadow = { this: false }; + + var boundThis = t.thisExpression(); + boundThis._forceShadow = path; + + // make sure that arrow function won't be instantiated + path.ensureBlock(); + path.get("body").unshiftContainer( + "body", + t.expressionStatement(t.callExpression(state.addHelper("new-arrow-check"), [ + t.thisExpression(), + boundThis + ])) + ); + + path.replaceWith(t.callExpression( + t.memberExpression(path.node, t.identifier("bind")), + [t.thisExpression()] + )); + } else { + path.arrowFunctionToShadowed(); + } + } + } + }; +} diff --git a/packages/babel-plugin-es2015-constants/.npmignore b/packages/babel-plugin-transform-es2015-block-scoped-functions/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-constants/.npmignore rename to packages/babel-plugin-transform-es2015-block-scoped-functions/.npmignore diff --git a/packages/babel-plugin-transform-es2015-block-scoped-functions/README.md b/packages/babel-plugin-transform-es2015-block-scoped-functions/README.md new file mode 100644 index 0000000000..fa4eb2de1f --- /dev/null +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-block-scoped-functions + +Babel plugin to ensure function declarations at the block level are block scoped. + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-block-scoped-functions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-block-scoped-functions"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-block-scoped-functions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-block-scoped-functions"] +}); +``` diff --git a/packages/babel-plugin-es2015-block-scoped-functions/package.json b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json similarity index 66% rename from packages/babel-plugin-es2015-block-scoped-functions/package.json rename to packages/babel-plugin-transform-es2015-block-scoped-functions/package.json index 8f6bd76583..b23f5f3ff4 100644 --- a/packages/babel-plugin-es2015-block-scoped-functions/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-es2015-block-scoped-functions", + "name": "babel-plugin-transform-es2015-block-scoped-functions", "version": "1.0.4", "description": "Babel plugin to ensure function declarations at the block level are block scoped", - "repository": "babel/babelbabel-plugin-jscript", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-es2015-block-scoped-functions/src/index.js b/packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js similarity index 76% rename from packages/babel-plugin-es2015-block-scoped-functions/src/index.js rename to packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js index a9b862b2e2..192df08324 100644 --- a/packages/babel-plugin-es2015-block-scoped-functions/src/index.js +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js @@ -1,12 +1,11 @@ -export default function ({ Plugin, types: t }) { +export default function ({ types: t }) { function statementList(key, path) { - var paths = path.get(key); - - for (var i = 0; i < paths.length; i++) { - let path = paths[i]; + var paths: Array = path.get(key); + for (let path of paths) { var func = path.node; - if (!t.isFunctionDeclaration(func)) continue; + + if (!path.isFunctionDeclaration()) continue; var declar = t.variableDeclaration("let", [ t.variableDeclarator(func.id, t.toExpression(func)) diff --git a/packages/babel-plugin-es2015-destructuring/.npmignore b/packages/babel-plugin-transform-es2015-block-scoping/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-destructuring/.npmignore rename to packages/babel-plugin-transform-es2015-block-scoping/.npmignore diff --git a/packages/babel-plugin-es2015-block-scoping/README.md b/packages/babel-plugin-transform-es2015-block-scoping/README.md similarity index 50% rename from packages/babel-plugin-es2015-block-scoping/README.md rename to packages/babel-plugin-transform-es2015-block-scoping/README.md index b93242e191..06884df4f9 100644 --- a/packages/babel-plugin-es2015-block-scoping/README.md +++ b/packages/babel-plugin-transform-es2015-block-scoping/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-block-scoping +# babel-plugin-transform-es2015-block-scoping Compile ES2015 block scoping (const and let) to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-block-scoping +$ npm install babel-plugin-transform-es2015-block-scoping ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-block-scoping ```json { - "plugins": ["es2015-block-scoping"] + "plugins": ["transform-es2015-block-scoping"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-block-scoping script.js +$ babel --plugins transform-es2015-block-scoping script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-block-scoping"] + plugins: ["transform-es2015-block-scoping"] }); ``` diff --git a/packages/babel-plugin-es2015-block-scoping/package.json b/packages/babel-plugin-transform-es2015-block-scoping/package.json similarity index 78% rename from packages/babel-plugin-es2015-block-scoping/package.json rename to packages/babel-plugin-transform-es2015-block-scoping/package.json index 1d52749a03..86ab3ac07a 100644 --- a/packages/babel-plugin-es2015-block-scoping/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoping/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-block-scoping", + "name": "babel-plugin-transform-es2015-block-scoping", "version": "1.0.0", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-block-scoping/src/index.js b/packages/babel-plugin-transform-es2015-block-scoping/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-block-scoping/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-for-of/.npmignore b/packages/babel-plugin-transform-es2015-classes/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-for-of/.npmignore rename to packages/babel-plugin-transform-es2015-classes/.npmignore diff --git a/packages/babel-plugin-es2015-classes/README.md b/packages/babel-plugin-transform-es2015-classes/README.md similarity index 51% rename from packages/babel-plugin-es2015-classes/README.md rename to packages/babel-plugin-transform-es2015-classes/README.md index 57b98364cf..34d465b11e 100644 --- a/packages/babel-plugin-es2015-classes/README.md +++ b/packages/babel-plugin-transform-es2015-classes/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-classes +# babel-plugin-transform-es2015-classes Compile ES2015 classes to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-classes +$ npm install babel-plugin-transform-es2015-classes ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-classes ```json { - "plugins": ["es2015-classes"] + "plugins": ["transform-es2015-classes"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-classes script.js +$ babel --plugins transform-es2015-classes script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-classes"] + plugins: ["transform-es2015-classes"] }); ``` diff --git a/packages/babel-plugin-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json similarity index 79% rename from packages/babel-plugin-es2015-classes/package.json rename to packages/babel-plugin-transform-es2015-classes/package.json index cf2e8e3b0a..e67c9f019e 100644 --- a/packages/babel-plugin-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-classes", + "name": "babel-plugin-transform-es2015-classes", "version": "1.0.0", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-classes/src/index.js b/packages/babel-plugin-transform-es2015-classes/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-classes/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-function-name/.npmignore b/packages/babel-plugin-transform-es2015-computed-properties/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-function-name/.npmignore rename to packages/babel-plugin-transform-es2015-computed-properties/.npmignore diff --git a/packages/babel-plugin-transform-es2015-computed-properties/README.md b/packages/babel-plugin-transform-es2015-computed-properties/README.md new file mode 100644 index 0000000000..830b35204b --- /dev/null +++ b/packages/babel-plugin-transform-es2015-computed-properties/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-computed-properties + +Compile ES2015 computed properties to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-computed-properties +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-computed-properties"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-computed-properties script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-computed-properties"] +}); +``` diff --git a/packages/babel-plugin-es2015-computed-properties/package.json b/packages/babel-plugin-transform-es2015-computed-properties/package.json similarity index 76% rename from packages/babel-plugin-es2015-computed-properties/package.json rename to packages/babel-plugin-transform-es2015-computed-properties/package.json index 0732a5f5b4..7525216cca 100644 --- a/packages/babel-plugin-es2015-computed-properties/package.json +++ b/packages/babel-plugin-transform-es2015-computed-properties/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-computed-properties", + "name": "babel-plugin-transform-es2015-computed-properties", "version": "1.0.0", "description": "Compile ES2015 computed properties to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-computed-properties/src/index.js b/packages/babel-plugin-transform-es2015-computed-properties/src/index.js similarity index 96% rename from packages/babel-plugin-es2015-computed-properties/src/index.js rename to packages/babel-plugin-transform-es2015-computed-properties/src/index.js index 52e34fae11..c6c33b61f2 100644 --- a/packages/babel-plugin-es2015-computed-properties/src/index.js +++ b/packages/babel-plugin-transform-es2015-computed-properties/src/index.js @@ -47,7 +47,7 @@ export default function ({ types: t }) { return { visitor: { ObjectExpression: { - exit(node, parent, scope, file) { + exit({ node, scope, parent }, file) { var hasComputed = false; for (let prop of (node.properties: Array)) { @@ -76,24 +76,15 @@ export default function ({ types: t }) { } }); - // - var objId = scope.generateUidIdentifierBasedOnNode(parent); - - // - var body = []; - // - var callback = spec; if (file.isLoose("es6.properties.computed")) callback = loose; var result = callback(node, body, objId, initProps, file); if (result) return result; - // - body.unshift(t.variableDeclaration("var", [ t.variableDeclarator(objId, t.objectExpression(initProps)) ])); diff --git a/packages/babel-plugin-es2015-literals/.npmignore b/packages/babel-plugin-transform-es2015-constants/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-literals/.npmignore rename to packages/babel-plugin-transform-es2015-constants/.npmignore diff --git a/packages/babel-plugin-es2015-constants/README.md b/packages/babel-plugin-transform-es2015-constants/README.md similarity index 50% rename from packages/babel-plugin-es2015-constants/README.md rename to packages/babel-plugin-transform-es2015-constants/README.md index d4b4666807..f3e5376c17 100644 --- a/packages/babel-plugin-es2015-constants/README.md +++ b/packages/babel-plugin-transform-es2015-constants/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-constants +# babel-plugin-transform-es2015-constants Compile ES2015 constants to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-constants +$ npm install babel-plugin-transform-es2015-constants ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-constants ```json { - "plugins": ["es2015-constants"] + "plugins": ["transform-es2015-constants"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-constants script.js +$ babel --plugins transform-es2015-constants script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-constants"] + plugins: ["transform-es2015-constants"] }); ``` diff --git a/packages/babel-plugin-es2015-constants/package.json b/packages/babel-plugin-transform-es2015-constants/package.json similarity index 78% rename from packages/babel-plugin-es2015-constants/package.json rename to packages/babel-plugin-transform-es2015-constants/package.json index d27fbd4410..3f1b5910e5 100644 --- a/packages/babel-plugin-es2015-constants/package.json +++ b/packages/babel-plugin-transform-es2015-constants/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-constants", + "name": "babel-plugin-transform-es2015-constants", "version": "1.0.0", "description": "Compile ES2015 constants to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-constants/src/index.js b/packages/babel-plugin-transform-es2015-constants/src/index.js similarity index 70% rename from packages/babel-plugin-es2015-constants/src/index.js rename to packages/babel-plugin-transform-es2015-constants/src/index.js index 0a6b65c15c..a6a094ca65 100644 --- a/packages/babel-plugin-es2015-constants/src/index.js +++ b/packages/babel-plugin-transform-es2015-constants/src/index.js @@ -1,20 +1,18 @@ export default function ({ messages }) { return { visitor: { - Scope(node, parent, scope) { + Scope({ scope }) { for (var name in scope.bindings) { var binding = scope.bindings[name]; - - // not a constant if (binding.kind !== "const" && binding.kind !== "module") continue; for (var violation of (binding.constantViolations: Array)) { - throw violation.errorWithNode(messages.get("readOnly", name)); + throw violation.buildCodeFrameError(messages.get("readOnly", name)); } } }, - VariableDeclaration(node) { + VariableDeclaration({ node }) { if (node.kind === "const") node.kind = "let"; } } diff --git a/packages/babel-plugin-es2015-object-super/.npmignore b/packages/babel-plugin-transform-es2015-destructuring/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-object-super/.npmignore rename to packages/babel-plugin-transform-es2015-destructuring/.npmignore diff --git a/packages/babel-plugin-transform-es2015-destructuring/README.md b/packages/babel-plugin-transform-es2015-destructuring/README.md new file mode 100644 index 0000000000..77e3e48f16 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-destructuring/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-destructuring + +Compile ES2015 destructuring to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-destructuring +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-destructuring"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-destructuring script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-destructuring"] +}); +``` diff --git a/packages/babel-plugin-es2015-destructuring/package.json b/packages/babel-plugin-transform-es2015-destructuring/package.json similarity index 77% rename from packages/babel-plugin-es2015-destructuring/package.json rename to packages/babel-plugin-transform-es2015-destructuring/package.json index a1be68e609..ce18916fa7 100644 --- a/packages/babel-plugin-es2015-destructuring/package.json +++ b/packages/babel-plugin-transform-es2015-destructuring/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-destructuring", + "name": "babel-plugin-transform-es2015-destructuring", "version": "1.0.0", "description": "Compile ES2015 destructuring to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-destructuring/src/index.js b/packages/babel-plugin-transform-es2015-destructuring/src/index.js similarity index 84% rename from packages/babel-plugin-es2015-destructuring/src/index.js rename to packages/babel-plugin-transform-es2015-destructuring/src/index.js index bcdb2113af..895f2b9f39 100644 --- a/packages/babel-plugin-es2015-destructuring/src/index.js +++ b/packages/babel-plugin-transform-es2015-destructuring/src/index.js @@ -5,8 +5,8 @@ export default function ({ types: t, messages }) { */ function variableDeclarationHasPattern(node) { - for (var i = 0; i < node.declarations.length; i++) { - if (t.isPattern(node.declarations[i].id)) { + for (var declar of (node.declarations: Array)) { + if (t.isPattern(declar.id)) { return true; } } @@ -18,8 +18,8 @@ export default function ({ types: t, messages }) { */ function hasRest(pattern) { - for (var i = 0; i < pattern.elements.length; i++) { - if (t.isRestElement(pattern.elements[i])) { + for (var elem of (pattern.elements: Array)) { + if (t.isRestElement(elem)) { return true; } } @@ -27,10 +27,10 @@ export default function ({ types: t, messages }) { } var arrayUnpackVisitor = { - ReferencedIdentifier(node, parent, scope, state) { - if (state.bindings[node.name]) { + ReferencedIdentifier(path, state) { + if (state.bindings[path.node.name]) { state.deopt = true; - this.stop(); + path.stop(); } } }; @@ -86,7 +86,7 @@ export default function ({ types: t, messages }) { } toArray(node, count) { - if (this.file.isLoose("es6.destructuring") || (t.isIdentifier(node) && this.arrays[node.name])) { + if (this.file.opts.loose || (t.isIdentifier(node) && this.arrays[node.name])) { return node; } else { return this.scope.toArray(node, count); @@ -127,7 +127,7 @@ export default function ({ types: t, messages }) { } } - pushObjectSpread(pattern, objRef, spreadProp, spreadPropIndex) { + pushObjectRest(pattern, objRef, spreadProp, spreadPropIndex) { // get all the keys that appear in this object before the current spread var keys = []; @@ -140,7 +140,7 @@ export default function ({ types: t, messages }) { if (i >= spreadPropIndex) break; // ignore other spread properties - if (t.isSpreadProperty(prop)) continue; + if (t.isRestProperty(prop)) continue; var key = prop.key; if (t.isIdentifier(key) && !prop.computed) key = t.stringLiteral(prop.key.name); @@ -191,8 +191,8 @@ export default function ({ types: t, messages }) { for (var i = 0; i < pattern.properties.length; i++) { var prop = pattern.properties[i]; - if (t.isSpreadProperty(prop)) { - this.pushObjectSpread(pattern, objRef, prop, i); + if (t.isRestProperty(prop)) { + this.pushObjectRest(pattern, objRef, prop, i); } else { this.pushObjectProperty(prop, objRef); } @@ -324,12 +324,9 @@ export default function ({ types: t, messages }) { return { - metadata: { - group: "builtin-advanced" - }, - visitor: { - ForXStatement(node, parent, scope, file) { + ForXStatement(path, file) { + var { node, scope } = path; var left = node.left; if (t.isPattern(left)) { @@ -341,7 +338,7 @@ export default function ({ types: t, messages }) { t.variableDeclarator(temp) ]); - this.ensureBlock(); + path.ensureBlock(); node.body.body.unshift(t.variableDeclaration("var", [ t.variableDeclarator(left, temp) @@ -371,57 +368,13 @@ export default function ({ types: t, messages }) { destructuring.init(pattern, key); - this.ensureBlock(); + path.ensureBlock(); var block = node.body; block.body = nodes.concat(block.body); }, - Function(node, parent, scope, file) { - var hasDestructuring = false; - for (let pattern of (node.params: Array)) { - if (t.isPattern(pattern)) { - hasDestructuring = true; - break; - } - } - if (!hasDestructuring) return; - - var nodes = []; - - for (var i = 0; i < node.params.length; i++) { - let pattern = node.params[i]; - if (!t.isPattern(pattern)) continue; - - var ref = scope.generateUidIdentifier("ref"); - if (t.isAssignmentPattern(pattern)) { - var _pattern = pattern; - pattern = pattern.left; - _pattern.left = ref; - } else { - node.params[i] = ref; - } - - t.inherits(ref, pattern); - - var destructuring = new DestructuringTransformer({ - blockHoist: node.params.length - i + 1, - nodes: nodes, - scope: scope, - file: file, - kind: "let" - }); - - destructuring.init(pattern, ref); - } - - this.ensureBlock(); - - var block = node.body; - block.body = nodes.concat(block.body); - }, - - CatchClause(node, parent, scope, file) { + CatchClause({ node, scope }, file) { var pattern = node.param; if (!t.isPattern(pattern)) return; @@ -441,7 +394,8 @@ export default function ({ types: t, messages }) { node.body.body = nodes.concat(node.body.body); }, - AssignmentExpression(node, parent, scope, file) { + AssignmentExpression(path, file) { + var { node, scope } = path; if (!t.isPattern(node.left)) return; var nodes = []; @@ -454,7 +408,7 @@ export default function ({ types: t, messages }) { }); var ref; - if (this.isCompletionRecord() || !this.parentPath.isExpressionStatement()) { + if (path.isCompletionRecord() || !path.parentPath.isExpressionStatement()) { ref = scope.generateUidIdentifierBasedOnNode(node.right, "ref"); nodes.push(t.variableDeclaration("var", [ @@ -475,7 +429,7 @@ export default function ({ types: t, messages }) { return nodes; }, - VariableDeclaration(node, parent, scope, file) { + VariableDeclaration({ node, scope, parent }, file) { if (t.isForXStatement(parent)) return; if (!variableDeclarationHasPattern(node)) return; @@ -519,7 +473,7 @@ export default function ({ types: t, messages }) { declar = declar || t.variableDeclaration(node.kind, []); if (!t.isVariableDeclaration(node) && declar.kind !== node.kind) { - throw file.errorWithNode(node, messages.get("invalidParentForThisNode")); + throw file.buildCodeFrameError(node, messages.get("invalidParentForThisNode")); } declar.declarations = declar.declarations.concat(node.declarations); diff --git a/packages/babel-plugin-es2015-parameters/.npmignore b/packages/babel-plugin-transform-es2015-for-of/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-parameters/.npmignore rename to packages/babel-plugin-transform-es2015-for-of/.npmignore diff --git a/packages/babel-plugin-es2015-for-of/README.md b/packages/babel-plugin-transform-es2015-for-of/README.md similarity index 52% rename from packages/babel-plugin-es2015-for-of/README.md rename to packages/babel-plugin-transform-es2015-for-of/README.md index 8fbbc0fbce..e0300c7e63 100644 --- a/packages/babel-plugin-es2015-for-of/README.md +++ b/packages/babel-plugin-transform-es2015-for-of/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-for-of +# babel-plugin-transform-es2015-for-of Compile ES2015 for...of to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-for-of +$ npm install babel-plugin-transform-es2015-for-of ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-for-of ```json { - "plugins": ["es2015-for-of"] + "plugins": ["transform-es2015-for-of"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-for-of script.js +$ babel --plugins transform-es2015-for-of script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-for-of"] + plugins: ["transform-es2015-for-of"] }); ``` diff --git a/packages/babel-plugin-es2015-for-of/package.json b/packages/babel-plugin-transform-es2015-for-of/package.json similarity index 79% rename from packages/babel-plugin-es2015-for-of/package.json rename to packages/babel-plugin-transform-es2015-for-of/package.json index d668bd5617..2940ab9616 100644 --- a/packages/babel-plugin-es2015-for-of/package.json +++ b/packages/babel-plugin-transform-es2015-for-of/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-for-of", + "name": "babel-plugin-transform-es2015-for-of", "version": "1.0.0", "description": "Compile ES2015 for...of to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-for-of/src/index.js b/packages/babel-plugin-transform-es2015-for-of/src/index.js new file mode 100644 index 0000000000..85f2b73c65 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-for-of/src/index.js @@ -0,0 +1,227 @@ +export default function ({ messages, template, types: t }) { + var buildForOfArray = template(` + for (var KEY = 0; KEY < ARR.length; KEY++) BODY; + `); + + var buildForOfLoose = template(` + for (var LOOP_OBJECT = OBJECT, + IS_ARRAY = Array.isArray(LOOP_OBJECT), + INDEX = 0, + LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) { + var ID; + if (IS_ARRAY) { + if (INDEX >= LOOP_OBJECT.length) break; + ID = LOOP_OBJECT[INDEX++]; + } else { + INDEX = LOOP_OBJECT.next(); + if (INDEX.done) break; + ID = INDEX.value; + } + } + `); + + var buildForOf = template(` + var ITERATOR_COMPLETION = true; + var ITERATOR_HAD_ERROR_KEY = false; + var ITERATOR_ERROR_KEY = undefined; + try { + for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) { + } + } catch (err) { + ITERATOR_HAD_ERROR_KEY = true; + ITERATOR_ERROR_KEY = err; + } finally { + try { + if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) { + ITERATOR_KEY.return(); + } + } finally { + if (ITERATOR_HAD_ERROR_KEY) { + throw ITERATOR_ERROR_KEY; + } + } + } + `); + + function _ForOfStatementArray(path) { + var { node, scope } = path; + var nodes = []; + var right = node.right; + + if (!t.isIdentifier(right) || !scope.hasBinding(right.name)) { + var uid = scope.generateUidIdentifier("arr"); + nodes.push(t.variableDeclaration("var", [ + t.variableDeclarator(uid, right) + ])); + right = uid; + } + + var iterationKey = scope.generateUidIdentifier("i"); + + var loop = buildForOfArray({ + BODY: node.body, + KEY: iterationKey, + ARR: right + }); + + t.inherits(loop, node); + t.ensureBlock(loop); + + var iterationValue = t.memberExpression(right, iterationKey, true); + + var left = node.left; + if (t.isVariableDeclaration(left)) { + left.declarations[0].init = iterationValue; + loop.body.body.unshift(left); + } else { + loop.body.body.unshift(t.expressionStatement(t.assignmentExpression("=", left, iterationValue))); + } + + if (path.parentPath.isLabeledStatement()) { + loop = t.labeledStatement(path.parentPath.node.label, loop); + } + + nodes.push(loop); + + return nodes; + } + + + return { + visitor: { + ForOfStatement(path, state) { + if (path.get("right").isArrayExpression()) { + return _ForOfStatementArray.call(this, path, state); + } + + var callback = spec; + if (state.opts.loose) callback = loose; + + var { node } = path; + var build = callback(path, state); + var declar = build.declar; + var loop = build.loop; + var block = loop.body; + + // ensure that it's a block so we can take all its statements + path.ensureBlock(); + + // add the value declaration to the new loop body + if (declar) { + block.body.push(declar); + } + + // push the rest of the original loop body onto our new body + block.body = block.body.concat(node.body.body); + + t.inherits(loop, node); + t.inherits(loop.body, node.body); + + if (build.replaceParent) { + path.parentPath.replaceWithMultiple(build.node); + path.remove(); + } else { + path.replaceWithMultiple(build.node); + } + } + } + }; + + function loose(path, file) { + var { node, scope } = path; + + var left = node.left; + var declar, id; + + if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { + // for (i of test), for ({ i } of test) + id = left; + } else if (t.isVariableDeclaration(left)) { + // for (var i of test) + id = scope.generateUidIdentifier("ref"); + declar = t.variableDeclaration(left.kind, [ + t.variableDeclarator(left.declarations[0].id, id) + ]); + } else { + throw file.buildCodeFrameError(left, messages.get("unknownForHead", left.type)); + } + + var iteratorKey = scope.generateUidIdentifier("iterator"); + var isArrayKey = scope.generateUidIdentifier("isArray"); + + var loop = buildForOfLoose({ + LOOP_OBJECT: iteratorKey, + IS_ARRAY: isArrayKey, + OBJECT: node.right, + INDEX: scope.generateUidIdentifier("i"), + ID: id + }); + + if (!declar) { + // no declaration so we need to remove the variable declaration at the top of + // the for-of-loose template + loop.body.body.shift(); + } + + // + + return { + declar: declar, + node: loop, + loop: loop + }; + } + + function spec(path, file) { + var { node, scope, parent } = path; + var left = node.left; + var declar; + + var stepKey = scope.generateUidIdentifier("step"); + var stepValue = t.memberExpression(stepKey, t.identifier("value")); + + if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { + // for (i of test), for ({ i } of test) + declar = t.expressionStatement(t.assignmentExpression("=", left, stepValue)); + } else if (t.isVariableDeclaration(left)) { + // for (var i of test) + declar = t.variableDeclaration(left.kind, [ + t.variableDeclarator(left.declarations[0].id, stepValue) + ]); + } else { + throw file.buildCodeFrameError(left, messages.get("unknownForHead", left.type)); + } + + // + + var iteratorKey = scope.generateUidIdentifier("iterator"); + + var template = buildForOf({ + ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier("didIteratorError"), + ITERATOR_COMPLETION: scope.generateUidIdentifier("iteratorNormalCompletion"), + ITERATOR_ERROR_KEY: scope.generateUidIdentifier("iteratorError"), + ITERATOR_KEY: iteratorKey, + STEP_KEY: stepKey, + OBJECT: node.right, + BODY: null + }); + + var isLabeledParent = t.isLabeledStatement(parent); + + var tryBody = template[3].block.body; + var loop = tryBody[0]; + + if (isLabeledParent) { + tryBody[0] = t.labeledStatement(parent.label, loop); + } + + // + + return { + replaceParent: isLabeledParent, + declar: declar, + loop: loop, + node: template + }; + } +} diff --git a/packages/babel-plugin-es2015-shorthand-properties/.npmignore b/packages/babel-plugin-transform-es2015-function-name/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-shorthand-properties/.npmignore rename to packages/babel-plugin-transform-es2015-function-name/.npmignore diff --git a/packages/babel-plugin-es2015-function-name/README.md b/packages/babel-plugin-transform-es2015-function-name/README.md similarity index 50% rename from packages/babel-plugin-es2015-function-name/README.md rename to packages/babel-plugin-transform-es2015-function-name/README.md index 83d7843ade..57b690f928 100644 --- a/packages/babel-plugin-es2015-function-name/README.md +++ b/packages/babel-plugin-transform-es2015-function-name/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-function-name +# babel-plugin-transform-es2015-function-name Apply ES2015 function.name semantics to all functions ## Installation ```sh -$ npm install babel-plugin-es2015-function-name +$ npm install babel-plugin-transform-es2015-function-name ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-function-name ```json { - "plugins": ["es2015-function-name"] + "plugins": ["transform-es2015-function-name"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-function-name script.js +$ babel --plugins transform-es2015-function-name script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-function-name"] + plugins: ["transform-es2015-function-name"] }); ``` diff --git a/packages/babel-plugin-es2015-function-name/package.json b/packages/babel-plugin-transform-es2015-function-name/package.json similarity index 79% rename from packages/babel-plugin-es2015-function-name/package.json rename to packages/babel-plugin-transform-es2015-function-name/package.json index 81137d3fca..f1c6273b60 100644 --- a/packages/babel-plugin-es2015-function-name/package.json +++ b/packages/babel-plugin-transform-es2015-function-name/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-function-name", + "name": "babel-plugin-transform-es2015-function-name", "version": "1.0.0", "description": "Apply ES2015 function.name semantics to all functions", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-function-name/src/index.js b/packages/babel-plugin-transform-es2015-function-name/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-function-name/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-spread/.npmignore b/packages/babel-plugin-transform-es2015-literals/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-spread/.npmignore rename to packages/babel-plugin-transform-es2015-literals/.npmignore diff --git a/packages/babel-plugin-es2015-literals/README.md b/packages/babel-plugin-transform-es2015-literals/README.md similarity index 53% rename from packages/babel-plugin-es2015-literals/README.md rename to packages/babel-plugin-transform-es2015-literals/README.md index 3023552546..ec81710e37 100644 --- a/packages/babel-plugin-es2015-literals/README.md +++ b/packages/babel-plugin-transform-es2015-literals/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-literals +# babel-plugin-transform-es2015-literals Compile ES2015 unicode string and number literals to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-literals +$ npm install babel-plugin-transform-es2015-literals ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-literals ```json { - "plugins": ["es2015-literals"] + "plugins": ["transform-es2015-literals"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-literals script.js +$ babel --plugins transform-es2015-literals script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-literals"] + plugins: ["transform-es2015-literals"] }); ``` diff --git a/packages/babel-plugin-es2015-literals/package.json b/packages/babel-plugin-transform-es2015-literals/package.json similarity index 80% rename from packages/babel-plugin-es2015-literals/package.json rename to packages/babel-plugin-transform-es2015-literals/package.json index 9bfc8c64e8..dcbe537ea0 100644 --- a/packages/babel-plugin-es2015-literals/package.json +++ b/packages/babel-plugin-transform-es2015-literals/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-literals", + "name": "babel-plugin-transform-es2015-literals", "version": "1.0.0", "description": "Compile ES2015 unicode string and number literals to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-literals/src/index.js b/packages/babel-plugin-transform-es2015-literals/src/index.js similarity index 88% rename from packages/babel-plugin-es2015-literals/src/index.js rename to packages/babel-plugin-transform-es2015-literals/src/index.js index c848756657..4904fe01ff 100644 --- a/packages/babel-plugin-es2015-literals/src/index.js +++ b/packages/babel-plugin-transform-es2015-literals/src/index.js @@ -1,9 +1,5 @@ export default function () { return { - metadata: { - group: "builtin-pre" - }, - visitor: { NumberLiteral(node) { // number octal like 0b10 or 0o70 diff --git a/packages/babel-plugin-es2015-sticky-regex/.npmignore b/packages/babel-plugin-transform-es2015-object-super/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-sticky-regex/.npmignore rename to packages/babel-plugin-transform-es2015-object-super/.npmignore diff --git a/packages/babel-plugin-transform-es2015-object-super/README.md b/packages/babel-plugin-transform-es2015-object-super/README.md new file mode 100644 index 0000000000..ea5bf50c7f --- /dev/null +++ b/packages/babel-plugin-transform-es2015-object-super/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-object-super + +Compile ES2015 object super to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-object-super +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-object-super"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-object-super script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-object-super"] +}); +``` diff --git a/packages/babel-plugin-es2015-object-super/package.json b/packages/babel-plugin-transform-es2015-object-super/package.json similarity index 77% rename from packages/babel-plugin-es2015-object-super/package.json rename to packages/babel-plugin-transform-es2015-object-super/package.json index f035e06c25..00dae90f9b 100644 --- a/packages/babel-plugin-es2015-object-super/package.json +++ b/packages/babel-plugin-transform-es2015-object-super/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-object-super", + "name": "babel-plugin-transform-es2015-object-super", "version": "1.0.0", "description": "Compile ES2015 object super to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-object-super/src/index.js b/packages/babel-plugin-transform-es2015-object-super/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-object-super/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-tail-call/.npmignore b/packages/babel-plugin-transform-es2015-parameters/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-tail-call/.npmignore rename to packages/babel-plugin-transform-es2015-parameters/.npmignore diff --git a/packages/babel-plugin-es2015-parameters/README.md b/packages/babel-plugin-transform-es2015-parameters/README.md similarity index 51% rename from packages/babel-plugin-es2015-parameters/README.md rename to packages/babel-plugin-transform-es2015-parameters/README.md index 3e397f46eb..e443bbba37 100644 --- a/packages/babel-plugin-es2015-parameters/README.md +++ b/packages/babel-plugin-transform-es2015-parameters/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-parameters +# babel-plugin-transform-es2015-parameters Compile ES2015 default and rest parameters to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-parameters +$ npm install babel-plugin-transform-es2015-parameters ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-parameters ```json { - "plugins": ["es2015-parameters"] + "plugins": ["transform-es2015-parameters"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-parameters script.js +$ babel --plugins transform-es2015-parameters script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-parameters"] + plugins: ["transform-es2015-parameters"] }); ``` diff --git a/packages/babel-plugin-es2015-parameters/package.json b/packages/babel-plugin-transform-es2015-parameters/package.json similarity index 79% rename from packages/babel-plugin-es2015-parameters/package.json rename to packages/babel-plugin-transform-es2015-parameters/package.json index fa7eb2b45b..3c8e296966 100644 --- a/packages/babel-plugin-es2015-parameters/package.json +++ b/packages/babel-plugin-transform-es2015-parameters/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-parameters", + "name": "babel-plugin-transform-es2015-parameters", "version": "1.0.0", "description": "Compile ES2015 default and rest parameters to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-parameters/src/index.js b/packages/babel-plugin-transform-es2015-parameters/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es2015-template-literals/.npmignore b/packages/babel-plugin-transform-es2015-shorthand-properties/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-template-literals/.npmignore rename to packages/babel-plugin-transform-es2015-shorthand-properties/.npmignore diff --git a/packages/babel-plugin-transform-es2015-shorthand-properties/README.md b/packages/babel-plugin-transform-es2015-shorthand-properties/README.md new file mode 100644 index 0000000000..8fc11b00b2 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-shorthand-properties + +Compile ES2015 shorthand properties to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-shorthand-properties +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-shorthand-properties"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-shorthand-properties script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-shorthand-properties"] +}); +``` diff --git a/packages/babel-plugin-es2015-shorthand-properties/package.json b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json similarity index 76% rename from packages/babel-plugin-es2015-shorthand-properties/package.json rename to packages/babel-plugin-transform-es2015-shorthand-properties/package.json index eea932732c..2ef556d43a 100644 --- a/packages/babel-plugin-es2015-shorthand-properties/package.json +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-shorthand-properties", + "name": "babel-plugin-transform-es2015-shorthand-properties", "version": "1.0.0", "description": "Compile ES2015 shorthand properties to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-shorthand-properties/src/index.js b/packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js similarity index 74% rename from packages/babel-plugin-es2015-shorthand-properties/src/index.js rename to packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js index d5b50326de..abd0e3ac26 100644 --- a/packages/babel-plugin-es2015-shorthand-properties/src/index.js +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js @@ -1,7 +1,7 @@ -export default function ({ types: t }) { +export default function () { return { visitor: { - Property(node) { + Property({ node }) { if (node.method) { node.method = false; } diff --git a/packages/babel-plugin-es2015-unicode-regex/.npmignore b/packages/babel-plugin-transform-es2015-spread/.npmignore similarity index 100% rename from packages/babel-plugin-es2015-unicode-regex/.npmignore rename to packages/babel-plugin-transform-es2015-spread/.npmignore diff --git a/packages/babel-plugin-es2015-spread/README.md b/packages/babel-plugin-transform-es2015-spread/README.md similarity index 51% rename from packages/babel-plugin-es2015-spread/README.md rename to packages/babel-plugin-transform-es2015-spread/README.md index 0f27269443..f5bdfc0c0a 100644 --- a/packages/babel-plugin-es2015-spread/README.md +++ b/packages/babel-plugin-transform-es2015-spread/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-spread +# babel-plugin-transform-es2015-spread Compile ES2015 spread to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-spread +$ npm install babel-plugin-transform-es2015-spread ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-spread ```json { - "plugins": ["es2015-spread"] + "plugins": ["transform-es2015-spread"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-spread script.js +$ babel --plugins transform-es2015-spread script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-spread"] + plugins: ["transform-es2015-spread"] }); ``` diff --git a/packages/babel-plugin-es2015-spread/package.json b/packages/babel-plugin-transform-es2015-spread/package.json similarity index 79% rename from packages/babel-plugin-es2015-spread/package.json rename to packages/babel-plugin-transform-es2015-spread/package.json index e405f07f7e..a5538bd3cf 100644 --- a/packages/babel-plugin-es2015-spread/package.json +++ b/packages/babel-plugin-transform-es2015-spread/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-spread", + "name": "babel-plugin-transform-es2015-spread", "version": "1.0.0", "description": "Compile ES2015 spread to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-spread/src/index.js b/packages/babel-plugin-transform-es2015-spread/src/index.js similarity index 88% rename from packages/babel-plugin-es2015-spread/src/index.js rename to packages/babel-plugin-transform-es2015-spread/src/index.js index eb3e26463e..a43cbd85d0 100644 --- a/packages/babel-plugin-es2015-spread/src/index.js +++ b/packages/babel-plugin-transform-es2015-spread/src/index.js @@ -16,19 +16,18 @@ export default function ({ types: t }) { return false; } - function build(props, scope) { + function build(props: Array, scope) { var nodes = []; var _props = []; - var push = function () { + function push() { if (!_props.length) return; nodes.push(t.arrayExpression(_props)); _props = []; - }; + } - for (var i = 0; i < props.length; i++) { - var prop = props[i]; + for (var prop of props) { if (t.isSpreadElement(prop)) { push(); nodes.push(getSpreadLiteral(prop, scope)); @@ -43,12 +42,8 @@ export default function ({ types: t }) { } return { - metadata: { - group: "builtin-advanced" - }, - visitor: { - ArrayExpression(node, parent, scope) { + ArrayExpression({ node, scope }) { var elements = node.elements; if (!hasSpread(elements)) return; @@ -63,7 +58,9 @@ export default function ({ types: t }) { return t.callExpression(t.memberExpression(first, t.identifier("concat")), nodes); }, - CallExpression(node, parent, scope) { + CallExpression(path) { + var { node, scope } = path; + var args = node.arguments; if (!hasSpread(args)) return; @@ -87,7 +84,7 @@ export default function ({ types: t }) { var callee = node.callee; - if (this.get("callee").isMemberExpression()) { + if (path.get("callee").isMemberExpression()) { var temp = scope.maybeGenerateMemoised(callee.object); if (temp) { callee.object = t.assignmentExpression("=", temp, callee.object); @@ -103,7 +100,7 @@ export default function ({ types: t }) { node.arguments.unshift(contextLiteral); }, - NewExpression(node, parent, scope, file) { + NewExpression({ node, scope }, file) { var args = node.arguments; if (!hasSpread(args)) return; diff --git a/packages/babel-plugin-es3-member-expression-literals/.npmignore b/packages/babel-plugin-transform-es2015-sticky-regex/.npmignore similarity index 100% rename from packages/babel-plugin-es3-member-expression-literals/.npmignore rename to packages/babel-plugin-transform-es2015-sticky-regex/.npmignore diff --git a/packages/babel-plugin-es2015-sticky-regex/README.md b/packages/babel-plugin-transform-es2015-sticky-regex/README.md similarity index 51% rename from packages/babel-plugin-es2015-sticky-regex/README.md rename to packages/babel-plugin-transform-es2015-sticky-regex/README.md index e06bef84f6..61d17b58b5 100644 --- a/packages/babel-plugin-es2015-sticky-regex/README.md +++ b/packages/babel-plugin-transform-es2015-sticky-regex/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-sticky-regex +# babel-plugin-transform-es2015-sticky-regex Compile ES2015 sticky regex to an ES5 RegExp constructor ## Installation ```sh -$ npm install babel-plugin-es2015-sticky-regex +$ npm install babel-plugin-transform-es2015-sticky-regex ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-sticky-regex ```json { - "plugins": ["es2015-sticky-regex"] + "plugins": ["transform-es2015-sticky-regex"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-sticky-regex script.js +$ babel --plugins transform-es2015-sticky-regex script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-sticky-regex"] + plugins: ["transform-es2015-sticky-regex"] }); ``` diff --git a/packages/babel-plugin-es2015-sticky-regex/package.json b/packages/babel-plugin-transform-es2015-sticky-regex/package.json similarity index 79% rename from packages/babel-plugin-es2015-sticky-regex/package.json rename to packages/babel-plugin-transform-es2015-sticky-regex/package.json index 462fb00a2a..acbe54f9a8 100644 --- a/packages/babel-plugin-es2015-sticky-regex/package.json +++ b/packages/babel-plugin-transform-es2015-sticky-regex/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-sticky-regex", + "name": "babel-plugin-transform-es2015-sticky-regex", "version": "1.0.0", "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js b/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es3-property-literals/.npmignore b/packages/babel-plugin-transform-es2015-tail-call/.npmignore similarity index 100% rename from packages/babel-plugin-es3-property-literals/.npmignore rename to packages/babel-plugin-transform-es2015-tail-call/.npmignore diff --git a/packages/babel-plugin-es2015-tail-call/README.md b/packages/babel-plugin-transform-es2015-tail-call/README.md similarity index 50% rename from packages/babel-plugin-es2015-tail-call/README.md rename to packages/babel-plugin-transform-es2015-tail-call/README.md index fa13bff71e..c54782c407 100644 --- a/packages/babel-plugin-es2015-tail-call/README.md +++ b/packages/babel-plugin-transform-es2015-tail-call/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es2015-tail-call +# babel-plugin-transform-es2015-tail-call Compile ES2015 tail call to ES5 ## Installation ```sh -$ npm install babel-plugin-es2015-tail-call +$ npm install babel-plugin-transform-es2015-tail-call ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es2015-tail-call ```json { - "plugins": ["es2015-tail-call"] + "plugins": ["transform-es2015-tail-call"] } ``` ### Via CLI ```sh -$ babel --plugins es2015-tail-call script.js +$ babel --plugins transform-es2015-tail-call script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es2015-tail-call"] + plugins: ["transform-es2015-tail-call"] }); ``` diff --git a/packages/babel-plugin-es2015-tail-call/package.json b/packages/babel-plugin-transform-es2015-tail-call/package.json similarity index 78% rename from packages/babel-plugin-es2015-tail-call/package.json rename to packages/babel-plugin-transform-es2015-tail-call/package.json index 9e5d9acba9..bcb93e9efd 100644 --- a/packages/babel-plugin-es2015-tail-call/package.json +++ b/packages/babel-plugin-transform-es2015-tail-call/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-tail-call", + "name": "babel-plugin-transform-es2015-tail-call", "version": "1.0.0", "description": "Compile ES2015 tail call to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-tail-call/src/index.js b/packages/babel-plugin-transform-es2015-tail-call/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-tail-call/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-es5-property-mutators/.npmignore b/packages/babel-plugin-transform-es2015-template-literals/.npmignore similarity index 100% rename from packages/babel-plugin-es5-property-mutators/.npmignore rename to packages/babel-plugin-transform-es2015-template-literals/.npmignore diff --git a/packages/babel-plugin-transform-es2015-template-literals/README.md b/packages/babel-plugin-transform-es2015-template-literals/README.md new file mode 100644 index 0000000000..07eccbc9ad --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-template-literals + +Compile ES2015 template literals to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-template-literals +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-template-literals"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-template-literals script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-template-literals"] +}); +``` diff --git a/packages/babel-plugin-es2015-template-literals/package.json b/packages/babel-plugin-transform-es2015-template-literals/package.json similarity index 76% rename from packages/babel-plugin-es2015-template-literals/package.json rename to packages/babel-plugin-transform-es2015-template-literals/package.json index a79bd53657..c3d8774956 100644 --- a/packages/babel-plugin-es2015-template-literals/package.json +++ b/packages/babel-plugin-transform-es2015-template-literals/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-template-literals", + "name": "babel-plugin-transform-es2015-template-literals", "version": "1.0.0", "description": "Compile ES2015 template literals to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-es2015-template-literals/src/index.js b/packages/babel-plugin-transform-es2015-template-literals/src/index.js similarity index 85% rename from packages/babel-plugin-es2015-template-literals/src/index.js rename to packages/babel-plugin-transform-es2015-template-literals/src/index.js index bd5692dc9a..8e1b8fc0c9 100644 --- a/packages/babel-plugin-es2015-template-literals/src/index.js +++ b/packages/babel-plugin-transform-es2015-template-literals/src/index.js @@ -9,22 +9,18 @@ export default function ({ types: t }) { return node; } - function crawl(path) { + /*function crawl(path) { if (path.is("_templateLiteralProduced")) { crawl(path.get("left")); crawl(path.get("right")); } else if (!path.isBaseType("string") && !path.isBaseType("number")) { path.replaceWith(t.callExpression(t.identifier("String"), [path.node])); } - } + }*/ return { - metadata: { - group: "builtin-pre" - }, - visitor: { - TaggedTemplateExpression(node, parent, scope, file) { + TaggedTemplateExpression({ node }, file) { var quasi = node.quasi; var args = []; @@ -50,13 +46,13 @@ export default function ({ types: t }) { return t.callExpression(node.tag, args); }, - TemplateLiteral(node, parent, scope, file) { + TemplateLiteral(path) { var nodes = []; - for (let elem of (node.quasis: Array)) { + for (let elem of (path.node.quasis: Array)) { nodes.push(t.stringLiteral(elem.value.cooked)); - var expr = node.expressions.shift(); + var expr = path.node.expressions.shift(); if (expr) nodes.push(expr); } @@ -76,8 +72,8 @@ export default function ({ types: t }) { root = buildBinaryExpression(root, node); } - this.replaceWith(root); - crawl(this); + path.replaceWith(root); + //crawl(path); } else { return nodes[0]; } diff --git a/packages/babel-plugin-eval/.npmignore b/packages/babel-plugin-transform-es2015-unicode-regex/.npmignore similarity index 100% rename from packages/babel-plugin-eval/.npmignore rename to packages/babel-plugin-transform-es2015-unicode-regex/.npmignore diff --git a/packages/babel-plugin-transform-es2015-unicode-regex/README.md b/packages/babel-plugin-transform-es2015-unicode-regex/README.md new file mode 100644 index 0000000000..99a694cfa5 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-unicode-regex/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es2015-unicode-regex + +Compile ES2015 unicode regex to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-unicode-regex +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-unicode-regex"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-unicode-regex script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-unicode-regex"] +}); +``` diff --git a/packages/babel-plugin-es2015-unicode-regex/package.json b/packages/babel-plugin-transform-es2015-unicode-regex/package.json similarity index 77% rename from packages/babel-plugin-es2015-unicode-regex/package.json rename to packages/babel-plugin-transform-es2015-unicode-regex/package.json index f1e8e8416a..6d93ddef01 100644 --- a/packages/babel-plugin-es2015-unicode-regex/package.json +++ b/packages/babel-plugin-transform-es2015-unicode-regex/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es2015-unicode-regex", + "name": "babel-plugin-transform-es2015-unicode-regex", "version": "1.0.0", "description": "Compile ES2015 unicode regex to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js b/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-exponentiation-operator/.npmignore b/packages/babel-plugin-transform-es3-member-expression-literals/.npmignore similarity index 100% rename from packages/babel-plugin-exponentiation-operator/.npmignore rename to packages/babel-plugin-transform-es3-member-expression-literals/.npmignore diff --git a/packages/babel-plugin-transform-es3-member-expression-literals/README.md b/packages/babel-plugin-transform-es3-member-expression-literals/README.md new file mode 100644 index 0000000000..9a1ec5842e --- /dev/null +++ b/packages/babel-plugin-transform-es3-member-expression-literals/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-es3-member-expression-literals + +Ensure that reserved words are quoted in property accesses + +## Installation + +```sh +$ npm install babel-plugin-transform-es3-member-expression-literals +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es3-member-expression-literals"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es3-member-expression-literals script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es3-member-expression-literals"] +}); +``` diff --git a/packages/babel-plugin-es3-member-expression-literals/package.json b/packages/babel-plugin-transform-es3-member-expression-literals/package.json similarity index 76% rename from packages/babel-plugin-es3-member-expression-literals/package.json rename to packages/babel-plugin-transform-es3-member-expression-literals/package.json index 81afa24aa2..e838ee89e7 100644 --- a/packages/babel-plugin-es3-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-es3-member-expression-literals/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es3-member-expression-literals", + "name": "babel-plugin-transform-es3-member-expression-literals", "version": "1.0.0", "description": "Ensure that reserved words are quoted in property accesses", "repository": "babel/babel", diff --git a/packages/babel-plugin-es3-member-expression-literals/src/index.js b/packages/babel-plugin-transform-es3-member-expression-literals/src/index.js similarity index 88% rename from packages/babel-plugin-es3-member-expression-literals/src/index.js rename to packages/babel-plugin-transform-es3-member-expression-literals/src/index.js index 759e274ccf..efc1f6566c 100644 --- a/packages/babel-plugin-es3-member-expression-literals/src/index.js +++ b/packages/babel-plugin-transform-es3-member-expression-literals/src/index.js @@ -1,9 +1,5 @@ export default function ({ types: t }) { return { - metadata: { - group: "builtin-trailing" - }, - visitor: { MemberExpression: { exit(node) { diff --git a/packages/babel-plugin-export-extensions/.npmignore b/packages/babel-plugin-transform-es3-property-literals/.npmignore similarity index 100% rename from packages/babel-plugin-export-extensions/.npmignore rename to packages/babel-plugin-transform-es3-property-literals/.npmignore diff --git a/packages/babel-plugin-es3-property-literals/README.md b/packages/babel-plugin-transform-es3-property-literals/README.md similarity index 51% rename from packages/babel-plugin-es3-property-literals/README.md rename to packages/babel-plugin-transform-es3-property-literals/README.md index d8b916529d..308825865d 100644 --- a/packages/babel-plugin-es3-property-literals/README.md +++ b/packages/babel-plugin-transform-es3-property-literals/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es3-property-literals +# babel-plugin-transform-es3-property-literals Ensure that reserved words are quoted in object property keys ## Installation ```sh -$ npm install babel-plugin-es3-property-literals +$ npm install babel-plugin-transform-es3-property-literals ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es3-property-literals ```json { - "plugins": ["es3-property-literals"] + "plugins": ["transform-es3-property-literals"] } ``` ### Via CLI ```sh -$ babel --plugins es3-property-literals script.js +$ babel --plugins transform-es3-property-literals script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es3-property-literals"] + plugins: ["transform-es3-property-literals"] }); ``` diff --git a/packages/babel-plugin-es3-property-literals/package.json b/packages/babel-plugin-transform-es3-property-literals/package.json similarity index 79% rename from packages/babel-plugin-es3-property-literals/package.json rename to packages/babel-plugin-transform-es3-property-literals/package.json index c02edaaf9f..7175b0e583 100644 --- a/packages/babel-plugin-es3-property-literals/package.json +++ b/packages/babel-plugin-transform-es3-property-literals/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es3-property-literals", + "name": "babel-plugin-transform-es3-property-literals", "version": "1.0.0", "description": "Ensure that reserved words are quoted in object property keys", "repository": "babel/babel", diff --git a/packages/babel-plugin-es3-property-literals/src/index.js b/packages/babel-plugin-transform-es3-property-literals/src/index.js similarity index 86% rename from packages/babel-plugin-es3-property-literals/src/index.js rename to packages/babel-plugin-transform-es3-property-literals/src/index.js index d4b85f97f3..a20b07e95c 100644 --- a/packages/babel-plugin-es3-property-literals/src/index.js +++ b/packages/babel-plugin-transform-es3-property-literals/src/index.js @@ -1,11 +1,6 @@ export default function ({ types: t }) { return { - metadata: { - group: "builtin-trailing" - }, - visitor: { - Property: { exit(node) { var key = node.key; diff --git a/packages/babel-plugin-flow-strip-types/.npmignore b/packages/babel-plugin-transform-es5-property-mutators/.npmignore similarity index 100% rename from packages/babel-plugin-flow-strip-types/.npmignore rename to packages/babel-plugin-transform-es5-property-mutators/.npmignore diff --git a/packages/babel-plugin-es5-property-mutators/README.md b/packages/babel-plugin-transform-es5-property-mutators/README.md similarity index 51% rename from packages/babel-plugin-es5-property-mutators/README.md rename to packages/babel-plugin-transform-es5-property-mutators/README.md index 62612bc6ea..4b40bbfeae 100644 --- a/packages/babel-plugin-es5-property-mutators/README.md +++ b/packages/babel-plugin-transform-es5-property-mutators/README.md @@ -1,11 +1,11 @@ -# babel-plugin-es5-property-mutators +# babel-plugin-transform-es5-property-mutators Compile ES5 property mutator shorthand syntax to Object.defineProperty ## Installation ```sh -$ npm install babel-plugin-es5-property-mutators +$ npm install babel-plugin-transform-es5-property-mutators ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-es5-property-mutators ```json { - "plugins": ["es5-property-mutators"] + "plugins": ["transform-es5-property-mutators"] } ``` ### Via CLI ```sh -$ babel --plugins es5-property-mutators script.js +$ babel --plugins transform-es5-property-mutators script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["es5-property-mutators"] + plugins: ["transform-es5-property-mutators"] }); ``` diff --git a/packages/babel-plugin-es5-property-mutators/package.json b/packages/babel-plugin-transform-es5-property-mutators/package.json similarity index 80% rename from packages/babel-plugin-es5-property-mutators/package.json rename to packages/babel-plugin-transform-es5-property-mutators/package.json index ac2d197138..e9ec584e5a 100644 --- a/packages/babel-plugin-es5-property-mutators/package.json +++ b/packages/babel-plugin-transform-es5-property-mutators/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-es5-property-mutators", + "name": "babel-plugin-transform-es5-property-mutators", "version": "1.0.0", "description": "Compile ES5 property mutator shorthand syntax to Object.defineProperty", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-es5-property-mutators/src/index.js b/packages/babel-plugin-transform-es5-property-mutators/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-es5-property-mutators/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-function-bind/.npmignore b/packages/babel-plugin-transform-eval/.npmignore similarity index 100% rename from packages/babel-plugin-function-bind/.npmignore rename to packages/babel-plugin-transform-eval/.npmignore diff --git a/packages/babel-plugin-eval/README.md b/packages/babel-plugin-transform-eval/README.md similarity index 68% rename from packages/babel-plugin-eval/README.md rename to packages/babel-plugin-transform-eval/README.md index cae0be25d5..3c57bb5147 100644 --- a/packages/babel-plugin-eval/README.md +++ b/packages/babel-plugin-transform-eval/README.md @@ -1,4 +1,4 @@ -# babel-plugin-eval +# babel-plugin-transform-eval Compile eval calls with string literals @@ -19,7 +19,7 @@ eval("(function () { return 'foo'; })"); ## Installation ```sh -$ npm install babel-plugin-eval +$ npm install babel-plugin-transform-eval ``` ## Usage @@ -30,20 +30,20 @@ $ npm install babel-plugin-eval ```json { - "plugins": ["eval"] + "plugins": ["transform-eval"] } ``` ### Via CLI ```sh -$ babel --plugins eval script.js +$ babel --plugins transform-eval script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["eval"] + plugins: ["transform-eval"] }); ``` diff --git a/packages/babel-plugin-eval/package.json b/packages/babel-plugin-transform-eval/package.json similarity index 68% rename from packages/babel-plugin-eval/package.json rename to packages/babel-plugin-transform-eval/package.json index e24ef75019..243280fd4f 100644 --- a/packages/babel-plugin-eval/package.json +++ b/packages/babel-plugin-transform-eval/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-eval", + "name": "babel-plugin-transform-eval", "version": "1.0.1", "description": "Compile eval calls with string literals", - "repository": "babel/babelbabel-plugin-eval", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-eval/src/index.js b/packages/babel-plugin-transform-eval/src/index.js similarity index 58% rename from packages/babel-plugin-eval/src/index.js rename to packages/babel-plugin-transform-eval/src/index.js index a4a4c116ca..596ec54a8a 100644 --- a/packages/babel-plugin-eval/src/index.js +++ b/packages/babel-plugin-transform-eval/src/index.js @@ -1,13 +1,9 @@ export default function ({ parse, traverse }) { return { - metadata: { - group: "builtin-pre", - }, - visitor: { - CallExpression(node) { - if (this.get("callee").isIdentifier({ name: "eval" }) && node.arguments.length === 1) { - var evaluate = this.get("arguments")[0].evaluate(); + CallExpression(path) { + if (path.get("callee").isIdentifier({ name: "eval" }) && path.node.arguments.length === 1) { + var evaluate = path.get("arguments")[0].evaluate(); if (!evaluate.confident) return; var code = evaluate.value; diff --git a/packages/babel-plugin-inline-environment-variables/.npmignore b/packages/babel-plugin-transform-exponentiation-operator/.npmignore similarity index 100% rename from packages/babel-plugin-inline-environment-variables/.npmignore rename to packages/babel-plugin-transform-exponentiation-operator/.npmignore diff --git a/packages/babel-plugin-transform-exponentiation-operator/README.md b/packages/babel-plugin-transform-exponentiation-operator/README.md new file mode 100644 index 0000000000..0851d321f1 --- /dev/null +++ b/packages/babel-plugin-transform-exponentiation-operator/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-exponentiation-operator + +Compile exponentiation operator to ES5 + +## Installation + +```sh +$ npm install babel-plugin-transform-exponentiation-operator +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-exponentiation-operator"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-exponentiation-operator script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-exponentiation-operator"] +}); +``` diff --git a/packages/babel-plugin-exponentiation-operator/package.json b/packages/babel-plugin-transform-exponentiation-operator/package.json similarity index 77% rename from packages/babel-plugin-exponentiation-operator/package.json rename to packages/babel-plugin-transform-exponentiation-operator/package.json index 113c3a5f34..ffff10a320 100644 --- a/packages/babel-plugin-exponentiation-operator/package.json +++ b/packages/babel-plugin-transform-exponentiation-operator/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-exponentiation-operator", + "name": "babel-plugin-transform-exponentiation-operator", "version": "1.0.0", "description": "Compile exponentiation operator to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-exponentiation-operator/src/index.js b/packages/babel-plugin-transform-exponentiation-operator/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-exponentiation-operator/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-jscript/.npmignore b/packages/babel-plugin-transform-export-extensions/.npmignore similarity index 100% rename from packages/babel-plugin-jscript/.npmignore rename to packages/babel-plugin-transform-export-extensions/.npmignore diff --git a/packages/babel-plugin-export-extensions/README.md b/packages/babel-plugin-transform-export-extensions/README.md similarity index 50% rename from packages/babel-plugin-export-extensions/README.md rename to packages/babel-plugin-transform-export-extensions/README.md index ab4ed89da8..13a8489fb8 100644 --- a/packages/babel-plugin-export-extensions/README.md +++ b/packages/babel-plugin-transform-export-extensions/README.md @@ -1,11 +1,11 @@ -# babel-plugin-export-extensions +# babel-plugin-transform-export-extensions Compile export extensions to ES2015 ## Installation ```sh -$ npm install babel-plugin-export-extensions +$ npm install babel-plugin-transform-export-extensions ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-export-extensions ```json { - "plugins": ["export-extensions"] + "plugins": ["transform-export-extensions"] } ``` ### Via CLI ```sh -$ babel --plugins export-extensions script.js +$ babel --plugins transform-export-extensions script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["export-extensions"] + plugins: ["transform-export-extensions"] }); ``` diff --git a/packages/babel-plugin-export-extensions/package.json b/packages/babel-plugin-transform-export-extensions/package.json similarity index 78% rename from packages/babel-plugin-export-extensions/package.json rename to packages/babel-plugin-transform-export-extensions/package.json index df986a074d..d37ea9d06b 100644 --- a/packages/babel-plugin-export-extensions/package.json +++ b/packages/babel-plugin-transform-export-extensions/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-export-extensions", + "name": "babel-plugin-transform-export-extensions", "version": "1.0.0", "description": "Compile export extensions to ES2015", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-export-extensions/src/index.js b/packages/babel-plugin-transform-export-extensions/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-export-extensions/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-member-expression-literals/.npmignore b/packages/babel-plugin-transform-flow-strip-types/.npmignore similarity index 100% rename from packages/babel-plugin-member-expression-literals/.npmignore rename to packages/babel-plugin-transform-flow-strip-types/.npmignore diff --git a/packages/babel-plugin-flow-strip-types/README.md b/packages/babel-plugin-transform-flow-strip-types/README.md similarity index 52% rename from packages/babel-plugin-flow-strip-types/README.md rename to packages/babel-plugin-transform-flow-strip-types/README.md index b4770bb4b4..f846bd24d7 100644 --- a/packages/babel-plugin-flow-strip-types/README.md +++ b/packages/babel-plugin-transform-flow-strip-types/README.md @@ -1,11 +1,11 @@ -# babel-plugin-flow-strip-types +# babel-plugin-transform-flow-strip-types Strip flow type annotations from your output code. ## Installation ```sh -$ npm install babel-plugin-flow-strip-types +$ npm install babel-plugin-transform-flow-strip-types ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-flow-strip-types ```json { - "plugins": ["flow-strip-types"] + "plugins": ["transform-flow-strip-types"] } ``` ### Via CLI ```sh -$ babel --plugins flow-strip-types script.js +$ babel --plugins transform-flow-strip-types script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["flow-strip-types"] + plugins: ["transform-flow-strip-types"] }); ``` diff --git a/packages/babel-plugin-flow-strip-types/package.json b/packages/babel-plugin-transform-flow-strip-types/package.json similarity index 80% rename from packages/babel-plugin-flow-strip-types/package.json rename to packages/babel-plugin-transform-flow-strip-types/package.json index dce4c09171..8d11a720d4 100644 --- a/packages/babel-plugin-flow-strip-types/package.json +++ b/packages/babel-plugin-transform-flow-strip-types/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-flow-strip-types", + "name": "babel-plugin-transform-flow-strip-types", "version": "1.0.4", "description": "Strip flow type annotations from your output code.", "repository": "babel/babel", diff --git a/packages/babel-plugin-flow-strip-types/src/index.js b/packages/babel-plugin-transform-flow-strip-types/src/index.js similarity index 66% rename from packages/babel-plugin-flow-strip-types/src/index.js rename to packages/babel-plugin-transform-flow-strip-types/src/index.js index a4b906d516..ff3380333a 100644 --- a/packages/babel-plugin-flow-strip-types/src/index.js +++ b/packages/babel-plugin-transform-flow-strip-types/src/index.js @@ -1,13 +1,9 @@ -export default function ({ Plugin, types: t }) { +export default function ({ types: t }) { const FLOW_DIRECTIVE = "@flow"; return { - metadata: { - group: "builtin-trailing" - }, - visitor: { - Program(node, parent, scope, file) { + Program(path, file) { for (var comment of (file.ast.comments: Array)) { if (comment.value.indexOf(FLOW_DIRECTIVE) >= 0) { // remove flow directive @@ -19,31 +15,32 @@ export default function ({ Plugin, types: t }) { } }, - Flow() { - this.dangerouslyRemove(); + Flow(path) { + path.remove(); }, - ClassProperty(node) { - node.typeAnnotation = null; - if (!node.value) this.dangerouslyRemove(); + ClassProperty(path) { + path.node.typeAnnotation = null; + if (!path.node.value) path.remove(); }, - Class(node) { + Class({ node }) { node.implements = null; }, - Function(node) { + Function({ node }) { for (var i = 0; i < node.params.length; i++) { var param = node.params[i]; param.optional = false; } }, - TypeCastExpression(node) { + TypeCastExpression(path) { + var { node } = path; do { node = node.expression; } while(t.isTypeCastExpression(node)); - return node; + path.replaceWith(node); } } }; diff --git a/packages/babel-plugin-merge-sibling-variables/.npmignore b/packages/babel-plugin-transform-function-bind/.npmignore similarity index 100% rename from packages/babel-plugin-merge-sibling-variables/.npmignore rename to packages/babel-plugin-transform-function-bind/.npmignore diff --git a/packages/babel-plugin-function-bind/README.md b/packages/babel-plugin-transform-function-bind/README.md similarity index 52% rename from packages/babel-plugin-function-bind/README.md rename to packages/babel-plugin-transform-function-bind/README.md index fc015c8c19..8f496c5fd9 100644 --- a/packages/babel-plugin-function-bind/README.md +++ b/packages/babel-plugin-transform-function-bind/README.md @@ -1,11 +1,11 @@ -# babel-plugin-function-bind +# babel-plugin-transform-function-bind Compile function bind operator to ES5 ## Installation ```sh -$ npm install babel-plugin-function-bind +$ npm install babel-plugin-transform-function-bind ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-function-bind ```json { - "plugins": ["function-bind"] + "plugins": ["transform-function-bind"] } ``` ### Via CLI ```sh -$ babel --plugins function-bind script.js +$ babel --plugins transform-function-bind script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["function-bind"] + plugins: ["transform-function-bind"] }); ``` diff --git a/packages/babel-plugin-function-bind/package.json b/packages/babel-plugin-transform-function-bind/package.json similarity index 80% rename from packages/babel-plugin-function-bind/package.json rename to packages/babel-plugin-transform-function-bind/package.json index 23f0656cad..3cbb64bdfd 100644 --- a/packages/babel-plugin-function-bind/package.json +++ b/packages/babel-plugin-transform-function-bind/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-function-bind", + "name": "babel-plugin-transform-function-bind", "version": "1.0.0", "description": "Compile function bind operator to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-function-bind/src/index.js b/packages/babel-plugin-transform-function-bind/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-function-bind/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-minify-booleans/.npmignore b/packages/babel-plugin-transform-inline-environment-variables/.npmignore similarity index 100% rename from packages/babel-plugin-minify-booleans/.npmignore rename to packages/babel-plugin-transform-inline-environment-variables/.npmignore diff --git a/packages/babel-plugin-transform-inline-environment-variables/README.md b/packages/babel-plugin-transform-inline-environment-variables/README.md new file mode 100644 index 0000000000..72a315f7c3 --- /dev/null +++ b/packages/babel-plugin-transform-inline-environment-variables/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-inline-environment-variables + +Inline environment variables + +## Installation + +```sh +$ npm install babel-plugin-transform-inline-environment-variables +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-inline-environment-variables"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-inline-environment-variables script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-inline-environment-variables"] +}); +``` diff --git a/packages/babel-plugin-inline-environment-variables/package.json b/packages/babel-plugin-transform-inline-environment-variables/package.json similarity index 55% rename from packages/babel-plugin-inline-environment-variables/package.json rename to packages/babel-plugin-transform-inline-environment-variables/package.json index da3dc6af2a..8c8f191798 100644 --- a/packages/babel-plugin-inline-environment-variables/package.json +++ b/packages/babel-plugin-transform-inline-environment-variables/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-inline-environment-variables", + "name": "babel-plugin-transform-inline-environment-variables", "version": "1.0.1", "description": "Inline environment variables", - "repository": "babel/babelbabel-plugin-inline-environment-variables", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-transform-inline-environment-variables/src/index.js b/packages/babel-plugin-transform-inline-environment-variables/src/index.js new file mode 100644 index 0000000000..28a2eae941 --- /dev/null +++ b/packages/babel-plugin-transform-inline-environment-variables/src/index.js @@ -0,0 +1,14 @@ +export default function ({ types: t }) { + return { + visitor: { + MemberExpression(path) { + if (path.get("object").matchesPattern("process.env")) { + var key = path.toComputedKey(); + if (t.isStringLiteral(key)) { + return t.valueToNode(process.env[key.value]); + } + } + } + } + }; +} diff --git a/packages/babel-plugin-node-env-inline/.npmignore b/packages/babel-plugin-transform-jscript/.npmignore similarity index 100% rename from packages/babel-plugin-node-env-inline/.npmignore rename to packages/babel-plugin-transform-jscript/.npmignore diff --git a/packages/babel-plugin-jscript/README.md b/packages/babel-plugin-transform-jscript/README.md similarity index 58% rename from packages/babel-plugin-jscript/README.md rename to packages/babel-plugin-transform-jscript/README.md index 7c508422eb..948344bac5 100644 --- a/packages/babel-plugin-jscript/README.md +++ b/packages/babel-plugin-transform-jscript/README.md @@ -1,11 +1,11 @@ -# babel-plugin-jscript +# babel-plugin-transform-jscript Babel plugin to fix buggy JScript named function expressions ## Installation ```sh -$ npm install babel-plugin-jscript +$ npm install babel-plugin-transform-jscript ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-jscript ```json { - "plugins": ["jscript"] + "plugins": ["transform-jscript"] } ``` ### Via CLI ```sh -$ babel --plugins jscript script.js +$ babel --plugins transform-jscript script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["jscript"] + plugins: ["transform-jscript"] }); ``` diff --git a/packages/babel-plugin-jscript/package.json b/packages/babel-plugin-transform-jscript/package.json similarity index 69% rename from packages/babel-plugin-jscript/package.json rename to packages/babel-plugin-transform-jscript/package.json index 9cab71d607..90d25dfe01 100644 --- a/packages/babel-plugin-jscript/package.json +++ b/packages/babel-plugin-transform-jscript/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-jscript", + "name": "babel-plugin-transform-jscript", "version": "1.0.4", "description": "Babel plugin to fix buggy JScript named function expressions", - "repository": "babel/babelbabel-plugin-jscript", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-jscript/src/index.js b/packages/babel-plugin-transform-jscript/src/index.js similarity index 79% rename from packages/babel-plugin-jscript/src/index.js rename to packages/babel-plugin-transform-jscript/src/index.js index 27512fb761..e572ad6fc8 100644 --- a/packages/babel-plugin-jscript/src/index.js +++ b/packages/babel-plugin-transform-jscript/src/index.js @@ -1,9 +1,5 @@ -export default function ({ Plugin, types: t }) { +export default function ({ types: t }) { return { - metadata: { - group: "builtin-trailing" - }, - visitor: { FunctionExpression: { exit(node) { diff --git a/packages/babel-plugin-object-assign/.npmignore b/packages/babel-plugin-transform-member-expression-literals/.npmignore similarity index 100% rename from packages/babel-plugin-object-assign/.npmignore rename to packages/babel-plugin-transform-member-expression-literals/.npmignore diff --git a/packages/babel-plugin-member-expression-literals/README.md b/packages/babel-plugin-transform-member-expression-literals/README.md similarity index 63% rename from packages/babel-plugin-member-expression-literals/README.md rename to packages/babel-plugin-transform-member-expression-literals/README.md index 0785c2549f..f8a11a0a84 100644 --- a/packages/babel-plugin-member-expression-literals/README.md +++ b/packages/babel-plugin-transform-member-expression-literals/README.md @@ -1,4 +1,4 @@ -# babel-plugin-member-expression-literals +# babel-plugin-transform-member-expression-literals Turn valid member expression property literals into plain identifiers @@ -25,7 +25,7 @@ obj["var"] = "isKeyword"; ## Installation ```sh -$ npm install babel-plugin-member-expression-literals +$ npm install babel-plugin-transform-member-expression-literals ``` ## Usage @@ -36,20 +36,20 @@ $ npm install babel-plugin-member-expression-literals ```json { - "plugins": ["member-expression-literals"] + "plugins": ["transform-member-expression-literals"] } ``` ### Via CLI ```sh -$ babel --plugins member-expression-literals script.js +$ babel --plugins transform-member-expression-literals script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["member-expression-literals"] + plugins: ["transform-member-expression-literals"] }); ``` diff --git a/packages/babel-plugin-member-expression-literals/package.json b/packages/babel-plugin-transform-member-expression-literals/package.json similarity index 62% rename from packages/babel-plugin-member-expression-literals/package.json rename to packages/babel-plugin-transform-member-expression-literals/package.json index c468e0d967..0785a4aba4 100644 --- a/packages/babel-plugin-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-member-expression-literals/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-member-expression-literals", + "name": "babel-plugin-transform-member-expression-literals", "version": "1.0.1", "description": "Turn valid member expression property literals into plain identifiers", - "repository": "babel/babelbabel-plugin-member-expression-literals", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-member-expression-literals/src/index.js b/packages/babel-plugin-transform-member-expression-literals/src/index.js similarity index 87% rename from packages/babel-plugin-member-expression-literals/src/index.js rename to packages/babel-plugin-transform-member-expression-literals/src/index.js index 33be68ec9f..5a934f7000 100644 --- a/packages/babel-plugin-member-expression-literals/src/index.js +++ b/packages/babel-plugin-transform-member-expression-literals/src/index.js @@ -1,9 +1,5 @@ export default function ({ types: t }) { return { - metadata: { - group: "builtin-trailing" - }, - visitor: { MemberExpression: { exit(node) { diff --git a/packages/babel-plugin-object-rest-spread/.npmignore b/packages/babel-plugin-transform-merge-sibling-variables/.npmignore similarity index 100% rename from packages/babel-plugin-object-rest-spread/.npmignore rename to packages/babel-plugin-transform-merge-sibling-variables/.npmignore diff --git a/packages/babel-plugin-merge-sibling-variables/README.md b/packages/babel-plugin-transform-merge-sibling-variables/README.md similarity index 59% rename from packages/babel-plugin-merge-sibling-variables/README.md rename to packages/babel-plugin-transform-merge-sibling-variables/README.md index 92b0678f56..4565af8c0f 100644 --- a/packages/babel-plugin-merge-sibling-variables/README.md +++ b/packages/babel-plugin-transform-merge-sibling-variables/README.md @@ -1,4 +1,4 @@ -# babel-plugin-merge-sibling-variables +# babel-plugin-transform-merge-sibling-variables Merge sibling variables into one. @@ -23,7 +23,7 @@ foobar(); ## Installation ```sh -$ npm install babel-plugin-merge-sibling-variables +$ npm install babel-plugin-transform-merge-sibling-variables ``` ## Usage @@ -34,20 +34,20 @@ $ npm install babel-plugin-merge-sibling-variables ```json { - "plugins": ["merge-sibling-variables"] + "plugins": ["transform-merge-sibling-variables"] } ``` ### Via CLI ```sh -$ babel --plugins merge-sibling-variables script.js +$ babel --plugins transform-merge-sibling-variables script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["merge-sibling-variables"] + plugins: ["transform-merge-sibling-variables"] }); ``` diff --git a/packages/babel-plugin-merge-sibling-variables/package.json b/packages/babel-plugin-transform-merge-sibling-variables/package.json similarity index 56% rename from packages/babel-plugin-merge-sibling-variables/package.json rename to packages/babel-plugin-transform-merge-sibling-variables/package.json index 2f62706048..cf9035ef27 100644 --- a/packages/babel-plugin-merge-sibling-variables/package.json +++ b/packages/babel-plugin-transform-merge-sibling-variables/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-merge-sibling-variables", + "name": "babel-plugin-transform-merge-sibling-variables", "version": "1.0.2", "description": "Merge sibling variables into one.", - "repository": "babel-plugin-merge-sibling-variables", + "repository": "babel-plugin-transform-merge-sibling-variables", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-merge-sibling-variables/src/index.js b/packages/babel-plugin-transform-merge-sibling-variables/src/index.js similarity index 55% rename from packages/babel-plugin-merge-sibling-variables/src/index.js rename to packages/babel-plugin-transform-merge-sibling-variables/src/index.js index 4ceb72f163..ef0569e301 100644 --- a/packages/babel-plugin-merge-sibling-variables/src/index.js +++ b/packages/babel-plugin-transform-merge-sibling-variables/src/index.js @@ -1,19 +1,17 @@ export default function () { return { - metadata: { - group: "builtin-pre" - }, - visitor: { - VariableDeclaration(node) { - if (!this.inList) return; + VariableDeclaration(path) { + if (!path.inList) return; + + var { node } = path; while (true) { - var sibling = this.getSibling(this.key + 1); + var sibling = path.getSibling(path.key + 1); if (!sibling.isVariableDeclaration({ kind: node.kind })) break; node.declarations = node.declarations.concat(sibling.node.declarations); - sibling.dangerouslyRemove(); + sibling.remove(); } } } diff --git a/packages/babel-plugin-object-set-prototype-of-to-assign/.npmignore b/packages/babel-plugin-transform-minify-booleans/.npmignore similarity index 100% rename from packages/babel-plugin-object-set-prototype-of-to-assign/.npmignore rename to packages/babel-plugin-transform-minify-booleans/.npmignore diff --git a/packages/babel-plugin-minify-booleans/README.md b/packages/babel-plugin-transform-minify-booleans/README.md similarity index 53% rename from packages/babel-plugin-minify-booleans/README.md rename to packages/babel-plugin-transform-minify-booleans/README.md index d40f0db7ed..061c1689ca 100644 --- a/packages/babel-plugin-minify-booleans/README.md +++ b/packages/babel-plugin-transform-minify-booleans/README.md @@ -1,11 +1,11 @@ -# babel-plugin-minify-booleans +# babel-plugin-transform-minify-booleans Turn boolean literals into !0 for true and !1 for false. ## Installation ```sh -$ npm install babel-plugin-minify-booleans +$ npm install babel-plugin-transform-minify-booleans ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-minify-booleans ```json { - "plugins": ["minify-booleans"] + "plugins": ["transform-minify-booleans"] } ``` ### Via CLI ```sh -$ babel --plugins minify-booleans script.js +$ babel --plugins transform-minify-booleans script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["minify-booleans"] + plugins: ["transform-minify-booleans"] }); ``` diff --git a/packages/babel-plugin-minify-booleans/package.json b/packages/babel-plugin-transform-minify-booleans/package.json similarity index 65% rename from packages/babel-plugin-minify-booleans/package.json rename to packages/babel-plugin-transform-minify-booleans/package.json index 7540ae6f62..4d44f29487 100644 --- a/packages/babel-plugin-minify-booleans/package.json +++ b/packages/babel-plugin-transform-minify-booleans/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-minify-booleans", + "name": "babel-plugin-transform-minify-booleans", "version": "1.0.2", "description": "Turn boolean literals into !0 for true and !1 for false.", - "repository": "babel/babelbabel-plugin-minify-booleans", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-minify-booleans/src/index.js b/packages/babel-plugin-transform-minify-booleans/src/index.js similarity index 82% rename from packages/babel-plugin-minify-booleans/src/index.js rename to packages/babel-plugin-transform-minify-booleans/src/index.js index be29f19853..5347377871 100644 --- a/packages/babel-plugin-minify-booleans/src/index.js +++ b/packages/babel-plugin-transform-minify-booleans/src/index.js @@ -1,9 +1,5 @@ export default function ({ types: t }) { return { - metadata: { - group: "builtin-pre" - }, - visitor: { Literal(node) { if (typeof node.value === "boolean") { diff --git a/packages/babel-plugin-property-literals/.npmignore b/packages/babel-plugin-transform-node-env-inline/.npmignore similarity index 100% rename from packages/babel-plugin-property-literals/.npmignore rename to packages/babel-plugin-transform-node-env-inline/.npmignore diff --git a/packages/babel-plugin-node-env-inline/LICENSE b/packages/babel-plugin-transform-node-env-inline/LICENSE similarity index 100% rename from packages/babel-plugin-node-env-inline/LICENSE rename to packages/babel-plugin-transform-node-env-inline/LICENSE diff --git a/packages/babel-plugin-node-env-inline/README.md b/packages/babel-plugin-transform-node-env-inline/README.md similarity index 64% rename from packages/babel-plugin-node-env-inline/README.md rename to packages/babel-plugin-transform-node-env-inline/README.md index 0527d74a09..0825eb125b 100644 --- a/packages/babel-plugin-node-env-inline/README.md +++ b/packages/babel-plugin-transform-node-env-inline/README.md @@ -1,4 +1,4 @@ -# babel-plugin-node-env-inline +# babel-plugin-transform-node-env-inline Inline the `NODE_ENV` environment variable and if it's a part of a binary expression (eg. `process.env.NODE_ENV === "development"`) then statically evaluate and replace it. @@ -15,7 +15,7 @@ process.env.NODE_ENV === "production"; **Out** ```sh -$ NODE_ENV=development babel in.js --plugins node-env-inline +$ NODE_ENV=development babel in.js --plugins transform-node-env-inline ``` ```javascript @@ -26,7 +26,7 @@ false; ## Installation ```sh -$ npm install babel-plugin-node-env-inline +$ npm install babel-plugin-transform-node-env-inline ``` ## Usage @@ -37,20 +37,20 @@ $ npm install babel-plugin-node-env-inline ```json { - "plugins": ["node-env-inline"] + "plugins": ["transform-node-env-inline"] } ``` ### Via CLI ```sh -$ babel --plugins node-env-inline script.js +$ babel --plugins transform-node-env-inline script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["node-env-inline"] + plugins: ["transform-node-env-inline"] }); ``` diff --git a/packages/babel-plugin-node-env-inline/package.json b/packages/babel-plugin-transform-node-env-inline/package.json similarity index 56% rename from packages/babel-plugin-node-env-inline/package.json rename to packages/babel-plugin-transform-node-env-inline/package.json index af4810e8c1..2bd14d0920 100644 --- a/packages/babel-plugin-node-env-inline/package.json +++ b/packages/babel-plugin-transform-node-env-inline/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-node-env-inline", + "name": "babel-plugin-transform-node-env-inline", "version": "1.0.1", "description": "", - "repository": "babel/babelbabel-plugin-node-env-inline", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-transform-node-env-inline/src/index.js b/packages/babel-plugin-transform-node-env-inline/src/index.js new file mode 100644 index 0000000000..bde23888f6 --- /dev/null +++ b/packages/babel-plugin-transform-node-env-inline/src/index.js @@ -0,0 +1,18 @@ +export default function ({ types: t }) { + return { + visitor: { + MemberExpression(path) { + if (path.matchesPattern("process.env.NODE_ENV")) { + path.replaceWith(t.valueToNode(process.env.NODE_ENV)); + + if (path.parentPath.isBinaryExpression()) { + var evaluated = path.parentPath.evaluate(); + if (evaluated.confident) { + path.parentPath.replaceWith(t.valueToNode(evaluated.value)); + } + } + } + } + } + }; +} diff --git a/packages/babel-plugin-proto-to-assign/.npmignore b/packages/babel-plugin-transform-object-assign/.npmignore similarity index 100% rename from packages/babel-plugin-proto-to-assign/.npmignore rename to packages/babel-plugin-transform-object-assign/.npmignore diff --git a/packages/babel-plugin-object-assign/LICENSE b/packages/babel-plugin-transform-object-assign/LICENSE similarity index 100% rename from packages/babel-plugin-object-assign/LICENSE rename to packages/babel-plugin-transform-object-assign/LICENSE diff --git a/packages/babel-plugin-object-assign/README.md b/packages/babel-plugin-transform-object-assign/README.md similarity index 63% rename from packages/babel-plugin-object-assign/README.md rename to packages/babel-plugin-transform-object-assign/README.md index cb1ccad864..027b096217 100644 --- a/packages/babel-plugin-object-assign/README.md +++ b/packages/babel-plugin-transform-object-assign/README.md @@ -1,4 +1,4 @@ -# babel-plugin-object-assign +# babel-plugin-transform-object-assign Replace `Object.assign` with an inline helper. @@ -21,7 +21,7 @@ _extends(a, b); ## Installation ```sh -$ npm install babel-plugin-object-assign +$ npm install babel-plugin-transform-object-assign ``` ## Usage @@ -32,20 +32,20 @@ $ npm install babel-plugin-object-assign ```json { - "plugins": ["object-assign"] + "plugins": ["transform-object-assign"] } ``` ### Via CLI ```sh -$ babel --plugins object-assign script.js +$ babel --plugins transform-object-assign script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["object-assign"] + plugins: ["transform-object-assign"] }); ``` diff --git a/packages/babel-plugin-object-assign/package.json b/packages/babel-plugin-transform-object-assign/package.json similarity index 80% rename from packages/babel-plugin-object-assign/package.json rename to packages/babel-plugin-transform-object-assign/package.json index d6ec717ddf..d081116d13 100644 --- a/packages/babel-plugin-object-assign/package.json +++ b/packages/babel-plugin-transform-object-assign/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-object-assign", + "name": "babel-plugin-transform-object-assign", "version": "5.0.0", "description": "Replace Object.assign with an inline helper", "author": "Jed Watson", diff --git a/packages/babel-plugin-transform-object-assign/src/index.js b/packages/babel-plugin-transform-object-assign/src/index.js new file mode 100644 index 0000000000..4b985078df --- /dev/null +++ b/packages/babel-plugin-transform-object-assign/src/index.js @@ -0,0 +1,11 @@ +export default function () { + return { + visitor: { + CallExpression: function (path, file) { + if (path.get("callee").matchesPattern("Object.assign")) { + path.node.callee = file.addHelper("extends"); + } + } + } + }; +} diff --git a/packages/babel-plugin-react-compat-jsx/.npmignore b/packages/babel-plugin-transform-object-rest-spread/.npmignore similarity index 100% rename from packages/babel-plugin-react-compat-jsx/.npmignore rename to packages/babel-plugin-transform-object-rest-spread/.npmignore diff --git a/packages/babel-plugin-object-rest-spread/README.md b/packages/babel-plugin-transform-object-rest-spread/README.md similarity index 50% rename from packages/babel-plugin-object-rest-spread/README.md rename to packages/babel-plugin-transform-object-rest-spread/README.md index 80928598a3..2f50223182 100644 --- a/packages/babel-plugin-object-rest-spread/README.md +++ b/packages/babel-plugin-transform-object-rest-spread/README.md @@ -1,11 +1,11 @@ -# babel-plugin-object-rest-spread +# babel-plugin-transform-object-rest-spread Compile object rest and spread to ES5 ## Installation ```sh -$ npm install babel-plugin-object-rest-spread +$ npm install babel-plugin-transform-object-rest-spread ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-object-rest-spread ```json { - "plugins": ["object-rest-spread"] + "plugins": ["transform-object-rest-spread"] } ``` ### Via CLI ```sh -$ babel --plugins object-rest-spread script.js +$ babel --plugins transform-object-rest-spread script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["object-rest-spread"] + plugins: ["transform-object-rest-spread"] }); ``` diff --git a/packages/babel-plugin-object-rest-spread/package.json b/packages/babel-plugin-transform-object-rest-spread/package.json similarity index 78% rename from packages/babel-plugin-object-rest-spread/package.json rename to packages/babel-plugin-transform-object-rest-spread/package.json index 2de0fc3894..aa16813f42 100644 --- a/packages/babel-plugin-object-rest-spread/package.json +++ b/packages/babel-plugin-transform-object-rest-spread/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-object-rest-spread", + "name": "babel-plugin-transform-object-rest-spread", "version": "1.0.0", "description": "Compile object rest and spread to ES5", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-object-rest-spread/src/index.js b/packages/babel-plugin-transform-object-rest-spread/src/index.js new file mode 100644 index 0000000000..6845446a11 --- /dev/null +++ b/packages/babel-plugin-transform-object-rest-spread/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + visitor: { + // your visitor methods go here + } + }; +} diff --git a/packages/babel-plugin-react-constant-elements/.npmignore b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/.npmignore similarity index 100% rename from packages/babel-plugin-react-constant-elements/.npmignore rename to packages/babel-plugin-transform-object-set-prototype-of-to-assign/.npmignore diff --git a/packages/babel-plugin-object-set-prototype-of-to-assign/LICENSE b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/LICENSE similarity index 100% rename from packages/babel-plugin-object-set-prototype-of-to-assign/LICENSE rename to packages/babel-plugin-transform-object-set-prototype-of-to-assign/LICENSE diff --git a/packages/babel-plugin-object-set-prototype-of-to-assign/README.md b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/README.md similarity index 55% rename from packages/babel-plugin-object-set-prototype-of-to-assign/README.md rename to packages/babel-plugin-transform-object-set-prototype-of-to-assign/README.md index 4e3b5a1133..37aa4b61b7 100644 --- a/packages/babel-plugin-object-set-prototype-of-to-assign/README.md +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/README.md @@ -1,9 +1,9 @@ -# babel-plugin-object-set-prototype-of-to-assign +# babel-plugin-transform-object-set-prototype-of-to-assign The `object-set-prototype-of-to-assign` plugin will transform all `Object.setPrototypeOf` calls to a method that will do a shallow defaults of all properties. -**NOTE:** There are some caveats when using this plugin, see the [`babel-plugin-proto-to-assign` README](https://github.com/babel-plugins/babel-plugin-proto-to-assign) for more information.. +**NOTE:** There are some caveats when using this plugin, see the [`babel-plugin-transform-proto-to-assign` README](https://github.com/babel-plugins/babel-plugin-transform-proto-to-assign) for more information.. ## Example @@ -24,7 +24,7 @@ _defaults(bar, foo); ## Installation ```sh -$ npm install babel-plugin-object-set-prototype-of-to-assign +$ npm install babel-plugin-transform-object-set-prototype-of-to-assign ``` ## Usage @@ -35,20 +35,20 @@ $ npm install babel-plugin-object-set-prototype-of-to-assign ```json { - "plugins": ["object-set-prototype-of-to-assign"] + "plugins": ["transform-object-set-prototype-of-to-assign"] } ``` ### Via CLI ```sh -$ babel --plugins object-set-prototype-of-to-assign script.js +$ babel --plugins transform-object-set-prototype-of-to-assign script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["object-set-prototype-of-to-assign"] + plugins: ["transform-object-set-prototype-of-to-assign"] }); ``` diff --git a/packages/babel-plugin-object-set-prototype-of-to-assign/package.json b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json similarity index 55% rename from packages/babel-plugin-object-set-prototype-of-to-assign/package.json rename to packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json index b09df0753a..ce0846e614 100644 --- a/packages/babel-plugin-object-set-prototype-of-to-assign/package.json +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-object-set-prototype-of-to-assign", + "name": "babel-plugin-transform-object-set-prototype-of-to-assign", "version": "1.0.1", "description": "Turn Object.setPrototypeOf to assignments", - "repository": "babel/babelbabel-plugin-object-set-prototype-of-to-assign", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/src/index.js b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/src/index.js new file mode 100644 index 0000000000..dc3575ab48 --- /dev/null +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/src/index.js @@ -0,0 +1,11 @@ +export default function () { + return { + visitor: { + CallExpression(path, file) { + if (path.get("callee").matchesPattern("Object.setPrototypeOf")) { + path.node.callee = file.addHelper("defaults"); + } + } + } + }; +} diff --git a/packages/babel-plugin-react-display-name/.npmignore b/packages/babel-plugin-transform-property-literals/.npmignore similarity index 100% rename from packages/babel-plugin-react-display-name/.npmignore rename to packages/babel-plugin-transform-property-literals/.npmignore diff --git a/packages/babel-plugin-property-literals/README.md b/packages/babel-plugin-transform-property-literals/README.md similarity index 66% rename from packages/babel-plugin-property-literals/README.md rename to packages/babel-plugin-transform-property-literals/README.md index ed282d96c6..b3ebee6f6f 100644 --- a/packages/babel-plugin-property-literals/README.md +++ b/packages/babel-plugin-transform-property-literals/README.md @@ -1,4 +1,4 @@ -# babel-plugin-property-literals +# babel-plugin-transform-property-literals Turn valid property key literals to plain identifiers @@ -27,7 +27,7 @@ var obj = { ## Installation ```sh -$ npm install babel-plugin-property-literals +$ npm install babel-plugin-transform-property-literals ``` ## Usage @@ -38,20 +38,20 @@ $ npm install babel-plugin-property-literals ```json { - "plugins": ["property-literals"] + "plugins": ["transform-property-literals"] } ``` ### Via CLI ```sh -$ babel --plugins property-literals script.js +$ babel --plugins transform-property-literals script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["property-literals"] + plugins: ["transform-property-literals"] }); ``` diff --git a/packages/babel-plugin-property-literals/package.json b/packages/babel-plugin-transform-property-literals/package.json similarity index 63% rename from packages/babel-plugin-property-literals/package.json rename to packages/babel-plugin-transform-property-literals/package.json index 8ab0454c4d..9fc5b057f7 100644 --- a/packages/babel-plugin-property-literals/package.json +++ b/packages/babel-plugin-transform-property-literals/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-property-literals", + "name": "babel-plugin-transform-property-literals", "version": "1.0.1", "description": "Turn valid property key literals to plain identifiers", - "repository": "babel/babelbabel-plugin-property-literals", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-property-literals/src/index.js b/packages/babel-plugin-transform-property-literals/src/index.js similarity index 86% rename from packages/babel-plugin-property-literals/src/index.js rename to packages/babel-plugin-transform-property-literals/src/index.js index 3b0c139fe2..0c323e3ad0 100644 --- a/packages/babel-plugin-property-literals/src/index.js +++ b/packages/babel-plugin-transform-property-literals/src/index.js @@ -1,9 +1,5 @@ export default function ({ types: t }) { return { - metadata: { - group: "builtin-trailing" - }, - visitor: { Property: { exit(node) { diff --git a/packages/babel-plugin-react-inline-elements/.npmignore b/packages/babel-plugin-transform-proto-to-assign/.npmignore similarity index 100% rename from packages/babel-plugin-react-inline-elements/.npmignore rename to packages/babel-plugin-transform-proto-to-assign/.npmignore diff --git a/packages/babel-plugin-proto-to-assign/README.md b/packages/babel-plugin-transform-proto-to-assign/README.md similarity index 79% rename from packages/babel-plugin-proto-to-assign/README.md rename to packages/babel-plugin-transform-proto-to-assign/README.md index cb06ec7428..1af2deab1b 100644 --- a/packages/babel-plugin-proto-to-assign/README.md +++ b/packages/babel-plugin-transform-proto-to-assign/README.md @@ -1,4 +1,4 @@ -# babel-plugin-proto-to-assign +# babel-plugin-transform-proto-to-assign The `proto-to-assign`plugin will transform all `__proto__` assignments to a method that will do a shallow copy of all properties. @@ -45,7 +45,7 @@ _defaults(bar, foo); ## Installation ```sh -$ npm install babel-plugin-proto-to-assign +$ npm install babel-plugin-transform-proto-to-assign ``` ## Usage @@ -56,20 +56,20 @@ $ npm install babel-plugin-proto-to-assign ```json { - "plugins": ["proto-to-assign"] + "plugins": ["transform-proto-to-assign"] } ``` ### Via CLI ```sh -$ babel --plugins proto-to-assign script.js +$ babel --plugins transform-proto-to-assign script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["proto-to-assign"] + plugins: ["transform-proto-to-assign"] }); ``` diff --git a/packages/babel-plugin-proto-to-assign/package.json b/packages/babel-plugin-transform-proto-to-assign/package.json similarity index 67% rename from packages/babel-plugin-proto-to-assign/package.json rename to packages/babel-plugin-transform-proto-to-assign/package.json index 8353b036f5..2cfffd246d 100644 --- a/packages/babel-plugin-proto-to-assign/package.json +++ b/packages/babel-plugin-transform-proto-to-assign/package.json @@ -1,14 +1,15 @@ { - "name": "babel-plugin-proto-to-assign", + "name": "babel-plugin-transform-proto-to-assign", "version": "1.0.4", "description": "Babel plugin for turning __proto__ into a shallow property clone", - "repository": "babel/babelbabel-plugin-proto-to-assign", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { + "babel-runtime": "^5.8.20", "lodash": "^3.9.3" } } diff --git a/packages/babel-plugin-proto-to-assign/src/index.js b/packages/babel-plugin-transform-proto-to-assign/src/index.js similarity index 69% rename from packages/babel-plugin-proto-to-assign/src/index.js rename to packages/babel-plugin-transform-proto-to-assign/src/index.js index 9654d17414..96595e3e5a 100644 --- a/packages/babel-plugin-proto-to-assign/src/index.js +++ b/packages/babel-plugin-transform-proto-to-assign/src/index.js @@ -1,6 +1,6 @@ import pull from "lodash/array/pull"; -export default function ({ Plugin, types: t }) { +export default function ({ types: t }) { function isProtoKey(node) { return t.isLiteral(t.toComputedKey(node, node.key), { value: "__proto__" }); } @@ -15,26 +15,22 @@ export default function ({ Plugin, types: t }) { } return { - metadata: { - secondPass: true - }, - visitor: { - AssignmentExpression(node, parent, scope, file) { - if (!isProtoAssignmentExpression(node)) return; + AssignmentExpression(path, file) { + if (!isProtoAssignmentExpression(path.node)) return; var nodes = []; - var left = node.left.object; - var temp = scope.maybeGenerateMemoised(left); + var left = path.node.left.object; + var temp = path.scope.maybeGenerateMemoised(left); if (temp) nodes.push(t.expressionStatement(t.assignmentExpression("=", temp, left))); - nodes.push(buildDefaultsCallExpression(node, temp || left, file)); + nodes.push(buildDefaultsCallExpression(path.node, temp || left, file)); if (temp) nodes.push(temp); return nodes; }, - ExpressionStatement(node, parent, scope, file) { + ExpressionStatement({ node }, file) { var expr = node.expression; if (!t.isAssignmentExpression(expr, { operator: "=" })) return; @@ -43,12 +39,10 @@ export default function ({ Plugin, types: t }) { } }, - ObjectExpression(node, parent, scope, file) { + ObjectExpression({ node }, file) { var proto; - for (var i = 0; i < node.properties.length; i++) { - var prop = node.properties[i]; - + for (var prop of (node.properties: Array)) { if (isProtoKey(prop)) { proto = prop.value; pull(node.properties, prop); diff --git a/packages/babel-plugin-react-jsx/.npmignore b/packages/babel-plugin-transform-react-constant-elements/.npmignore similarity index 100% rename from packages/babel-plugin-react-jsx/.npmignore rename to packages/babel-plugin-transform-react-constant-elements/.npmignore diff --git a/packages/babel-plugin-react-constant-elements/README.md b/packages/babel-plugin-transform-react-constant-elements/README.md similarity index 51% rename from packages/babel-plugin-react-constant-elements/README.md rename to packages/babel-plugin-transform-react-constant-elements/README.md index fddaabd60f..e2c7e2cb99 100644 --- a/packages/babel-plugin-react-constant-elements/README.md +++ b/packages/babel-plugin-transform-react-constant-elements/README.md @@ -1,11 +1,11 @@ -# babel-plugin-react-constant-elements +# babel-plugin-transform-react-constant-elements Treat React JSX elements as value types and hoist them to the highest scope ## Installation ```sh -$ npm install babel-plugin-react-constant-elements +$ npm install babel-plugin-transform-react-constant-elements ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-react-constant-elements ```json { - "plugins": ["react-constant-elements"] + "plugins": ["transform-react-constant-elements"] } ``` ### Via CLI ```sh -$ babel --plugins react-constant-elements script.js +$ babel --plugins transform-react-constant-elements script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["react-constant-elements"] + plugins: ["transform-react-constant-elements"] }); ``` diff --git a/packages/babel-plugin-react-constant-elements/package.json b/packages/babel-plugin-transform-react-constant-elements/package.json similarity index 63% rename from packages/babel-plugin-react-constant-elements/package.json rename to packages/babel-plugin-transform-react-constant-elements/package.json index dd03b76969..74da6920fc 100644 --- a/packages/babel-plugin-react-constant-elements/package.json +++ b/packages/babel-plugin-transform-react-constant-elements/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-react-constant-elements", + "name": "babel-plugin-transform-react-constant-elements", "version": "1.0.3", "description": "Treat React JSX elements as value types and hoist them to the highest scope", - "repository": "babel/babelbabel-plugin-react-constant-elements", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-transform-react-constant-elements/src/index.js b/packages/babel-plugin-transform-react-constant-elements/src/index.js new file mode 100644 index 0000000000..bf66c16409 --- /dev/null +++ b/packages/babel-plugin-transform-react-constant-elements/src/index.js @@ -0,0 +1,42 @@ +export default function () { + var immutabilityVisitor = { + enter(path, state) { + var stop = () => { + state.isImmutable = false; + path.stop(); + }; + + if (path.isJSXClosingElement()) { + path.skip(); + return; + } + + if (path.isJSXIdentifier({ name: "ref" }) && path.parentPath.isJSXAttribute({ name: path.node })) { + return stop(); + } + + if (path.isJSXIdentifier() || path.isIdentifier() || path.isJSXMemberExpression()) { + return; + } + + if (!path.isImmutable()) stop(); + } + }; + + return { + visitor: { + JSXElement(path) { + if (path.node._hoisted) return; + + var state = { isImmutable: true }; + path.traverse(immutabilityVisitor, state); + + if (state.isImmutable) { + path.hoist(); + } else { + path.node._hoisted = true; + } + } + } + }; +} diff --git a/packages/babel-plugin-remove-console/.npmignore b/packages/babel-plugin-transform-react-display-name/.npmignore similarity index 100% rename from packages/babel-plugin-remove-console/.npmignore rename to packages/babel-plugin-transform-react-display-name/.npmignore diff --git a/packages/babel-plugin-react-display-name/README.md b/packages/babel-plugin-transform-react-display-name/README.md similarity index 50% rename from packages/babel-plugin-react-display-name/README.md rename to packages/babel-plugin-transform-react-display-name/README.md index 56fc028159..1eeb49cda2 100644 --- a/packages/babel-plugin-react-display-name/README.md +++ b/packages/babel-plugin-transform-react-display-name/README.md @@ -1,11 +1,11 @@ -# babel-plugin-react-display-name +# babel-plugin-transform-react-display-name Add displayName to React.createClass calls ## Installation ```sh -$ npm install babel-plugin-react-display-name +$ npm install babel-plugin-transform-react-display-name ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-react-display-name ```json { - "plugins": ["react-display-name"] + "plugins": ["transform-react-display-name"] } ``` ### Via CLI ```sh -$ babel --plugins react-display-name script.js +$ babel --plugins transform-react-display-name script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["react-display-name"] + plugins: ["transform-react-display-name"] }); ``` diff --git a/packages/babel-plugin-react-display-name/package.json b/packages/babel-plugin-transform-react-display-name/package.json similarity index 53% rename from packages/babel-plugin-react-display-name/package.json rename to packages/babel-plugin-transform-react-display-name/package.json index b22a84cf20..fcb0533a2d 100644 --- a/packages/babel-plugin-react-display-name/package.json +++ b/packages/babel-plugin-transform-react-display-name/package.json @@ -1,11 +1,14 @@ { - "name": "babel-plugin-react-display-name", + "name": "babel-plugin-transform-react-display-name", "version": "2.0.0", "description": "Add displayName to React.createClass calls", - "repository": "babel/babelbabel-plugin-react-display-name", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-runtime": "^5.8.20" + } } diff --git a/packages/babel-plugin-react-display-name/src/index.js b/packages/babel-plugin-transform-react-display-name/src/index.js similarity index 91% rename from packages/babel-plugin-react-display-name/src/index.js rename to packages/babel-plugin-transform-react-display-name/src/index.js index d057301f4f..ce046a6106 100644 --- a/packages/babel-plugin-react-display-name/src/index.js +++ b/packages/babel-plugin-transform-react-display-name/src/index.js @@ -39,12 +39,8 @@ export default function ({ types: t }) { } return { - metadata: { - group: "builtin-pre" - }, - visitor: { - ExportDefaultDeclaration(node, parent, scope, file) { + ExportDefaultDeclaration({ node }, file) { if (isCreateClass(node.declaration)) { var displayName = file.opts.basename; @@ -57,7 +53,7 @@ export default function ({ types: t }) { } }, - "AssignmentExpression|Property|VariableDeclarator"(node) { + "AssignmentExpression|Property|VariableDeclarator"({ node }) { var left, right; if (t.isAssignmentExpression(node)) { diff --git a/packages/babel-plugin-remove-debugger/.npmignore b/packages/babel-plugin-transform-react-inline-elements/.npmignore similarity index 100% rename from packages/babel-plugin-remove-debugger/.npmignore rename to packages/babel-plugin-transform-react-inline-elements/.npmignore diff --git a/packages/babel-plugin-transform-react-inline-elements/README.md b/packages/babel-plugin-transform-react-inline-elements/README.md new file mode 100644 index 0000000000..8d3834c3d4 --- /dev/null +++ b/packages/babel-plugin-transform-react-inline-elements/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-react-inline-elements + +Turn JSX elements into exploded React objects + +## Installation + +```sh +$ npm install babel-plugin-transform-react-inline-elements +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-react-inline-elements"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-react-inline-elements script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-react-inline-elements"] +}); +``` diff --git a/packages/babel-plugin-react-inline-elements/package.json b/packages/babel-plugin-transform-react-inline-elements/package.json similarity index 78% rename from packages/babel-plugin-react-inline-elements/package.json rename to packages/babel-plugin-transform-react-inline-elements/package.json index 2c015103e0..077486e9d6 100644 --- a/packages/babel-plugin-react-inline-elements/package.json +++ b/packages/babel-plugin-transform-react-inline-elements/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-react-inline-elements", + "name": "babel-plugin-transform-react-inline-elements", "version": "1.0.0", "description": "Turn JSX elements into exploded React objects", "repository": "babel/babel", diff --git a/packages/babel-plugin-transform-react-inline-elements/src/index.js b/packages/babel-plugin-transform-react-inline-elements/src/index.js new file mode 100644 index 0000000000..b4ee8b03c3 --- /dev/null +++ b/packages/babel-plugin-transform-react-inline-elements/src/index.js @@ -0,0 +1,74 @@ +export default function ({ types: t }) { + function hasRefOrSpread(attrs) { + for (var i = 0; i < attrs.length; i++) { + var attr = attrs[i]; + if (t.isJSXSpreadAttribute(attr)) return true; + if (isJSXAttributeOfName(attr, "ref")) return true; + } + return false; + } + + function isJSXAttributeOfName(attr, name) { + return t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: name }); + } + + return { + visitor: { + JSXElement({ node }, file) { + // filter + var open = node.openingElement; + if (hasRefOrSpread(open.attributes)) return; + + // init + var isComponent = true; + var props = t.objectExpression([]); + var obj = t.objectExpression([]); + var key = t.nullLiteral(); + var type = open.name; + + if (t.isJSXIdentifier(type) && t.react.isCompatTag(type.name)) { + type = t.stringLiteral(type.name); + isComponent = false; + } + + function pushElemProp(key, value) { + pushProp(obj.properties, t.identifier(key), value); + } + + function pushProp(objProps, key, value) { + objProps.push(t.property("init", key, value)); + } + + // metadata + pushElemProp("type", type); + pushElemProp("ref", t.nullLiteral()); + + if (node.children.length) { + var children = t.react.buildChildren(node); + children = children.length === 1 ? children[0] : t.arrayExpression(children); + pushProp(props.properties, t.identifier("children"), children); + } + + // props + for (var attr of (open.attributes: Array)) { + if (isJSXAttributeOfName(attr, "key")) { + key = attr.value; + } else { + pushProp(props.properties, t.identifier(attr.name.name), attr.value || t.identifier("true")); + } + } + + if (isComponent) { + props = t.callExpression(file.addHelper("default-props"), [t.memberExpression(type, t.identifier("defaultProps")), props]); + } + + pushElemProp("props", props); + + // key + pushElemProp("key", key); + + return obj; + } + } + }; +} diff --git a/packages/babel-plugin-runtime/.npmignore b/packages/babel-plugin-transform-react-jsx-compat/.npmignore similarity index 100% rename from packages/babel-plugin-runtime/.npmignore rename to packages/babel-plugin-transform-react-jsx-compat/.npmignore diff --git a/packages/babel-plugin-react-compat-jsx/README.md b/packages/babel-plugin-transform-react-jsx-compat/README.md similarity index 51% rename from packages/babel-plugin-react-compat-jsx/README.md rename to packages/babel-plugin-transform-react-jsx-compat/README.md index 8356514585..dee9fd8fdb 100644 --- a/packages/babel-plugin-react-compat-jsx/README.md +++ b/packages/babel-plugin-transform-react-jsx-compat/README.md @@ -1,11 +1,11 @@ -# babel-plugin-react-compat-jsx +# babel-plugin-transform-react-jsx-compat Turn JSX into React Pre-0.12 function calls ## Installation ```sh -$ npm install babel-plugin-react-compat-jsx +$ npm install babel-plugin-transform-react-jsx-compat ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-react-compat-jsx ```json { - "plugins": ["react-compat-jsx"] + "plugins": ["transform-react-jsx-compat"] } ``` ### Via CLI ```sh -$ babel --plugins react-compat-jsx script.js +$ babel --plugins transform-react-jsx-compat script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["react-compat-jsx"] + plugins: ["transform-react-jsx-compat"] }); ``` diff --git a/packages/babel-plugin-react-compat-jsx/package.json b/packages/babel-plugin-transform-react-jsx-compat/package.json similarity index 54% rename from packages/babel-plugin-react-compat-jsx/package.json rename to packages/babel-plugin-transform-react-jsx-compat/package.json index cfee81e9c6..5b70a67958 100644 --- a/packages/babel-plugin-react-compat-jsx/package.json +++ b/packages/babel-plugin-transform-react-jsx-compat/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-react-compat-jsx", + "name": "babel-plugin-transform-react-jsx-compat", "version": "1.0.0", "description": "Turn JSX into React Pre-0.12 function calls", "repository": "babel/babel", @@ -7,5 +7,9 @@ "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-runtime": "^5.0.0", + "babel-plugin-transform-builder-react-jsx": "^1.0.0" + } } diff --git a/packages/babel-plugin-transform-react-jsx-compat/src/index.js b/packages/babel-plugin-transform-react-jsx-compat/src/index.js new file mode 100644 index 0000000000..02c9147a8d --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx-compat/src/index.js @@ -0,0 +1,22 @@ +export default function ({ types: t }) { + return { + visitor: require("babel-plugin-builder-react-jsx")({ + pre(state) { + state.callee = state.tagExpr; + }, + + post(state) { + if (t.react.isCompatTag(state.tagName)) { + state.call = t.callExpression( + t.memberExpression( + t.memberExpression(t.identifier("React"), t.identifier("DOM")), + state.tagExpr, + t.isLiteral(state.tagExpr) + ), + state.args + ); + } + } + }) + }; +} diff --git a/packages/babel-plugin-simplify-comparison-operators/.npmignore b/packages/babel-plugin-transform-react-jsx/.npmignore similarity index 100% rename from packages/babel-plugin-simplify-comparison-operators/.npmignore rename to packages/babel-plugin-transform-react-jsx/.npmignore diff --git a/packages/babel-plugin-react-jsx/README.md b/packages/babel-plugin-transform-react-jsx/README.md similarity index 54% rename from packages/babel-plugin-react-jsx/README.md rename to packages/babel-plugin-transform-react-jsx/README.md index 5e332b25ac..51e996b841 100644 --- a/packages/babel-plugin-react-jsx/README.md +++ b/packages/babel-plugin-transform-react-jsx/README.md @@ -1,11 +1,11 @@ -# babel-plugin-react-jsx +# babel-plugin-transform-react-jsx Turn JSX into React function calls ## Installation ```sh -$ npm install babel-plugin-react-jsx +$ npm install babel-plugin-transform-react-jsx ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-react-jsx ```json { - "plugins": ["react-jsx"] + "plugins": ["transform-react-jsx"] } ``` ### Via CLI ```sh -$ babel --plugins react-jsx script.js +$ babel --plugins transform-react-jsx script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["react-jsx"] + plugins: ["transform-react-jsx"] }); ``` diff --git a/packages/babel-plugin-react-jsx/package.json b/packages/babel-plugin-transform-react-jsx/package.json similarity index 54% rename from packages/babel-plugin-react-jsx/package.json rename to packages/babel-plugin-transform-react-jsx/package.json index 4702727318..2ea83df50c 100644 --- a/packages/babel-plugin-react-jsx/package.json +++ b/packages/babel-plugin-transform-react-jsx/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-react-jsx", + "name": "babel-plugin-transform-react-jsx", "version": "1.0.0", "description": "Turn JSX into React function calls", "repository": "babel/babel", @@ -7,5 +7,9 @@ "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-runtime": "^5.0.0", + "babel-plugin-transform-builder-react-jsx": "^1.0.0" + } } diff --git a/packages/babel-plugin-transform-react-jsx/src/index.js b/packages/babel-plugin-transform-react-jsx/src/index.js new file mode 100644 index 0000000000..784cd9ae53 --- /dev/null +++ b/packages/babel-plugin-transform-react-jsx/src/index.js @@ -0,0 +1,42 @@ +export default function ({ types: t }) { + var JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/; + + var visitor = require("babel-plugin-builder-react-jsx")(t, { + pre(state) { + var tagName = state.tagName; + var args = state.args; + if (t.react.isCompatTag(tagName)) { + args.push(t.stringLiteral(tagName)); + } else { + args.push(state.tagExpr); + } + }, + + post(state, file) { + state.callee = file.get("jsxIdentifier"); + } + }); + + visitor.Program = function (path, file) { + var id = "React.createElement"; // todo: jsxPragma; + + for (var i = 0; i < file.ast.comments.length; i++) { + var comment = file.ast.comments[i]; + var matches = JSX_ANNOTATION_REGEX.exec(comment.value); + if (matches) { + id = matches[1]; + if (id === "React.DOM") { + throw file.buildCodeFrameError(comment, "The @jsx React.DOM pragma has been deprecated as of React 0.12"); + } else { + break; + } + } + } + + file.set("jsxIdentifier", id.split(".").map(t.identifier).reduce(function (object, property) { + return t.memberExpression(object, property); + })); + }; + + return { visitor }; +} diff --git a/packages/babel-plugin-trailing-function-commas/.npmignore b/packages/babel-plugin-transform-remove-console/.npmignore similarity index 100% rename from packages/babel-plugin-trailing-function-commas/.npmignore rename to packages/babel-plugin-transform-remove-console/.npmignore diff --git a/packages/babel-plugin-transform-remove-console/README.md b/packages/babel-plugin-transform-remove-console/README.md new file mode 100644 index 0000000000..98fd9297bf --- /dev/null +++ b/packages/babel-plugin-transform-remove-console/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-remove-console + +Remove console.* calls + +## Installation + +```sh +$ npm install babel-plugin-transform-remove-console +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-remove-console"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-remove-console script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-remove-console"] +}); +``` diff --git a/packages/babel-plugin-remove-console/package.json b/packages/babel-plugin-transform-remove-console/package.json similarity index 60% rename from packages/babel-plugin-remove-console/package.json rename to packages/babel-plugin-transform-remove-console/package.json index a7a693bfc2..b1d9454631 100644 --- a/packages/babel-plugin-remove-console/package.json +++ b/packages/babel-plugin-transform-remove-console/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-remove-console", + "name": "babel-plugin-transform-remove-console", "version": "1.0.1", "description": "Remove console.* calls", - "repository": "babel/babelbabel-plugin-remove-console", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-transform-remove-console/src/index.js b/packages/babel-plugin-transform-remove-console/src/index.js new file mode 100644 index 0000000000..3f8caa5738 --- /dev/null +++ b/packages/babel-plugin-transform-remove-console/src/index.js @@ -0,0 +1,11 @@ +export default function () { + return { + visitor: { + CallExpression(path) { + if (path.get("callee").matchesPattern("console", true)) { + path.remove(); + } + } + } + }; +} diff --git a/packages/babel-plugin-undeclared-variables-check/.npmignore b/packages/babel-plugin-transform-remove-debugger/.npmignore similarity index 100% rename from packages/babel-plugin-undeclared-variables-check/.npmignore rename to packages/babel-plugin-transform-remove-debugger/.npmignore diff --git a/packages/babel-plugin-remove-debugger/README.md b/packages/babel-plugin-transform-remove-debugger/README.md similarity index 50% rename from packages/babel-plugin-remove-debugger/README.md rename to packages/babel-plugin-transform-remove-debugger/README.md index 295dcf659c..094c5a0be5 100644 --- a/packages/babel-plugin-remove-debugger/README.md +++ b/packages/babel-plugin-transform-remove-debugger/README.md @@ -1,11 +1,11 @@ -# babel-plugin-remove-debugger +# babel-plugin-transform-remove-debugger Remove debugger statements ## Installation ```sh -$ npm install babel-plugin-remove-debugger +$ npm install babel-plugin-transform-remove-debugger ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-remove-debugger ```json { - "plugins": ["remove-debugger"] + "plugins": ["transform-remove-debugger"] } ``` ### Via CLI ```sh -$ babel --plugins remove-debugger script.js +$ babel --plugins transform-remove-debugger script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["remove-debugger"] + plugins: ["transform-remove-debugger"] }); ``` diff --git a/packages/babel-plugin-remove-debugger/package.json b/packages/babel-plugin-transform-remove-debugger/package.json similarity index 61% rename from packages/babel-plugin-remove-debugger/package.json rename to packages/babel-plugin-transform-remove-debugger/package.json index c133d2c378..617db3e12a 100644 --- a/packages/babel-plugin-remove-debugger/package.json +++ b/packages/babel-plugin-transform-remove-debugger/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-remove-debugger", + "name": "babel-plugin-transform-remove-debugger", "version": "1.0.1", "description": "Remove debugger statements", - "repository": "babel/babelbabel-plugin-remove-debugger", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-transform-remove-debugger/src/index.js b/packages/babel-plugin-transform-remove-debugger/src/index.js new file mode 100644 index 0000000000..d869cc76b6 --- /dev/null +++ b/packages/babel-plugin-transform-remove-debugger/src/index.js @@ -0,0 +1,9 @@ +export default function () { + return { + visitor: { + DebuggerStatement(path) { + path.remove(); + } + } + }; +} diff --git a/packages/babel-plugin-undefined-to-void/.npmignore b/packages/babel-plugin-transform-runtime/.npmignore similarity index 100% rename from packages/babel-plugin-undefined-to-void/.npmignore rename to packages/babel-plugin-transform-runtime/.npmignore diff --git a/packages/babel-plugin-runtime/README.md b/packages/babel-plugin-transform-runtime/README.md similarity index 62% rename from packages/babel-plugin-runtime/README.md rename to packages/babel-plugin-transform-runtime/README.md index 9abd3c2ff2..700676dee6 100644 --- a/packages/babel-plugin-runtime/README.md +++ b/packages/babel-plugin-transform-runtime/README.md @@ -1,11 +1,11 @@ -# babel-plugin-runtime +# babel-plugin-transform-runtime Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals ## Installation ```sh -$ npm install babel-plugin-runtime +$ npm install babel-plugin-transform-runtime ``` ## Usage @@ -16,20 +16,20 @@ $ npm install babel-plugin-runtime ```json { - "plugins": ["runtime"] + "plugins": ["transform-runtime"] } ``` ### Via CLI ```sh -$ babel --plugins runtime script.js +$ babel --plugins transform-runtime script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["runtime"] + plugins: ["transform-runtime"] }); ``` diff --git a/packages/babel-plugin-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json similarity index 63% rename from packages/babel-plugin-runtime/package.json rename to packages/babel-plugin-transform-runtime/package.json index d6a68bca0c..868b737c51 100644 --- a/packages/babel-plugin-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -1,11 +1,14 @@ { - "name": "babel-plugin-runtime", + "name": "babel-plugin-transform-runtime", "version": "1.0.7", "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", - "repository": "babel/babelbabel-plugin-runtime", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-runtime": "^5.8.20" + } } diff --git a/packages/babel-plugin-runtime/src/definitions.json b/packages/babel-plugin-transform-runtime/src/definitions.json similarity index 99% rename from packages/babel-plugin-runtime/src/definitions.json rename to packages/babel-plugin-transform-runtime/src/definitions.json index 9c82814bc5..51ba8dd801 100644 --- a/packages/babel-plugin-runtime/src/definitions.json +++ b/packages/babel-plugin-transform-runtime/src/definitions.json @@ -37,7 +37,6 @@ "some": "array/some", "sort": "array/sort", "splice": "array/splice", - "turn": "array/turn", "unshift": "array/unshift", "values": "array/values" }, diff --git a/packages/babel-plugin-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js similarity index 71% rename from packages/babel-plugin-runtime/src/index.js rename to packages/babel-plugin-transform-runtime/src/index.js index 1ba27f10eb..a80feb0d23 100644 --- a/packages/babel-plugin-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -8,10 +8,6 @@ export default function ({ types: t }) { } return { - metadata: { - group: "builtin-post-modules" - }, - pre(file) { file.set("helperGenerator", function (name) { return file.addImport(`${RUNTIME_MODULE_NAME}/helpers/${name}`, name, "absoluteDefault"); @@ -23,7 +19,7 @@ export default function ({ types: t }) { }, visitor: { - ReferencedIdentifier(node, parent, scope, file) { + ReferencedIdentifier({ node, parent, scope }, file) { if (node.name === "regeneratorRuntime") { return file.get("regeneratorIdentifier"); } @@ -37,37 +33,42 @@ export default function ({ types: t }) { return file.addImport(`${RUNTIME_MODULE_NAME}/core-js/${modulePath}`, node.name, "absoluteDefault"); }, - CallExpression(node, parent, scope, file) { + CallExpression(path, file) { // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) - if (node.arguments.length) return; + // we can't compile this + if (path.node.arguments.length) return; - var callee = node.callee; + var callee = path.node.callee; if (!t.isMemberExpression(callee)) return; if (!callee.computed) return; - if (!this.get("callee.property").matchesPattern("Symbol.iterator")) return; + if (!path.get("callee.property").matchesPattern("Symbol.iterator")) return; - return t.callExpression(file.addImport(`${RUNTIME_MODULE_NAME}/core-js/get-iterator`, "getIterator", "absoluteDefault"), [callee.object]); + return t.callExpression( + file.addImport(`${RUNTIME_MODULE_NAME}/core-js/get-iterator`, "getIterator", "absoluteDefault"), + [callee.object] + ); }, - BinaryExpression(node, parent, scope, file) { + BinaryExpression(path, file) { // Symbol.iterator in arr -> core.$for.isIterable(arr) - if (node.operator !== "in") return; - if (!this.get("left").matchesPattern("Symbol.iterator")) return; + if (path.node.operator !== "in") return; + if (!path.get("left").matchesPattern("Symbol.iterator")) return; return t.callExpression( file.addImport(`${RUNTIME_MODULE_NAME}/core-js/is-iterable`, "isIterable", "absoluteDefault"), - [node.right] + [path.node.right] ); }, MemberExpression: { - enter(node, parent, scope, file) { + enter(path, file) { // Array.from -> _core.Array.from - if (!this.isReferenced()) return; + if (!path.isReferenced()) return; + var { node } = path; var obj = node.object; var prop = node.property; @@ -81,11 +82,11 @@ export default function ({ types: t }) { if (!has(methods, prop.name)) return; // doesn't reference the global - if (scope.getBindingIdentifier(obj.name)) return; + if (path.scope.getBindingIdentifier(obj.name)) return; // special case Object.defineProperty to not use core-js when using string keys - if (obj.name === "Object" && prop.name === "defineProperty" && this.parentPath.isCallExpression()) { - var call = this.parentPath.node; + if (obj.name === "Object" && prop.name === "defineProperty" && path.parentPath.isCallExpression()) { + var call = path.parentPath.node; if (call.arguments.length === 3 && t.isLiteral(call.arguments[1])) return; } @@ -93,14 +94,14 @@ export default function ({ types: t }) { return file.addImport(`${RUNTIME_MODULE_NAME}/core-js/${modulePath}`, `${obj.name}$${prop.name}`, "absoluteDefault"); }, - exit(node, parent, scope, file) { - if (!this.isReferenced()) return; + exit(path, file) { + if (!path.isReferenced()) return; - var prop = node.property; - var obj = node.object; + var prop = path.node.property; + var obj = path.node.object; if (!has(definitions.builtins, obj.name)) return; - if (scope.getBindingIdentifier(obj.name)) return; + if (path.scope.getBindingIdentifier(obj.name)) return; var modulePath = definitions.builtins[obj.name]; return t.memberExpression( diff --git a/packages/babel-plugin-async-functions/.gitignore b/packages/babel-plugin-transform-simplify-comparison-operators/.npmignore similarity index 82% rename from packages/babel-plugin-async-functions/.gitignore rename to packages/babel-plugin-transform-simplify-comparison-operators/.npmignore index 45f7222308..cace0d6ddc 100644 --- a/packages/babel-plugin-async-functions/.gitignore +++ b/packages/babel-plugin-transform-simplify-comparison-operators/.npmignore @@ -1,3 +1,3 @@ node_modules *.log -lib +src diff --git a/packages/babel-plugin-simplify-comparison-operators/README.md b/packages/babel-plugin-transform-simplify-comparison-operators/README.md similarity index 57% rename from packages/babel-plugin-simplify-comparison-operators/README.md rename to packages/babel-plugin-transform-simplify-comparison-operators/README.md index 4475a3b839..01ad108046 100644 --- a/packages/babel-plugin-simplify-comparison-operators/README.md +++ b/packages/babel-plugin-transform-simplify-comparison-operators/README.md @@ -1,4 +1,4 @@ -# babel-plugin-simplify-comparison-operators +# babel-plugin-transform-simplify-comparison-operators Convert `===` and `!==` to `==` and `!=` if their types are inferred to be the same. @@ -19,7 +19,7 @@ typeof foo == "object"; ## Installation ```sh -$ npm install babel-plugin-simplify-comparison-operators +$ npm install babel-plugin-transform-simplify-comparison-operators ``` ## Usage @@ -30,20 +30,20 @@ $ npm install babel-plugin-simplify-comparison-operators ```json { - "plugins": ["simplify-comparison-operators"] + "plugins": ["transform-simplify-comparison-operators"] } ``` ### Via CLI ```sh -$ babel --plugins simplify-comparison-operators script.js +$ babel --plugins transform-simplify-comparison-operators script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["simplify-comparison-operators"] + plugins: ["transform-simplify-comparison-operators"] }); ``` diff --git a/packages/babel-plugin-simplify-comparison-operators/package.json b/packages/babel-plugin-transform-simplify-comparison-operators/package.json similarity index 61% rename from packages/babel-plugin-simplify-comparison-operators/package.json rename to packages/babel-plugin-transform-simplify-comparison-operators/package.json index 912f778ac5..5d926d90bf 100644 --- a/packages/babel-plugin-simplify-comparison-operators/package.json +++ b/packages/babel-plugin-transform-simplify-comparison-operators/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-simplify-comparison-operators", + "name": "babel-plugin-transform-simplify-comparison-operators", "version": "1.0.2", "description": "Convert === and !== to == and != if their types are inferred to be the same.", - "repository": "babel/babelbabel-plugin-simplify-comparison-operators", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-simplify-comparison-operators/src/index.js b/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js similarity index 88% rename from packages/babel-plugin-simplify-comparison-operators/src/index.js rename to packages/babel-plugin-transform-simplify-comparison-operators/src/index.js index 40b9b9e783..88b311e1a7 100644 --- a/packages/babel-plugin-simplify-comparison-operators/src/index.js +++ b/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js @@ -1,9 +1,5 @@ export default function () { return { - metadata: { - group: "builtin-pre" - }, - visitor: { BinaryExpression(node) { var op = node.operator; diff --git a/packages/babel-plugin-async-to-bluebird-coroutines/.gitignore b/packages/babel-plugin-transform-undeclared-variables-check/.npmignore similarity index 82% rename from packages/babel-plugin-async-to-bluebird-coroutines/.gitignore rename to packages/babel-plugin-transform-undeclared-variables-check/.npmignore index 45f7222308..cace0d6ddc 100644 --- a/packages/babel-plugin-async-to-bluebird-coroutines/.gitignore +++ b/packages/babel-plugin-transform-undeclared-variables-check/.npmignore @@ -1,3 +1,3 @@ node_modules *.log -lib +src diff --git a/packages/babel-plugin-transform-undeclared-variables-check/README.md b/packages/babel-plugin-transform-undeclared-variables-check/README.md new file mode 100644 index 0000000000..cddd56313d --- /dev/null +++ b/packages/babel-plugin-transform-undeclared-variables-check/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-undeclared-variables-check + +Throw a compile-time error on references to undeclared variables + +## Installation + +```sh +$ npm install babel-plugin-transform-undeclared-variables-check +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-undeclared-variables-check"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-undeclared-variables-check script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-undeclared-variables-check"] +}); +``` diff --git a/packages/babel-plugin-undeclared-variables-check/package.json b/packages/babel-plugin-transform-undeclared-variables-check/package.json similarity index 65% rename from packages/babel-plugin-undeclared-variables-check/package.json rename to packages/babel-plugin-transform-undeclared-variables-check/package.json index eab0ce08bc..82cbe2499e 100644 --- a/packages/babel-plugin-undeclared-variables-check/package.json +++ b/packages/babel-plugin-transform-undeclared-variables-check/package.json @@ -1,14 +1,15 @@ { - "name": "babel-plugin-undeclared-variables-check", + "name": "babel-plugin-transform-undeclared-variables-check", "version": "1.0.2", "description": "Throw a compile-time error on references to undeclared variables", - "repository": "babel/babelbabel-plugin-undeclared-variables-check", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" ], "dependencies": { + "babel-runtime": "^5.8.20", "leven": "^1.0.2" } } diff --git a/packages/babel-plugin-undeclared-variables-check/src/index.js b/packages/babel-plugin-transform-undeclared-variables-check/src/index.js similarity index 74% rename from packages/babel-plugin-undeclared-variables-check/src/index.js rename to packages/babel-plugin-transform-undeclared-variables-check/src/index.js index cd9cb5e56c..4ce2f590f7 100644 --- a/packages/babel-plugin-undeclared-variables-check/src/index.js +++ b/packages/babel-plugin-transform-undeclared-variables-check/src/index.js @@ -2,15 +2,13 @@ import levenshtein from "leven"; export default function ({ messages }) { return { - metadata: { - group: "builtin-pre" - }, - visitor: { - ReferencedIdentifier(node, parent, scope) { + ReferencedIdentifier(path) { + var { node, scope } = path; + var binding = scope.getBinding(node.name); - if (binding && binding.kind === "type" && !this.parentPath.isFlow()) { - throw this.errorWithNode(messages.get("undeclaredVariableType", node.name), ReferenceError); + if (binding && binding.kind === "type" && !path.parentPath.isFlow()) { + throw path.buildCodeFrameError(messages.get("undeclaredVariableType", node.name), ReferenceError); } if (scope.hasBinding(node.name)) return; @@ -41,7 +39,7 @@ export default function ({ messages }) { // - throw this.errorWithNode(msg, ReferenceError); + throw path.buildCodeFrameError(msg, ReferenceError); } } }; diff --git a/packages/babel-plugin-async-to-generator/.gitignore b/packages/babel-plugin-transform-undefined-to-void/.npmignore similarity index 82% rename from packages/babel-plugin-async-to-generator/.gitignore rename to packages/babel-plugin-transform-undefined-to-void/.npmignore index 45f7222308..cace0d6ddc 100644 --- a/packages/babel-plugin-async-to-generator/.gitignore +++ b/packages/babel-plugin-transform-undefined-to-void/.npmignore @@ -1,3 +1,3 @@ node_modules *.log -lib +src diff --git a/packages/babel-plugin-undefined-to-void/README.md b/packages/babel-plugin-transform-undefined-to-void/README.md similarity index 70% rename from packages/babel-plugin-undefined-to-void/README.md rename to packages/babel-plugin-transform-undefined-to-void/README.md index 874189d710..4ad6f53b5e 100644 --- a/packages/babel-plugin-undefined-to-void/README.md +++ b/packages/babel-plugin-transform-undefined-to-void/README.md @@ -1,4 +1,4 @@ -# babel-plugin-undefined-to-void +# babel-plugin-transform-undefined-to-void Some JavaScript implementations allow `undefined` to be overwritten, this may lead to peculiar bugs that are extremely hard to track down. @@ -23,7 +23,7 @@ foo === void 0; ## Installation ```sh -$ npm install babel-plugin-undefined-to-void +$ npm install babel-plugin-transform-undefined-to-void ``` ## Usage @@ -34,20 +34,20 @@ $ npm install babel-plugin-undefined-to-void ```json { - "plugins": ["undefined-to-void"] + "plugins": ["transform-undefined-to-void"] } ``` ### Via CLI ```sh -$ babel --plugins undefined-to-void script.js +$ babel --plugins transform-undefined-to-void script.js ``` ### Via Node API ```javascript require("babel-core").transform("code", { - plugins: ["undefined-to-void"] + plugins: ["transform-undefined-to-void"] }); ``` diff --git a/packages/babel-plugin-undefined-to-void/package.json b/packages/babel-plugin-transform-undefined-to-void/package.json similarity index 63% rename from packages/babel-plugin-undefined-to-void/package.json rename to packages/babel-plugin-transform-undefined-to-void/package.json index 27d88a26c6..888423f34b 100644 --- a/packages/babel-plugin-undefined-to-void/package.json +++ b/packages/babel-plugin-transform-undefined-to-void/package.json @@ -1,8 +1,8 @@ { - "name": "babel-plugin-undefined-to-void", + "name": "babel-plugin-transform-undefined-to-void", "version": "1.1.6", "description": "Replace references to `undefined` with `void 0`", - "repository": "babel/babelbabel-plugin-undefined-to-void", + "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ diff --git a/packages/babel-plugin-undefined-to-void/src/index.js b/packages/babel-plugin-transform-undefined-to-void/src/index.js similarity index 82% rename from packages/babel-plugin-undefined-to-void/src/index.js rename to packages/babel-plugin-transform-undefined-to-void/src/index.js index 5b70388760..593d7bea3d 100644 --- a/packages/babel-plugin-undefined-to-void/src/index.js +++ b/packages/babel-plugin-transform-undefined-to-void/src/index.js @@ -1,9 +1,5 @@ export default function ({ types: t }) { return { - metadata: { - group: "builtin-basic" - }, - visitor: { ReferencedIdentifier(node) { if (node.name === "undefined") { diff --git a/packages/babel-plugin-undeclared-variables-check/README.md b/packages/babel-plugin-undeclared-variables-check/README.md deleted file mode 100644 index 8051e67a12..0000000000 --- a/packages/babel-plugin-undeclared-variables-check/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-undeclared-variables-check - -Throw a compile-time error on references to undeclared variables - -## Installation - -```sh -$ npm install babel-plugin-undeclared-variables-check -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["undeclared-variables-check"] -} -``` - -### Via CLI - -```sh -$ babel --plugins undeclared-variables-check script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["undeclared-variables-check"] -}); -``` diff --git a/packages/babel-polyfill/README.md b/packages/babel-polyfill/README.md new file mode 100644 index 0000000000..9cb41082ad --- /dev/null +++ b/packages/babel-polyfill/README.md @@ -0,0 +1 @@ +# babel-polyfill From e1575c468c616f31e319770e676b59545cbad607 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:13:11 +0100 Subject: [PATCH 080/174] rename features in babylon tests --- .../test/fixtures/experimental/async-functions/options.json | 2 +- .../fixtures/experimental/uncategorised/10/options.json | 4 ++-- .../fixtures/experimental/uncategorised/11/options.json | 4 ++-- .../fixtures/experimental/uncategorised/12/options.json | 4 ++-- .../fixtures/experimental/uncategorised/13/options.json | 4 ++-- .../fixtures/experimental/uncategorised/14/options.json | 4 ++-- .../fixtures/experimental/uncategorised/15/options.json | 4 ++-- .../fixtures/experimental/uncategorised/16/options.json | 4 ++-- .../fixtures/experimental/uncategorised/17/options.json | 2 +- .../fixtures/experimental/uncategorised/18/options.json | 2 +- .../fixtures/experimental/uncategorised/19/options.json | 2 +- .../fixtures/experimental/uncategorised/20/options.json | 2 +- .../fixtures/experimental/uncategorised/21/options.json | 2 +- .../fixtures/experimental/uncategorised/22/options.json | 2 +- .../fixtures/experimental/uncategorised/23/options.json | 2 +- .../fixtures/experimental/uncategorised/24/options.json | 2 +- .../fixtures/experimental/uncategorised/25/options.json | 2 +- .../fixtures/experimental/uncategorised/26/options.json | 2 +- .../fixtures/experimental/uncategorised/27/options.json | 2 +- .../fixtures/experimental/uncategorised/28/options.json | 2 +- .../fixtures/experimental/uncategorised/29/options.json | 4 ++-- .../test/fixtures/experimental/uncategorised/3/options.json | 4 ++-- .../fixtures/experimental/uncategorised/30/options.json | 4 ++-- .../fixtures/experimental/uncategorised/31/options.json | 4 ++-- .../fixtures/experimental/uncategorised/32/options.json | 4 ++-- .../fixtures/experimental/uncategorised/33/options.json | 4 ++-- .../fixtures/experimental/uncategorised/34/options.json | 4 ++-- .../fixtures/experimental/uncategorised/35/options.json | 4 ++-- .../fixtures/experimental/uncategorised/36/options.json | 4 ++-- .../fixtures/experimental/uncategorised/37/options.json | 4 ++-- .../fixtures/experimental/uncategorised/38/options.json | 4 ++-- .../fixtures/experimental/uncategorised/39/options.json | 4 ++-- .../test/fixtures/experimental/uncategorised/4/options.json | 4 ++-- .../fixtures/experimental/uncategorised/40/options.json | 4 ++-- .../fixtures/experimental/uncategorised/41/options.json | 4 ++-- .../fixtures/experimental/uncategorised/42/options.json | 4 ++-- .../fixtures/experimental/uncategorised/43/options.json | 4 ++-- .../fixtures/experimental/uncategorised/44/options.json | 4 ++-- .../fixtures/experimental/uncategorised/45/options.json | 4 ++-- .../fixtures/experimental/uncategorised/46/options.json | 4 ++-- .../fixtures/experimental/uncategorised/47/options.json | 6 +++--- .../fixtures/experimental/uncategorised/48/options.json | 6 +++--- .../fixtures/experimental/uncategorised/49/options.json | 4 ++-- .../test/fixtures/experimental/uncategorised/5/options.json | 4 ++-- .../fixtures/experimental/uncategorised/50/options.json | 4 ++-- .../fixtures/experimental/uncategorised/51/options.json | 4 ++-- .../fixtures/experimental/uncategorised/52/options.json | 4 ++-- .../fixtures/experimental/uncategorised/53/options.json | 4 ++-- .../fixtures/experimental/uncategorised/54/options.json | 4 ++-- .../fixtures/experimental/uncategorised/55/options.json | 4 ++-- .../fixtures/experimental/uncategorised/56/options.json | 4 ++-- .../fixtures/experimental/uncategorised/57/options.json | 4 ++-- .../fixtures/experimental/uncategorised/58/options.json | 4 ++-- .../fixtures/experimental/uncategorised/59/options.json | 4 ++-- .../test/fixtures/experimental/uncategorised/6/options.json | 4 ++-- .../fixtures/experimental/uncategorised/60/options.json | 4 ++-- .../fixtures/experimental/uncategorised/61/options.json | 4 ++-- .../fixtures/experimental/uncategorised/62/options.json | 2 +- .../test/fixtures/experimental/uncategorised/7/options.json | 4 ++-- .../test/fixtures/experimental/uncategorised/8/options.json | 4 ++-- .../test/fixtures/experimental/uncategorised/9/options.json | 4 ++-- packages/babylon/test/fixtures/flow/options.json | 2 +- .../test/fixtures/harmony/uncategorised/269/options.json | 4 ++-- .../test/fixtures/harmony/uncategorised/270/options.json | 4 ++-- .../test/fixtures/harmony/uncategorised/271/options.json | 4 ++-- .../test/fixtures/harmony/uncategorised/272/options.json | 4 ++-- .../test/fixtures/harmony/uncategorised/274/options.json | 4 ++-- .../test/fixtures/harmony/uncategorised/57/options.json | 2 +- .../test/fixtures/harmony/uncategorised/58/options.json | 2 +- .../test/fixtures/harmony/uncategorised/59/options.json | 2 +- .../test/fixtures/harmony/uncategorised/60/options.json | 2 +- test.js | 1 + 72 files changed, 126 insertions(+), 125 deletions(-) create mode 100644 test.js diff --git a/packages/babylon/test/fixtures/experimental/async-functions/options.json b/packages/babylon/test/fixtures/experimental/async-functions/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/async-functions/options.json +++ b/packages/babylon/test/fixtures/experimental/async-functions/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json index 0d83328100..7fd805ebbe 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.objectRestSpread": true + "objectRestSpread": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json index 0d83328100..7fd805ebbe 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.objectRestSpread": true + "objectRestSpread": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json index 0d83328100..7fd805ebbe 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.objectRestSpread": true + "objectRestSpread": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json index 0d83328100..7fd805ebbe 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.objectRestSpread": true + "objectRestSpread": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json index 0d83328100..7fd805ebbe 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.objectRestSpread": true + "objectRestSpread": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json index 8dcea40e59..2ba4efc5eb 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true }, "throws": "Unexpected token (1:30)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json index 01116f62ed..60befbb037 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true }, "throws": "Unexpected token (2:4)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json index 2fce804177..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json index 50edc4238b..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json index 875943b10b..41c7f66605 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.exponentiationOperator": true + "exponentiationOperator": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json index 50edc4238b..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json index 50edc4238b..01e1b60e6b 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json index 3926a9650c..8958d766f8 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json @@ -1,6 +1,6 @@ { "sourceType": "module", "features": { - "es7.asyncFunctions": true + "asyncFunctions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json index 875943b10b..41c7f66605 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.exponentiationOperator": true + "exponentiationOperator": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json index 182e2604d5..b433f712de 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.decorators": true + "decorators": true }, "throws": "Leading decorators must be attached to a class declaration (1:5)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json index 9e67302514..821f4be393 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.decorators": true + "decorators": true }, "throws": "You have trailing decorators with no method (1:18)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json index fde5b42bd7..bbe898f093 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.classProperties": true + "classProperties": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json index fde5b42bd7..bbe898f093 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.classProperties": true + "classProperties": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json index fde5b42bd7..bbe898f093 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.classProperties": true + "classProperties": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json index fde5b42bd7..bbe898f093 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.classProperties": true + "classProperties": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json index 911667bcfa..860a7f5c18 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.classProperties": true, - "es7.decorators": true + "classProperties": true, + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json index 911667bcfa..860a7f5c18 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.classProperties": true, - "es7.decorators": true + "classProperties": true, + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json index 27f5622b68..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json index 875943b10b..41c7f66605 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.exponentiationOperator": true + "exponentiationOperator": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json index dab8dec6a1..0f9c04fc1c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json @@ -1,6 +1,6 @@ { "sourceType": "module", "features": { - "es7.exportExtensions": true + "exportExtensions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json index dab8dec6a1..0f9c04fc1c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json @@ -1,6 +1,6 @@ { "sourceType": "module", "features": { - "es7.exportExtensions": true + "exportExtensions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json index dab8dec6a1..0f9c04fc1c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json @@ -1,6 +1,6 @@ { "sourceType": "module", "features": { - "es7.exportExtensions": true + "exportExtensions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json index dab8dec6a1..0f9c04fc1c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json @@ -1,6 +1,6 @@ { "sourceType": "module", "features": { - "es7.exportExtensions": true + "exportExtensions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json index dab8dec6a1..0f9c04fc1c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json @@ -1,6 +1,6 @@ { "sourceType": "module", "features": { - "es7.exportExtensions": true + "exportExtensions": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json index 6c4b46d000..5e058ad445 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json index 6c4b46d000..5e058ad445 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json index 6c4b46d000..5e058ad445 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json index 6c4b46d000..5e058ad445 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json index 0ed6fd677f..62be2d0a68 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true }, "throws": "Unexpected token (1:4)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json index 875943b10b..41c7f66605 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.exponentiationOperator": true + "exponentiationOperator": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json index 102842d3a2..01d373f173 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true }, "throws": "Unexpected token (1:13)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json index cb7b1732e1..26872c0003 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.trailingFunctionCommas": true + "trailingFunctionCommas": true }, "throws": "Unexpected token (1:7)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json index b0f989baa5..2a3b127804 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.decorators": true + "decorators": true } } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json index 875943b10b..41c7f66605 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.exponentiationOperator": true + "exponentiationOperator": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json index 875943b10b..41c7f66605 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.exponentiationOperator": true + "exponentiationOperator": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json index 0d83328100..7fd805ebbe 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.objectRestSpread": true + "objectRestSpread": true } -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/flow/options.json b/packages/babylon/test/fixtures/flow/options.json index c1331af184..05a90ee573 100644 --- a/packages/babylon/test/fixtures/flow/options.json +++ b/packages/babylon/test/fixtures/flow/options.json @@ -1,5 +1,5 @@ { "sourceType": "module", "plugins": { "jsx": true, "flow": true }, - "features": { "es7.asyncFunctions": true } + "features": { "asyncFunctions": true } } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json index f271f6ed7a..880504f34d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true }, "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json index f271f6ed7a..880504f34d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true }, "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json index f271f6ed7a..880504f34d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true }, "throws": "Unexpected token (1:6)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json index cd9f37a180..dad599c3b8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true }, "throws": "Unexpected token (1:8)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json index cbddd68bb9..9b7c4355a5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json @@ -1,6 +1,6 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true }, "throws": "Unexpected token (1:14)" -} \ No newline at end of file +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json index 8d84badefb..142b9fa2a0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true } } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json index 8d84badefb..142b9fa2a0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true } } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json index 8d84badefb..142b9fa2a0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true } } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json index 8d84badefb..142b9fa2a0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json @@ -1,5 +1,5 @@ { "features": { - "es7.comprehensions": true + "comprehensions": true } } diff --git a/test.js b/test.js new file mode 100644 index 0000000000..3918c74e44 --- /dev/null +++ b/test.js @@ -0,0 +1 @@ +"use strict"; From 5ea5d47d7fd37fc04974e4e75609d6fc98c5bbba Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:15:19 +0100 Subject: [PATCH 081/174] add babylon hasFeature util method --- packages/babylon/src/parser/statement.js | 16 ++++++++-------- packages/babylon/src/tokenizer/index.js | 4 ++-- packages/babylon/src/tokenizer/state.js | 1 - 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 614951c802..9f96ccf826 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -96,7 +96,7 @@ pp.parseStatement = function (declaration, topLevel) { return starttype === tt._import ? this.parseImport(node) : this.parseExport(node); case tt.name: - if (this.options.features["es7.asyncFunctions"] && this.state.value === "async") { + if (this.hasFeature("asyncFunctions") && this.state.value === "async") { // peek ahead and see if next token is a function let state = this.state.clone(); this.next(); @@ -145,7 +145,7 @@ pp.parseDecorators = function (allowExport) { }; pp.parseDecorator = function () { - if (!this.options.features["es7.decorators"]) { + if (!this.hasFeature("decorators")) { this.unexpected(); } let node = this.startNode(); @@ -511,7 +511,7 @@ pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, op pp.parseFunctionParams = function (node) { this.expect(tt.parenL); - node.params = this.parseBindingList(tt.parenR, false, this.options.features["es7.trailingFunctionCommas"]); + node.params = this.parseBindingList(tt.parenR, false, this.hasFeature("trailingFunctionCommas")); }; // Parse a class declaration or literal (depending on the @@ -550,7 +550,7 @@ pp.parseClass = function (node, isStatement, optionalId) { classBody.body.push(this.parseClassProperty(method)); continue; } - if (this.options.features["es7.asyncFunctions"] && !this.match(tt.parenL) && + if (this.hasFeature("asyncFunctions") && !this.match(tt.parenL) && !method.computed && method.key.type === "Identifier" && method.key.name === "async") { isAsync = true; this.parsePropertyName(method); @@ -605,7 +605,7 @@ pp.isClassProperty = function () { pp.parseClassProperty = function (node) { if (this.match(tt.eq)) { - if (!this.options.features["es7.classProperties"]) this.unexpected(); + if (!this.hasFeature("classProperties")) this.unexpected(); this.next(); node.value = this.parseMaybeAssign(); } else { @@ -644,7 +644,7 @@ pp.parseExport = function (node) { if (this.match(tt.star)) { let specifier = this.startNode(); this.next(); - if (this.options.features["es7.exportExtensions"] && this.eatContextual("as")) { + if (this.hasFeature("exportExtensions") && this.eatContextual("as")) { specifier.exported = this.parseIdentifier(); node.specifiers = [this.finishNode(specifier, "ExportNamespaceSpecifier")]; this.parseExportSpecifiersMaybe(node); @@ -653,7 +653,7 @@ pp.parseExport = function (node) { this.parseExportFrom(node, true); return this.finishNode(node, "ExportAllDeclaration"); } - } else if (this.options.features["es7.exportExtensions"] && this.isExportDefaultSpecifier()) { + } else if (this.hasFeature("exportExtensions") && this.isExportDefaultSpecifier()) { let specifier = this.startNode(); specifier.exported = this.parseIdentifier(true); node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; @@ -735,7 +735,7 @@ pp.parseExportFrom = function (node, expect?) { }; pp.shouldParseExportDeclaration = function () { - return this.options.features["es7.asyncFunctions"] && this.isContextual("async"); + return this.hasFeature("asyncFunctions") && this.isContextual("async"); }; pp.checkExport = function (node) { diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index b1b4f16f0d..3839f81e58 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -308,7 +308,7 @@ export default class Tokenizer { var width = 1; var next = this.input.charCodeAt(this.state.pos + 1); - if (next === 42 && this.options.features["es7.exponentiationOperator"]) { // '*' + if (next === 42 && this.hasFeature("exponentiationOperator")) { // '*' width++; next = this.input.charCodeAt(this.state.pos + 2); type = tt.exponent; @@ -411,7 +411,7 @@ export default class Tokenizer { case 125: ++this.state.pos; return this.finishToken(tt.braceR); case 58: - if (this.options.features["es7.functionBind"] && this.input.charCodeAt(this.state.pos + 1) === 58) { + if (this.hasFeature("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { return this.finishOp(tt.doubleColon, 2); } else { ++this.state.pos; diff --git a/packages/babylon/src/tokenizer/state.js b/packages/babylon/src/tokenizer/state.js index 4765017de3..b5a846ae20 100644 --- a/packages/babylon/src/tokenizer/state.js +++ b/packages/babylon/src/tokenizer/state.js @@ -60,7 +60,6 @@ export default class State { // Used to signal to callers of `readWord1` whether the word // contained any escape sequences. This is needed because words with // escape sequences must not be interpreted as keywords. - this.containsEsc = false; return this; From dae16fa192637adff4824f35a42e70f328eed24c Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:16:07 +0100 Subject: [PATCH 082/174] add directives property to Program and BlockStatement --- packages/babylon/src/parser/statement.js | 65 +++++++++++++++--------- packages/babylon/src/parser/util.js | 6 --- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 9f96ccf826..536db0a82c 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -13,18 +13,8 @@ const pp = Parser.prototype; pp.parseTopLevel = function (file, program) { program.sourceType = this.options.sourceType; - program.body = []; - let first = true; - while (!this.match(tt.eof)) { - let stmt = this.parseStatement(true, true); - program.body.push(stmt); - if (first) { - if (this.isUseStrict(stmt)) this.setStrict(true); - first = false; - } - } - this.next(); + this.parseBlockBody(program, true, tt.eof); file.program = this.finishNode(program, "Program"); file.comments = this.state.comments; @@ -35,6 +25,16 @@ pp.parseTopLevel = function (file, program) { const loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; +// TODO + +pp.parseDirective = function () { + let node = this.startNode(); + node.raw = this.input.slice(this.state.start, this.state.end); + node.value = node.raw.slice(1, -1); // remove quotes + this.next(); + return this.finishNode(node, "Directive"); +}; + // Parse a single statement. // // If expecting a statement and finding a slash operator, parse a @@ -415,22 +415,41 @@ pp.parseExpressionStatement = function (node, expr) { // function bodies). pp.parseBlock = function (allowStrict) { - let node = this.startNode(), first = true, oldStrict; - node.body = []; + let node = this.startNode(); this.expect(tt.braceL); - while (!this.eat(tt.braceR)) { - let stmt = this.parseStatement(true); - node.body.push(stmt); - if (first && allowStrict && this.isUseStrict(stmt)) { - oldStrict = this.state.strict; - this.setStrict(this.state.strict = true); - } - first = false; - } - if (oldStrict === false) this.setStrict(false); + this.parseBlockBody(node, allowStrict, tt.braceR); return this.finishNode(node, "BlockStatement"); }; +// TODO + +pp.parseBlockBody = function (node, allowStrict, end) { + node.body = []; + node.directives = []; + + let parsedNonDirective = false; + let oldStrict; + + while (!this.eat(end)) { + if (!parsedNonDirective && this.match(tt.string)) { + let stmt = this.parseDirective(); + node.directives.push(stmt); + + if (allowStrict && stmt.value === "use strict") { + oldStrict = this.state.strict; + this.setStrict(this.state.strict = true); + } + } else { + parsedNonDirective = true; + node.body.push(this.parseStatement(true)); + } + } + + if (oldStrict === false) { + this.setStrict(false); + } +}; + // Parse a regular `for` loop. The disambiguation code in // `parseStatement` will already have parsed the init statement or // expression. diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index 29cdc074c6..2b1dd9e1b2 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -6,12 +6,6 @@ const pp = Parser.prototype; // ## Parser utilities -// Test whether a statement node is the string literal `"use strict"`. - -pp.isUseStrict = function (stmt) { - return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && stmt.expression.raw.slice(1, -1) === "use strict"; -}; - // TODO pp.isRelational = function (op) { From 8a13465f801f9175909d877fbc1662441fa336ec Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:16:46 +0100 Subject: [PATCH 083/174] use hasFeature rather than directly looking up options --- packages/babylon/src/parser/expression.js | 24 +++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 96ce489e71..d38d50ea27 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -253,7 +253,7 @@ pp.parseSubscripts = function(base, startPos, startLoc, noCalls) { let node = this.startNodeAt(startPos, startLoc); node.callee = base; - node.arguments = this.parseCallExpressionArguments(tt.parenR, this.options.features["es7.trailingFunctionCommas"], possibleAsync); + node.arguments = this.parseCallExpressionArguments(tt.parenR, this.hasFeature("trailingFunctionCommas"), possibleAsync); base = this.finishNode(node, "CallExpression"); if (possibleAsync && this.shouldParseAsyncArrow()) { @@ -305,7 +305,7 @@ pp.shouldParseAsyncArrow = function () { }; pp.parseAsyncArrowFromCallExpression = function (node, call) { - if (!this.options.features["es7.asyncFunctions"]) this.unexpected(); + if (!this.hasFeature("asyncFunctions")) this.unexpected(); this.expect(tt.arrow); return this.parseArrowExpression(node, call.arguments, true); }; @@ -349,7 +349,7 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { node = this.startNode(); let id = this.parseIdentifier(true); - if (this.options.features["es7.asyncFunctions"]) { + if (this.hasFeature("asyncFunctions")) { if (id.name === "await") { if (this.inAsync) return this.parseAwait(node); } else if (id.name === "async" && this.match(tt._function) && !this.canInsertSemicolon()) { @@ -370,7 +370,7 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { return id; case tt._do: - if (this.options.features["es7.doExpressions"]) { + if (this.hasFeature("doExpressions")) { let node = this.startNode(); this.next(); var oldInFunction = this.state.inFunction; @@ -415,7 +415,7 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { node = this.startNode(); this.next(); // check whether this is array comprehension or regular array - if (this.options.features["es7.comprehensions"] && this.match(tt._for)) { + if (this.hasFeature("comprehensions") && this.match(tt._for)) { return this.parseComprehension(node, false); } node.elements = this.parseExprList(tt.bracketR, true, true, refShorthandDefaultPos); @@ -481,7 +481,7 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow let val; this.next(); - if (this.options.features["es7.comprehensions"] && this.match(tt._for)) { + if (this.hasFeature("comprehensions") && this.match(tt._for)) { return this.parseComprehension(this.startNodeAt(startPos, startLoc), true); } @@ -493,7 +493,7 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow first = false; } else { this.expect(tt.comma); - if (this.match(tt.parenR) && this.options.features["es7.trailingFunctionCommas"]) { + if (this.match(tt.parenR) && this.hasFeature("trailingFunctionCommas")) { optionalCommaStart = this.state.start; break; } @@ -571,7 +571,7 @@ pp.parseNew = function () { node.callee = this.parseNoCallExpr(); if (this.eat(tt.parenL)) { - node.arguments = this.parseExprList(tt.parenR, this.options.features["es7.trailingFunctionCommas"]); + node.arguments = this.parseExprList(tt.parenR, this.hasFeature("trailingFunctionCommas")); this.toReferencedList(node.arguments); } else { node.arguments = []; @@ -633,7 +633,7 @@ pp.parseObj = function (isPattern, refShorthandDefaultPos) { prop.decorators = decorators; decorators = []; } - if (this.options.features["es7.objectRestSpread"] && this.match(tt.ellipsis)) { + if (this.hasFeature("objectRestSpread") && this.match(tt.ellipsis)) { prop = this.parseSpread(); prop.type = "SpreadProperty"; node.properties.push(prop); @@ -648,7 +648,7 @@ pp.parseObj = function (isPattern, refShorthandDefaultPos) { if (!isPattern) { isGenerator = this.eat(tt.star); } - if (!isPattern && this.options.features["es7.asyncFunctions"] && this.isContextual("async")) { + if (!isPattern && this.hasFeature("asyncFunctions") && this.isContextual("async")) { if (isGenerator) this.unexpected(); var asyncId = this.parseIdentifier(); if (this.match(tt.colon) || this.match(tt.parenL) || this.match(tt.braceR)) { @@ -736,7 +736,7 @@ pp.initFunction = function (node, isAsync) { node.id = null; node.generator = false; node.expression = false; - if (this.options.features["es7.asyncFunctions"]) { + if (this.hasFeature("asyncFunctions")) { node.async = !!isAsync; } }; @@ -747,7 +747,7 @@ pp.parseMethod = function (isGenerator, isAsync) { let node = this.startNode(); this.initFunction(node, isAsync); this.expect(tt.parenL); - node.params = this.parseBindingList(tt.parenR, false, this.options.features["es7.trailingFunctionCommas"]); + node.params = this.parseBindingList(tt.parenR, false, this.hasFeature("trailingFunctionCommas")); node.generator = isGenerator; this.parseFunctionBody(node); return this.finishNode(node, "FunctionExpression"); From eae82799e6ee61d68c3ca98fc9f9680c1424c66f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:16:57 +0100 Subject: [PATCH 084/174] loop over all directives to check for use strict --- packages/babylon/src/parser/expression.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index d38d50ea27..391981ae28 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -793,9 +793,14 @@ pp.parseFunctionBody = function (node, allowExpression) { if (allowExpression) checkLVal = true; // normal function - if (!isExpression && node.body.body.length && this.isUseStrict(node.body.body[0])) { - checkLVal = true; - checkLValStrict = true; + if (!isExpression && node.body.directives.length) { + for (var directive of (node.body.directives: Array)) { + if (directive.value === "use strict") { + checkLVal = true; + checkLValStrict = true; + break; + } + } } if (checkLVal) { From bcab30e606f57c0efbe39cf5e4120dd6045519ef Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:17:45 +0100 Subject: [PATCH 085/174] add RestProperty node --- packages/babylon/src/parser/expression.js | 2 +- packages/babylon/src/parser/lval.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 391981ae28..e819ed1b71 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -635,7 +635,7 @@ pp.parseObj = function (isPattern, refShorthandDefaultPos) { } if (this.hasFeature("objectRestSpread") && this.match(tt.ellipsis)) { prop = this.parseSpread(); - prop.type = "SpreadProperty"; + prop.type = isPattern ? "RestProperty" : "SpreadProperty"; node.properties.push(prop); continue; } diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index 0d477fd10c..d3d4569611 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -202,7 +202,7 @@ pp.checkLVal = function (expr, isBinding, checkClashes) { this.checkLVal(expr.left, isBinding, checkClashes); break; - case "SpreadProperty": + case "RestProperty": case "RestElement": this.checkLVal(expr.argument, isBinding, checkClashes); break; From 76eb259ea854e03929cad89abfa3599014e551af Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:18:04 +0100 Subject: [PATCH 086/174] only allow identifiers as rest expressions --- packages/babylon/src/parser/lval.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index d3d4569611..07e4db70db 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -92,22 +92,17 @@ pp.parseSpread = function (refShorthandDefaultPos) { pp.parseRest = function () { let node = this.startNode(); this.next(); - if (this.match(tt.name) || this.match(tt.bracketL)) { - node.argument = this.parseBindingAtom(); - } else { - this.unexpected(); - } + node.argument = this.parseIdentifier(); return this.finishNode(node, "RestElement"); }; // Parses lvalue (assignable) atom. pp.parseBindingAtom = function () { - if (this.match(tt.name)) { - return this.parseIdentifier(true); - } - switch (this.state.type) { + case tt.name: + return this.parseIdentifier(true); + case tt.bracketL: let node = this.startNode(); this.next(); From c31d2afc7f2e0d5cde5077e957be27b8cf8dc3e2 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:18:15 +0100 Subject: [PATCH 087/174] remove weird acorn conditional formatting --- packages/babylon/src/parser/lval.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index 07e4db70db..cb8cae285a 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -120,8 +120,11 @@ pp.parseBindingAtom = function () { pp.parseBindingList = function (close, allowEmpty, allowTrailingComma) { var elts = [], first = true; while (!this.eat(close)) { - if (first) first = false; - else this.expect(tt.comma); + if (first) { + first = false; + } else { + this.expect(tt.comma); + } if (allowEmpty && this.match(tt.comma)) { elts.push(null); } else if (allowTrailingComma && this.eat(close)) { From 25aa6da989ce8188601b78c021f6fa4f6ba38a62 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:18:23 +0100 Subject: [PATCH 088/174] add hasFeature util method --- packages/babylon/src/parser/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/babylon/src/parser/index.js b/packages/babylon/src/parser/index.js index 80db85a465..d0752f5af1 100644 --- a/packages/babylon/src/parser/index.js +++ b/packages/babylon/src/parser/index.js @@ -25,6 +25,10 @@ export default class Parser extends Tokenizer { } } + hasFeature(name) { + return !!this.options.features[name]; + } + extend(name, f) { this[name] = f(this[name]); } From fbda5879644d43857fa7eec154b26ed8b0defed0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:19:26 +0100 Subject: [PATCH 089/174] use extra.parenthesized rather than parenthesizedExpression --- packages/babylon/src/parser/expression.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index e819ed1b71..786b094a25 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -109,7 +109,7 @@ pp.parseMaybeAssign = function (noIn, refShorthandDefaultPos, afterLeftParse) { node.left = this.match(tt.eq) ? this.toAssignable(left) : left; refShorthandDefaultPos.start = 0; // reset because shorthand default was used correctly this.checkLVal(left); - if (left.parenthesizedExpression) { + if (left.extra && left.extra.parenthesized) { let errorMsg; if (left.type === "ObjectPattern") { errorMsg = "`({a}) = 0` use `({a} = 0)`"; @@ -540,8 +540,7 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow } else { val = exprList[0]; } - - val.parenthesizedExpression = true; + this.addExtra(val, "parenthesized", true); return val; }; From 4996e6bc7f222ab01cd8618d8b90dec6519c5a5d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:19:35 +0100 Subject: [PATCH 090/174] add parser util addExtra method --- packages/babylon/src/parser/util.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index 2b1dd9e1b2..2719607626 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -8,6 +8,15 @@ const pp = Parser.prototype; // TODO +pp.addExtra = function (node, key, val) { + if (!node) return; + + var extra = node.extra = node.extra || {}; + extra[key] = val; +}; + +// TODO + pp.isRelational = function (op) { return this.match(tt.relational) && this.state.value === op; }; From c751771889bf3873c02a38bd0a193da6c5324e64 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:19:49 +0100 Subject: [PATCH 091/174] add dead simple babylon bin --- packages/babylon/bin/babylon.js | 15 +++++++++++++++ packages/babylon/package.json | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 packages/babylon/bin/babylon.js diff --git a/packages/babylon/bin/babylon.js b/packages/babylon/bin/babylon.js new file mode 100755 index 0000000000..ddda000631 --- /dev/null +++ b/packages/babylon/bin/babylon.js @@ -0,0 +1,15 @@ +#!/usr/bin/env node + +var babylon = require("../lib/index"); +var fs = require("fs"); + +var filename = process.argv[2]; +if (!filename) { + console.error("no filename specified"); + process.exit(0); +} + +var file = fs.readFileSync(filename, "utf8"); +var ast = babylon.parse(file); + +console.log(JSON.stringify(ast, null, " ")); diff --git a/packages/babylon/package.json b/packages/babylon/package.json index 32b7162915..497f045c00 100644 --- a/packages/babylon/package.json +++ b/packages/babylon/package.json @@ -7,4 +7,6 @@ "license": "MIT", "repository": "babel/babel", "main": "lib/index.js" -} \ No newline at end of file +} "bin": { + "babylon": "./bin/babylon.js" + } From 800b039d022891ebaf90b4e03ea50625587abfbc Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:20:03 +0100 Subject: [PATCH 092/174] add babylon description --- packages/babylon/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babylon/package.json b/packages/babylon/package.json index 497f045c00..1d483b27e1 100644 --- a/packages/babylon/package.json +++ b/packages/babylon/package.json @@ -1,7 +1,7 @@ { "name": "babylon", "version": "5.8.23", - "description": "", + "description": "A JavaScript parser", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", From 78fafdf18b8d1a207cf515fbec74bdf20f81c32f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:20:21 +0100 Subject: [PATCH 093/174] add babel-runtime to babylon dependencies --- packages/babylon/package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/babylon/package.json b/packages/babylon/package.json index 1d483b27e1..0a2151b37d 100644 --- a/packages/babylon/package.json +++ b/packages/babylon/package.json @@ -6,7 +6,11 @@ "homepage": "https://babeljs.io/", "license": "MIT", "repository": "babel/babel", - "main": "lib/index.js" -} "bin": { + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20" + }, + "bin": { "babylon": "./bin/babylon.js" } +} From a4d6ea0d07d18a053f5c5c410e85e67d34e457cd Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:20:34 +0100 Subject: [PATCH 094/174] put monorepo intro on same line --- packages/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/README.md b/packages/README.md index f908280dd2..9b51ee095f 100644 --- a/packages/README.md +++ b/packages/README.md @@ -1,8 +1,6 @@ # Woah, what's going on here? -A monorepo, muhahahahahaha. See the [monorepo design doc](/doc/design/monorepo.md) for reasoning. - -Here's an explanation of all the packages you see: +A monorepo, muhahahahahaha. See the [monorepo design doc](/doc/design/monorepo.md) for reasoning. Here's an explanation for each package listed: ## `babylon` From 11b1e39973aae6a6e7ce4fd7e7caff146421e552 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:20:45 +0100 Subject: [PATCH 095/174] add no-constant-condition lint rule --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 4e76e52223..981a00220b 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,8 @@ "no-labels": 0, "no-process-exit": 0, "camelcase": 0, - "no-console": 0 + "no-console": 0, + "no-constant-condition": 0 }, "env": { "node": true From 75609f21d79e65158b64a6ab702ac905a20887e7 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:20:54 +0100 Subject: [PATCH 096/174] add optional runtime transformer to base compiler options --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 981a00220b..3d49f6de63 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "stage": 0, "loose": ["all"], "blacklist": ["es6.tailCall"], - "optional": ["optimisation.flow.forOf", "bluebirdCoroutines"], + "optional": ["optimisation.flow.forOf", "bluebirdCoroutines", "runtime"], "env": { "test": { "auxiliaryCommentBefore": "istanbul ignore next" From c44fd54621458c26b2e5ecc2369f9fac0111b24f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:25:52 +0100 Subject: [PATCH 097/174] flesh out babylon readme --- packages/babylon/README.md | 64 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/packages/babylon/README.md b/packages/babylon/README.md index 25edcd9a74..12fee1e55f 100644 --- a/packages/babylon/README.md +++ b/packages/babylon/README.md @@ -6,10 +6,70 @@ Babylon is a JavaScript parser used in Babel.

+ - ES6 enabled by default. + - Comment attachment. + - Support for JSX and Flow. + - Support for experimental language proposals. + ## Credits Heavily based on [acorn](https://github.com/marijnh/acorn) and [acorn-jsx](https://github.com/RReverser/acorn-jsx), thanks to the awesome work of [@RReverser](https://github.com/RReverser) and [@marijnh](https://github.com/marijnh). -Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration, -interspacial parsing, comment attachment and more. +Significant diversions are expected to occur in the future such as streaming, EBNF definitions, sweet.js integration, interspacial parsing and more. + +## API + +### `babylon.parse(code, [options])` + +## Options + +- **allowImportExportEverywhere**: By default, `import` and `export` + declarations can only appear at a program's top level. Setting this + option to `true` allows them anywhere where a statement is allowed. + +- **allowReturnOutsideFunction**: By default, a return statement at + the top level raises an error. Set this to `true` to accept such + code. + +- **sourceType**: Indicate the mode the code should be parsed in. Can be + either `"script"` or `"module"`. + +- **features**: Object containing names of all the proposed syntax you want + to support. + +- **plugins**: Object containg the plugins that you want to enable. + +### Example + +```javascript +require("babylon").parse("code", { + // parse in strict mode and allow module declarations + sourceType: "module", + + features: { + // enable experimental async functions + asyncFunctions: true + } + + plugins: { + // enable jsx and flow syntax + jsx: true, + flow: true + } +}); +``` + +### Features + + - `asyncFunctions` + - `doExpressions` + - `comprehensions` + - `trailingFunctionCommas` + - `objectRestSpread` + - `decorators` + +### Plugins + + - `jsx` + - `flow` From cfec910a178d4b93933517f781ad268952920baf Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:26:17 +0100 Subject: [PATCH 098/174] add validation to node builders --- packages/babel-types/src/definitions/core.js | 432 +++++++++++++++--- .../babel-types/src/definitions/es2015.js | 243 ++++++++-- .../src/definitions/experimental.js | 79 +++- packages/babel-types/src/definitions/flow.js | 175 +++++-- packages/babel-types/src/definitions/index.js | 54 ++- packages/babel-types/src/definitions/jsx.js | 74 ++- packages/babel-types/src/definitions/misc.js | 9 +- packages/babel-types/src/index.js | 23 +- 8 files changed, 920 insertions(+), 169 deletions(-) diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index ce35a2941a..be0ba1387c 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -1,8 +1,11 @@ -import define, { assertValueType, assertNodeType } from "./index"; +import * as t from "../index"; +import define, { assertValueType, assertNodeType, assertEach, chain, assertOneOf } from "./index"; define("ArrayExpression", { fields: { - elements: { validate: assertValueType("array") } + elements: { + validate: assertValueType("array") + } }, visitor: ["elements"], aliases: ["Expression"] @@ -11,9 +14,15 @@ define("ArrayExpression", { define("AssignmentExpression", { fields: { elements: { - operator: { validate: assertValueType("string") }, - left: { validate: assertNodeType("LVal") }, - right: { validate: assertNodeType("Expression") } + operator: { + validate: assertValueType("string") + }, + left: { + validate: assertNodeType("LVal") + }, + right: { + validate: assertNodeType("Expression") + } } }, builder: ["operator", "left", "right"], @@ -24,53 +33,104 @@ define("AssignmentExpression", { define("BinaryExpression", { builder: ["operator", "left", "right"], fields: { - operator: { validate: assertValueType("string") }, - left: { validate: assertNodeType("Expression") }, - right: { validate: assertNodeType("Expression") } + operator: { + validate: assertValueType("string") + }, + left: { + validate: assertNodeType("Expression") + }, + right: { + validate: assertNodeType("Expression") + } }, visitor: ["left", "right"], aliases: ["Binary", "Expression"] }); -define("BlockStatement", { - visitor: ["body"], +define("Directive", { fields: { - body: { validate: assertValueType("array") } + value: { + validate: assertValueType("string") + } + } +}); + +define("BlockStatement", { + builder: ["body", "directives"], + visitor: ["directives", "body"], + fields: { + directives: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Directive"))), + default: [] + }, + body: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Statement"))) + } }, aliases: ["Scopable", "BlockParent", "Block", "Statement"] }); define("BreakStatement", { visitor: ["label"], + fields: { + label: { + validate: assertNodeType("Identifier"), + optional: true + } + }, aliases: ["Statement", "Terminatorless", "CompletionStatement"] }); define("CallExpression", { visitor: ["callee", "arguments"], fields: { - callee: { validate: assertNodeType("Expression") }, - arguments: { validate: assertValueType("array") } + callee: { + validate: assertNodeType("Expression") + }, + arguments: { + validate: assertValueType("array") + } }, aliases: ["Expression"] }); define("CatchClause", { visitor: ["param", "body"], + fields: { + param: { + validate: assertNodeType("Identifier") + }, + body: { + validate: assertNodeType("BlockStatement") + } + }, aliases: ["Scopable"] }); define("ConditionalExpression", { visitor: ["test", "consequent", "alternate"], fields: { - test: { validate: assertNodeType("Expression") }, - consequent: { validate: assertNodeType("Expression") }, - alternate: { validate: assertNodeType("Expression") } + test: { + validate: assertNodeType("Expression") + }, + consequent: { + validate: assertNodeType("Expression") + }, + alternate: { + validate: assertNodeType("Expression") + } }, aliases: ["Expression"] }); define("ContinueStatement", { visitor: ["label"], + fields: { + label: { + validate: assertNodeType("Identifier"), + optional: true + } + }, aliases: ["Statement", "Terminatorless", "CompletionStatement"] }); @@ -79,7 +139,15 @@ define("DebuggerStatement", { }); define("DoWhileStatement", { - visitor: ["body", "test"], + visitor: ["test", "body"], + fields: { + test: { + validate: assertNodeType("Expression") + }, + body: { + validate: assertNodeType("BlockStatement") + } + }, aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] }); @@ -90,7 +158,9 @@ define("EmptyStatement", { define("ExpressionStatement", { visitor: ["expression"], fields: { - expression: { validate: assertNodeType("Expression") } + expression: { + validate: assertNodeType("Expression") + } }, aliases: ["Statement"] }); @@ -99,27 +169,60 @@ define("File", { builder: ["program", "comments", "tokens"], visitor: ["program"], fields: { - program: { validate: assertNodeType("Program") } + program: { + validate: assertNodeType("Program") + } } }); define("ForInStatement", { visitor: ["left", "right", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"] + aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], + fields: { + left: { + validate: assertNodeType("VariableDeclaration", "LVal") + }, + right: { + validate: assertNodeType("Expression") + }, + body: { + validate: assertNodeType("Statement") + } + } }); define("ForStatement", { visitor: ["init", "test", "update", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"] + aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"], + fields: { + init: { + validate: assertNodeType("VariableDeclaration", "Expression") + }, + test: { + validate: assertNodeType("Expression") + }, + update: { + validate: assertNodeType("Expression") + }, + body: { + validate: assertNodeType("Statement") + } + } }); define("FunctionDeclaration", { builder: ["id", "params", "body", "generator", "async"], visitor: ["id", "params", "body", "returnType", "typeParameters"], fields: { - id: { validate: assertNodeType("Identifier") }, - params: { validate: assertValueType("array") }, - body: { validate: assertNodeType("BlockStatement") }, + id: { + validate: assertNodeType("Identifier") + }, + params: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("LVal"))) + }, + body: { + validate: assertNodeType("BlockStatement") + }, generator: { default: false, validate: assertValueType("boolean") @@ -129,14 +232,22 @@ define("FunctionDeclaration", { validate: assertValueType("boolean") } }, - aliases: ["Scopable", "Function", "Func", "BlockParent", "FunctionParent", "Statement", "Pure", "Declaration"] + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pure", "Declaration"] }); define("FunctionExpression", { builder: ["id", "params", "body", "generator", "async"], fields: { - params: { validate: assertValueType("array") }, - body: { validate: assertNodeType("BlockStatement") }, + id: { + validate: assertNodeType("Identifier"), + optional: true + }, + params: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("LVal"))) + }, + body: { + validate: assertNodeType("BlockStatement") + }, generator: { default: false, validate: assertValueType("boolean") @@ -147,29 +258,61 @@ define("FunctionExpression", { } }, visitor: ["id", "params", "body", "returnType", "typeParameters"], - aliases: ["Scopable", "Function", "Func", "BlockParent", "FunctionParent", "Expression", "Pure"] + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pure"] }); define("Identifier", { builder: ["name"], visitor: ["typeAnnotation"], - aliases: ["Expression", "LVal"] + aliases: ["Expression", "LVal"], + fields: { + name: { + validate(node, key, val) { + if (!t.isValidIdentifier(val)) { + // todo + } + } + } + } }); define("IfStatement", { visitor: ["test", "consequent", "alternate"], - aliases: ["Statement"] + aliases: ["Statement"], + fields: { + test: { + validate: assertNodeType("Expression") + }, + consequent: { + optional: true, + validate: assertNodeType("Statement") + }, + alternate: { + optional: true, + validate: assertNodeType("Statement") + } + } }); define("LabeledStatement", { visitor: ["label", "body"], - aliases: ["Statement"] + aliases: ["Statement"], + fields: { + label: { + validate: assertNodeType("Identifier") + }, + body: { + validate: assertNodeType("Statement") + } + } }); define("StringLiteral", { builder: ["value"], fields: { - value: { validate: assertValueType("string") } + value: { + validate: assertValueType("string") + } }, aliases: ["Expression", "Pure", "Literal", "Immutable"] }); @@ -177,7 +320,9 @@ define("StringLiteral", { define("NumberLiteral", { builder: ["value"], fields: { - value: { validate: assertValueType("number") } + value: { + validate: assertValueType("number") + } }, aliases: ["Expression", "Pure", "Literal", "Immutable"] }); @@ -189,73 +334,161 @@ define("NullLiteral", { define("BooleanLiteral", { builder: ["value"], fields: { - value: { validate: assertValueType("boolean") } + value: { + validate: assertValueType("boolean") + } }, aliases: ["Expression", "Pure", "Literal", "Immutable"] }); define("RegexLiteral", { builder: ["pattern", "flags"], + aliases: ["Expression", "Literal"], fields: { - pattern: { validate: assertValueType("string") }, + pattern: { + validate: assertValueType("string") + }, flags: { validate: assertValueType("string"), default: "" } - }, - aliases: ["Expression", "Literal"] + } }); define("LogicalExpression", { builder: ["operator", "left", "right"], visitor: ["left", "right"], - aliases: ["Binary", "Expression"] + aliases: ["Binary", "Expression"], + fields: { + operator: { + // todo + }, + left: { + validate: assertNodeType("Expression") + }, + right: { + validate: assertNodeType("Expression") + } + } }); define("MemberExpression", { builder: ["object", "property", "computed"], - fields: { - computed: { default: false } - }, visitor: ["object", "property"], - aliases: ["Expression", "LVal"] + aliases: ["Expression", "LVal"], + fields: { + object: { + validate: assertNodeType("Expression") + }, + property: { + validate(node, key, val) { + var expectedType = node.computed ? "Expression" : "Identifier"; + assertNodeType(expectedType)(node, key, val); + } + }, + computed: { + default: false + } + } }); define("NewExpression", { visitor: ["callee", "arguments"], - aliases: ["Expression"] + aliases: ["Expression"], + fields: { + callee: { + validate: assertNodeType("Expression") + }, + arguments: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Expression"))) + } + } }); define("ObjectExpression", { visitor: ["properties"], - aliases: ["Expression"] + aliases: ["Expression"], + fields: { + properties: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Property", "SpreadProperty"))) + } + } }); define("Program", { - visitor: ["body"], + visitor: ["directives", "body"], + builder: ["body", "directives"], fields: { - body: { validate: assertValueType("array") } + directives: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Directive"))), + default: [] + }, + body: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Statement"))) + } }, aliases: ["Scopable", "BlockParent", "Block", "FunctionParent"] }); define("Property", { - builder: ["kind", "key", "value", "computed"], + builder: ["kind", "key", "value", "computed", "method", "shorthand"], fields: { - kind: { default: "init" }, - computed: { default: false } + kind: { + validate: chain(assertValueType("string"), assertOneOf("init", "get", "set")), + default: "init" + }, + computed: { + validate: assertValueType("boolean"), + default: false + }, + key: { + validate(node, key, val) { + var expectedTypes = node.computed ? "Expression" : ["Identifier", "Literal"]; + assertNodeType(...expectedTypes)(node, key, val); + } + }, + value: { + validate(node, key, val) { + var expectedType = "Expression"; + if (node.kind === "get" || node.kind === "set" || node.method) { + expectedType = "FunctionExpression"; + } + assertNodeType(expectedType)(node, key, val); + } + }, + method: { + validate: assertValueType("boolean"), + default: false + }, + shorthand: { + validate: assertValueType("boolean"), + default: false + }, + decorators: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Decorator"))) + } }, visitor: ["key", "value", "decorators"], aliases: ["UserWhitespacable"] }); define("RestElement", { - visitor: ["argument", "typeAnnotation"] + visitor: ["argument", "typeAnnotation"], + fields: { + argument: { + validate: assertNodeType("LVal") + } + } }); define("ReturnStatement", { visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"] + aliases: ["Statement", "Terminatorless", "CompletionStatement"], + fields: { + argument: { + validate: assertNodeType("Expression") + } + } }); define("SequenceExpression", { @@ -267,12 +500,18 @@ define("SequenceExpression", { }); define("SwitchCase", { - visitor: ["test", "consequent"] + visitor: ["test", "consequent"], + fields: { + // todo + } }); define("SwitchStatement", { visitor: ["discriminant", "cases"], - aliases: ["Statement", "BlockParent", "Scopable"] + aliases: ["Statement", "BlockParent", "Scopable"], + fields: { + // todo + } }); define("ThisExpression", { @@ -281,19 +520,45 @@ define("ThisExpression", { define("ThrowStatement", { visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"] + aliases: ["Statement", "Terminatorless", "CompletionStatement"], + fields: { + argument: { + validate: assertNodeType("Expression") + } + } }); +// todo: at least handler or finalizer should be set to be valid define("TryStatement", { - builder: ["block", "handler", "finalizer"], - visitor: ["block", "handlers", "handler", "guardedHandlers", "finalizer"], - aliases: ["Statement"] + visitor: ["block", "handler", "finalizer"], + aliases: ["Statement"], + fields: { + body: { + validate: assertNodeType("BlockStatement") + }, + handler: { + optional: true, + handler: assertNodeType("BlockStatement") + }, + finalizer: { + optional: true, + validate: assertNodeType("BlockStatement") + } + } }); define("UnaryExpression", { builder: ["operator", "argument", "prefix"], fields: { - prefix: { default: false } + prefix: { + default: false + }, + argument: { + validate: assertNodeType("Expression") + }, + operator: { + // todo + } }, visitor: ["argument"], aliases: ["UnaryLike", "Expression"] @@ -302,7 +567,15 @@ define("UnaryExpression", { define("UpdateExpression", { builder: ["operator", "argument", "prefix"], fields: { - prefix: { default: false } + prefix: { + default: false + }, + argument: { + validate: assertNodeType("Expression") + }, + operator: { + // todo + } }, visitor: ["argument"], aliases: ["Expression"] @@ -311,19 +584,52 @@ define("UpdateExpression", { define("VariableDeclaration", { builder: ["kind", "declarations"], visitor: ["declarations"], - aliases: ["Statement", "Declaration"] + aliases: ["Statement", "Declaration"], + fields: { + kind: { + validate: chain(assertValueType("string"), assertOneOf("var", "let", "const")) + }, + declarations: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("VariableDeclarator"))) + } + } }); define("VariableDeclarator", { - visitor: ["id", "init"] + visitor: ["id", "init"], + fields: { + id: { + validate: assertNodeType("LVal") + }, + init: { + optional: true, + validate: assertNodeType("Expression") + } + } }); define("WhileStatement", { visitor: ["test", "body"], - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] + aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"], + fields: { + test: { + validate: assertNodeType("Expression") + }, + body: { + validate: assertNodeType("BlockStatement", "Statement") + } + } }); define("WithStatement", { visitor: ["object", "body"], - aliases: ["Statement"] + aliases: ["Statement"], + fields: { + object: { + object: assertNodeType("Expression") + }, + body: { + validate: assertNodeType("BlockStatement") + } + } }); diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js index 7f1d6d238e..09425ecebd 100644 --- a/packages/babel-types/src/definitions/es2015.js +++ b/packages/babel-types/src/definitions/es2015.js @@ -1,113 +1,248 @@ -import define from "./index"; +import define, { assertNodeType, assertValueType, chain, assertEach, assertOneOf } from "./index"; define("AssignmentPattern", { visitor: ["left", "right"], - aliases: ["Pattern", "LVal"] + aliases: ["Pattern", "LVal"], + fields: { + left: { + validate: assertNodeType("Identifier") + }, + right: { + validate: assertNodeType("Expression") + } + } }); define("ArrayPattern", { visitor: ["elements", "typeAnnotation"], - aliases: ["Pattern", "LVal"] + aliases: ["Pattern", "LVal"], + fields: { + elements: { + validate: chain(assertValueType("array"), assertEach(assertValueType("Expression"))) + } + } }); define("ArrowFunctionExpression", { builder: ["params", "body", "async"], visitor: ["params", "body", "returnType"], - aliases: ["Scopable", "Function", "Func", "BlockParent", "FunctionParent", "Expression", "Pure"] + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pure"], + fields: { + params: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("LVal"))) + }, + body: { + validate: assertNodeType("BlockStatement", "Expression") + }, + async: { + validate: assertValueType("boolean"), + default: false + } + } }); define("ClassBody", { - visitor: ["body"] + visitor: ["body"], + fields: { + body: { + validate: chain(assertValueType("array"), assertEach(assertValueType("MethodDefinition", "ClassProperty"))) + } + } }); define("ClassDeclaration", { + builder: ["id", "superClass", "body", "decorators"], visitor: ["id", "body", "superClass", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Statement", "Declaration"] + aliases: ["Scopable", "Class", "Statement", "Declaration"], + fields: { + id: { + validate: assertNodeType("Identifier") + }, + body: { + validate: assertNodeType("ClassBody") + }, + superClass: { + optional: true, + validate: assertNodeType("Expression") + }, + decorators: { + validate: chain(assertValueType("array"), assertEach(assertValueType("Decorator"))) + } + } }); define("ClassExpression", { + builder: ["id", "superClass", "body", "decorators"], visitor: ["id", "body", "superClass", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Expression"] + aliases: ["Scopable", "Class", "Expression"], + fields: { + id: { + optional: true, + validate: assertNodeType("Identifier") + }, + body: { + validate: assertNodeType("ClassBody") + }, + superClass: { + optional: true, + validate: assertNodeType("Expression") + }, + decorators: { + validate: chain(assertValueType("array"), assertEach(assertValueType("Decorator"))) + } + } }); define("ExportAllDeclaration", { visitor: ["source", "exported"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"] + aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], + fields: { + // todo + } }); define("ExportDefaultDeclaration", { visitor: ["declaration"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"] + aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], + fields: { + // todo + } }); define("ExportNamedDeclaration", { visitor: ["declaration", "specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"] -}); - -define("ExportDefaultSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"] -}); - -define("ExportNamespaceSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"] + aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], + fields: { + // todo + } }); define("ExportSpecifier", { visitor: ["local", "exported"], - aliases: ["ModuleSpecifier"] + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier") + }, + imported: { + validate: assertNodeType("Identifier") + } + } }); define("ForOfStatement", { visitor: ["left", "right", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"] + aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], + fields: { + left: { + validate: assertNodeType("VariableDeclaration", "LVal") + }, + right: { + validate: assertNodeType("Expression") + }, + body: { + validate: assertNodeType("Statement") + } + } }); define("ImportDeclaration", { visitor: ["specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration"] + aliases: ["Statement", "Declaration", "ModuleDeclaration"], + fields: { + specifiers: { + // todo + }, + source: { + validate: assertNodeType("StringLiteral") + } + } }); define("ImportDefaultSpecifier", { visitor: ["local"], - aliases: ["ModuleSpecifier"] + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier") + } + } }); define("ImportNamespaceSpecifier", { visitor: ["local"], - aliases: ["ModuleSpecifier"] + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier") + } + } }); define("ImportSpecifier", { visitor: ["local", "imported"], - aliases: ["ModuleSpecifier"] + aliases: ["ModuleSpecifier"], + fields: { + local: { + validate: assertNodeType("Identifier") + }, + imported: { + validate: assertNodeType("Identifier") + } + } }); define("MetaProperty", { visitor: ["meta", "property"], - aliases: ["Expression"] + aliases: ["Expression"], + fields: { + // todo: limit to new.target + meta: { + validate: assertValueType("string") + }, + property: { + validate: assertValueType("string") + } + } }); define("MethodDefinition", { builder: ["key", "value", "kind", "computed", "static"], + visitor: ["key", "value", "decorators"], fields: { - kind: { default: "method" }, - computed: { default: false }, - static: { default: false } - }, - visitor: ["key", "value", "decorators"] + kind: { + validate: chain(assertValueType("string"), assertOneOf("get", "set", "method", "constructor")), + default: "method" + }, + computed: { + default: false, + validate: assertValueType("boolean") + }, + static: { + default: false, + validate: assertValueType("boolean") + } + } }); define("ObjectPattern", { visitor: ["properties", "typeAnnotation"], - aliases: ["Pattern", "LVal"] + aliases: ["Pattern", "LVal"], + fields: { + properties: { + validate: chain(assertValueType("array"), assertEach(assertValueType("RestProperty", "Property"))) + } + } }); define("SpreadElement", { visitor: ["argument"], - aliases: ["UnaryLike"] + aliases: ["UnaryLike"], + fields: { + argument: { + validate: assertNodeType("Expression") + } + } }); define("Super", { @@ -116,18 +251,50 @@ define("Super", { define("TaggedTemplateExpression", { visitor: ["tag", "quasi"], - aliases: ["Expression"] + aliases: ["Expression"], + fields: { + tag: { + validate: assertNodeType("Expression") + }, + quasi: { + validate: assertNodeType("TemplateLiteral") + } + } }); -define("TemplateElement"); +define("TemplateElement", { + builder: ["value", "tail"], + fields: { + value: { + // todo: flatten `raw` into main node + }, + tail: { + validate: assertValueType("boolean"), + default: false + } + } +}); define("TemplateLiteral", { visitor: ["quasis", "expressions"], - aliases: ["Expression", "Literal"] + aliases: ["Expression", "Literal"], + fields: { + // todo + } }); define("YieldExpression", { builder: ["argument", "delegate"], visitor: ["argument"], - aliases: ["Expression", "Terminatorless"] + aliases: ["Expression", "Terminatorless"], + fields: { + delegate: { + validate: assertValueType("boolean"), + default: false + }, + argument: { + optional: true, + validate: assertNodeType("Expression"), + } + } }); diff --git a/packages/babel-types/src/definitions/experimental.js b/packages/babel-types/src/definitions/experimental.js index 6af58866b9..1e0d171782 100644 --- a/packages/babel-types/src/definitions/experimental.js +++ b/packages/babel-types/src/definitions/experimental.js @@ -1,34 +1,97 @@ -import define from "./index"; +import define, { assertNodeType, assertValueType } from "./index"; define("AwaitExpression", { builder: ["argument", "all"], visitor: ["argument"], - aliases: ["Expression", "Terminatorless"] + aliases: ["Expression", "Terminatorless"], + fields: { + all: { + validate: assertValueType("boolean"), + default: false + }, + argument: { + validate: assertNodeType("Expression"), + } + } }); define("BindExpression", { - visitor: ["object", "callee"] + visitor: ["object", "callee"], + fields: { + // todo + } }); define("ComprehensionBlock", { - visitor: ["left", "right"] + visitor: ["left", "right"], + fields: { + // todo + } }); define("ComprehensionExpression", { visitor: ["filter", "blocks", "body"], - aliases: ["Expression", "Scopable"] + aliases: ["Expression", "Scopable"], + fields: { + // todo + } }); define("Decorator", { - visitor: ["expression"] + visitor: ["expression"], + fields: { + expression: { + validate: assertNodeType("Expression") + } + } }); define("DoExpression", { visitor: ["body"], - aliases: ["Expression"] + aliases: ["Expression"], + fields: { + body: { + validate: assertNodeType("BlockStatement") + } + } +}); + +define("ExportDefaultSpecifier", { + visitor: ["exported"], + aliases: ["ModuleSpecifier"], + fields: { + exported: { + validate: assertNodeType("Identifier") + } + } +}); + +define("ExportNamespaceSpecifier", { + visitor: ["exported"], + aliases: ["ModuleSpecifier"], + fields: { + exported: { + validate: assertNodeType("Identifier") + } + } +}); + +define("RestProperty", { + visitor: ["argument"], + aliases: ["UnaryLike"], + fields: { + argument: { + validate: assertNodeType("LVal") + } + } }); define("SpreadProperty", { visitor: ["argument"], - aliases: ["UnaryLike"] + aliases: ["UnaryLike"], + fields: { + argument: { + validate: assertNodeType("Expression") + } + } }); diff --git a/packages/babel-types/src/definitions/flow.js b/packages/babel-types/src/definitions/flow.js index 2cfcc3e3e1..f5fe07c9d6 100644 --- a/packages/babel-types/src/definitions/flow.js +++ b/packages/babel-types/src/definitions/flow.js @@ -1,80 +1,128 @@ import define from "./index"; define("AnyTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"] + aliases: ["Flow", "FlowBaseAnnotation"], + fields: { + // todo + } }); define("ArrayTypeAnnotation", { visitor: ["elementType"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("BooleanTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"] + aliases: ["Flow", "FlowBaseAnnotation"], + fields: { + // todo + } }); define("BooleanLiteralTypeAnnotation", { - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("ClassImplements", { visitor: ["id", "typeParameters"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("ClassProperty", { visitor: ["key", "value", "typeAnnotation", "decorators"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("DeclareClass", { visitor: ["id", "typeParameters", "extends", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"] + aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], + fields: { + // todo + } }); define("DeclareFunction", { visitor: ["id"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"] + aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], + fields: { + // todo + } }); define("DeclareModule", { visitor: ["id", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"] + aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], + fields: { + // todo + } }); define("DeclareVariable", { visitor: ["id"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"] + aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], + fields: { + // todo + } }); define("FunctionTypeAnnotation", { visitor: ["typeParameters", "params", "rest", "returnType"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("FunctionTypeParam", { visitor: ["name", "typeAnnotation"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("GenericTypeAnnotation", { visitor: ["id", "typeParameters"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("InterfaceExtends", { visitor: ["id", "typeParameters"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("InterfaceDeclaration", { visitor: ["id", "typeParameters", "extends", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"] + aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], + fields: { + // todo + } }); define("IntersectionTypeAnnotation", { visitor: ["types"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("MixedTypeAnnotation", { @@ -83,90 +131,147 @@ define("MixedTypeAnnotation", { define("NullableTypeAnnotation", { visitor: ["typeAnnotation"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("NumberLiteralTypeAnnotation", { - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("NumberTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"] + aliases: ["Flow", "FlowBaseAnnotation"], + fields: { + // todo + } }); define("StringLiteralTypeAnnotation", { - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("StringTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"] + aliases: ["Flow", "FlowBaseAnnotation"], + fields: { + // todo + } }); define("TupleTypeAnnotation", { visitor: ["types"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("TypeofTypeAnnotation", { visitor: ["argument"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("TypeAlias", { visitor: ["id", "typeParameters", "right"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"] + aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], + fields: { + // todo + } }); define("TypeAnnotation", { visitor: ["typeAnnotation"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("TypeCastExpression", { visitor: ["expression", "typeAnnotation"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("TypeParameterDeclaration", { visitor: ["params"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("TypeParameterInstantiation", { visitor: ["params"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("ObjectTypeAnnotation", { visitor: ["properties", "indexers", "callProperties"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("ObjectTypeCallProperty", { visitor: ["value"], - aliases: ["Flow", "UserWhitespacable"] + aliases: ["Flow", "UserWhitespacable"], + fields: { + // todo + } }); define("ObjectTypeIndexer", { visitor: ["id", "key", "value"], - aliases: ["Flow", "UserWhitespacable"] + aliases: ["Flow", "UserWhitespacable"], + fields: { + // todo + } }); define("ObjectTypeProperty", { visitor: ["key", "value"], - aliases: ["Flow", "UserWhitespacable"] + aliases: ["Flow", "UserWhitespacable"], + fields: { + // todo + } }); define("QualifiedTypeIdentifier", { visitor: ["id", "qualification"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("UnionTypeAnnotation", { visitor: ["types"], - aliases: ["Flow"] + aliases: ["Flow"], + fields: { + // todo + } }); define("VoidTypeAnnotation", { - aliases: ["Flow", "FlowBaseAnnotation"] + aliases: ["Flow", "FlowBaseAnnotation"], + fields: { + // todo + } }); diff --git a/packages/babel-types/src/definitions/index.js b/packages/babel-types/src/definitions/index.js index b384f7e1be..e9199969f8 100644 --- a/packages/babel-types/src/definitions/index.js +++ b/packages/babel-types/src/definitions/index.js @@ -5,38 +5,76 @@ export var ALIAS_KEYS = {}; export var NODE_FIELDS = {}; export var BUILDER_KEYS = {}; +function getType(val) { + if (Array.isArray(val)) { + return "array"; + } else if (val === null) { + return "null"; + } else if (val === undefined) { + return "undefined"; + } else { + return typeof val; + } +} + export function assertContains(vals) { return function (val, key) { if (vals.indexOf(val) < 0) { - throw new TypeError(`Property ${key} with the value of ${val} expected to be one of ${JSON.stringify(vals)}`); + throw new TypeError(`Property ${key} with the value of ${JSON.stringify(val)} expected to be one of ${JSON.stringify(vals)}`); + } + }; +} + +export function assertEach(callback) { + return function (node, key, val) { + if (!Array.isArray(val)) return; + + for (var i = 0; i < val.length; i++) { + callback(node, `${key}[${i}]`, val[i]); + } + }; +} + +export function assertOneOf(...vals) { + return function (node, key, val) { + if (vals.indexOf(val) < 0) { + throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(vals)} but got ${JSON.stringify(val)}`); } }; } export function assertNodeType(...types) { - return function (node, key) { + return function (node, key, val) { var valid = false; for (var type of types) { - if (t.is(type, node)) { + if (t.is(type, val)) { valid = true; break; } } if (!valid) { - throw new TypeError(`Property ${key} expected node to be of a type ${JSON.stringify(types)} but instead got ${node && node.type}`); + throw new TypeError(`Property ${key} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`); } }; } export function assertValueType(type) { - return function (val, key) { - var valid = typeof val === type; - if (type === "array" && Array.isArray(val)) valid = true; + return function (node, key, val) { + var valid = getType(val) === type; if (!valid) { - throw new TypeError(`Property ${key} expected type of ${type} but got ${typeof val}`); + console.log(type, key, val); + throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`); + } + }; +} + +export function chain(...fns) { + return function (...args) { + for (var fn of fns) { + fn(...args); } }; } diff --git a/packages/babel-types/src/definitions/jsx.js b/packages/babel-types/src/definitions/jsx.js index 8f2acabac0..2da69891c8 100644 --- a/packages/babel-types/src/definitions/jsx.js +++ b/packages/babel-types/src/definitions/jsx.js @@ -1,13 +1,27 @@ -import define, { assertValueType } from "./index"; +import define, { assertNodeType, assertValueType, chain, assertEach } from "./index"; define("JSXAttribute", { visitor: ["name", "value"], - aliases: ["JSX", "Immutable"] + aliases: ["JSX", "Immutable"], + fields: { + name: { + validate: assertNodeType("JSXIdentifier", "JSXMemberExpression") + }, + value: { + optional: true, + validate: assertNodeType("JSXElement", "StringLiteral", "JSXExpressionContainer") + } + } }); define("JSXClosingElement", { visitor: ["name"], - aliases: ["JSX", "Immutable"] + aliases: ["JSX", "Immutable"], + fields: { + name: { + validate: assertNodeType("JSXIdentifier", "JSXMemberExpression") + } + } }); define("JSXElement", { @@ -34,37 +48,79 @@ define("JSXEmptyExpression", { define("JSXExpressionContainer", { visitor: ["expression"], - aliases: ["JSX", "Immutable"] + aliases: ["JSX", "Immutable"], + fields: { + expression: { + validate: assertNodeType("Expression") + } + } }); define("JSXIdentifier", { + builder: ["name"], aliases: ["JSX", "Expression"] }); define("JSXMemberExpression", { visitor: ["object", "property"], - aliases: ["JSX", "Expression"] + aliases: ["JSX", "Expression"], + fields: { + object: { + validate: assertNodeType("JSXIdentifier") + }, + property: { + validate: assertNodeType("JSXIdentifier") + } + } }); define("JSXNamespacedName", { visitor: ["namespace", "name"], - aliases: ["JSX"] + aliases: ["JSX"], + fields: { + namespace: { + validate: assertNodeType("JSXIdentifier") + }, + name: { + validate: assertNodeType("JSXIdentifier") + } + } }); define("JSXOpeningElement", { + builder: ["name", "attributes", "selfClosing"], visitor: ["name", "attributes"], - aliases: ["JSX", "Immutable"] + aliases: ["JSX", "Immutable"], + fields: { + name: { + validate: assertNodeType("JSXIdentifier", "JSXMemberExpression") + }, + selfClosing: { + default: false, + validate: assertValueType("boolean") + }, + attributes: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("JSXAttribute", "JSXSpreadAttribute"))) + } + } }); define("JSXSpreadAttribute", { visitor: ["argument"], - aliases: ["JSX"] + aliases: ["JSX"], + fields: { + argument: { + validate: assertNodeType("Expression") + } + } }); define("JSXText", { aliases: ["JSX"], builder: ["value"], fields: { - value: { validate: assertValueType("string") } + value: { + validate: assertValueType("string") + } } }); diff --git a/packages/babel-types/src/definitions/misc.js b/packages/babel-types/src/definitions/misc.js index 28730499f1..744beacc2d 100644 --- a/packages/babel-types/src/definitions/misc.js +++ b/packages/babel-types/src/definitions/misc.js @@ -1,4 +1,4 @@ -import define from "./index"; +import define, { assertNodeType } from "./index"; define("Noop", { visitor: [] @@ -6,5 +6,10 @@ define("Noop", { define("ParenthesizedExpression", { visitor: ["expression"], - aliases: ["Expression"] + aliases: ["Expression"], + fields: { + expression: { + validate: assertNodeType("expression") + } + } }); diff --git a/packages/babel-types/src/index.js b/packages/babel-types/src/index.js index 8e9644134a..31d53df153 100644 --- a/packages/babel-types/src/index.js +++ b/packages/babel-types/src/index.js @@ -1,6 +1,7 @@ import toFastProperties from "to-fast-properties"; import compact from "lodash/array/compact"; import assign from "lodash/object/assign"; +import loClone from "lodash/lang/clone"; import each from "lodash/collection/each"; import uniq from "lodash/array/uniq"; @@ -129,21 +130,28 @@ export function isType(nodeType: string, targetType: string): boolean { each(t.BUILDER_KEYS, function (keys, type) { function builder() { + if (arguments.length > keys.length) { + // todo: error + } + var node = {}; node.type = type; var i = 0; - for (var key of (keys: Array)) { + for (let key of (keys: Array)) { var field = t.NODE_FIELDS[type][key]; var arg = arguments[i++]; - if (arg === undefined) arg = field.default; - if (field.validate) field.validate(arg, key); + if (arg === undefined) arg = loClone(field.default); node[key] = arg; } + for (let key in node) { + validate(node, key, node[key]); + } + return node; } @@ -155,14 +163,17 @@ each(t.BUILDER_KEYS, function (keys, type) { * Description */ -export function validate(key, parent, node) { - var fields = t.NODE_FIELDS[parent.type]; +export function validate(node, key, val) { + if (!node) return; + + var fields = t.NODE_FIELDS[node.type]; if (!fields) return; var field = fields[key]; if (!field || !field.validate) return; + if (field.optional && val == null) return; - field.validate(node, key); + field.validate(node, key, val); } /** From b91e8699e15b0d6e2d33fcbe93975cbf30590d1a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:26:30 +0100 Subject: [PATCH 099/174] whitespace! --- packages/babel-traverse/src/context.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/babel-traverse/src/context.js b/packages/babel-traverse/src/context.js index da19dfe646..6fa70d022f 100644 --- a/packages/babel-traverse/src/context.js +++ b/packages/babel-traverse/src/context.js @@ -1,5 +1,6 @@ import NodePath from "./path"; import * as t from "babel-types"; + export default class TraversalContext { constructor(scope, opts, state, parentPath) { this.parentPath = parentPath; @@ -9,6 +10,7 @@ export default class TraversalContext { } queue = null; + shouldVisit(node) { var opts = this.opts; if (opts.enter || opts.exit) return true; @@ -24,6 +26,7 @@ export default class TraversalContext { return false; } + create(node, obj, key, listKey) { var path = NodePath.get({ parentPath: this.parentPath, @@ -35,6 +38,7 @@ export default class TraversalContext { path.unshiftContext(this); return path; } + visitMultiple(container, parent, listKey) { // nothing to traverse! if (container.length === 0) return false; @@ -73,6 +77,7 @@ export default class TraversalContext { return stop; } + visitSingle(node, key) { if (this.shouldVisit(node[key])) { var path = this.create(node, node, key); @@ -80,6 +85,7 @@ export default class TraversalContext { path.shiftContext(); } } + visit(node, key) { var nodes = node[key]; if (!nodes) return; From 8eeda9f75f6e3237a275b8fdb1aa34e311645a93 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:26:57 +0100 Subject: [PATCH 100/174] add traverse.cheap and upgrade to new traverse API --- packages/babel-traverse/src/index.js | 39 +++++++++++++++------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/packages/babel-traverse/src/index.js b/packages/babel-traverse/src/index.js index 117c3a1355..6209d197a2 100644 --- a/packages/babel-traverse/src/index.js +++ b/packages/babel-traverse/src/index.js @@ -34,47 +34,50 @@ traverse.NodePath = require("./path"); traverse.Scope = require("./scope"); traverse.Hub = require("./hub"); -traverse.node = function (node: Object, opts: Object, scope: Object, state: Object, parentPath: Object, skipKeys?) { +traverse.cheap = function (node, enter) { var keys = t.VISITOR_KEYS[node.type]; if (!keys) return; + enter(node); + + for (var key of keys) { + traverse.cheap(node[key], enter); + } +}; + +traverse.node = function (node: Object, opts: Object, scope: Object, state: Object, parentPath: Object, skipKeys?) { + var keys: Array = t.VISITOR_KEYS[node.type]; + if (!keys) return; + var context = new TraversalContext(scope, opts, state, parentPath); - for (var key of (keys: Array)) { + for (var key of keys) { if (skipKeys && skipKeys[key]) continue; if (context.visit(node, key)) return; } }; -const CLEAR_KEYS = t.COMMENT_KEYS.concat([ +const CLEAR_KEYS: Array = t.COMMENT_KEYS.concat([ "_scopeInfo", "_paths", "tokens", "comments", "start", "end", "loc", "raw", "rawValue" ]); -traverse.clearNode = function (node: Object) { - for (var i = 0; i < CLEAR_KEYS.length; i++) { - let key = CLEAR_KEYS[i]; +traverse.clearNode = function (node) { + for (var key of CLEAR_KEYS) { if (node[key] != null) node[key] = undefined; } }; -var clearVisitor = { - noScope: true, - exit: traverse.clearNode -}; - -traverse.removeProperties = function (tree: Object): Object { - traverse(tree, clearVisitor); - traverse.clearNode(tree); - +traverse.removeProperties = function (tree) { + traverse.cheap(tree, traverse.clearNode); return tree; }; -function hasBlacklistedType(node: Object, parent: Object, scope: Object, state: Object) { - if (node.type === state.type) { +function hasBlacklistedType(path, state) { + if (path.node.type === state.type) { state.has = true; - this.skip(); + path.skip(); } } From 13773e3c02b8135d90a2a27c436b1fdfe9f3e775 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:27:19 +0100 Subject: [PATCH 101/174] change traversal visitor method signature from (node, parent, scope, state) to (path, state) --- packages/babel-traverse/src/path/context.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-traverse/src/path/context.js b/packages/babel-traverse/src/path/context.js index 17606a0def..df2b48bd66 100644 --- a/packages/babel-traverse/src/path/context.js +++ b/packages/babel-traverse/src/path/context.js @@ -20,7 +20,7 @@ export function call(key) { var previousType = this.type; // call the function with the params (node, parent, scope, state) - var replacement = fn.call(this, node, this.parent, this.scope, this.state); + var replacement = fn.call(this, this, this.state); if (replacement) { this.replaceWith(replacement, true); From 6898cf83d09f0e8fde8dbcc1b5a96301970d5638 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:27:37 +0100 Subject: [PATCH 102/174] don't allow visitor methods to return a new node to replace --- packages/babel-traverse/src/path/context.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-traverse/src/path/context.js b/packages/babel-traverse/src/path/context.js index df2b48bd66..1a01ccb748 100644 --- a/packages/babel-traverse/src/path/context.js +++ b/packages/babel-traverse/src/path/context.js @@ -23,7 +23,7 @@ export function call(key) { var replacement = fn.call(this, this, this.state); if (replacement) { - this.replaceWith(replacement, true); + throw new Error("Unexpected return value from visitor method"); } if (this.shouldStop || this.shouldSkip || this.removed) return; From 3277f3272d169447957c11bc1f11724a614aa788 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:27:44 +0100 Subject: [PATCH 103/174] add babel-template package --- packages/babel-template/package.json | 16 ++++++ packages/babel-template/src/index.js | 78 ++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+) create mode 100644 packages/babel-template/package.json create mode 100644 packages/babel-template/src/index.js diff --git a/packages/babel-template/package.json b/packages/babel-template/package.json new file mode 100644 index 0000000000..49803acbe8 --- /dev/null +++ b/packages/babel-template/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-template", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "babylon": "^5.8.20", + "babel-traverse": "^5.8.22", + "babel-types": "^5.8.22", + "lodash": "^3.10.1" + } +} diff --git a/packages/babel-template/src/index.js b/packages/babel-template/src/index.js new file mode 100644 index 0000000000..99f3c83c79 --- /dev/null +++ b/packages/babel-template/src/index.js @@ -0,0 +1,78 @@ +import cloneDeep from "lodash/lang/cloneDeep"; +import isEmpty from "lodash/lang/isEmpty"; +import has from "lodash/object/has"; +import traverse from "babel-traverse"; +import * as babylon from "babylon"; +import * as t from "babel-types"; + +export default function (code) { + var stack = new Error().stack.split("\n").slice(1).join("\n"); + + var getAst = function () { + try { + var ast = babylon.parse(code, { + allowReturnOutsideFunction: true + }).program; + + ast = traverse.removeProperties(ast); + } catch (err) { + err.stack = `${err.stack}from\n${stack}`; + } + + getAst = function () { + return ast; + }; + + return ast; + }; + + return function (nodes, keepExpression) { + return useTemplate(getAst(), nodes, keepExpression); + }; +} + +function useTemplate(ast, nodes?: Array, keepExpression?: boolean) { + if (nodes === true) { + keepExpression = true; + nodes = null; + } + + ast = cloneDeep(ast); + + if (!isEmpty(nodes)) { + traverse(ast, templateVisitor, null, nodes); + } + + if (ast.body.length > 1) { + return ast.body; + } + + var node = ast.body[0]; + if (!keepExpression && t.isExpressionStatement(node)) { + return node.expression; + } else { + return node; + } +} + +var templateVisitor = { + // 360 + noScope: true, + + enter(path, nodes) { + var { node } = path; + + if (t.isExpressionStatement(node)) { + node = node.expression; + } + + if (t.isIdentifier(node) && has(nodes, node.name)) { + path.skip(); + path.replaceInline(nodes[node.name]); + } + }, + + exit({ node }) { + traverse.clearNode(node); + } +}; From dc0329eb7cda1e933ec730f6ec9c91ce1e99592f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:27:51 +0100 Subject: [PATCH 104/174] add babel-preset-react package --- packages/babel-preset-react/index.js | 7 +++++++ packages/babel-preset-react/package.json | 15 +++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 packages/babel-preset-react/index.js create mode 100644 packages/babel-preset-react/package.json diff --git a/packages/babel-preset-react/index.js b/packages/babel-preset-react/index.js new file mode 100644 index 0000000000..864093b2b6 --- /dev/null +++ b/packages/babel-preset-react/index.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: [ + require("babel-plugin-transform-react-jsx"), + require("babel-plugin-syntax-flow"), + require("babel-plugin-syntax-jsx"), + ] +}; diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json new file mode 100644 index 0000000000..055ed78977 --- /dev/null +++ b/packages/babel-preset-react/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel-preset-react", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "index.js", + "dependencies": { + "babel-plugin-syntax-flow": "*", + "babel-plugin-syntax-jsx": "*", + "babel-plugin-transform-react-jsx": "*" + } +} From 6d72b025910f4d3e427150ffe9c3383eabe366cd Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:27:56 +0100 Subject: [PATCH 105/174] add babel-preset-2015 package --- packages/babel-preset-es2015/index.js | 22 +++++++++++++++++ packages/babel-preset-es2015/package.json | 30 +++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 packages/babel-preset-es2015/index.js create mode 100644 packages/babel-preset-es2015/package.json diff --git a/packages/babel-preset-es2015/index.js b/packages/babel-preset-es2015/index.js new file mode 100644 index 0000000000..6288b3ee72 --- /dev/null +++ b/packages/babel-preset-es2015/index.js @@ -0,0 +1,22 @@ +module.exports = { + plugins: [ + require("babel-plugin-transform-es2015-template-literals"), + require("babel-plugin-transform-es2015-literals"), + require("babel-plugin-transform-es2015-function-name"), + require("babel-plugin-transform-es2015-arrow-functions"), + require("babel-plugin-transform-es2015-block-scoped-functions"), + require("babel-plugin-transform-es2015-classes"), + require("babel-plugin-transform-es2015-object-super"), + require("babel-plugin-transform-es2015-shorthand-properties"), + require("babel-plugin-transform-es2015-computed-properties"), + require("babel-plugin-transform-es2015-for-of"), + require("babel-plugin-transform-es2015-sticky-regex"), + require("babel-plugin-transform-es2015-unicode-regex"), + require("babel-plugin-transform-es2015-constants"), + require("babel-plugin-transform-es2015-spread"), + require("babel-plugin-transform-es2015-parameters"), + require("babel-plugin-transform-es2015-destructuring"), + require("babel-plugin-transform-es2015-block-scoping"), + require("babel-plugin-transform-es2015-tail-call") + ] +}; diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json new file mode 100644 index 0000000000..cbd48902d6 --- /dev/null +++ b/packages/babel-preset-es2015/package.json @@ -0,0 +1,30 @@ +{ + "name": "babel-preset-es2015", + "version": "5.8.22", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "index.js", + "dependencies": { + "babel-plugin-transform-es2015-template-literals": "*", + "babel-plugin-transform-es2015-literals": "*", + "babel-plugin-transform-es2015-function-name": "*", + "babel-plugin-transform-es2015-arrow-functions": "*", + "babel-plugin-transform-es2015-block-scoped-functions": "*", + "babel-plugin-transform-es2015-classes": "*", + "babel-plugin-transform-es2015-object-super": "*", + "babel-plugin-transform-es2015-shorthand-properties": "*", + "babel-plugin-transform-es2015-computed-properties": "*", + "babel-plugin-transform-es2015-for-of": "*", + "babel-plugin-transform-es2015-sticky-regex": "*", + "babel-plugin-transform-es2015-unicode-regex": "*", + "babel-plugin-transform-es2015-constants": "*", + "babel-plugin-transform-es2015-spread": "*", + "babel-plugin-transform-es2015-parameters": "*", + "babel-plugin-transform-es2015-destructuring": "*", + "babel-plugin-transform-es2015-block-scoping": "*", + "babel-plugin-transform-es2015-tail-call": "*" + } +} From 8d5a93d4dae610bc4ecd1fc6d1934bd8c5d5a977 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:28:27 +0100 Subject: [PATCH 106/174] move block-hoist and shadow-functions to internal plugins --- .../internal-plugins/block-hoist.js | 40 ++++++++++++++++++ .../shadow-functions.js | 29 +++++++------ .../transformers/internal/block-hoist.js | 41 ------------------- 3 files changed, 54 insertions(+), 56 deletions(-) create mode 100644 packages/babel-core/src/transformation/internal-plugins/block-hoist.js rename packages/babel-core/src/transformation/{transformers/internal => internal-plugins}/shadow-functions.js (79%) delete mode 100644 packages/babel-core/src/transformation/transformers/internal/block-hoist.js diff --git a/packages/babel-core/src/transformation/internal-plugins/block-hoist.js b/packages/babel-core/src/transformation/internal-plugins/block-hoist.js new file mode 100644 index 0000000000..e033bc39f0 --- /dev/null +++ b/packages/babel-core/src/transformation/internal-plugins/block-hoist.js @@ -0,0 +1,40 @@ +import Plugin from "../plugin"; +import sortBy from "lodash/collection/sortBy"; + +export default new Plugin({ + /** + * [Please add a description.] + * + * Priority: + * + * - 0 We want this to be at the **very** bottom + * - 1 Default node position + * - 2 Priority over normal nodes + * - 3 We want this to be at the **very** top + */ + + visitor: { + Block: { + exit({ node }) { + var hasChange = false; + for (var i = 0; i < node.body.length; i++) { + var bodyNode = node.body[i]; + if (bodyNode && bodyNode._blockHoist != null) { + hasChange = true; + break; + } + } + if (!hasChange) return; + + node.body = sortBy(node.body, function(bodyNode){ + var priority = bodyNode && bodyNode._blockHoist; + if (priority == null) priority = 1; + if (priority === true) priority = 2; + + // Higher priorities should move toward the top. + return -1 * priority; + }); + } + } + } +}); diff --git a/packages/babel-core/src/transformation/transformers/internal/shadow-functions.js b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js similarity index 79% rename from packages/babel-core/src/transformation/transformers/internal/shadow-functions.js rename to packages/babel-core/src/transformation/internal-plugins/shadow-functions.js index b257211a1b..b386a44202 100644 --- a/packages/babel-core/src/transformation/transformers/internal/shadow-functions.js +++ b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js @@ -1,8 +1,19 @@ +import Plugin from "../plugin"; import * as t from "babel-types"; -export var metadata = { - group: "builtin-trailing" -}; +export default new Plugin({ + visitor: { + ThisExpression(path) { + return remap(path, "this", () => t.thisExpression()); + }, + + ReferencedIdentifier(path) { + if (path.node.name === "arguments") { + return remap(path, "arguments", () => t.identifier("arguments")); + } + } + } +}); function shouldShadow(path, shadowPath) { if (path.is("_forceShadow")) { @@ -53,15 +64,3 @@ function remap(path, key, create) { return id; } - -export var visitor = { - ThisExpression() { - return remap(this, "this", () => t.thisExpression()); - }, - - ReferencedIdentifier(node) { - if (node.name === "arguments") { - return remap(this, "arguments", () => t.identifier("arguments")); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/internal/block-hoist.js b/packages/babel-core/src/transformation/transformers/internal/block-hoist.js deleted file mode 100644 index 567ad4a783..0000000000 --- a/packages/babel-core/src/transformation/transformers/internal/block-hoist.js +++ /dev/null @@ -1,41 +0,0 @@ -import sortBy from "lodash/collection/sortBy"; - -export var metadata = { - group: "builtin-trailing" -}; - -/** - * [Please add a description.] - * - * Priority: - * - * - 0 We want this to be at the **very** bottom - * - 1 Default node position - * - 2 Priority over normal nodes - * - 3 We want this to be at the **very** top - */ - -export var visitor = { - Block: { - exit(node) { - var hasChange = false; - for (var i = 0; i < node.body.length; i++) { - var bodyNode = node.body[i]; - if (bodyNode && bodyNode._blockHoist != null) { - hasChange = true; - break; - } - } - if (!hasChange) return; - - node.body = sortBy(node.body, function(bodyNode){ - var priority = bodyNode && bodyNode._blockHoist; - if (priority == null) priority = 1; - if (priority === true) priority = 2; - - // Higher priorities should move toward the top. - return -1 * priority; - }); - } - } -}; From b865b8862e810a1a2d460d4e2c953b3ca570312b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:29:07 +0100 Subject: [PATCH 107/174] remove filters, aliases, deprecations and more from plugin pipeline --- .../babel-core/src/transformation/index.js | 27 ----- .../babel-core/src/transformation/pipeline.js | 99 ------------------- 2 files changed, 126 deletions(-) diff --git a/packages/babel-core/src/transformation/index.js b/packages/babel-core/src/transformation/index.js index 383b9205af..da4c0dc0f4 100644 --- a/packages/babel-core/src/transformation/index.js +++ b/packages/babel-core/src/transformation/index.js @@ -1,33 +1,6 @@ import Pipeline from "./pipeline"; var pipeline = new Pipeline; - -import transformers from "./transformers"; - -for (var key in transformers) { - var transformer = transformers[key]; - - if (typeof transformer === "object") { - var metadata = transformer.metadata = transformer.metadata || {}; - metadata.group = metadata.group || "builtin-basic"; - } -} - -pipeline.addTransformers(transformers); - -import deprecated from "./transformers/deprecated"; -pipeline.addDeprecated(deprecated); - -import aliases from "./transformers/aliases"; -pipeline.addAliases(aliases); - -import * as filters from "./transformers/filters"; -pipeline.addFilter(filters.internal); -pipeline.addFilter(filters.blacklist); -pipeline.addFilter(filters.whitelist); -pipeline.addFilter(filters.stage); -pipeline.addFilter(filters.optional); - var transform = pipeline.transform.bind(pipeline); transform.fromAst = pipeline.transformFromAst.bind(pipeline); transform.lint = pipeline.lint.bind(pipeline); diff --git a/packages/babel-core/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js index dbfbbc8774..460861ef74 100644 --- a/packages/babel-core/src/transformation/pipeline.js +++ b/packages/babel-core/src/transformation/pipeline.js @@ -1,84 +1,13 @@ -import PluginManager from "./file/plugin-manager"; import normalizeAst from "../helpers/normalize-ast"; -import Plugin from "./plugin"; -import assign from "lodash/object/assign"; import File from "./file"; export default class Pipeline { - transformers = Object.create(null); - namespaces = Object.create(null); - deprecated = Object.create(null); - aliases = Object.create(null); - filters = []; - - addTransformers(transformers) { - for (var key in transformers) { - this.addTransformer(key, transformers[key]); - } - return this; - } - - addTransformer(key, plugin) { - if (this.transformers[key]) throw new Error(); // todo: error - - var namespace = key.split(".")[0]; - this.namespaces[namespace] = this.namespaces[namespace] || []; - this.namespaces[namespace].push(key); - this.namespaces[key] = namespace; - - if (typeof plugin === "function") { - plugin = PluginManager.memoisePluginContainer(plugin); - plugin.key = key; - plugin.metadata.optional = true; - - if (key === "react.displayName") { - plugin.metadata.optional = false; - } - } else { - plugin = new Plugin(key, plugin); - } - - this.transformers[key] = plugin; - } - - addAliases(names) { - assign(this.aliases, names); - return this; - } - - addDeprecated(names) { - assign(this.deprecated, names); - return this; - } - - addFilter(filter: Function) { - this.filters.push(filter); - return this; - } - - canRun(plugin, fileOpts) { - if (plugin.metadata.plugin) { - return true; - } - - for (var filter of (this.filters: Array)) { - var result = filter(plugin, fileOpts); - if (result != null) return result; - } - - return true; - } - lint(code: string, opts?: Object = {}) { opts.code = false; opts.mode = "lint"; return this.transform(code, opts); } - /** - * Build dependency graph by recursing `metadata.modules`. WIP. - */ - pretransform(code: string, opts?: Object) { var file = new File(opts, this); return file.wrap(code, function () { @@ -107,32 +36,4 @@ export default class Pipeline { return file.transform(); }); } - - _ensureTransformerNames(type: string, rawKeys: Array) { - var keys = []; - - for (var i = 0; i < rawKeys.length; i++) { - var key = rawKeys[i]; - var deprecatedKey = this.deprecated[key]; - var aliasKey = this.aliases[key]; - if (aliasKey) { - keys.push(aliasKey); - } else if (deprecatedKey) { - // deprecated key, remap it to the new one - console.error(`[BABEL] The transformer ${key} has been renamed to ${deprecatedKey}`); - rawKeys.push(deprecatedKey); - } else if (this.transformers[key]) { - // valid key - keys.push(key); - } else if (this.namespaces[key]) { - // namespace, append all transformers within this namespace - keys = keys.concat(this.namespaces[key]); - } else { - // invalid key - throw new ReferenceError(`Unknown transformer ${key} specified in ${type}`); - } - } - - return keys; - } } From 6c656e30bc45ce1456bc12028242a3dfc135191a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:29:30 +0100 Subject: [PATCH 108/174] make PluginPass the state each plugin visitor gets --- .../src/transformation/plugin-pass.js | 34 ++++--------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index f8b02f26e1..c1b560041c 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -1,36 +1,12 @@ import type Transformer from "./transformer"; import traverse from "babel-traverse"; -import type File from "./file"; - -/** - * This class is responsible for traversing over the provided `File`s - * AST and running it's parent transformers handlers over it. - */ +import File from "./file"; export default class PluginPass { - constructor(file: File, plugin: Transformer) { + constructor(file: File, plugin: Transformer, options: Object = {}) { this.plugin = plugin; this.file = file; - this.key = plugin.key; - - if (this.canTransform() && plugin.metadata.experimental && !file.opts.experimental) { - file.log.warn(`THE TRANSFORMER ${this.key} HAS BEEN MARKED AS EXPERIMENTAL AND IS WIP. USE AT YOUR OWN RISK. ` + - "THIS WILL HIGHLY LIKELY BREAK YOUR CODE SO USE WITH **EXTREME** CAUTION. ENABLE THE " + - "`experimental` OPTION TO IGNORE THIS WARNING."); - } - } - - canTransform(): boolean { - if (this.plugin.metadata.mode !== this.file.opts.mode) { - return false; - } else { - return this.canRun(); - } - } - - canRun() { - return this.file.transformerDependencies[this.key] || - this.file.pipeline.canRun(this.plugin, this.file.opts); + this.opts = options; } transform() { @@ -39,4 +15,8 @@ export default class PluginPass { traverse(file.ast, this.plugin.visitor, file.scope, file); file.log.debug(`Finish transformer ${this.key}`); } + + addHelper(...args) { + return this.file.addHelper(...args); + } } From 945c2587e144255b285727218df9142b6b2e1272 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:29:51 +0100 Subject: [PATCH 109/174] remove metadata from plugins, simplify intialisation of a plugin --- .../babel-core/src/transformation/plugin.js | 68 +++---------------- 1 file changed, 8 insertions(+), 60 deletions(-) diff --git a/packages/babel-core/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js index f5d37db0bb..c960ffbda1 100644 --- a/packages/babel-core/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -1,71 +1,28 @@ -import PluginPass from "./plugin-pass"; import * as messages from "babel-messages"; import traverse from "babel-traverse"; import assign from "lodash/object/assign"; import clone from "lodash/lang/clone"; -import File from "./file"; -import * as t from "babel-types"; - -const VALID_PLUGIN_PROPERTIES = [ - "visitor", "metadata", - "manipulateOptions", - "post", "pre" -]; - -const VALID_METADATA_PROPERTES = [ - "dependencies", - "optional", - "stage", - "group", - "experimental", - "secondPass", - "mode" -]; export default class Plugin { - constructor(key: string, plugin: Object) { - Plugin.validate(key, plugin); + constructor(plugin: Object) { + plugin = this.raw = assign({}, plugin); - plugin = assign({}, plugin); - - var take = function (key) { + function take(key) { var val = plugin[key]; delete plugin[key]; return val; - }; + } this.manipulateOptions = take("manipulateOptions"); - this.metadata = take("metadata") || {}; - this.dependencies = this.metadata.dependencies || []; this.post = take("post"); this.pre = take("pre"); - // - - if (this.metadata.stage != null) { - this.metadata.optional = true; - } - - // - - this.visitor = this.normalize(clone(take("visitor")) || {}); - this.key = key; + this.visitor = this.normalize(clone(take("visitor")) || {}); } - static validate(name, plugin) { - for (let key in plugin) { - if (key[0] === "_") continue; - if (VALID_PLUGIN_PROPERTIES.indexOf(key) >= 0) continue; - - var msgType = "pluginInvalidProperty"; - if (t.TYPES.indexOf(key) >= 0) msgType = "pluginInvalidPropertyVisitor"; - throw new Error(messages.get(msgType, name, key)); - } - - for (let key in plugin.metadata) { - if (VALID_METADATA_PROPERTES.indexOf(key) >= 0) continue; - - throw new Error(messages.get("pluginInvalidProperty", name, `metadata.${key}`)); + validate(loc, i) { + for (let key in this.raw) { + throw new Error(messages.get("pluginInvalidProperty", loc, i, key)); } } @@ -73,13 +30,4 @@ export default class Plugin { traverse.explode(visitor); return visitor; } - - buildPass(file: File): PluginPass { - // validate Transformer instance - if (!(file instanceof File)) { - throw new TypeError(messages.get("pluginNotFile", this.key)); - } - - return new PluginPass(file, this); - } } From c00bf262a78b04d48415d3b3752533855213c659 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:30:39 +0100 Subject: [PATCH 110/174] update to new visitor method signature --- ...-binary-assignment-operator-transformer.js | 12 +++---- ...itional-assignment-operator-transformer.js | 13 +++---- .../transformation/helpers/call-delegate.js | 10 +++--- .../src/transformation/helpers/name-method.js | 36 ++++++++----------- .../helpers/remap-async-to-generator.js | 8 ++--- .../transformation/helpers/replace-supers.js | 20 +++++------ .../src/transformation/modules/system.js | 24 +++++++------ 7 files changed, 59 insertions(+), 64 deletions(-) diff --git a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js index 015c949fa2..4e60a46e3d 100644 --- a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js @@ -12,15 +12,15 @@ export default function (opts) { return t.assignmentExpression("=", left, right); }; - exports.ExpressionStatement = function (node, parent, scope, file) { + exports.ExpressionStatement = function (path, file) { // hit the `AssignmentExpression` one below - if (this.isCompletionRecord()) return; + if (path.isCompletionRecord()) return; - var expr = node.expression; + var expr = path.node.expression; if (!isAssignment(expr)) return; var nodes = []; - var exploded = explode(expr.left, nodes, file, scope, true); + var exploded = explode(expr.left, nodes, file, path.scope, true); nodes.push(t.expressionStatement( buildAssignment(exploded.ref, opts.build(exploded.uid, expr.right)) @@ -29,7 +29,7 @@ export default function (opts) { return nodes; }; - exports.AssignmentExpression = function (node, parent, scope, file) { + exports.AssignmentExpression = function ({ node, scope }, file) { if (!isAssignment(node)) return; var nodes = []; @@ -38,7 +38,7 @@ export default function (opts) { return nodes; }; - exports.BinaryExpression = function (node) { + exports.BinaryExpression = function ({ node }) { if (node.operator !== opts.operator) return; return opts.build(node.left, node.right); }; diff --git a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js index e99a374332..94ae08d7ca 100644 --- a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js @@ -6,16 +6,16 @@ export default function (exports, opts) { return t.assignmentExpression("=", left, right); }; - exports.ExpressionStatement = function (node, parent, scope, file) { + exports.ExpressionStatement = function (path, file) { // hit the `AssignmentExpression` one below - if (this.isCompletionRecord()) return; + if (path.isCompletionRecord()) return; - var expr = node.expression; + var expr = path.node.expression; if (!opts.is(expr, file)) return; var nodes = []; - var exploded = explode(expr.left, nodes, file, scope); + var exploded = explode(expr.left, nodes, file, path.scope); nodes.push(t.ifStatement( opts.build(exploded.uid, file), @@ -25,11 +25,12 @@ export default function (exports, opts) { return nodes; }; - exports.AssignmentExpression = function (node, parent, scope, file) { + exports.AssignmentExpression = function (path, file) { + var node = path.node; if (!opts.is(node, file)) return; var nodes = []; - var exploded = explode(node.left, nodes, file, scope); + var exploded = explode(node.left, nodes, file, path.scope); nodes.push(t.logicalExpression( "&&", diff --git a/packages/babel-core/src/transformation/helpers/call-delegate.js b/packages/babel-core/src/transformation/helpers/call-delegate.js index 20dde54340..d98a4907a6 100644 --- a/packages/babel-core/src/transformation/helpers/call-delegate.js +++ b/packages/babel-core/src/transformation/helpers/call-delegate.js @@ -1,15 +1,15 @@ import * as t from "babel-types"; var visitor = { - enter(node, parent, scope, state) { - if (this.isThisExpression() || this.isReferencedIdentifier({ name: "arguments" })) { + enter(path, state) { + if (path.isThisExpression() || path.isReferencedIdentifier({ name: "arguments" })) { state.found = true; - this.stop(); + path.stop(); } }, - Function() { - this.skip(); + Function(path) { + path.skip(); } }; diff --git a/packages/babel-core/src/transformation/helpers/name-method.js b/packages/babel-core/src/transformation/helpers/name-method.js index 90cd1d0ec1..9b3fc20ebb 100644 --- a/packages/babel-core/src/transformation/helpers/name-method.js +++ b/packages/babel-core/src/transformation/helpers/name-method.js @@ -2,30 +2,22 @@ import getFunctionArity from "./get-function-arity"; import * as util from "../../util"; import * as t from "babel-types"; -function visitIdentifier(context, node, scope, state) { - // check if this node matches our function id - if (node.name !== state.name) return; - - // check that we don't have a local variable declared as that removes the need - // for the wrapper - var localDeclar = scope.getBindingIdentifier(state.name); - if (localDeclar !== state.outerDeclar) return; - - state.selfReference = true; - context.stop(); -} - var visitor = { - ReferencedIdentifier(node, parent, scope, state) { - visitIdentifier(this, node, scope, state); - }, + "ReferencedIdentifier|BindingIdentifier"(path, state) { + // check if this node matches our function id + if (path.node.name !== state.name) return; - BindingIdentifier(node, parent, scope, state) { - visitIdentifier(this, node, scope, state); + // check that we don't have a local variable declared as that removes the need + // for the wrapper + var localDeclar = path.scope.getBindingIdentifier(state.name); + if (localDeclar !== state.outerDeclar) return; + + state.selfReference = true; + path.stop(); } }; -var wrap = function (state, method, id, scope) { +function wrap(state, method, id, scope) { if (state.selfReference) { if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) { // we can just munge the local binding @@ -54,9 +46,9 @@ var wrap = function (state, method, id, scope) { method.id = id; scope.getProgramParent().references[id.name] = true; -}; +} -var visit = function (node, name, scope) { +function visit(node, name, scope) { var state = { selfAssignment: false, selfReference: false, @@ -100,7 +92,7 @@ var visit = function (node, name, scope) { } return state; -}; +} export function custom(node, id, scope) { var state = visit(node, id.name, scope); diff --git a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js index cc24ee0192..49351fdca4 100644 --- a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js +++ b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js @@ -1,11 +1,11 @@ import * as t from "babel-types"; var awaitVisitor = { - Function() { - this.skip(); + Function(path) { + path.skip(); }, - AwaitExpression(node) { + AwaitExpression({ node }) { node.type = "YieldExpression"; if (node.all) { @@ -17,7 +17,7 @@ var awaitVisitor = { }; var referenceVisitor = { - ReferencedIdentifier(node, parent, scope, state) { + ReferencedIdentifier({ node, scope }, state) { var name = state.id.name; if (node.name === name && scope.bindingIdentifierEquals(name, state.id)) { return state.ref = state.ref || scope.generateUidIdentifier(name); diff --git a/packages/babel-core/src/transformation/helpers/replace-supers.js b/packages/babel-core/src/transformation/helpers/replace-supers.js index 7e0391a5be..5eb11077fc 100644 --- a/packages/babel-core/src/transformation/helpers/replace-supers.js +++ b/packages/babel-core/src/transformation/helpers/replace-supers.js @@ -14,19 +14,19 @@ function isMemberExpressionSuper(node) { } var visitor = { - enter(node, parent, scope, state) { + enter(path, state) { var topLevel = state.topLevel; var self = state.self; - if (t.isFunction(node) && !t.isArrowFunctionExpression(node)) { + if (path.isFunction() && !path.isArrowFunctionExpression()) { // we need to call traverseLevel again so we're context aware - self.traverseLevel(this, false); - return this.skip(); + self.traverseLevel(path, false); + return path.skip(); } - if (t.isProperty(node, { method: true }) || t.isMethodDefinition(node)) { + if (path.isProperty({ method: true }) || path.isMethodDefinition()) { // break on object methods - return this.skip(); + return path.skip(); } var getThisReference = topLevel ? @@ -37,8 +37,8 @@ var visitor = { var callback = self.specHandle; if (self.isLoose) callback = self.looseHandle; - var result = callback.call(self, this, getThisReference); - if (result) this.hasSuper = true; + var result = callback.call(self, path, getThisReference); + if (result) path.hasSuper = true; if (result === true) return; return result; } @@ -219,7 +219,7 @@ export default class ReplaceSupers { var node = path.node; if (isIllegalBareSuper(node, parent)) { - throw path.errorWithNode(messages.get("classesIllegalBareSuper")); + throw path.buildCodeFrameError(messages.get("classesIllegalBareSuper")); } if (t.isCallExpression(node)) { @@ -235,7 +235,7 @@ export default class ReplaceSupers { // - https://twitter.com/wycats/status/544553184396836864 if (methodNode.key.name !== "constructor" || !this.inClass) { var methodName = methodNode.key.name || "METHOD_NAME"; - throw this.file.errorWithNode(node, messages.get("classesIllegalSuperCall", methodName)); + throw this.file.buildCodeFrameError(node, messages.get("classesIllegalSuperCall", methodName)); } } else if (isMemberExpressionSuper(callee)) { // super.test(); -> _get(Object.getPrototypeOf(objectRef.prototype), "test", this).call(this); diff --git a/packages/babel-core/src/transformation/modules/system.js b/packages/babel-core/src/transformation/modules/system.js index 1b2e327c2e..a5b051efe3 100644 --- a/packages/babel-core/src/transformation/modules/system.js +++ b/packages/babel-core/src/transformation/modules/system.js @@ -6,12 +6,12 @@ import map from "lodash/collection/map"; import * as t from "babel-types"; var hoistVariablesVisitor = { - Function() { + Function(path) { // nothing inside is accessible - this.skip(); + path.skip(); }, - VariableDeclaration(node, parent, scope, state) { + VariableDeclaration({ node, parent }, state) { if (node.kind !== "var" && !t.isProgram(parent)) { // let, const // can't be accessed return; @@ -42,20 +42,22 @@ var hoistVariablesVisitor = { }; var hoistFunctionsVisitor = { - Function() { - this.skip(); + Function(path) { + path.skip(); }, - enter(node, parent, scope, state) { - if (t.isFunctionDeclaration(node) || state.formatter._canHoist(node)) { - state.handlerBody.push(node); - this.dangerouslyRemove(); + enter(path, state) { + if (path.isFunctionDeclaration() || state.formatter._canHoist(path.node)) { + state.handlerBody.push(path.node); + path.remove(); } } }; var runnerSettersVisitor = { - enter(node, parent, scope, state) { + enter(path, state) { + var { node } = path; + if (node._importSource === state.source) { if (t.isVariableDeclaration(node)) { for (var declar of (node.declarations: Array)) { @@ -68,7 +70,7 @@ var runnerSettersVisitor = { state.nodes.push(node); } - this.dangerouslyRemove(); + path.remove(); } } }; From dff098e77b67954ca0fbb6ed803561ebf09358cf Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:31:51 +0100 Subject: [PATCH 111/174] rename errorWithNode to buildCodeFrameError and when erroring on dynamic nodes try and estimate a location --- .../src/transformation/file/index.js | 30 +++++++++++++++---- .../src/transformation/helpers/define-map.js | 2 +- .../src/transformation/modules/_default.js | 4 +-- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index acf1c82fb6..d0b2507e19 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -20,6 +20,15 @@ import * as util from "../../util"; import path from "path"; import * as t from "babel-types"; +var errorVisitor = { + enter(path, state) { + var loc = path.node.loc; + if (loc) { + state.loc = loc; + path.stop(); + } + } +}; export default class File { constructor(opts = {}, pipeline) { this.pipeline = pipeline; @@ -383,17 +392,26 @@ export default class File { return uid; } - errorWithNode(node, msg, Error = SyntaxError) { - var err; + buildCodeFrameError(node, msg, Error = SyntaxError) { var loc = node && (node.loc || node._loc); + + var err = new Error(msg); + if (loc) { - err = new Error(`Line ${loc.start.line}: ${msg}`); err.loc = loc.start; } else { - // todo: find errors with nodes inside to at least point to something - err = new Error("There's been an error on a dynamic node. This is almost certainly an internal error. Please report it."); + traverse(node, errorVisitor, err); + + err.message += " (This is an error on an internal node. Probably an internal error"; + + if (err.loc) { + err.message += ". Location has been estimated."; + } + + err.message += ")"; } - return err; + + return err } mergeSourceMap(map: Object) { diff --git a/packages/babel-core/src/transformation/helpers/define-map.js b/packages/babel-core/src/transformation/helpers/define-map.js index ab7325b897..7f8ae70c93 100644 --- a/packages/babel-core/src/transformation/helpers/define-map.js +++ b/packages/babel-core/src/transformation/helpers/define-map.js @@ -28,7 +28,7 @@ export function push(mutatorMap, node, kind, file) { } if (map.value || map.initializer) { - throw file.errorWithNode(node, "Key conflict with sibling node"); + throw file.buildCodeFrameError(node, "Key conflict with sibling node"); } if (node.value) { diff --git a/packages/babel-core/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js index 8968597181..73535a5d0e 100644 --- a/packages/babel-core/src/transformation/modules/_default.js +++ b/packages/babel-core/src/transformation/modules/_default.js @@ -37,7 +37,7 @@ export default class DefaultFormatter { var existingScope = this.sourceScopes[source]; if (existingScope && existingScope !== path.scope) { - throw path.errorWithNode(messages.get("modulesDuplicateDeclarations")); + throw path.buildCodeFrameError(messages.get("modulesDuplicateDeclarations")); } this.sourceScopes[source] = path.scope; @@ -180,7 +180,7 @@ export default class DefaultFormatter { checkExportIdentifier(node) { if (t.isIdentifier(node, { name: "__esModule" })) { - throw this.file.errorWithNode(node, messages.get("modulesIllegalExportName", node.name)); + throw this.file.buildCodeFrameError(node, messages.get("modulesIllegalExportName", node.name)); } } From 4924a9adeae68f7956047db78bca997eb2f06a7e Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:32:04 +0100 Subject: [PATCH 112/174] add store class --- packages/babel-core/src/store.js | 24 +++++++++++++++++++ .../src/transformation/file/index.js | 4 +++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 packages/babel-core/src/store.js diff --git a/packages/babel-core/src/store.js b/packages/babel-core/src/store.js new file mode 100644 index 0000000000..e276346bb9 --- /dev/null +++ b/packages/babel-core/src/store.js @@ -0,0 +1,24 @@ +export default class Store { + dynamicData = {}; + data = {}; + + set(key: string, val): any { + return this.data[key] = val; + } + + setDynamic(key: string, fn: Function) { + this.dynamicData[key] = fn; + } + + get(key: string): any { + var data = this.data[key]; + if (data) { + return data; + } else { + var dynamic = this.dynamicData[key]; + if (dynamic) { + return this.set(key, dynamic()); + } + } + } +} diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index d0b2507e19..79f38de0e0 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -14,6 +14,7 @@ import includes from "lodash/collection/includes"; import traverse from "babel-traverse"; import resolve from "try-resolve"; import Logger from "./logger"; +import Store from "../../store"; import Plugin from "../plugin"; import parse from "../../helpers/parse"; import * as util from "../../util"; @@ -29,7 +30,8 @@ var errorVisitor = { } } }; -export default class File { + +export default class File extends Store { constructor(opts = {}, pipeline) { this.pipeline = pipeline; From 69f67c9ec3a986f010e54ca18c9aa3f930ac784f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:32:24 +0100 Subject: [PATCH 113/174] merge plugin manager into option manager --- .../file/options/option-manager.js | 185 ++++++++++++++---- .../src/transformation/file/plugin-manager.js | 120 ------------ 2 files changed, 146 insertions(+), 159 deletions(-) delete mode 100644 packages/babel-core/src/transformation/file/plugin-manager.js diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index f1032a0e8d..67eb61b44b 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -1,4 +1,8 @@ -import { validateOption, normaliseOptions } from "./index"; +import Plugin from "../../plugin"; +import * as messages from "babel-messages"; +import * as context from "../../../api/node"; +import { normaliseOptions } from "./index"; +import resolve from "../../../helpers/resolve"; import json5 from "json5"; import isAbsolute from "path-is-absolute"; import pathExists from "path-exists"; @@ -32,6 +36,27 @@ export default class OptionManager { this.log = log; } + static memoisedPlugins = []; + + static memoisePluginContainer(fn, loc, i) { + for (var cache of (OptionManager.memoisedPlugins: Array)) { + if (cache.container === fn) return cache.plugin; + } + + var obj = fn(context); + + if (typeof obj === "object") { + var plugin = new Plugin(obj); + OptionManager.memoisedPlugins.push({ + container: fn, + plugin: plugin + }); + return plugin; + } else { + throw new TypeError(messages.get("pluginNotObject", loc, i, typeof obj)); + } + } + static createBareOptions() { var opts = {}; @@ -43,6 +68,41 @@ export default class OptionManager { return opts; } + static normalisePlugins(loc, dirname, plugins) { + return plugins.map(function (val, i) { + var plugin, options; + + // destructure plugins + if (Array.isArray(val)) { + [plugin, options] = val; + } else { + plugin = val; + } + + // allow plugins to be specified as strings + if (typeof plugin === "string") { + var pluginLoc = resolve(`babel-plugin-${plugin}`, dirname) || resolve(plugin, dirname); + if (pluginLoc) { + plugin = require(pluginLoc); + } else { + throw new ReferenceError(messages.get("pluginUnknown", plugin, loc, i)); + } + } + + // allow plugin containers to be specified so they don't have to manually require + if (typeof plugin === "function") { + plugin = OptionManager.memoisePluginContainer(plugin, loc, i); + } else { + throw new TypeError(messages.get("pluginNotFunction", loc, i)); + } + + // validate + plugin.validate(loc, i); + + return [plugin, options]; + }); + } + addConfig(loc, key?, json=json5) { if (this.resolvedConfigs.indexOf(loc) >= 0) return; @@ -61,23 +121,78 @@ export default class OptionManager { this.resolvedConfigs.push(loc); } - mergeOptions(opts, alias = "foreign") { + /** + * This is called when we want to merge the input `opts` into our + * base options. + * + * - `alias` is used to output pretty traces back to the original source. + * - `loc` is used to point to the original config. + * - `dirname` is used to resolve plugins relative to it. + */ + + mergeOptions(opts, alias = "foreign", loc, dirname) { if (!opts) return; - for (let key in opts) { - if (key[0] === "_") continue; + dirname = dirname || process.cwd(); + loc = loc || alias; + for (let key in opts) { let option = config[key]; // check for an unknown option - if (!option) this.log.error(`Unknown option: ${alias}.${key}`, ReferenceError); + if (!option && this.log) this.log.error(`Unknown option: ${alias}.${key}`, ReferenceError); } // normalise options normaliseOptions(opts); + // resolve plugins + if (opts.plugins) { + opts.plugins = OptionManager.normalisePlugins(loc, dirname, opts.plugins); + } + + // add extends clause + if (opts.extends) { + this.addConfig(resolve(opts.extends, dirname)); + delete opts.extends; + } + + // resolve presets + if (opts.presets) { + this.mergePresets(opts.presets, dirname); + delete opts.presets; + } + + var envOpts; + var envKey = process.env.BABEL_ENV || process.env.NODE_ENV || "development"; + if (opts.env) { + envOpts = opts.env[envKey]; + delete opts.env; + } + // merge them into this current files options merge(this.options, opts); + + // merge in env options + this.mergeOptions(envOpts, `${alias}.env.${envKey}`); + } + + mergePresets(presets: Array, dirname) { + for (var val of presets) { + if (typeof val === "string") { + var presetLoc = resolve(`babel-preset-${val}`, dirname) || resolve(val, dirname); + if (presetLoc) { + var presetOpts = require(presetLoc); + this.mergeOptions(presetOpts, presetLoc, presetLoc, path.dirname(presetLoc)); + } else { + throw new Error("todo"); + } + } else if (typeof val === "object") { + this.mergeOptions(val); + } else { + throw new Error("todo"); + } + } } addIgnoreConfig(loc) { @@ -91,10 +206,6 @@ export default class OptionManager { this.mergeOptions({ ignore: lines }, loc); } - /** - * Description - */ - findConfigs(loc) { if (!loc) return; @@ -102,17 +213,33 @@ export default class OptionManager { loc = path.join(process.cwd(), loc); } + var foundConfig = false; + var foundIgnore = false; + while (loc !== (loc = path.dirname(loc))) { - if (this.options.breakConfig) return; + if (!foundConfig) { + var configLoc = path.join(loc, BABELRC_FILENAME); + if (exists(configLoc)) { + this.addConfig(configLoc); + foundConfig = true; + } - var configLoc = path.join(loc, BABELRC_FILENAME); - if (exists(configLoc)) this.addConfig(configLoc); + var pkgLoc = path.join(loc, PACKAGE_FILENAME); + if (exists(pkgLoc)) { + this.addConfig(pkgLoc, "babel", JSON); + foundConfig = true; + } + } - var pkgLoc = path.join(loc, PACKAGE_FILENAME); - if (exists(pkgLoc)) this.addConfig(pkgLoc, "babel", JSON); + if (!foundIgnore) { + var ignoreLoc = path.join(loc, BABELIGNORE_FILENAME); + if (exists(ignoreLoc)) { + this.addIgnoreConfig(ignoreLoc); + foundIgnore = true; + } + } - var ignoreLoc = path.join(loc, BABELIGNORE_FILENAME); - if (exists(ignoreLoc)) this.addIgnoreConfig(ignoreLoc); + if (foundIgnore && foundConfig) return; } } @@ -126,17 +253,7 @@ export default class OptionManager { // optional if (!val && option.optional) continue; - // deprecated - if (this.log && val && option.deprecated) { - this.log.deprecate(`Deprecated option ${key}: ${option.deprecated}`); - } - - // validate - if (this.pipeline && val) { - val = validateOption(key, val, this.pipeline); - } - - // aaliases + // aliases if (option.alias) { opts[option.alias] = opts[option.alias] || val; } else { @@ -146,23 +263,13 @@ export default class OptionManager { } init(opts) { - this.mergeOptions(opts, "direct"); - - // babelrc option - if (opts.babelrc) { - for (var loc of (opts.babelrc: Array)) this.addConfig(loc); - } - // resolve all .babelrc files if (opts.babelrc !== false) { this.findConfigs(opts.filename); } - // merge in env - var envKey = process.env.BABEL_ENV || process.env.NODE_ENV || "development"; - if (this.options.env) { - this.mergeOptions(this.options.env[envKey], `direct.env.${envKey}`); - } + // merge in base options + this.mergeOptions(opts, "base"); // normalise this.normaliseOptions(opts); diff --git a/packages/babel-core/src/transformation/file/plugin-manager.js b/packages/babel-core/src/transformation/file/plugin-manager.js deleted file mode 100644 index 585e3280d6..0000000000 --- a/packages/babel-core/src/transformation/file/plugin-manager.js +++ /dev/null @@ -1,120 +0,0 @@ -import Plugin from "../plugin"; -import * as types from "babel-types"; -import * as messages from "babel-messages"; -import resolve from "try-resolve"; -import traverse from "babel-traverse"; -import parse from "../../helpers/parse"; - -var context = { - messages, - Plugin, - types, - parse, - traverse -}; - -export default class PluginManager { - static memoisedPlugins = []; - - static memoisePluginContainer(fn) { - for (var i = 0; i < PluginManager.memoisedPlugins.length; i++) { - var plugin = PluginManager.memoisedPlugins[i]; - if (plugin.container === fn) return plugin.transformer; - } - - var transformer = fn(context); - PluginManager.memoisedPlugins.push({ - container: fn, - transformer: transformer - }); - return transformer; - } - - static positions = ["before", "after"]; - - constructor({ file, transformers, before, after } = { transformers: {}, before: [], after: [] }) { - this.transformers = transformers; - this.file = file; - this.before = before; - this.after = after; - } - - subnormaliseString(name, position) { - // this is a plugin in the form of "foobar" or "foobar:after" - // where the optional colon is the delimiter for plugin position in the transformer stack - - var match = name.match(/^(.*?):(after|before)$/); - if (match) [, name, position] = match; - - var loc = resolve.relative(`babel-plugin-${name}`) || resolve.relative(name); - if (loc) { - var plugin = require(loc); - return { - position: position, - plugin: plugin.default || plugin - }; - } else { - throw new ReferenceError(messages.get("pluginUnknown", name)); - } - } - - validate(name, plugin) { - // validate transformer key - var key = plugin.key; - if (this.transformers[key]) { - throw new ReferenceError(messages.get("pluginKeyCollision", key)); - } - - // validate Transformer instance - if (!plugin.buildPass || plugin.constructor.name !== "Plugin") { - throw new TypeError(messages.get("pluginNotTransformer", name)); - } - - // register as a plugin - plugin.metadata.plugin = true; - } - - add(name) { - var position; - var plugin; - - if (name) { - if (typeof name === "object" && name.transformer) { - ({ transformer: plugin, position } = name); - } else if (typeof name !== "string") { - // not a string so we'll just assume that it's a direct Transformer instance, if not then - // the checks later on will complain - plugin = name; - } - - if (typeof name === "string") { - ({ plugin, position } = this.subnormaliseString(name, position)); - } - } else { - throw new TypeError(messages.get("pluginIllegalKind", typeof name, name)); - } - - // default position - position = position || "before"; - - // validate position - if (PluginManager.positions.indexOf(position) < 0) { - throw new TypeError(messages.get("pluginIllegalPosition", position, name)); - } - - // allow plugin containers to be specified so they don't have to manually require - if (typeof plugin === "function") { - plugin = PluginManager.memoisePluginContainer(plugin); - } - - // - this.validate(name, plugin); - - // build! - var pass = this.transformers[plugin.key] = plugin.buildPass(this.file); - if (pass.canTransform()) { - var stack = position === "before" ? this.before : this.after; - stack.push(pass); - } - } -} From c10af9236e2a5d91f1e18185b2fecc6a7cdb2286 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:32:37 +0100 Subject: [PATCH 114/174] remove transformerList option parser and remove redundant comments --- .../transformation/file/options/parsers.js | 36 ------------------- 1 file changed, 36 deletions(-) diff --git a/packages/babel-core/src/transformation/file/options/parsers.js b/packages/babel-core/src/transformation/file/options/parsers.js index 4738bc9b53..c6c6fd26f7 100644 --- a/packages/babel-core/src/transformation/file/options/parsers.js +++ b/packages/babel-core/src/transformation/file/options/parsers.js @@ -1,56 +1,20 @@ import slash from "slash"; import * as util from "../../../util"; -/** - * Get a transformer list from a value. - */ - -export function transformerList(val) { - return util.arrayify(val); -} - -/** - * Validate transformer list. Maps "all" to all transformer names. - */ - -transformerList.validate = function (key, val, pipeline) { - if (val.indexOf("all") >= 0 || val.indexOf(true) >= 0) { - val = Object.keys(pipeline.transformers); - } - - return pipeline._ensureTransformerNames(key, val); -}; - -/** - * Cast a value to a number. - */ - export function number(val) { return +val; } -/** - * Cast a value to a boolean. - */ - export var filename = slash; export function boolean(val) { return !!val; } -/** - * Cast a boolean-like string to a boolean. - */ - export function booleanString(val) { return util.booleanify(val); } -/** - * Cast a value to an array, splitting strings by ",". - */ - export function list(val) { return util.list(val); } From 8a32666052784425d3d71937b52841461cdce3eb Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:32:49 +0100 Subject: [PATCH 115/174] remove dead options --- .../transformation/file/options/config.json | 127 +----------------- 1 file changed, 6 insertions(+), 121 deletions(-) diff --git a/packages/babel-core/src/transformation/file/options/config.json b/packages/babel-core/src/transformation/file/options/config.json index f63e055bd5..d6d6ec5b68 100644 --- a/packages/babel-core/src/transformation/file/options/config.json +++ b/packages/babel-core/src/transformation/file/options/config.json @@ -15,11 +15,6 @@ "hidden": true }, - "extra": { - "hidden": true, - "default": {} - }, - "env": { "hidden": true, "default": {} @@ -30,33 +25,12 @@ "hidden": true }, - "moduleId": { - "description": "specify a custom name for module ids", - "type": "string" - }, - - "getModuleId": { - "hidden": true - }, - "retainLines": { "type": "boolean", "default": false, "description": "retain line numbers - will result in really ugly code" }, - "nonStandard": { - "type": "boolean", - "default": true, - "description": "enable/disable support for JSX and Flow (on by default)" - }, - - "experimental": { - "type": "boolean", - "description": "allow use of experimental transformers", - "default": false - }, - "highlightCode": { "description": "enable/disable ANSI syntax highlighting of code frames (on by default)", "type": "boolean", @@ -69,64 +43,12 @@ "hidden": true }, - "resolveModuleSource": { - "hidden": true - }, - - "stage": { - "description": "ECMAScript proposal stage version to allow [0-4]", - "shorthand": "e", - "type": "number", - "default": 2 - }, - - "blacklist": { - "type": "transformerList", - "description": "blacklist of transformers to NOT use", - "shorthand": "b", + "presets": { + "type": "list", + "description": "", "default": [] }, - "whitelist": { - "type": "transformerList", - "optional": true, - "description": "whitelist of transformers to ONLY use", - "shorthand": "l" - }, - - "optional": { - "type": "transformerList", - "description": "list of optional transformers to enable", - "default": [] - }, - - "modules": { - "type": "string", - "description": "module formatter type to use [common]", - "default": "common", - "shorthand": "m" - }, - - "moduleIds": { - "type": "boolean", - "default": false, - "shorthand": "M", - "description": "insert an explicit id for modules" - }, - - "loose": { - "type": "transformerList", - "description": "list of transformers to enable loose mode ON", - "shorthand": "L" - }, - - "jsxPragma": { - "type": "string", - "description": "custom pragma to use with JSX (same functionality as @jsx comments)", - "default": "React.createElement", - "shorthand": "P" - }, - "plugins": { "type": "list", "description": "", @@ -179,32 +101,6 @@ "description": "do not include superfluous whitespace characters and line terminators [true|false|auto]" }, - "keepModuleIdExtensions": { - "type": "boolean", - "description": "keep extensions when generating module ids", - "default": false, - "shorthand": "k" - }, - - "auxiliaryCommentBefore": { - "type": "string", - "default": "", - "description": "attach a comment before all helper declarations and auxiliary code" - }, - - "auxiliaryCommentAfter": { - "type": "string", - "default": "", - "description": "attach a comment after all helper declarations and auxiliary code" - }, - - "externalHelpers": { - "type": "boolean", - "default": false, - "shorthand": "r", - "description": "uses a reference to `babelHelpers` instead of placing helpers at the top of your code." - }, - "sourceMap": { "alias": "sourceMaps", "hidden": true @@ -232,21 +128,10 @@ "description": "the root from which all sources are relative" }, - "moduleRoot": { - "type": "filename", - "description": "optional prefix for the AMD module formatter that will be prepend to the filename on module definitions" - }, - - "breakConfig": { - "type": "boolean", - "default": false, - "hidden": true, - "description": "stop trying to load .babelrc files" - }, - "babelrc": { - "description": "Specify a custom list of babelrc files to use", - "type": "list" + "description": "Whether or not to look up .babelrc and .babelignore files", + "type": "boolean", + "default": true }, "sourceType": { From 5dadb67a1aefd67001b69d02ea7d741ff7ea56b2 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Tue, 15 Sep 2015 06:33:50 +0100 Subject: [PATCH 116/174] remove transformers and module formatters from $ babel --help --- packages/babel-cli/src/babel/index.js | 39 ++++++--------------------- 1 file changed, 8 insertions(+), 31 deletions(-) diff --git a/packages/babel-cli/src/babel/index.js b/packages/babel-cli/src/babel/index.js index 93faa1e85e..46fc228c15 100755 --- a/packages/babel-cli/src/babel/index.js +++ b/packages/babel-cli/src/babel/index.js @@ -2,17 +2,14 @@ require("babel-core"); -var moduleFormatters = require("babel-core/lib/transformation/modules"); -var pathExists = require("path-exists"); -var commander = require("commander"); -var transform = require("babel-core").transform; -var kebabCase = require("lodash/string/kebabCase"); -var options = require("babel-core").options; -var util = require("babel-core").util; -var uniq = require("lodash/array/uniq"); -var each = require("lodash/collection/each"); -var keys = require("lodash/object/keys"); -var glob = require("glob"); +var pathExists = require("path-exists"); +var commander = require("commander"); +var kebabCase = require("lodash/string/kebabCase"); +var options = require("babel-core").options; +var util = require("babel-core").util; +var uniq = require("lodash/array/uniq"); +var each = require("lodash/collection/each"); +var glob = require("glob"); each(options, function (option, key) { if (option.hidden) return; @@ -47,26 +44,6 @@ commander.option("-d, --out-dir [out]", "Compile an input directory of modules i commander.option("-D, --copy-files", "When compiling a directory copy over non-compilable files"); commander.option("-q, --quiet", "Don't log anything"); -commander.on("--help", function () { - var outKeys = function (title, obj) { - console.log(" " + title + ":"); - console.log(); - - each(keys(obj).sort(), function (key) { - if (key[0] === "_") return; - - if (obj[key].metadata && obj[key].metadata.optional) key = "[" + key + "]"; - - console.log(" - " + key); - }); - - console.log(); - }; - - outKeys("Transformers", transform.pipeline.transformers); - outKeys("Module formatters", moduleFormatters); -}); - var pkg = require("../../package.json"); commander.version(pkg.version + " (babel-core " + require("babel-core").version + ")"); commander.usage("[options] "); From b1648fb339e3e1a542bd0658a26e6ff02c30dc4f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 18 Sep 2015 18:40:46 +0100 Subject: [PATCH 117/174] switch babel-node binary to use v8 flags --- packages/babel-cli/package.json | 5 +- packages/babel-cli/src/babel-node.js | 477 +++------------------------ 2 files changed, 54 insertions(+), 428 deletions(-) diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index 00ed33de06..be27502a25 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -18,8 +18,9 @@ "output-file-sync": "^1.1.0", "path-exists": "^1.0.0", "path-is-absolute": "^1.0.0", + "slash": "^1.0.0", "source-map": "^0.4.0", - "slash": "^1.0.0" + "v8flags": "^2.0.10" }, "bin": { "babel": "./bin/babel.js", @@ -27,4 +28,4 @@ "babel-external-helpers": "./bin/babel-external-helpers.js", "babel-plugin": "./bin/babel-plugin.js" } -} \ No newline at end of file +} diff --git a/packages/babel-cli/src/babel-node.js b/packages/babel-cli/src/babel-node.js index 7e9aa639ff..fadf11fcae 100755 --- a/packages/babel-cli/src/babel-node.js +++ b/packages/babel-cli/src/babel-node.js @@ -3,7 +3,9 @@ * when found, before invoking the "real" _babel-node(1) executable. */ +var getV8Flags = require("v8flags"); var path = require("path"); + var args = [path.join(__dirname, "_babel-node")]; var babelArgs = process.argv.slice(2); @@ -16,434 +18,57 @@ if (argSeparator > -1) { babelArgs = babelArgs.slice(0, argSeparator); } -babelArgs.forEach(function(arg){ - var flag = arg.split("=")[0]; +getV8Flags(function (v8Flags) { + babelArgs.forEach(function(arg){ + var flag = arg.split("=")[0]; - switch (flag) { - case "-d": - args.unshift("--debug"); - break; + switch (flag) { + case "-d": + args.unshift("--debug"); + break; - case "debug": - case "--debug": - case "--debug-brk": - args.unshift(arg); - break; - - case "-gc": - case "--expose-gc": - args.unshift("--expose-gc"); - break; - - case "--use_strict": - case "--es_staging": - case "--harmony": - case "--harmony_shipping": - case "--harmony_modules": - case "--harmony_arrays": - case "--harmony_array_includes": - case "--harmony_regexps": - case "--harmony_arrow_functions": - case "--harmony_proxies": - case "--harmony_sloppy": - case "--harmony_unicode": - case "--harmony_tostring": - case "--harmony_numeric_literals": - case "--harmony_strings": - case "--harmony_scoping": - case "--harmony_classes": - case "--harmony_object_literals": - case "--harmony_templates": - case "--harmony_rest_parameters": - case "--harmony_generators": - case "--compiled_keyed_generic_loads": - case "--pretenuring_call_new": - case "--allocation_site_pretenuring": - case "--trace_pretenuring": - case "--trace_pretenuring_statistics": - case "--track_fields": - case "--track_double_fields": - case "--track_heap_object_fields": - case "--track_computed_fields": - case "--track_field_types": - case "--smi_binop": - case "--vector_ics": - case "--optimize_for_size": - case "--unbox_double_arrays": - case "--string_slices": - case "--crankshaft": - case "--hydrogen_filter": - case "--use_gvn": - case "--gvn_iterations": - case "--use_canonicalizing": - case "--use_inlining": - case "--use_escape_analysis": - case "--use_allocation_folding": - case "--use_local_allocation_folding": - case "--use_write_barrier_elimination": - case "--max_inlining_levels": - case "--max_inlined_source_size": - case "--max_inlined_nodes": - case "--max_inlined_nodes_cumulative": - case "--loop_invariant_code_motion": - case "--fast_math": - case "--collect_megamorphic_maps_from_stub_cache": - case "--hydrogen_stats": - case "--trace_check_elimination": - case "--trace_hydrogen": - case "--trace_hydrogen_filter": - case "--trace_hydrogen_stubs": - case "--trace_hydrogen_file": - case "--trace_phase": - case "--trace_inlining": - case "--trace_load_elimination": - case "--trace_store_elimination": - case "--trace_alloc": - case "--trace_all_uses": - case "--trace_range": - case "--trace_gvn": - case "--trace_representation": - case "--trace_removable_simulates": - case "--trace_escape_analysis": - case "--trace_allocation_folding": - case "--trace_track_allocation_sites": - case "--trace_migration": - case "--trace_generalization": - case "--stress_pointer_maps": - case "--stress_environments": - case "--deopt_every_n_times": - case "--deopt_every_n_garbage_collections": - case "--print_deopt_stress": - case "--trap_on_deopt": - case "--trap_on_stub_deopt": - case "--deoptimize_uncommon_cases": - case "--polymorphic_inlining": - case "--use_osr": - case "--array_bounds_checks_elimination": - case "--trace_bce": - case "--array_bounds_checks_hoisting": - case "--array_index_dehoisting": - case "--analyze_environment_liveness": - case "--load_elimination": - case "--check_elimination": - case "--store_elimination": - case "--dead_code_elimination": - case "--fold_constants": - case "--trace_dead_code_elimination": - case "--unreachable_code_elimination": - case "--trace_osr": - case "--stress_runs": - case "--lookup_sample_by_shared": - case "--cache_optimized_code": - case "--flush_optimized_code_cache": - case "--inline_construct": - case "--inline_arguments": - case "--inline_accessors": - case "--escape_analysis_iterations": - case "--optimize_for_in": - case "--concurrent_recompilation": - case "--job_based_recompilation": - case "--trace_concurrent_recompilation": - case "--concurrent_recompilation_queue_length": - case "--concurrent_recompilation_delay": - case "--block_concurrent_recompilation": - case "--concurrent_osr": - case "--omit_map_checks_for_leaf_maps": - case "--turbo_filter": - case "--trace_turbo": - case "--trace_turbo_graph": - case "--trace_turbo_cfg_file": - case "--trace_turbo_types": - case "--trace_turbo_scheduler": - case "--trace_turbo_reduction": - case "--trace_turbo_jt": - case "--turbo_asm": - case "--turbo_verify": - case "--turbo_stats": - case "--turbo_types": - case "--turbo_source_positions": - case "--context_specialization": - case "--turbo_deoptimization": - case "--turbo_inlining": - case "--turbo_inlining_intrinsics": - case "--trace_turbo_inlining": - case "--loop_assignment_analysis": - case "--turbo_profiling": - case "--turbo_reuse_spill_slots": - case "--turbo_delay_ssa_decon": - case "--turbo_move_optimization": - case "--turbo_jt": - case "--typed_array_max_size_in_heap": - case "--frame_count": - case "--interrupt_budget": - case "--type_info_threshold": - case "--generic_ic_threshold": - case "--self_opt_count": - case "--trace_opt_verbose": - case "--debug_code": - case "--code_comments": - case "--enable_sse3": - case "--enable_sse4_1": - case "--enable_sahf": - case "--enable_avx": - case "--enable_fma3": - case "--enable_vfp3": - case "--enable_armv7": - case "--enable_armv8": - case "--enable_neon": - case "--enable_sudiv": - case "--enable_mls": - case "--enable_movw_movt": - case "--enable_unaligned_accesses": - case "--enable_32dregs": - case "--enable_vldr_imm": - case "--force_long_branches": - case "--expose_natives_as": - case "--expose_debug_as": - case "--expose_free_buffer": - case "--expose_gc": - case "--expose_gc_as": - case "--expose_externalize_string": - case "--expose_trigger_failure": - case "--stack_trace_limit": - case "--builtins_in_stack_traces": - case "--disable_native_files": - case "--inline_new": - case "--trace_codegen": - case "--trace": - case "--mask_constants_with_cookie": - case "--lazy": - case "--trace_opt": - case "--trace_opt_stats": - case "--opt": - case "--always_opt": - case "--always_osr": - case "--prepare_always_opt": - case "--trace_deopt": - case "--trace_stub_failures": - case "--serialize_toplevel": - case "--serialize_inner": - case "--trace_serializer": - case "--min_preparse_length": - case "--max_opt_count": - case "--compilation_cache": - case "--cache_prototype_transitions": - case "--cpu_profiler_sampling_interval": - case "--trace_debug_json": - case "--trace_js_array_abuse": - case "--trace_external_array_abuse": - case "--trace_array_abuse": - case "--enable_liveedit": - case "--hard_abort": - case "--stack_size": - case "--max_stack_trace_source_length": - case "--always_inline_smi_code": - case "--min_semi_space_size": - case "--target_semi_space_size": - case "--max_semi_space_size": - case "--semi_space_growth_factor": - case "--experimental_new_space_growth_heuristic": - case "--max_old_space_size": - case "--initial_old_space_size": - case "--max_executable_size": - case "--gc_global": - case "--gc_interval": - case "--trace_gc": - case "--trace_gc_nvp": - case "--trace_gc_ignore_scavenger": - case "--trace_idle_notification": - case "--trace_idle_notification_verbose": - case "--print_cumulative_gc_stat": - case "--print_max_heap_committed": - case "--trace_gc_verbose": - case "--trace_fragmentation": - case "--collect_maps": - case "--weak_embedded_maps_in_optimized_code": - case "--weak_embedded_objects_in_optimized_code": - case "--flush_code": - case "--flush_code_incrementally": - case "--trace_code_flushing": - case "--age_code": - case "--incremental_marking": - case "--incremental_marking_steps": - case "--concurrent_sweeping": - case "--trace_incremental_marking": - case "--track_gc_object_stats": - case "--heap_profiler_trace_objects": - case "--use_idle_notification": - case "--use_ic": - case "--trace_ic": - case "--native_code_counters": - case "--always_compact": - case "--never_compact": - case "--compact_code_space": - case "--incremental_code_compaction": - case "--cleanup_code_caches_at_gc": - case "--use_marking_progress_bar": - case "--zap_code_space": - case "--random_seed": - case "--trace_weak_arrays": - case "--track_prototype_users": - case "--use_verbose_printer": - case "--allow_natives_syntax": - case "--trace_parse": - case "--trace_sim": - case "--debug_sim": - case "--check_icache": - case "--stop_sim_at": - case "--sim_stack_alignment": - case "--sim_stack_size": - case "--log_regs_modified": - case "--log_colour": - case "--ignore_asm_unimplemented_break": - case "--trace_sim_messages": - case "--stack_trace_on_illegal": - case "--abort_on_uncaught_exception": - case "--randomize_hashes": - case "--hash_seed": - case "--profile_deserialization": - case "--regexp_optimization": - case "--testing_bool_flag": - case "--testing_maybe_bool_flag": - case "--testing_int_flag": - case "--testing_float_flag": - case "--testing_string_flag": - case "--testing_prng_seed": - case "--testing_serialization_file": - case "--startup_blob": - case "--profile_hydrogen_code_stub_compilation": - case "--predictable": - case "--help": - case "--dump_counters": - case "--debugger": - case "--map_counters": - case "--js_arguments": - case "--gdbjit": - case "--gdbjit_full": - case "--gdbjit_dump": - case "--gdbjit_dump_filter": - case "--force_marking_deque_overflows": - case "--stress_compaction": - case "--log": - case "--log_all": - case "--log_api": - case "--log_code": - case "--log_gc": - case "--log_handles": - case "--log_snapshot_positions": - case "--log_suspect": - case "--prof": - case "--prof_browser_mode": - case "--log_regexp": - case "--logfile": - case "--logfile_per_isolate": - case "--ll_prof": - case "--perf_basic_prof": - case "--perf_jit_prof": - case "--gc_fake_mmap": - case "--log_internal_timer_events": - case "--log_timer_events": - case "--log_instruction_stats": - case "--log_instruction_file": - case "--log_instruction_period": - case "--redirect_code_traces": - case "--redirect_code_traces_to": - case "--hydrogen_track_positions": - case "--trace_elements_transitions": - case "--trace_creation_allocation_sites": - case "--print_code_stubs": - case "--test_secondary_stub_cache": - case "--test_primary_stub_cache": - case "--print_code": - case "--print_opt_code": - case "--print_unopt_code": - case "--print_code_verbose": - case "--print_builtin_code": - case "--sodium": - case "--print_all_code": - case "--es5_readonly": - case "--es52_globals": - case "--harmony_typeof": - case "--harmony_collections": - case "--packed_arrays": - case "--smi_only_arrays": - case "--clever_optimizations": - case "--use_range": - case "--eliminate_dead_phis": - case "--optimize_closures": - case "--loop_weight": - case "--opt_safe_uint32_operations": - case "--parallel_recompilation": - case "--trace_parallel_recompilation": - case "--parallel_recompilation_queue_length": - case "--experimental_profiler": - case "--watch_ic_patching": - case "--self_optimization": - case "--direct_self_opt": - case "--retry_self_opt": - case "--count_based_interrupts": - case "--interrupt_at_exit": - case "--weighted_back_edges": - case "--debug_code (generate extra code": - case "--enable_sse2": - case "--enable_cmov": - case "--enable_rdtsc": - case "--enable_vfp2": - case "--enable_fpu": - case "--stack_trace_on_abort": - case "--always_full_compiler": - case "--debugger_auto_break": - case "--break_on_abort": - case "--max_new_space_size": - case "--trace_external_memory": - case "--lazy_sweeping": - case "--trace_exception": - case "--preallocate_message_memory": - case "--preemption": - case "--extra_code": - case "--remote_debugger": - case "--debugger_agent": - case "--debugger_port": - case "--debug_compile_events": - case "--debug_script_collected_events": - case "--log_runtime": - case "--prof_auto": - case "--prof_lazy": - case "--sliding_state_window": - case "--nolazy": - args.unshift(arg); - break; - - default: - if (arg.indexOf("--trace") === 0) { + case "debug": + case "--debug": + case "--debug-brk": args.unshift(arg); - } else { - args.push(arg); - } - break; + break; + + case "-gc": + case "--expose-gc": + args.unshift("--expose-gc"); + break; + + default: + if (v8Flags.indexOf(arg) >= 0 || arg.indexOf("--trace") === 0) { + args.unshift(arg); + } else { + args.push(arg); + } + break; + } + }); + + // append arguments passed after -- + if (argSeparator > -1) { + args = args.concat(userArgs); + } + + try { + var kexec = require("kexec"); + kexec(process.argv[0], args); + } catch (err) { + if (err.code !== "MODULE_NOT_FOUND") throw err; + + var child_process = require("child_process"); + var proc = child_process.spawn(process.argv[0], args, { stdio: "inherit" }); + proc.on("exit", function (code, signal) { + process.on("exit", function () { + if (signal) { + process.kill(process.pid, signal); + } else { + process.exit(code); + } + }); + }); } }); - -// append arguments passed after -- -if (argSeparator > -1) { - args = args.concat(userArgs); -} - -try { - var kexec = require("kexec"); - kexec(process.argv[0], args); -} catch (err) { - if (err.code !== "MODULE_NOT_FOUND") throw err; - - var child_process = require("child_process"); - var proc = child_process.spawn(process.argv[0], args, { stdio: "inherit" }); - proc.on("exit", function (code, signal) { - process.on("exit", function () { - if (signal) { - process.kill(process.pid, signal); - } else { - process.exit(code); - } - }); - }); -} From 901c578e019b66ee1f1a2c7b0597f8f7ae7c33c4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 18 Sep 2015 18:40:59 +0100 Subject: [PATCH 118/174] remove unused templates --- .../array-comprehension-container.js | 5 ----- .../transformation/templates/array-push.js | 1 - .../templates/class-decorator.js | 1 - .../class-derived-default-constructor.js | 3 --- .../templates/default-parameter-assign.js | 1 - .../templates/default-parameter.js | 1 - .../transformation/templates/for-of-array.js | 1 - .../transformation/templates/for-of-loose.js | 14 ------------- .../src/transformation/templates/for-of.js | 21 ------------------- .../templates/let-scoping-return.js | 1 - .../src/transformation/templates/rest.js | 3 --- .../templates/tail-call-body.js | 4 ---- 12 files changed, 56 deletions(-) delete mode 100644 packages/babel-core/src/transformation/templates/array-comprehension-container.js delete mode 100644 packages/babel-core/src/transformation/templates/array-push.js delete mode 100644 packages/babel-core/src/transformation/templates/class-decorator.js delete mode 100644 packages/babel-core/src/transformation/templates/class-derived-default-constructor.js delete mode 100644 packages/babel-core/src/transformation/templates/default-parameter-assign.js delete mode 100644 packages/babel-core/src/transformation/templates/default-parameter.js delete mode 100644 packages/babel-core/src/transformation/templates/for-of-array.js delete mode 100644 packages/babel-core/src/transformation/templates/for-of-loose.js delete mode 100644 packages/babel-core/src/transformation/templates/for-of.js delete mode 100644 packages/babel-core/src/transformation/templates/let-scoping-return.js delete mode 100644 packages/babel-core/src/transformation/templates/rest.js delete mode 100644 packages/babel-core/src/transformation/templates/tail-call-body.js diff --git a/packages/babel-core/src/transformation/templates/array-comprehension-container.js b/packages/babel-core/src/transformation/templates/array-comprehension-container.js deleted file mode 100644 index e32bc59595..0000000000 --- a/packages/babel-core/src/transformation/templates/array-comprehension-container.js +++ /dev/null @@ -1,5 +0,0 @@ -(function () { - var KEY = []; - - return KEY; -})(); diff --git a/packages/babel-core/src/transformation/templates/array-push.js b/packages/babel-core/src/transformation/templates/array-push.js deleted file mode 100644 index 2fe96db95b..0000000000 --- a/packages/babel-core/src/transformation/templates/array-push.js +++ /dev/null @@ -1 +0,0 @@ -KEY.push(STATEMENT); diff --git a/packages/babel-core/src/transformation/templates/class-decorator.js b/packages/babel-core/src/transformation/templates/class-decorator.js deleted file mode 100644 index 565c4ac8b6..0000000000 --- a/packages/babel-core/src/transformation/templates/class-decorator.js +++ /dev/null @@ -1 +0,0 @@ -CLASS_REF = DECORATOR(CLASS_REF) || CLASS_REF; diff --git a/packages/babel-core/src/transformation/templates/class-derived-default-constructor.js b/packages/babel-core/src/transformation/templates/class-derived-default-constructor.js deleted file mode 100644 index 7f6d7e288d..0000000000 --- a/packages/babel-core/src/transformation/templates/class-derived-default-constructor.js +++ /dev/null @@ -1,3 +0,0 @@ -(function () { - super(...arguments); -}) diff --git a/packages/babel-core/src/transformation/templates/default-parameter-assign.js b/packages/babel-core/src/transformation/templates/default-parameter-assign.js deleted file mode 100644 index 847a500e42..0000000000 --- a/packages/babel-core/src/transformation/templates/default-parameter-assign.js +++ /dev/null @@ -1 +0,0 @@ -if (VARIABLE_NAME === undefined) VARIABLE_NAME = DEFAULT_VALUE; diff --git a/packages/babel-core/src/transformation/templates/default-parameter.js b/packages/babel-core/src/transformation/templates/default-parameter.js deleted file mode 100644 index 3db258780a..0000000000 --- a/packages/babel-core/src/transformation/templates/default-parameter.js +++ /dev/null @@ -1 +0,0 @@ -let VARIABLE_NAME = ARGUMENTS.length <= ARGUMENT_KEY || ARGUMENTS[ARGUMENT_KEY] === undefined ? DEFAULT_VALUE : ARGUMENTS[ARGUMENT_KEY]; diff --git a/packages/babel-core/src/transformation/templates/for-of-array.js b/packages/babel-core/src/transformation/templates/for-of-array.js deleted file mode 100644 index 7f27900c15..0000000000 --- a/packages/babel-core/src/transformation/templates/for-of-array.js +++ /dev/null @@ -1 +0,0 @@ -for (var KEY = 0; KEY < ARR.length; KEY++) BODY; diff --git a/packages/babel-core/src/transformation/templates/for-of-loose.js b/packages/babel-core/src/transformation/templates/for-of-loose.js deleted file mode 100644 index 9b463868ce..0000000000 --- a/packages/babel-core/src/transformation/templates/for-of-loose.js +++ /dev/null @@ -1,14 +0,0 @@ -for (var LOOP_OBJECT = OBJECT, - IS_ARRAY = Array.isArray(LOOP_OBJECT), - INDEX = 0, - LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) { - var ID; - if (IS_ARRAY) { - if (INDEX >= LOOP_OBJECT.length) break; - ID = LOOP_OBJECT[INDEX++]; - } else { - INDEX = LOOP_OBJECT.next(); - if (INDEX.done) break; - ID = INDEX.value; - } -} diff --git a/packages/babel-core/src/transformation/templates/for-of.js b/packages/babel-core/src/transformation/templates/for-of.js deleted file mode 100644 index 3257fad723..0000000000 --- a/packages/babel-core/src/transformation/templates/for-of.js +++ /dev/null @@ -1,21 +0,0 @@ -var ITERATOR_COMPLETION = true; -var ITERATOR_HAD_ERROR_KEY = false; -var ITERATOR_ERROR_KEY = undefined; -try { - for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) { - - } -} catch (err) { - ITERATOR_HAD_ERROR_KEY = true; - ITERATOR_ERROR_KEY = err; -} finally { - try { - if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) { - ITERATOR_KEY.return(); - } - } finally { - if (ITERATOR_HAD_ERROR_KEY) { - throw ITERATOR_ERROR_KEY; - } - } -} diff --git a/packages/babel-core/src/transformation/templates/let-scoping-return.js b/packages/babel-core/src/transformation/templates/let-scoping-return.js deleted file mode 100644 index c5ec90d02f..0000000000 --- a/packages/babel-core/src/transformation/templates/let-scoping-return.js +++ /dev/null @@ -1 +0,0 @@ -if (typeof RETURN === "object") return RETURN.v; diff --git a/packages/babel-core/src/transformation/templates/rest.js b/packages/babel-core/src/transformation/templates/rest.js deleted file mode 100644 index 5ba3f315fa..0000000000 --- a/packages/babel-core/src/transformation/templates/rest.js +++ /dev/null @@ -1,3 +0,0 @@ -for (var LEN = ARGUMENTS.length, ARRAY: ARRAY_TYPE = Array(ARRAY_LEN), KEY = START; KEY < LEN; KEY++) { - ARRAY[ARRAY_KEY] = ARGUMENTS[KEY]; -} diff --git a/packages/babel-core/src/transformation/templates/tail-call-body.js b/packages/babel-core/src/transformation/templates/tail-call-body.js deleted file mode 100644 index 57c3e5e018..0000000000 --- a/packages/babel-core/src/transformation/templates/tail-call-body.js +++ /dev/null @@ -1,4 +0,0 @@ -{ - var AGAIN_ID = true; - FUNCTION_ID: while (AGAIN_ID) BLOCK -} From c695248d896860fc4ccc521b547a8a721e72f127 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 18 Sep 2015 18:41:19 +0100 Subject: [PATCH 119/174] remove dead deprecated/aliases for transformers --- .../src/transformation/transformers/aliases.json | 6 ------ .../transformation/transformers/deprecated.json | 16 ---------------- 2 files changed, 22 deletions(-) delete mode 100644 packages/babel-core/src/transformation/transformers/aliases.json delete mode 100644 packages/babel-core/src/transformation/transformers/deprecated.json diff --git a/packages/babel-core/src/transformation/transformers/aliases.json b/packages/babel-core/src/transformation/transformers/aliases.json deleted file mode 100644 index 4424d77ba9..0000000000 --- a/packages/babel-core/src/transformation/transformers/aliases.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "useStrict": "strict", - "es5.runtime": "runtime", - "es6.runtime": "runtime", - "minification.inlineExpressions": "minification.constantFolding" -} diff --git a/packages/babel-core/src/transformation/transformers/deprecated.json b/packages/babel-core/src/transformation/transformers/deprecated.json deleted file mode 100644 index e6220dc9f6..0000000000 --- a/packages/babel-core/src/transformation/transformers/deprecated.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "selfContained": "runtime", - "unicode-regex": "regex.unicode", - "spec.typeofSymbol": "es6.spec.symbols", - "es6.symbols": "es6.spec.symbols", - "es6.blockScopingTDZ": "es6.blockScoping", - "es6.spec.blockScoping": "es6.blockScoping", - - "utility.inlineExpressions": "minification.constantFolding", - "utility.deadCodeElimination": "minification.deadCodeElimination", - "utility.removeConsoleCalls": "minification.removeConsole", - "utility.removeDebugger": "minification.removeDebugger", - - "es6.parameters.rest": "es6.parameters", - "es6.parameters.default": "es6.parameters" -} From 0708edb92720569fea83be63281cd4d3ab217553 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 18 Sep 2015 18:41:44 +0100 Subject: [PATCH 120/174] it's now safe to use path.remove() --- packages/babel-traverse/src/path/removal.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/babel-traverse/src/path/removal.js b/packages/babel-traverse/src/path/removal.js index 8b7ca1b5b3..0567b83f12 100644 --- a/packages/babel-traverse/src/path/removal.js +++ b/packages/babel-traverse/src/path/removal.js @@ -3,21 +3,17 @@ import * as removalHooks from "./lib/removal-hooks"; /** - * Deprecated in favor of `dangerouslyRemove` as it's far more scary and more accurately portrays - * the risk. + * This is now safe. */ -export function remove() { - console.trace("Path#remove has been renamed to Path#dangerouslyRemove, removing a node is extremely dangerous so please refrain using it."); - return this.dangerouslyRemove(); -} +export var dangerouslyRemove = remove; /** * Dangerously remove the current node. This may sometimes result in a tainted * invalid AST so use with caution. */ -export function dangerouslyRemove() { +export function remove() { this._assertUnremoved(); this.resync(); From c99a17940144c39707c33bdd19f5577041e87e35 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 18 Sep 2015 18:45:55 +0100 Subject: [PATCH 121/174] var -> let --- packages/babel-cli/src/_babel-node.js | 30 ++-- packages/babel-cli/src/babel-node.js | 20 +-- packages/babel-cli/src/babel-plugin/index.js | 22 +-- packages/babel-cli/src/babel/dir.js | 32 ++-- packages/babel-cli/src/babel/file.js | 58 +++--- packages/babel-cli/src/babel/index.js | 32 ++-- packages/babel-cli/src/babel/util.js | 20 +-- packages/babel-core/src/api/browser.js | 22 +-- packages/babel-core/src/api/node.js | 6 +- packages/babel-core/src/api/register/cache.js | 2 +- packages/babel-core/src/api/register/node.js | 52 +++--- packages/babel-core/src/helpers/merge.js | 4 +- packages/babel-core/src/helpers/parse.js | 2 +- packages/babel-core/src/store.js | 4 +- .../src/tools/build-external-helpers.js | 22 +-- .../src/transformation/file/index.js | 150 ++++++++-------- .../src/transformation/file/logger.js | 8 +- .../src/transformation/file/options/index.js | 12 +- .../file/options/option-manager.js | 56 +++--- .../transformation/file/options/parsers.js | 2 +- ...-binary-assignment-operator-transformer.js | 16 +- .../helpers/build-comprehension.js | 4 +- ...itional-assignment-operator-transformer.js | 14 +- .../helpers/build-react-transformer.js | 30 ++-- .../transformation/helpers/call-delegate.js | 12 +- .../src/transformation/helpers/define-map.js | 26 +-- .../helpers/explode-assignable-expression.js | 22 +-- .../helpers/get-function-arity.js | 4 +- .../helpers/memoise-decorators.js | 12 +- .../src/transformation/helpers/name-method.js | 44 ++--- .../src/transformation/helpers/regex.js | 2 +- .../helpers/remap-async-to-generator.js | 16 +- .../transformation/helpers/replace-supers.js | 54 +++--- .../babel-core/src/transformation/index.js | 4 +- .../internal-plugins/block-hoist.js | 8 +- .../internal-plugins/shadow-functions.js | 14 +- .../src/transformation/modules/_default.js | 48 ++--- .../src/transformation/modules/_strict.js | 2 +- .../src/transformation/modules/amd.js | 30 ++-- .../src/transformation/modules/common.js | 20 +-- .../src/transformation/modules/ignore.js | 2 +- .../transformation/modules/lib/metadata.js | 38 ++-- .../src/transformation/modules/lib/remaps.js | 20 +-- .../src/transformation/modules/system.js | 62 +++---- .../src/transformation/modules/umd.js | 30 ++-- .../babel-core/src/transformation/pipeline.js | 6 +- .../src/transformation/plugin-pass.js | 2 +- .../babel-core/src/transformation/plugin.js | 2 +- .../transformers/es5/properties.mutators.js | 12 +- .../transformers/es6/block-scoping/index.js | 168 +++++++++--------- .../transformers/es6/block-scoping/tdz.js | 20 +-- .../transformers/es6/classes/index.js | 4 +- .../transformers/es6/classes/loose.js | 6 +- .../transformers/es6/classes/vanilla.js | 90 +++++----- .../transformation/transformers/es6/for-of.js | 62 +++---- .../transformers/es6/modules.js | 16 +- .../transformers/es6/object-super.js | 12 +- .../transformers/es6/parameters/default.js | 30 ++-- .../es6/parameters/destructuring.js | 23 +++ .../transformers/es6/parameters/index.js | 4 +- .../transformers/es6/parameters/rest.js | 46 ++--- .../transformers/es6/regex.sticky.js | 2 +- .../transformers/es6/regex.unicode.js | 2 +- .../transformers/es6/spec.arrow-functions.js | 6 +- .../transformers/es6/spec.modules.js | 6 +- .../transformers/es6/spec.symbols.js | 12 +- .../es6/spec.template-literals.js | 6 +- .../transformers/es6/tail-call.js | 72 ++++---- .../transformers/es7/async-functions.js | 2 +- .../transformers/es7/class-properties.js | 2 +- .../transformers/es7/comprehensions.js | 20 +-- .../transformers/es7/decorators.js | 10 +- .../transformers/es7/do-expressions.js | 6 +- .../es7/exponentiation-operator.js | 4 +- .../transformers/es7/export-extensions.js | 14 +- .../transformers/es7/function-bind.js | 18 +- .../transformers/es7/object-rest-spread.js | 18 +- .../es7/trailing-function-commas.js | 2 +- .../transformation/transformers/filters.js | 6 +- .../transformers/internal/hoist-directives.js | 8 +- .../transformers/internal/module-formatter.js | 6 +- .../transformers/internal/modules.js | 32 ++-- .../transformers/internal/validation.js | 10 +- .../transformers/optimisation/flow.for-of.js | 4 +- .../optimisation/modules.system.js | 8 +- .../optimisation/react.inline-elements.js | 26 +-- .../transformers/other/async-to-generator.js | 4 +- .../transformers/other/bluebird-coroutines.js | 4 +- .../transformers/other/react-compat.js | 4 +- .../transformers/other/react.js | 18 +- .../transformers/other/regenerator.js | 16 +- .../transformers/other/strict.js | 8 +- .../transformers/spec/function-name.js | 12 +- packages/babel-core/src/util.js | 26 +-- packages/babel-generator/src/buffer.js | 16 +- .../src/generators/expressions.js | 22 +-- .../babel-generator/src/generators/flow.js | 4 +- .../babel-generator/src/generators/jsx.js | 4 +- .../babel-generator/src/generators/methods.js | 6 +- .../babel-generator/src/generators/modules.js | 12 +- .../src/generators/statements.js | 28 +-- .../src/generators/template-literals.js | 6 +- .../babel-generator/src/generators/types.js | 10 +- packages/babel-generator/src/index.js | 60 +++---- packages/babel-generator/src/node/index.js | 24 +-- .../babel-generator/src/node/parentheses.js | 10 +- packages/babel-generator/src/node/printer.js | 2 +- .../babel-generator/src/node/whitespace.js | 10 +- packages/babel-generator/src/position.js | 4 +- packages/babel-generator/src/source-map.js | 12 +- packages/babel-generator/src/whitespace.js | 34 ++-- 111 files changed, 1137 insertions(+), 1114 deletions(-) create mode 100644 packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js diff --git a/packages/babel-cli/src/_babel-node.js b/packages/babel-cli/src/_babel-node.js index 3a6f4e309d..8e89bf0e63 100644 --- a/packages/babel-cli/src/_babel-node.js +++ b/packages/babel-cli/src/_babel-node.js @@ -9,7 +9,7 @@ import * as babel from "babel-core"; import vm from "vm"; import _ from "lodash"; -var program = new commander.Command("babel-node"); +let program = new commander.Command("babel-node"); program.option("-e, --eval [script]", "Evaluate script"); program.option("-p, --print [code]", "Evaluate script and print result"); @@ -18,7 +18,7 @@ program.option("-x, --extensions [extensions]", "List of extensions to hook into program.option("-w, --plugins [string]", "TODO", util.list); program.option("-b, --presets [string]", "TODO", util.list); -var pkg = require("../package.json"); +let pkg = require("../package.json"); program.version(pkg.version); program.usage("[options] [ -e script | script.js ] [arguments]"); program.parse(process.argv); @@ -35,7 +35,7 @@ babel.register({ // -var replPlugin = new babel.Plugin("repl", { +let replPlugin = new babel.Plugin("repl", { visitor: { ModuleDeclaration() { throw this.errorWithNode("Modules aren't supported in the REPL"); @@ -51,7 +51,7 @@ var replPlugin = new babel.Plugin("repl", { // -var _eval = function (code, filename) { +let _eval = function (code, filename) { code = code.trim(); if (!code) return undefined; @@ -70,13 +70,13 @@ var _eval = function (code, filename) { }; if (program.eval || program.print) { - var code = program.eval; + let code = program.eval; if (!code || code === true) code = program.print; global.__filename = "[eval]"; global.__dirname = process.cwd(); - var module = new Module(global.__filename); + let module = new Module(global.__filename); module.filename = global.__filename; module.paths = Module._nodeModulePaths(global.__dirname); @@ -84,18 +84,18 @@ if (program.eval || program.print) { global.module = module; global.require = module.require.bind(module); - var result = _eval(code, global.__filename); + let result = _eval(code, global.__filename); if (program.print) { - var output = _.isString(result) ? result : inspect(result); + let output = _.isString(result) ? result : inspect(result); process.stdout.write(output + "\n"); } } else { if (program.args.length) { // slice all arguments up to the first filename since they're babel args that we handle - var args = process.argv.slice(2); + let args = process.argv.slice(2); - var i = 0; - var ignoreNext = false; + let i = 0; + let ignoreNext = false; _.each(args, function (arg, i2) { if (ignoreNext) { ignoreNext = false; @@ -103,7 +103,7 @@ if (program.eval || program.print) { } if (arg[0] === "-") { - var parsedArg = program[arg.slice(2)]; + let parsedArg = program[arg.slice(2)]; if (parsedArg && parsedArg !== true) { ignoreNext = true; } @@ -115,7 +115,7 @@ if (program.eval || program.print) { args = args.slice(i); // make the filename absolute - var filename = args[0]; + let filename = args[0]; if (!pathIsAbsolute(filename)) args[0] = path.join(process.cwd(), filename); // add back on node and concat the sliced args @@ -139,8 +139,8 @@ function replStart() { } function replEval(code, context, filename, callback) { - var err; - var result; + let err; + let result; try { if (code[0] === "(" && code[code.length - 1] === ")") { diff --git a/packages/babel-cli/src/babel-node.js b/packages/babel-cli/src/babel-node.js index fadf11fcae..603835dc91 100755 --- a/packages/babel-cli/src/babel-node.js +++ b/packages/babel-cli/src/babel-node.js @@ -3,16 +3,16 @@ * when found, before invoking the "real" _babel-node(1) executable. */ -var getV8Flags = require("v8flags"); -var path = require("path"); +let getV8Flags = require("v8flags"); +let path = require("path"); -var args = [path.join(__dirname, "_babel-node")]; +let args = [path.join(__dirname, "_babel-node")]; -var babelArgs = process.argv.slice(2); -var userArgs; +let babelArgs = process.argv.slice(2); +let userArgs; // separate node arguments from script arguments -var argSeparator = babelArgs.indexOf("--"); +let argSeparator = babelArgs.indexOf("--"); if (argSeparator > -1) { userArgs = babelArgs.slice(argSeparator); // including the -- babelArgs = babelArgs.slice(0, argSeparator); @@ -20,7 +20,7 @@ if (argSeparator > -1) { getV8Flags(function (v8Flags) { babelArgs.forEach(function(arg){ - var flag = arg.split("=")[0]; + let flag = arg.split("=")[0]; switch (flag) { case "-d": @@ -54,13 +54,13 @@ getV8Flags(function (v8Flags) { } try { - var kexec = require("kexec"); + let kexec = require("kexec"); kexec(process.argv[0], args); } catch (err) { if (err.code !== "MODULE_NOT_FOUND") throw err; - var child_process = require("child_process"); - var proc = child_process.spawn(process.argv[0], args, { stdio: "inherit" }); + let child_process = require("child_process"); + let proc = child_process.spawn(process.argv[0], args, { stdio: "inherit" }); proc.on("exit", function (code, signal) { process.on("exit", function () { if (signal) { diff --git a/packages/babel-cli/src/babel-plugin/index.js b/packages/babel-cli/src/babel-plugin/index.js index 522d2e7f40..de8d326b02 100755 --- a/packages/babel-cli/src/babel-plugin/index.js +++ b/packages/babel-cli/src/babel-plugin/index.js @@ -7,7 +7,7 @@ import fs from "fs"; function spawn(cmd, args, callback) { console.log(">", cmd, args); - var spawn = child.spawn(cmd, args, { stdio: "inherit" }); + let spawn = child.spawn(cmd, args, { stdio: "inherit" }); spawn.on("exit", function (code) { if (code === 0) { @@ -21,7 +21,7 @@ function spawn(cmd, args, callback) { function spawnMultiple(cmds) { function next() { - var cmd = cmds.shift(); + let cmd = cmds.shift(); if (cmd) { spawn(cmd.command, cmd.args, next); } else { @@ -33,7 +33,7 @@ function spawnMultiple(cmds) { } function template(name, data = {}) { - var source = fs.readFileSync(path.join(__dirname, "templates", name), "utf8"); + let source = fs.readFileSync(path.join(__dirname, "templates", name), "utf8"); source = source.replace(/[A-Z_]+/g, function (key) { return data[key] === undefined ? key : data[key]; }); @@ -53,23 +53,23 @@ function execMaybe(cmd) { } } -var rl = readline.createInterface({ +let rl = readline.createInterface({ input: process.stdin, output: process.stdout }); -var BABEL_PLUGIN_PREFIX = "babel-plugin-"; +let BABEL_PLUGIN_PREFIX = "babel-plugin-"; -var cmds = { +let cmds = { init: function () { - var name = path.basename(process.cwd()); + let name = path.basename(process.cwd()); if (name.indexOf(BABEL_PLUGIN_PREFIX) === 0) { name = name.slice(BABEL_PLUGIN_PREFIX.length); } rl.question("Description (optional): ", function (description) { - var remote = execMaybe("git config --get remote.origin.url").trim().match(/git@github.com:(.*?).git/); + let remote = execMaybe("git config --get remote.origin.url").trim().match(/git@github.com:(.*?).git/); if (remote) { build(description, remote[1]); } else { @@ -82,7 +82,7 @@ var cmds = { function build(description, repo) { rl.close(); - var templateData = { + let templateData = { DESCRIPTION: description, FULL_NAME: BABEL_PLUGIN_PREFIX + name, NAME: name @@ -133,7 +133,7 @@ var cmds = { }, publish: function () { - var pkg = require(process.cwd() + "/package.json"); + let pkg = require(process.cwd() + "/package.json"); console.log("Current version:", pkg.version); rl.question("New version (enter nothing for patch): ", function (newVersion) { @@ -153,7 +153,7 @@ var cmds = { } }; -var cmd = cmds[process.argv[2]]; +let cmd = cmds[process.argv[2]]; if (cmd) { cmd(); } else { diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index f5010fa571..7507a78f47 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -1,27 +1,27 @@ -var outputFileSync = require("output-file-sync"); -var pathExists = require("path-exists"); -var chokidar = require("chokidar"); -var slash = require("slash"); -var path = require("path"); -var util = require("./util"); -var fs = require("fs"); -var _ = require("lodash"); +let outputFileSync = require("output-file-sync"); +let pathExists = require("path-exists"); +let chokidar = require("chokidar"); +let slash = require("slash"); +let path = require("path"); +let util = require("./util"); +let fs = require("fs"); +let _ = require("lodash"); module.exports = function (commander, filenames) { function write(src, relative) { // remove extension and then append back on .js relative = relative.replace(/\.(\w*?)$/, "") + ".js"; - var dest = path.join(commander.outDir, relative); + let dest = path.join(commander.outDir, relative); - var data = util.compile(src, { + let data = util.compile(src, { sourceFileName: slash(path.relative(dest + "/..", src)), sourceMapTarget: path.basename(relative) }); if (!commander.copyFiles && data.ignored) return; if (data.map && commander.sourceMaps && commander.sourceMaps !== "inline") { - var mapLoc = dest + ".map"; + let mapLoc = dest + ".map"; data.code = util.addSourceMappingUrl(data.code, mapLoc); outputFileSync(mapLoc, JSON.stringify(data.map)); } @@ -44,13 +44,13 @@ module.exports = function (commander, filenames) { function handle(filename) { if (!pathExists.sync(filename)) return; - var stat = fs.statSync(filename); + let stat = fs.statSync(filename); if (stat.isDirectory(filename)) { - var dirname = filename; + let dirname = filename; _.each(util.readdir(dirname), function (filename) { - var src = path.join(dirname, filename); + let src = path.join(dirname, filename); handleFile(src, filename); }); } else { @@ -62,14 +62,14 @@ module.exports = function (commander, filenames) { if (commander.watch) { _.each(filenames, function (dirname) { - var watcher = chokidar.watch(dirname, { + let watcher = chokidar.watch(dirname, { persistent: true, ignoreInitial: true }); _.each(["add", "change"], function (type) { watcher.on(type, function (filename) { - var relative = path.relative(dirname, filename) || filename; + let relative = path.relative(dirname, filename) || filename; try { handleFile(filename, relative); } catch (err) { diff --git a/packages/babel-cli/src/babel/file.js b/packages/babel-cli/src/babel/file.js index 9b2f9db4a5..e7120f5af5 100644 --- a/packages/babel-cli/src/babel/file.js +++ b/packages/babel-cli/src/babel/file.js @@ -1,37 +1,37 @@ -var convertSourceMap = require("convert-source-map"); -var pathExists = require("path-exists"); -var sourceMap = require("source-map"); -var chokidar = require("chokidar"); -var slash = require("slash"); -var path = require("path"); -var util = require("./util"); -var fs = require("fs"); -var _ = require("lodash"); +let convertSourceMap = require("convert-source-map"); +let pathExists = require("path-exists"); +let sourceMap = require("source-map"); +let chokidar = require("chokidar"); +let slash = require("slash"); +let path = require("path"); +let util = require("./util"); +let fs = require("fs"); +let _ = require("lodash"); module.exports = function (commander, filenames, opts) { if (commander.sourceMaps === "inline") { opts.sourceMaps = true; } - var results = []; + let results = []; - var buildResult = function () { - var map = new sourceMap.SourceMapGenerator({ + let buildResult = function () { + let map = new sourceMap.SourceMapGenerator({ file: path.basename(commander.outFile) || "stdout", sourceRoot: opts.sourceRoot }); - var code = ""; - var offset = 0; + let code = ""; + let offset = 0; _.each(results, function (result) { - var filename = result.filename; + let filename = result.filename; code += result.code + "\n"; if (result.map) { - var consumer = new sourceMap.SourceMapConsumer(result.map); + let consumer = new sourceMap.SourceMapConsumer(result.map); - var sourceFilename = filename; + let sourceFilename = filename; if (commander.outFile) { sourceFilename = path.relative(path.dirname(commander.outFile), sourceFilename); } @@ -64,12 +64,12 @@ module.exports = function (commander, filenames, opts) { }; }; - var output = function () { - var result = buildResult(); + let output = function () { + let result = buildResult(); if (commander.outFile) { if (commander.sourceMaps && commander.sourceMaps !== "inline") { - var mapLoc = commander.outFile + ".map"; + let mapLoc = commander.outFile + ".map"; result.code = util.addSourceMappingUrl(result.code, mapLoc); fs.writeFileSync(mapLoc, JSON.stringify(result.map)); } @@ -80,13 +80,13 @@ module.exports = function (commander, filenames, opts) { } }; - var stdin = function () { - var code = ""; + let stdin = function () { + let code = ""; process.stdin.setEncoding("utf8"); process.stdin.on("readable", function () { - var chunk = process.stdin.read(); + let chunk = process.stdin.read(); if (chunk !== null) code += chunk; }); @@ -96,16 +96,16 @@ module.exports = function (commander, filenames, opts) { }); }; - var walk = function () { - var _filenames = []; + let walk = function () { + let _filenames = []; results = []; _.each(filenames, function (filename) { if (!pathExists.sync(filename)) return; - var stat = fs.statSync(filename); + let stat = fs.statSync(filename); if (stat.isDirectory()) { - var dirname = filename; + let dirname = filename; _.each(util.readdirFilter(filename), function (filename) { _filenames.push(path.join(dirname, filename)); @@ -118,7 +118,7 @@ module.exports = function (commander, filenames, opts) { _.each(_filenames, function (filename) { if (util.shouldIgnore(filename)) return; - var data = util.compile(filename); + let data = util.compile(filename); if (data.ignored) return; results.push(data); }); @@ -126,7 +126,7 @@ module.exports = function (commander, filenames, opts) { output(); }; - var files = function () { + let files = function () { walk(); if (commander.watch) { diff --git a/packages/babel-cli/src/babel/index.js b/packages/babel-cli/src/babel/index.js index 46fc228c15..ac5c856164 100755 --- a/packages/babel-cli/src/babel/index.js +++ b/packages/babel-cli/src/babel/index.js @@ -2,19 +2,19 @@ require("babel-core"); -var pathExists = require("path-exists"); -var commander = require("commander"); -var kebabCase = require("lodash/string/kebabCase"); -var options = require("babel-core").options; -var util = require("babel-core").util; -var uniq = require("lodash/array/uniq"); -var each = require("lodash/collection/each"); -var glob = require("glob"); +let pathExists = require("path-exists"); +let commander = require("commander"); +let kebabCase = require("lodash/string/kebabCase"); +let options = require("babel-core").options; +let util = require("babel-core").util; +let uniq = require("lodash/array/uniq"); +let each = require("lodash/collection/each"); +let glob = require("glob"); each(options, function (option, key) { if (option.hidden) return; - var arg = kebabCase(key); + let arg = kebabCase(key); if (option.type !== "boolean") { arg += " [" + (option.type || "string") + "]"; @@ -30,7 +30,7 @@ each(options, function (option, key) { arg = "-" + option.shorthand + ", " + arg; } - var desc = []; + let desc = []; if (option.deprecated) desc.push("[DEPRECATED] " + option.deprecated); if (option.description) desc.push(option.description); @@ -44,7 +44,7 @@ commander.option("-d, --out-dir [out]", "Compile an input directory of modules i commander.option("-D, --copy-files", "When compiling a directory copy over non-compilable files"); commander.option("-q, --quiet", "Don't log anything"); -var pkg = require("../../package.json"); +let pkg = require("../../package.json"); commander.version(pkg.version + " (babel-core " + require("babel-core").version + ")"); commander.usage("[options] "); commander.parse(process.argv); @@ -57,10 +57,10 @@ if (commander.extensions) { // -var errors = []; +let errors = []; -var filenames = commander.args.reduce(function (globbed, input) { - var files = glob.sync(input); +let filenames = commander.args.reduce(function (globbed, input) { + let files = glob.sync(input); if (!files.length) files = [input]; return globbed.concat(files); }, []); @@ -98,7 +98,7 @@ if (errors.length) { // -var opts = exports.opts = {}; +let opts = exports.opts = {}; each(options, function (opt, key) { if (commander[key] !== undefined) { @@ -112,7 +112,7 @@ if (opts.only) { opts.only = util.arrayify(opts.only, util.regexify); } -var fn; +let fn; if (commander.outDir) { fn = require("./dir"); diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index 52c0801109..e215b38b17 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -1,11 +1,11 @@ -var commander = require("commander"); -var readdir = require("fs-readdir-recursive"); -var index = require("./index"); -var babel = require("babel-core"); -var util = require("babel-core").util; -var path = require("path"); -var fs = require("fs"); -var _ = require("lodash"); +let commander = require("commander"); +let readdir = require("fs-readdir-recursive"); +let index = require("./index"); +let babel = require("babel-core"); +let util = require("babel-core").util; +let path = require("path"); +let fs = require("fs"); +let _ = require("lodash"); exports.readdirFilter = function (filename) { return readdir(filename).filter(function (filename) { @@ -35,7 +35,7 @@ exports.transform = function (filename, code, opts) { opts.ignore = null; opts.only = null; - var result = babel.transform(code, opts); + let result = babel.transform(code, opts); result.filename = filename; result.actual = code; return result; @@ -43,7 +43,7 @@ exports.transform = function (filename, code, opts) { exports.compile = function (filename, opts) { try { - var code = fs.readFileSync(filename, "utf8"); + let code = fs.readFileSync(filename, "utf8"); return exports.transform(filename, code, opts); } catch (err) { if (commander.watch) { diff --git a/packages/babel-core/src/api/browser.js b/packages/babel-core/src/api/browser.js index 68f3eaccb7..17d8883762 100644 --- a/packages/babel-core/src/api/browser.js +++ b/packages/babel-core/src/api/browser.js @@ -10,16 +10,16 @@ export function run(code, opts = {}) { export function load(url, callback, opts = {}, hold) { opts.filename = opts.filename || url; - var xhr = global.ActiveXObject ? new global.ActiveXObject("Microsoft.XMLHTTP") : new global.XMLHttpRequest(); + let xhr = global.ActiveXObject ? new global.ActiveXObject("Microsoft.XMLHTTP") : new global.XMLHttpRequest(); xhr.open("GET", url, true); if ("overrideMimeType" in xhr) xhr.overrideMimeType("text/plain"); xhr.onreadystatechange = function () { if (xhr.readyState !== 4) return; - var status = xhr.status; + let status = xhr.status; if (status === 0 || status === 200) { - var param = [xhr.responseText, opts]; + let param = [xhr.responseText, opts]; if (!hold) run(param); if (callback) callback(param); } else { @@ -31,16 +31,16 @@ export function load(url, callback, opts = {}, hold) { } function runScripts() { - var scripts = []; - var types = ["text/ecmascript-6", "text/6to5", "text/babel", "module"]; - var index = 0; + let scripts = []; + let types = ["text/ecmascript-6", "text/6to5", "text/babel", "module"]; + let index = 0; /** * Transform and execute script. Ensures correct load order. */ function exec() { - var param = scripts[index]; + let param = scripts[index]; if (param instanceof Array) { run(param); index++; @@ -53,7 +53,7 @@ function runScripts() { */ function run(script, i) { - var opts = {}; + let opts = {}; if (script.src) { load(script.src, function (param) { @@ -68,10 +68,10 @@ function runScripts() { // Collect scripts with Babel `types`. - var _scripts = global.document.getElementsByTagName("script"); + let _scripts = global.document.getElementsByTagName("script"); - for (var i = 0; i < _scripts.length; ++i) { - var _script = _scripts[i]; + for (let i = 0; i < _scripts.length; ++i) { + let _script = _scripts[i]; if (types.indexOf(_script.type) >= 0) scripts.push(_script); } diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 6f6f6b1c11..a4630f6257 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -20,7 +20,7 @@ import * as t from "babel-types"; export { t as types }; export function register(opts?: Object) { - var callback = require("./register/node-polyfill"); + let callback = require("./register/node-polyfill"); if (opts != null) callback(opts); return callback; } @@ -36,7 +36,7 @@ export function transformFile(filename: string, opts?: Object, callback: Functio fs.readFile(filename, function (err, code) { if (err) return callback(err); - var result; + let result; try { result = transform(code, opts); @@ -63,7 +63,7 @@ export function parse(code, opts = {}) { }; opts.features = {}; - var ast = babylon.parse(code, opts); + let ast = babylon.parse(code, opts); if (opts.onToken) { opts.onToken.push(...ast.tokens); diff --git a/packages/babel-core/src/api/register/cache.js b/packages/babel-core/src/api/register/cache.js index 73ab94b175..b128ea4e47 100644 --- a/packages/babel-core/src/api/register/cache.js +++ b/packages/babel-core/src/api/register/cache.js @@ -4,7 +4,7 @@ import homeOrTmp from "home-or-tmp"; import pathExists from "path-exists"; const FILENAME = process.env.BABEL_CACHE_PATH || path.join(homeOrTmp, ".babel.json"); -var data = {}; +let data = {}; /** * Write stringified cache to disk. diff --git a/packages/babel-core/src/api/register/node.js b/packages/babel-core/src/api/register/node.js index 723fcb391a..f130596a3b 100644 --- a/packages/babel-core/src/api/register/node.js +++ b/packages/babel-core/src/api/register/node.js @@ -15,7 +15,7 @@ import path from "path"; sourceMapSupport.install({ handleUncaughtExceptions: false, retrieveSourceMap(source) { - var map = maps && maps[source]; + let map = maps && maps[source]; if (map) { return { url: null, @@ -32,27 +32,27 @@ sourceMapSupport.install({ */ registerCache.load(); -var cache = registerCache.get(); +let cache = registerCache.get(); /** * Store options. */ -var transformOpts = {}; +let transformOpts = {}; -var ignore; -var only; +let ignore; +let only; -var oldHandlers = {}; -var maps = {}; +let oldHandlers = {}; +let maps = {}; -var cwd = process.cwd(); +let cwd = process.cwd(); /** * Get path from `filename` relative to the current working directory. */ -var getRelativePath = function (filename){ +let getRelativePath = function (filename){ return path.relative(cwd, filename); }; @@ -60,7 +60,7 @@ var getRelativePath = function (filename){ * Get last modified time for a `filename`. */ -var mtime = function (filename) { +let mtime = function (filename) { return +fs.statSync(filename).mtime; }; @@ -68,22 +68,22 @@ var mtime = function (filename) { * Compile a `filename` with optional `opts`. */ -var compile = function (filename, opts = {}) { - var result; +let compile = function (filename, opts = {}) { + let result; opts.filename = filename; - var optsManager = new OptionManager; + let optsManager = new OptionManager; optsManager.mergeOptions(transformOpts); opts = optsManager.init(opts); - var cacheKey = `${JSON.stringify(opts)}:${babel.version}`; + let cacheKey = `${JSON.stringify(opts)}:${babel.version}`; - var env = process.env.BABEL_ENV || process.env.NODE_ENV; + let env = process.env.BABEL_ENV || process.env.NODE_ENV; if (env) cacheKey += `:${env}`; if (cache) { - var cached = cache[cacheKey]; + let cached = cache[cacheKey]; if (cached && cached.mtime === mtime(filename)) { result = cached; } @@ -110,7 +110,7 @@ var compile = function (filename, opts = {}) { * Test if a `filename` should be ignored by Babel. */ -var shouldIgnore = function (filename) { +let shouldIgnore = function (filename) { if (!ignore && !only) { return getRelativePath(filename).split(path.sep).indexOf("node_modules") >= 0; } else { @@ -122,17 +122,17 @@ var shouldIgnore = function (filename) { * Monkey patch istanbul if it is running so that it works properly. */ -var istanbulMonkey = {}; +let istanbulMonkey = {}; if (process.env.running_under_istanbul) { // we need to monkey patch fs.readFileSync so we can hook into // what istanbul gets, it's extremely dirty but it's the only way - var _readFileSync = fs.readFileSync; + let _readFileSync = fs.readFileSync; fs.readFileSync = function (filename) { if (istanbulMonkey[filename]) { delete istanbulMonkey[filename]; - var code = compile(filename, { + let code = compile(filename, { auxiliaryCommentBefore: "istanbul ignore next" }); istanbulMonkey[filename] = true; @@ -147,7 +147,7 @@ if (process.env.running_under_istanbul) { * Replacement for the loader for istanbul. */ -var istanbulLoader = function (m, filename, old) { +let istanbulLoader = function (m, filename, old) { istanbulMonkey[filename] = true; old(m, filename); }; @@ -156,7 +156,7 @@ var istanbulLoader = function (m, filename, old) { * Default loader. */ -var normalLoader = function (m, filename) { +let normalLoader = function (m, filename) { m._compile(compile(filename), filename); }; @@ -164,10 +164,10 @@ var normalLoader = function (m, filename) { * Register a loader for an extension. */ -var registerExtension = function (ext) { - var old = oldHandlers[ext] || oldHandlers[".js"] || require.extensions[".js"]; +let registerExtension = function (ext) { + let old = oldHandlers[ext] || oldHandlers[".js"] || require.extensions[".js"]; - var loader = normalLoader; + let loader = normalLoader; if (process.env.running_under_istanbul) loader = istanbulLoader; require.extensions[ext] = function (m, filename) { @@ -183,7 +183,7 @@ var registerExtension = function (ext) { * Register loader for given extensions. */ -var hookExtensions = function (_exts) { +let hookExtensions = function (_exts) { each(oldHandlers, function (old, ext) { if (old === undefined) { delete require.extensions[ext]; diff --git a/packages/babel-core/src/helpers/merge.js b/packages/babel-core/src/helpers/merge.js index 33f433dbd9..dbbc07d35a 100644 --- a/packages/babel-core/src/helpers/merge.js +++ b/packages/babel-core/src/helpers/merge.js @@ -9,8 +9,8 @@ export default function (dest, src) { return merge(dest, src, function (a, b) { if (b && Array.isArray(a)) { - var c = a.slice(0); - for (var v of b) { + let c = a.slice(0); + for (let v of b) { if (a.indexOf(v) < 0) { c.push(v); } diff --git a/packages/babel-core/src/helpers/parse.js b/packages/babel-core/src/helpers/parse.js index cb6eb42ba9..0e4595b551 100644 --- a/packages/babel-core/src/helpers/parse.js +++ b/packages/babel-core/src/helpers/parse.js @@ -5,7 +5,7 @@ import * as babylon from "babylon"; */ export default function (code, opts = {}) { - var parseOpts = { + let parseOpts = { allowImportExportEverywhere: opts.looseModules, allowReturnOutsideFunction: opts.looseModules, strictMode: opts.strictMode, diff --git a/packages/babel-core/src/store.js b/packages/babel-core/src/store.js index e276346bb9..d83cdd71c2 100644 --- a/packages/babel-core/src/store.js +++ b/packages/babel-core/src/store.js @@ -11,11 +11,11 @@ export default class Store { } get(key: string): any { - var data = this.data[key]; + let data = this.data[key]; if (data) { return data; } else { - var dynamic = this.dynamicData[key]; + let dynamic = this.dynamicData[key]; if (dynamic) { return this.set(key, dynamic()); } diff --git a/packages/babel-core/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js index 474da46340..d19971ac2e 100644 --- a/packages/babel-core/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -6,9 +6,9 @@ import each from "lodash/collection/each"; import * as t from "babel-types"; function buildGlobal(namespace, builder) { - var body = []; - var container = t.functionExpression(null, [t.identifier("global")], t.blockStatement(body)); - var tree = t.program([t.expressionStatement(t.callExpression(container, [util.template("helper-self-global")]))]); + let body = []; + let container = t.functionExpression(null, [t.identifier("global")], t.blockStatement(body)); + let tree = t.program([t.expressionStatement(t.callExpression(container, [util.template("helper-self-global")]))]); body.push(t.variableDeclaration("var", [ t.variableDeclarator( @@ -23,14 +23,14 @@ function buildGlobal(namespace, builder) { } function buildUmd(namespace, builder) { - var body = []; + let body = []; body.push(t.variableDeclaration("var", [ t.variableDeclarator(namespace, t.identifier("global")) ])); builder(body); - var container = util.template("umd-commonjs-strict", { + let container = util.template("umd-commonjs-strict", { FACTORY_PARAMETERS: t.identifier("global"), BROWSER_ARGUMENTS: t.assignmentExpression("=", t.memberExpression(t.identifier("root"), namespace), t.objectExpression({})), COMMON_ARGUMENTS: t.identifier("exports"), @@ -42,7 +42,7 @@ function buildUmd(namespace, builder) { } function buildVar(namespace, builder) { - var body = []; + let body = []; body.push(t.variableDeclaration("var", [ t.variableDeclarator(namespace, t.objectExpression({})) ])); @@ -54,7 +54,7 @@ function buildHelpers(body, namespace, whitelist) { each(File.helpers, function (name) { if (whitelist && whitelist.indexOf(name) === -1) return; - var key = t.identifier(t.toIdentifier(name)); + let key = t.identifier(t.toIdentifier(name)); body.push(t.expressionStatement( t.assignmentExpression("=", t.memberExpression(namespace, key), util.template("helper-" + name)) )); @@ -62,15 +62,15 @@ function buildHelpers(body, namespace, whitelist) { } export default function (whitelist, outputType = "global") { - var namespace = t.identifier("babelHelpers"); + let namespace = t.identifier("babelHelpers"); - var builder = function (body) { + let builder = function (body) { return buildHelpers(body, namespace, whitelist); }; - var tree; + let tree; - var build = { + let build = { global: buildGlobal, umd: buildUmd, var: buildVar diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index 79f38de0e0..e6c69ca1cd 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -21,9 +21,9 @@ import * as util from "../../util"; import path from "path"; import * as t from "babel-types"; -var errorVisitor = { +let errorVisitor = { enter(path, state) { - var loc = path.node.loc; + let loc = path.node.loc; if (loc) { state.loc = loc; path.stop(); @@ -155,16 +155,16 @@ export default class File extends Store { } buildTransformers() { - var file = this; + let file = this; - var transformers = this.transformers = {}; + let transformers = this.transformers = {}; - var secondaryStack = []; - var stack = []; + let secondaryStack = []; + let stack = []; // build internal transformers - for (var key in this.pipeline.transformers) { - var transformer = this.pipeline.transformers[key]; + for (let key in this.pipeline.transformers) { + let transformer = this.pipeline.transformers[key]; let pass = transformers[key] = transformer.buildPass(file); if (pass.canTransform()) { @@ -181,15 +181,15 @@ export default class File extends Store { } // init plugins! - var beforePlugins = []; - var afterPlugins = []; - var pluginManager = new PluginManager({ + let beforePlugins = []; + let afterPlugins = []; + let pluginManager = new PluginManager({ file: this, transformers: this.transformers, before: beforePlugins, after: afterPlugins }); - for (var i = 0; i < file.opts.plugins.length; i++) { + for (let i = 0; i < file.opts.plugins.length; i++) { pluginManager.add(file.opts.plugins[i]); } stack = beforePlugins.concat(stack, afterPlugins); @@ -199,7 +199,7 @@ export default class File extends Store { // build dependency graph for (let pass of (stack: Array)) { - for (var dep of (pass.plugin.dependencies: Array)) { + for (let dep of (pass.plugin.dependencies: Array)) { this.transformerDependencies[dep] = pass.key; } } @@ -209,14 +209,14 @@ export default class File extends Store { } collapseStack(_stack) { - var stack = []; - var ignore = []; + let stack = []; + let ignore = []; for (let pass of (_stack: Array)) { // been merged if (ignore.indexOf(pass) >= 0) continue; - var group = pass.plugin.metadata.group; + let group = pass.plugin.metadata.group; // can't merge if (!pass.canTransform() || !group) { @@ -224,7 +224,7 @@ export default class File extends Store { continue; } - var mergeStack = []; + let mergeStack = []; for (let pass of (_stack: Array)) { if (pass.plugin.metadata.group === group) { mergeStack.push(pass); @@ -236,12 +236,12 @@ export default class File extends Store { shuffle; //mergeStack = shuffle(mergeStack); - var visitors = []; + let visitors = []; for (let pass of (mergeStack: Array)) { visitors.push(pass.plugin.visitor); } - var visitor = traverse.visitors.merge(visitors); - var mergePlugin = new Plugin(group, { visitor }); + let visitor = traverse.visitors.merge(visitors); + let mergePlugin = new Plugin(group, { visitor }); stack.push(mergePlugin.buildPass(this)); } @@ -257,11 +257,11 @@ export default class File extends Store { } get(key: string): any { - var data = this.data[key]; + let data = this.data[key]; if (data) { return data; } else { - var dynamic = this.dynamicData[key]; + let dynamic = this.dynamicData[key]; if (dynamic) { return this.set(key, dynamic()); } @@ -269,25 +269,25 @@ export default class File extends Store { } resolveModuleSource(source: string): string { - var resolveModuleSource = this.opts.resolveModuleSource; + let resolveModuleSource = this.opts.resolveModuleSource; if (resolveModuleSource) source = resolveModuleSource(source, this.opts.filename); return source; } addImport(source: string, name?: string, type?: string): Object { name = name || source; - var id = this.dynamicImportIds[name]; + let id = this.dynamicImportIds[name]; if (!id) { source = this.resolveModuleSource(source); id = this.dynamicImportIds[name] = this.scope.generateUidIdentifier(name); - var specifiers = [t.importDefaultSpecifier(id)]; - var declar = t.importDeclaration(specifiers, t.stringLiteral(source)); + let specifiers = [t.importDefaultSpecifier(id)]; + let declar = t.importDeclaration(specifiers, t.stringLiteral(source)); declar._blockHoist = 3; if (type) { - var modules = this.dynamicImportTypes[type] = this.dynamicImportTypes[type] || []; + let modules = this.dynamicImportTypes[type] = this.dynamicImportTypes[type] || []; modules.push(declar); } @@ -303,7 +303,7 @@ export default class File extends Store { } attachAuxiliaryComment(node: Object): Object { - var beforeComment = this.opts.auxiliaryCommentBefore; + let beforeComment = this.opts.auxiliaryCommentBefore; if (beforeComment) { node.leadingComments = node.leadingComments || []; node.leadingComments.push({ @@ -312,7 +312,7 @@ export default class File extends Store { }); } - var afterComment = this.opts.auxiliaryCommentAfter; + let afterComment = this.opts.auxiliaryCommentAfter; if (afterComment) { node.trailingComments = node.trailingComments || []; node.trailingComments.push({ @@ -325,31 +325,31 @@ export default class File extends Store { } addHelper(name: string): Object { - var isSolo = includes(File.soloHelpers, name); + let isSolo = includes(File.soloHelpers, name); if (!isSolo && !includes(File.helpers, name)) { throw new ReferenceError(`Unknown helper ${name}`); } - var declar = this.declarations[name]; + let declar = this.declarations[name]; if (declar) return declar; this.usedHelpers[name] = true; if (!isSolo) { - var generator = this.get("helperGenerator"); - var runtime = this.get("helpersNamespace"); + let generator = this.get("helperGenerator"); + let runtime = this.get("helpersNamespace"); if (generator) { return generator(name); } else if (runtime) { - var id = t.identifier(t.toIdentifier(name)); + let id = t.identifier(t.toIdentifier(name)); return t.memberExpression(runtime, id); } } - var ref = util.template("helper-" + name); + let ref = util.template("helper-" + name); - var uid = this.declarations[name] = this.scope.generateUidIdentifier(name); + let uid = this.declarations[name] = this.scope.generateUidIdentifier(name); if (t.isFunctionExpression(ref) && !ref.id) { ref.body._compact = true; @@ -373,18 +373,18 @@ export default class File extends Store { addTemplateObject(helperName: string, strings: Array, raw: Array): Object { // Generate a unique name based on the string literals so we dedupe // identical strings used in the program. - var stringIds = raw.elements.map(function(string) { + let stringIds = raw.elements.map(function(string) { return string.value; }); - var name = `${helperName}_${raw.elements.length}_${stringIds.join(",")}`; + let name = `${helperName}_${raw.elements.length}_${stringIds.join(",")}`; - var declar = this.declarations[name]; + let declar = this.declarations[name]; if (declar) return declar; - var uid = this.declarations[name] = this.scope.generateUidIdentifier("templateObject"); + let uid = this.declarations[name] = this.scope.generateUidIdentifier("templateObject"); - var helperId = this.addHelper(helperName); - var init = t.callExpression(helperId, [strings, raw]); + let helperId = this.addHelper(helperName); + let init = t.callExpression(helperId, [strings, raw]); init._compact = true; this.scope.push({ id: uid, @@ -395,9 +395,9 @@ export default class File extends Store { } buildCodeFrameError(node, msg, Error = SyntaxError) { - var loc = node && (node.loc || node._loc); + let loc = node && (node.loc || node._loc); - var err = new Error(msg); + let err = new Error(msg); if (loc) { err.loc = loc.start; @@ -417,19 +417,19 @@ export default class File extends Store { } mergeSourceMap(map: Object) { - var opts = this.opts; + let opts = this.opts; - var inputMap = opts.inputSourceMap; + let inputMap = opts.inputSourceMap; if (inputMap) { map.sources[0] = inputMap.file; - var inputMapConsumer = new sourceMap.SourceMapConsumer(inputMap); - var outputMapConsumer = new sourceMap.SourceMapConsumer(map); - var outputMapGenerator = sourceMap.SourceMapGenerator.fromSourceMap(outputMapConsumer); + let inputMapConsumer = new sourceMap.SourceMapConsumer(inputMap); + let outputMapConsumer = new sourceMap.SourceMapConsumer(map); + let outputMapGenerator = sourceMap.SourceMapGenerator.fromSourceMap(outputMapConsumer); outputMapGenerator.applySourceMap(inputMapConsumer); - var mergedMap = outputMapGenerator.toJSON(); + let mergedMap = outputMapGenerator.toJSON(); mergedMap.sources = inputMap.sources; mergedMap.file = inputMap.file; return mergedMap; @@ -443,10 +443,10 @@ export default class File extends Store { this.log.deprecate("Custom module formatters are deprecated and will be removed in the next major. Please use Babel plugins instead."); } - var ModuleFormatter = isFunction(type) ? type : moduleFormatters[type]; + let ModuleFormatter = isFunction(type) ? type : moduleFormatters[type]; if (!ModuleFormatter) { - var loc = resolve.relative(type); + let loc = resolve.relative(type); if (loc) ModuleFormatter = require(loc); } @@ -458,11 +458,11 @@ export default class File extends Store { } parse(code: string) { - var opts = this.opts; + let opts = this.opts; // - var parseOpts = { + let parseOpts = { highlightCode: opts.highlightCode, nonStandard: opts.nonStandard, sourceType: opts.sourceType, @@ -470,9 +470,9 @@ export default class File extends Store { plugins: {} }; - var features = parseOpts.features = {}; - for (var key in this.transformers) { - var transformer = this.transformers[key]; + let features = parseOpts.features = {}; + for (let key in this.transformers) { + let transformer = this.transformers[key]; features[key] = transformer.canRun(); } @@ -480,7 +480,7 @@ export default class File extends Store { parseOpts.strictMode = features.strict; this.log.debug("Parse start"); - var ast = parse(code, parseOpts); + let ast = parse(code, parseOpts); this.log.debug("Parse stop"); return ast; } @@ -503,7 +503,7 @@ export default class File extends Store { this.log.debug("End set AST"); this.log.debug("Start module formatter init"); - var modFormatter = this.moduleFormatter = this.getModuleFormatter(this.opts.modules); + let modFormatter = this.moduleFormatter = this.getModuleFormatter(this.opts.modules); if (modFormatter.init && this.transformers["es6.modules"].canTransform()) { modFormatter.init(); } @@ -512,7 +512,7 @@ export default class File extends Store { transform() { this.call("pre"); - for (var pass of (this.transformerStack: Array)) { + for (let pass of (this.transformerStack: Array)) { pass.transform(); } this.call("post"); @@ -536,9 +536,9 @@ export default class File extends Store { err._babel = true; } - var message = err.message = `${this.opts.filename}: ${err.message}`; + let message = err.message = `${this.opts.filename}: ${err.message}`; - var loc = err.loc; + let loc = err.loc; if (loc) { err.codeFrame = codeFrame(code, loc.line, loc.column + 1, this.opts); message += "\n" + err.codeFrame; @@ -551,7 +551,7 @@ export default class File extends Store { } if (err.stack) { - var newStack = err.stack.replace(err.message, message); + let newStack = err.stack.replace(err.message, message); try { err.stack = newStack; } catch (e) { @@ -571,27 +571,27 @@ export default class File extends Store { parseCode() { this.parseShebang(); - var ast = this.parse(this.code); + let ast = this.parse(this.code); this.addAst(ast); } shouldIgnore() { - var opts = this.opts; + let opts = this.opts; return util.shouldIgnore(opts.filename, opts.ignore, opts.only); } call(key: string) { - for (var pass of (this.uncollapsedTransformerStack: Array)) { - var fn = pass.plugin[key]; + for (let pass of (this.uncollapsedTransformerStack: Array)) { + let fn = pass.plugin[key]; if (fn) fn.call(pass, this); } } parseInputSourceMap(code: string) { - var opts = this.opts; + let opts = this.opts; if (opts.inputSourceMap !== false) { - var inputMap = convertSourceMap.fromSource(code); + let inputMap = convertSourceMap.fromSource(code); if (inputMap) { opts.inputSourceMap = inputMap.toObject(); code = convertSourceMap.removeComments(code); @@ -602,7 +602,7 @@ export default class File extends Store { } parseShebang() { - var shebangMatch = shebangRegex.exec(this.code); + let shebangMatch = shebangRegex.exec(this.code); if (shebangMatch) { this.shebang = shebangMatch[0]; this.code = this.code.replace(shebangRegex, ""); @@ -610,7 +610,7 @@ export default class File extends Store { } makeResult({ code, map = null, ast, ignored }) { - var result = { + let result = { metadata: null, ignored: !!ignored, code: null, @@ -635,15 +635,15 @@ export default class File extends Store { } generate() { - var opts = this.opts; - var ast = this.ast; + let opts = this.opts; + let ast = this.ast; - var result = { ast }; + let result = { ast }; if (!opts.code) return this.makeResult(result); this.log.debug("Generation start"); - var _result = generate(ast, opts, this.code); + let _result = generate(ast, opts, this.code); result.code = _result.code; result.map = _result.map; diff --git a/packages/babel-core/src/transformation/file/logger.js b/packages/babel-core/src/transformation/file/logger.js index 35db09efc5..39a17ddf12 100644 --- a/packages/babel-core/src/transformation/file/logger.js +++ b/packages/babel-core/src/transformation/file/logger.js @@ -1,10 +1,10 @@ import type File from "./index"; import buildDebug from "debug/node"; -var verboseDebug = buildDebug("babel:verbose"); -var generalDebug = buildDebug("babel"); +let verboseDebug = buildDebug("babel:verbose"); +let generalDebug = buildDebug("babel"); -var seenDeprecatedMessages = []; +let seenDeprecatedMessages = []; export default class Logger { constructor(file: File, filename: string) { @@ -13,7 +13,7 @@ export default class Logger { } _buildMessage(msg: string): string { - var parts = `[BABEL] ${this.filename}`; + let parts = `[BABEL] ${this.filename}`; if (msg) parts += `: ${msg}`; return parts; } diff --git a/packages/babel-core/src/transformation/file/options/index.js b/packages/babel-core/src/transformation/file/options/index.js index 513670a972..2aeb85c41c 100644 --- a/packages/babel-core/src/transformation/file/options/index.js +++ b/packages/babel-core/src/transformation/file/options/index.js @@ -8,8 +8,8 @@ export { config }; */ export function validateOption(key, val, pipeline) { - var opt = config[key]; - var parser = opt && parsers[opt.type]; + let opt = config[key]; + let parser = opt && parsers[opt.type]; if (parser && parser.validate) { return parser.validate(key, val, pipeline); } else { @@ -22,14 +22,14 @@ export function validateOption(key, val, pipeline) { */ export function normaliseOptions(options = {}) { - for (var key in options) { - var val = options[key]; + for (let key in options) { + let val = options[key]; if (val == null) continue; - var opt = config[key]; + let opt = config[key]; if (!opt) continue; - var parser = parsers[opt.type]; + let parser = parsers[opt.type]; if (parser) val = parser(val); options[key] = val; diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index 67eb61b44b..fd5cadc234 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -12,15 +12,15 @@ import config from "./config"; import path from "path"; import fs from "fs"; -var existsCache = {}; -var jsonCache = {}; +let existsCache = {}; +let jsonCache = {}; const BABELIGNORE_FILENAME = ".babelignore"; const BABELRC_FILENAME = ".babelrc"; const PACKAGE_FILENAME = "package.json"; function exists(filename) { - var cached = existsCache[filename]; + let cached = existsCache[filename]; if (cached != null) { return cached; } else { @@ -39,14 +39,14 @@ export default class OptionManager { static memoisedPlugins = []; static memoisePluginContainer(fn, loc, i) { - for (var cache of (OptionManager.memoisedPlugins: Array)) { + for (let cache of (OptionManager.memoisedPlugins: Array)) { if (cache.container === fn) return cache.plugin; } - var obj = fn(context); + let obj = fn(context); if (typeof obj === "object") { - var plugin = new Plugin(obj); + let plugin = new Plugin(obj); OptionManager.memoisedPlugins.push({ container: fn, plugin: plugin @@ -58,10 +58,10 @@ export default class OptionManager { } static createBareOptions() { - var opts = {}; + let opts = {}; - for (var key in config) { - var opt = config[key]; + for (let key in config) { + let opt = config[key]; opts[key] = clone(opt.default); } @@ -70,7 +70,7 @@ export default class OptionManager { static normalisePlugins(loc, dirname, plugins) { return plugins.map(function (val, i) { - var plugin, options; + let plugin, options; // destructure plugins if (Array.isArray(val)) { @@ -81,7 +81,7 @@ export default class OptionManager { // allow plugins to be specified as strings if (typeof plugin === "string") { - var pluginLoc = resolve(`babel-plugin-${plugin}`, dirname) || resolve(plugin, dirname); + let pluginLoc = resolve(`babel-plugin-${plugin}`, dirname) || resolve(plugin, dirname); if (pluginLoc) { plugin = require(pluginLoc); } else { @@ -106,8 +106,8 @@ export default class OptionManager { addConfig(loc, key?, json=json5) { if (this.resolvedConfigs.indexOf(loc) >= 0) return; - var content = fs.readFileSync(loc, "utf8"); - var opts; + let content = fs.readFileSync(loc, "utf8"); + let opts; try { opts = jsonCache[content] = jsonCache[content] || json.parse(content); @@ -163,8 +163,8 @@ export default class OptionManager { delete opts.presets; } - var envOpts; - var envKey = process.env.BABEL_ENV || process.env.NODE_ENV || "development"; + let envOpts; + let envKey = process.env.BABEL_ENV || process.env.NODE_ENV || "development"; if (opts.env) { envOpts = opts.env[envKey]; delete opts.env; @@ -178,11 +178,11 @@ export default class OptionManager { } mergePresets(presets: Array, dirname) { - for (var val of presets) { + for (let val of presets) { if (typeof val === "string") { - var presetLoc = resolve(`babel-preset-${val}`, dirname) || resolve(val, dirname); + let presetLoc = resolve(`babel-preset-${val}`, dirname) || resolve(val, dirname); if (presetLoc) { - var presetOpts = require(presetLoc); + let presetOpts = require(presetLoc); this.mergeOptions(presetOpts, presetLoc, presetLoc, path.dirname(presetLoc)); } else { throw new Error("todo"); @@ -196,8 +196,8 @@ export default class OptionManager { } addIgnoreConfig(loc) { - var file = fs.readFileSync(loc, "utf8"); - var lines = file.split("\n"); + let file = fs.readFileSync(loc, "utf8"); + let lines = file.split("\n"); lines = lines.map(function (line) { return line.replace(/#(.*?)$/, "").trim(); @@ -213,18 +213,18 @@ export default class OptionManager { loc = path.join(process.cwd(), loc); } - var foundConfig = false; - var foundIgnore = false; + let foundConfig = false; + let foundIgnore = false; while (loc !== (loc = path.dirname(loc))) { if (!foundConfig) { - var configLoc = path.join(loc, BABELRC_FILENAME); + let configLoc = path.join(loc, BABELRC_FILENAME); if (exists(configLoc)) { this.addConfig(configLoc); foundConfig = true; } - var pkgLoc = path.join(loc, PACKAGE_FILENAME); + let pkgLoc = path.join(loc, PACKAGE_FILENAME); if (exists(pkgLoc)) { this.addConfig(pkgLoc, "babel", JSON); foundConfig = true; @@ -232,7 +232,7 @@ export default class OptionManager { } if (!foundIgnore) { - var ignoreLoc = path.join(loc, BABELIGNORE_FILENAME); + let ignoreLoc = path.join(loc, BABELIGNORE_FILENAME); if (exists(ignoreLoc)) { this.addIgnoreConfig(ignoreLoc); foundIgnore = true; @@ -244,11 +244,11 @@ export default class OptionManager { } normaliseOptions() { - var opts = this.options; + let opts = this.options; for (let key in config) { - var option = config[key]; - var val = opts[key]; + let option = config[key]; + let val = opts[key]; // optional if (!val && option.optional) continue; diff --git a/packages/babel-core/src/transformation/file/options/parsers.js b/packages/babel-core/src/transformation/file/options/parsers.js index c6c6fd26f7..60d2752782 100644 --- a/packages/babel-core/src/transformation/file/options/parsers.js +++ b/packages/babel-core/src/transformation/file/options/parsers.js @@ -5,7 +5,7 @@ export function number(val) { return +val; } -export var filename = slash; +export let filename = slash; export function boolean(val) { return !!val; diff --git a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js index 4e60a46e3d..4772176e69 100644 --- a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js @@ -2,13 +2,13 @@ import explode from "./explode-assignable-expression"; import * as t from "babel-types"; export default function (opts) { - var exports = {}; + let exports = {}; - var isAssignment = function (node) { + let isAssignment = function (node) { return node.operator === opts.operator + "="; }; - var buildAssignment = function (left, right) { + let buildAssignment = function (left, right) { return t.assignmentExpression("=", left, right); }; @@ -16,11 +16,11 @@ export default function (opts) { // hit the `AssignmentExpression` one below if (path.isCompletionRecord()) return; - var expr = path.node.expression; + let expr = path.node.expression; if (!isAssignment(expr)) return; - var nodes = []; - var exploded = explode(expr.left, nodes, file, path.scope, true); + let nodes = []; + let exploded = explode(expr.left, nodes, file, path.scope, true); nodes.push(t.expressionStatement( buildAssignment(exploded.ref, opts.build(exploded.uid, expr.right)) @@ -32,8 +32,8 @@ export default function (opts) { exports.AssignmentExpression = function ({ node, scope }, file) { if (!isAssignment(node)) return; - var nodes = []; - var exploded = explode(node.left, nodes, file, scope); + let nodes = []; + let exploded = explode(node.left, nodes, file, scope); nodes.push(buildAssignment(exploded.ref, opts.build(exploded.uid, node.right))); return nodes; }; diff --git a/packages/babel-core/src/transformation/helpers/build-comprehension.js b/packages/babel-core/src/transformation/helpers/build-comprehension.js index 3c491cc15c..2903f5fec4 100644 --- a/packages/babel-core/src/transformation/helpers/build-comprehension.js +++ b/packages/babel-core/src/transformation/helpers/build-comprehension.js @@ -1,10 +1,10 @@ import * as t from "babel-types"; export default function build(node, buildBody) { - var self = node.blocks.shift(); + let self = node.blocks.shift(); if (!self) return; - var child = build(node, buildBody); + let child = build(node, buildBody); if (!child) { // last item child = buildBody(); diff --git a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js index 94ae08d7ca..70275fa570 100644 --- a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js @@ -2,7 +2,7 @@ import explode from "./explode-assignable-expression"; import * as t from "babel-types"; export default function (exports, opts) { - var buildAssignment = function (left, right) { + let buildAssignment = function (left, right) { return t.assignmentExpression("=", left, right); }; @@ -10,12 +10,12 @@ export default function (exports, opts) { // hit the `AssignmentExpression` one below if (path.isCompletionRecord()) return; - var expr = path.node.expression; + let expr = path.node.expression; if (!opts.is(expr, file)) return; - var nodes = []; + let nodes = []; - var exploded = explode(expr.left, nodes, file, path.scope); + let exploded = explode(expr.left, nodes, file, path.scope); nodes.push(t.ifStatement( opts.build(exploded.uid, file), @@ -26,11 +26,11 @@ export default function (exports, opts) { }; exports.AssignmentExpression = function (path, file) { - var node = path.node; + let node = path.node; if (!opts.is(node, file)) return; - var nodes = []; - var exploded = explode(node.left, nodes, file, path.scope); + let nodes = []; + let exploded = explode(node.left, nodes, file, path.scope); nodes.push(t.logicalExpression( "&&", diff --git a/packages/babel-core/src/transformation/helpers/build-react-transformer.js b/packages/babel-core/src/transformation/helpers/build-react-transformer.js index dc77ac2b2a..6a2c904250 100644 --- a/packages/babel-core/src/transformation/helpers/build-react-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-react-transformer.js @@ -1,4 +1,4 @@ -// Based upon the excellent jsx-transpiler by Ingvar Stepanyan (RReverser) +// Based upon the excellent jsx-transpiler by Inglet Stepanyan (RReverser) // https://github.com/RReverser/jsx-transpiler // jsx @@ -10,7 +10,7 @@ import { react } from "babel-types"; import * as t from "babel-types"; export default function (opts) { - var visitor = {}; + let visitor = {}; visitor.JSXIdentifier = function (node) { if (node.name === "this" && this.isReferenced()) { @@ -39,14 +39,14 @@ export default function (opts) { visitor.JSXAttribute = { enter(node) { - var value = node.value; + let value = node.value; if (t.isLiteral(value) && isString(value.value)) { value.value = value.value.replace(/\n\s+/g, " "); } }, exit(node) { - var value = node.value || t.booleanLiteral(true); + let value = node.value || t.booleanLiteral(true); return t.inherits(t.property("init", node.name, value), node); } }; @@ -55,17 +55,17 @@ export default function (opts) { exit(node, parent, scope, file) { parent.children = react.buildChildren(parent); - var tagExpr = node.name; - var args = []; + let tagExpr = node.name; + let args = []; - var tagName; + let tagName; if (t.isIdentifier(tagExpr)) { tagName = tagExpr.name; } else if (t.isLiteral(tagExpr)) { tagName = tagExpr.value; } - var state = { + let state = { tagExpr: tagExpr, tagName: tagName, args: args @@ -75,7 +75,7 @@ export default function (opts) { opts.pre(state, file); } - var attribs = node.attributes; + let attribs = node.attributes; if (attribs.length) { attribs = buildJSXOpeningElementAttributes(attribs, file); } else { @@ -99,11 +99,11 @@ export default function (opts) { * all prior attributes to an array for later processing. */ - var buildJSXOpeningElementAttributes = function (attribs, file) { - var _props = []; - var objs = []; + let buildJSXOpeningElementAttributes = function (attribs, file) { + let _props = []; + let objs = []; - var pushProps = function () { + let pushProps = function () { if (!_props.length) return; objs.push(t.objectExpression(_props)); @@ -111,7 +111,7 @@ export default function (opts) { }; while (attribs.length) { - var prop = attribs.shift(); + let prop = attribs.shift(); if (t.isJSXSpreadAttribute(prop)) { pushProps(); objs.push(prop.argument); @@ -143,7 +143,7 @@ export default function (opts) { visitor.JSXElement = { exit(node) { - var callExpr = node.openingElement; + let callExpr = node.openingElement; callExpr.arguments = callExpr.arguments.concat(node.children); diff --git a/packages/babel-core/src/transformation/helpers/call-delegate.js b/packages/babel-core/src/transformation/helpers/call-delegate.js index d98a4907a6..6fc6009251 100644 --- a/packages/babel-core/src/transformation/helpers/call-delegate.js +++ b/packages/babel-core/src/transformation/helpers/call-delegate.js @@ -1,6 +1,6 @@ import * as t from "babel-types"; -var visitor = { +let visitor = { enter(path, state) { if (path.isThisExpression() || path.isReferencedIdentifier({ name: "arguments" })) { state.found = true; @@ -14,19 +14,19 @@ var visitor = { }; export default function (node, scope) { - var container = t.functionExpression(null, [], node.body, node.generator, node.async); + let container = t.functionExpression(null, [], node.body, node.generator, node.async); - var callee = container; - var args = []; + let callee = container; + let args = []; - var state = { found: false }; + let state = { found: false }; scope.traverse(node, visitor, state); if (state.found) { callee = t.memberExpression(container, t.identifier("apply")); args = [t.thisExpression(), t.identifier("arguments")]; } - var call = t.callExpression(callee, args); + let call = t.callExpression(callee, args); if (node.generator) call = t.yieldExpression(call, true); return t.returnStatement(call); diff --git a/packages/babel-core/src/transformation/helpers/define-map.js b/packages/babel-core/src/transformation/helpers/define-map.js index 7f8ae70c93..4fc596a5d4 100644 --- a/packages/babel-core/src/transformation/helpers/define-map.js +++ b/packages/babel-core/src/transformation/helpers/define-map.js @@ -3,11 +3,11 @@ import has from "lodash/object/has"; import * as t from "babel-types"; export function push(mutatorMap, node, kind, file) { - var alias = t.toKeyAlias(node); + let alias = t.toKeyAlias(node); // - var map = {}; + let map = {}; if (has(mutatorMap, alias)) map = mutatorMap[alias]; mutatorMap[alias] = map; @@ -23,7 +23,7 @@ export function push(mutatorMap, node, kind, file) { } if (node.decorators) { - var decorators = map.decorators = map.decorators || t.arrayExpression([]); + let decorators = map.decorators = map.decorators || t.arrayExpression([]); decorators.elements = decorators.elements.concat(node.decorators.map(dec => dec.expression).reverse()); } @@ -44,7 +44,7 @@ export function push(mutatorMap, node, kind, file) { } export function hasComputed(mutatorMap) { - for (var key in mutatorMap) { + for (let key in mutatorMap) { if (mutatorMap[key]._computed) { return true; } @@ -53,11 +53,11 @@ export function hasComputed(mutatorMap) { } export function toComputedObjectFromClass(obj) { - var objExpr = t.arrayExpression([]); + let objExpr = t.arrayExpression([]); - for (var i = 0; i < obj.properties.length; i++) { - var prop = obj.properties[i]; - var val = prop.value; + for (let i = 0; i < obj.properties.length; i++) { + let prop = obj.properties[i]; + let val = prop.value; val.properties.unshift(t.property("init", t.identifier("key"), t.toComputedKey(prop))); objExpr.elements.push(val); } @@ -66,20 +66,20 @@ export function toComputedObjectFromClass(obj) { } export function toClassObject(mutatorMap) { - var objExpr = t.objectExpression([]); + let objExpr = t.objectExpression([]); each(mutatorMap, function (map) { - var mapNode = t.objectExpression([]); + let mapNode = t.objectExpression([]); - var propNode = t.property("init", map._key, mapNode, map._computed); + let propNode = t.property("init", map._key, mapNode, map._computed); each(map, function (node, key) { if (key[0] === "_") return; - var inheritNode = node; + let inheritNode = node; if (t.isMethodDefinition(node) || t.isClassProperty(node)) node = node.value; - var prop = t.property("init", t.identifier(key), node); + let prop = t.property("init", t.identifier(key), node); t.inheritsComments(prop, inheritNode); t.removeComments(inheritNode); diff --git a/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js b/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js index c89388616c..eddcc5d4c8 100644 --- a/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js +++ b/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js @@ -1,7 +1,7 @@ import * as t from "babel-types"; -var getObjRef = function (node, nodes, file, scope) { - var ref; +let getObjRef = function (node, nodes, file, scope) { + let ref; if (t.isIdentifier(node)) { if (scope.hasBinding(node.name)) { // this variable is declared in scope so we can be 100% sure @@ -26,19 +26,19 @@ var getObjRef = function (node, nodes, file, scope) { throw new Error(`We can't explode this node type ${node.type}`); } - var temp = scope.generateUidIdentifierBasedOnNode(ref); + let temp = scope.generateUidIdentifierBasedOnNode(ref); nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(temp, ref) ])); return temp; }; -var getPropRef = function (node, nodes, file, scope) { - var prop = node.property; - var key = t.toComputedKey(node, prop); +let getPropRef = function (node, nodes, file, scope) { + let prop = node.property; + let key = t.toComputedKey(node, prop); if (t.isLiteral(key)) return key; - var temp = scope.generateUidIdentifierBasedOnNode(prop); + let temp = scope.generateUidIdentifierBasedOnNode(prop); nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(temp, prop) ])); @@ -46,21 +46,21 @@ var getPropRef = function (node, nodes, file, scope) { }; export default function (node, nodes, file, scope, allowedSingleIdent) { - var obj; + let obj; if (t.isIdentifier(node) && allowedSingleIdent) { obj = node; } else { obj = getObjRef(node, nodes, file, scope); } - var ref, uid; + let ref, uid; if (t.isIdentifier(node)) { ref = node; uid = obj; } else { - var prop = getPropRef(node, nodes, file, scope); - var computed = node.computed || t.isLiteral(prop); + let prop = getPropRef(node, nodes, file, scope); + let computed = node.computed || t.isLiteral(prop); uid = ref = t.memberExpression(obj, prop, computed); } diff --git a/packages/babel-core/src/transformation/helpers/get-function-arity.js b/packages/babel-core/src/transformation/helpers/get-function-arity.js index ce66f57207..756a102d9a 100644 --- a/packages/babel-core/src/transformation/helpers/get-function-arity.js +++ b/packages/babel-core/src/transformation/helpers/get-function-arity.js @@ -1,8 +1,8 @@ import * as t from "babel-types"; export default function (node) { - for (var i = 0; i < node.params.length; i++) { - var param = node.params[i]; + for (let i = 0; i < node.params.length; i++) { + let param = node.params[i]; if (t.isAssignmentPattern(param) || t.isRestElement(param)) { return i; } diff --git a/packages/babel-core/src/transformation/helpers/memoise-decorators.js b/packages/babel-core/src/transformation/helpers/memoise-decorators.js index 1764781df9..d05d4c4e33 100644 --- a/packages/babel-core/src/transformation/helpers/memoise-decorators.js +++ b/packages/babel-core/src/transformation/helpers/memoise-decorators.js @@ -1,15 +1,15 @@ import * as t from "babel-types"; export default function (decorators, scope) { - for (var i = 0; i < decorators.length; i++) { - var decorator = decorators[i]; - var expression = decorator.expression; + for (let i = 0; i < decorators.length; i++) { + let decorator = decorators[i]; + let expression = decorator.expression; if (!t.isMemberExpression(expression)) continue; - var temp = scope.maybeGenerateMemoised(expression.object); - var ref; + let temp = scope.maybeGenerateMemoised(expression.object); + let ref; - var nodes = []; + let nodes = []; if (temp) { ref = temp; diff --git a/packages/babel-core/src/transformation/helpers/name-method.js b/packages/babel-core/src/transformation/helpers/name-method.js index 9b3fc20ebb..df1a25e88c 100644 --- a/packages/babel-core/src/transformation/helpers/name-method.js +++ b/packages/babel-core/src/transformation/helpers/name-method.js @@ -2,14 +2,14 @@ import getFunctionArity from "./get-function-arity"; import * as util from "../../util"; import * as t from "babel-types"; -var visitor = { +let visitor = { "ReferencedIdentifier|BindingIdentifier"(path, state) { // check if this node matches our function id if (path.node.name !== state.name) return; // check that we don't have a local variable declared as that removes the need // for the wrapper - var localDeclar = path.scope.getBindingIdentifier(state.name); + let localDeclar = path.scope.getBindingIdentifier(state.name); if (localDeclar !== state.outerDeclar) return; state.selfReference = true; @@ -24,9 +24,9 @@ function wrap(state, method, id, scope) { scope.rename(id.name); } else { // need to add a wrapper since we can't change the references - var templateName = "property-method-assignment-wrapper"; + let templateName = "property-method-assignment-wrapper"; if (method.generator) templateName += "-generator"; - var template = util.template(templateName, { + let template = util.template(templateName, { FUNCTION: method, FUNCTION_ID: id, FUNCTION_KEY: scope.generateUidIdentifier(id.name) @@ -35,8 +35,8 @@ function wrap(state, method, id, scope) { // shim in dummy params to retain function arity, if you try to read the // source then you'll get the original since it's proxied so it's all good - var params = template.callee.body.body[0].params; - for (var i = 0, len = getFunctionArity(method); i < len; i++) { + let params = template.callee.body.body[0].params; + for (let i = 0, len = getFunctionArity(method); i < len; i++) { params.push(scope.generateUidIdentifier("x")); } @@ -49,7 +49,7 @@ function wrap(state, method, id, scope) { } function visit(node, name, scope) { - var state = { + let state = { selfAssignment: false, selfReference: false, outerDeclar: scope.getBindingIdentifier(name), @@ -60,13 +60,13 @@ function visit(node, name, scope) { // check to see if we have a local binding of the id we're setting inside of // the function, this is important as there are caveats associated - var binding = scope.getOwnBinding(name); + let binding = scope.getOwnBinding(name); if (binding) { if (binding.kind === "param") { // safari will blow up in strict mode with code like: // - // var t = function t(t) {}; + // let t = function t(t) {}; // // with the error: // @@ -80,8 +80,8 @@ function visit(node, name, scope) { } else { // otherwise it's defined somewhere in scope like: // - // var t = function () { - // var t = 2; + // let t = function () { + // let t = 2; // }; // // so we can safely just set the id and move along as it shadows the @@ -95,19 +95,19 @@ function visit(node, name, scope) { } export function custom(node, id, scope) { - var state = visit(node, id.name, scope); + let state = visit(node, id.name, scope); return wrap(state, node, id, scope); } export function property(node, file, scope) { - var key = t.toComputedKey(node, node.key); + let key = t.toComputedKey(node, node.key); if (!t.isLiteral(key)) return; // we can't set a function id with this - var name = t.toBindingIdentifierName(key.value); - var id = t.identifier(name); + let name = t.toBindingIdentifierName(key.value); + let id = t.identifier(name); - var method = node.value; - var state = visit(method, name, scope); + let method = node.value; + let state = visit(method, name, scope); node.value = wrap(state, method, id, scope) || method; } @@ -115,16 +115,16 @@ export function bare(node, parent, scope) { // has an `id` so we don't need to infer one if (node.id) return; - var id; + let id; if (t.isProperty(parent) && parent.kind === "init" && (!parent.computed || t.isLiteral(parent.key))) { // { foo() {} }; id = parent.key; } else if (t.isVariableDeclarator(parent)) { - // var foo = function () {}; + // let foo = function () {}; id = parent.id; if (t.isIdentifier(id)) { - var binding = scope.parent.getBinding(id.name); + let binding = scope.parent.getBinding(id.name); if (binding && binding.constant && scope.getBinding(id.name) === binding) { // always going to reference this method node.id = id; @@ -135,7 +135,7 @@ export function bare(node, parent, scope) { return; } - var name; + let name; if (t.isLiteral(id)) { name = id.value; } else if (t.isIdentifier(id)) { @@ -147,6 +147,6 @@ export function bare(node, parent, scope) { name = t.toBindingIdentifierName(name); id = t.identifier(name); - var state = visit(node, name, scope); + let state = visit(node, name, scope); return wrap(state, node, id, scope); } diff --git a/packages/babel-core/src/transformation/helpers/regex.js b/packages/babel-core/src/transformation/helpers/regex.js index 012775591e..c99a183760 100644 --- a/packages/babel-core/src/transformation/helpers/regex.js +++ b/packages/babel-core/src/transformation/helpers/regex.js @@ -6,7 +6,7 @@ export function is(node, flag) { } export function pullFlag(node, flag) { - var flags = node.flags.split(""); + let flags = node.flags.split(""); if (node.flags.indexOf(flag) < 0) return; pull(flags, flag); node.flags = flags.join(""); diff --git a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js index 49351fdca4..561418e44f 100644 --- a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js +++ b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js @@ -1,6 +1,6 @@ import * as t from "babel-types"; -var awaitVisitor = { +let awaitVisitor = { Function(path) { path.skip(); }, @@ -16,9 +16,9 @@ var awaitVisitor = { } }; -var referenceVisitor = { +let referenceVisitor = { ReferencedIdentifier({ node, scope }, state) { - var name = state.id.name; + let name = state.id.name; if (node.name === name && scope.bindingIdentifierEquals(name, state.id)) { return state.ref = state.ref || scope.generateUidIdentifier(name); } @@ -26,20 +26,20 @@ var referenceVisitor = { }; export default function (path, callId) { - var node = path.node; + let node = path.node; node.async = false; node.generator = true; path.traverse(awaitVisitor, state); - var call = t.callExpression(callId, [node]); + let call = t.callExpression(callId, [node]); - var id = node.id; + let id = node.id; node.id = null; if (t.isFunctionDeclaration(node)) { - var declar = t.variableDeclaration("let", [ + let declar = t.variableDeclaration("let", [ t.variableDeclarator(id, call) ]); declar._blockHoist = true; @@ -48,7 +48,7 @@ export default function (path, callId) { node.type = "FunctionExpression"; if (id) { - var state = { id }; + let state = { id }; path.traverse(referenceVisitor, state); if (state.ref) { diff --git a/packages/babel-core/src/transformation/helpers/replace-supers.js b/packages/babel-core/src/transformation/helpers/replace-supers.js index 5eb11077fc..8239e9d481 100644 --- a/packages/babel-core/src/transformation/helpers/replace-supers.js +++ b/packages/babel-core/src/transformation/helpers/replace-supers.js @@ -13,10 +13,10 @@ function isMemberExpressionSuper(node) { return t.isMemberExpression(node) && t.isSuper(node.object); } -var visitor = { +let visitor = { enter(path, state) { - var topLevel = state.topLevel; - var self = state.self; + let topLevel = state.topLevel; + let self = state.self; if (path.isFunction() && !path.isArrowFunctionExpression()) { // we need to call traverseLevel again so we're context aware @@ -29,15 +29,15 @@ var visitor = { return path.skip(); } - var getThisReference = topLevel ? + let getThisReference = topLevel ? // top level so `this` is the instance t.thisExpression : // not in the top level so we need to create a reference self.getThisReference.bind(self); - var callback = self.specHandle; + let callback = self.specHandle; if (self.isLoose) callback = self.looseHandle; - var result = callback.call(self, path, getThisReference); + let result = callback.call(self, path, getThisReference); if (result) path.hasSuper = true; if (result === true) return; return result; @@ -119,7 +119,7 @@ export default class ReplaceSupers { } traverseLevel(path: NodePath, topLevel: boolean) { - var state = { self: this, topLevel: topLevel }; + let state = { self: this, topLevel: topLevel }; path.traverse(visitor, state); } @@ -127,7 +127,7 @@ export default class ReplaceSupers { if (this.topLevelThisReference) { return this.topLevelThisReference; } else { - var ref = this.topLevelThisReference = this.scope.generateUidIdentifier("this"); + let ref = this.topLevelThisReference = this.scope.generateUidIdentifier("this"); this.methodNode.value.body.body.unshift(t.variableDeclaration("var", [ t.variableDeclarator(this.topLevelThisReference, t.thisExpression()) ])); @@ -136,9 +136,9 @@ export default class ReplaceSupers { } getLooseSuperProperty(id: Object, parent: Object) { - var methodNode = this.methodNode; - var methodName = methodNode.key; - var superRef = this.superRef || t.identifier("Function"); + let methodNode = this.methodNode; + let methodName = methodNode.key; + let superRef = this.superRef || t.identifier("Function"); if (parent.property === id) { return; @@ -175,11 +175,11 @@ export default class ReplaceSupers { } looseHandle(path: NodePath, getThisReference: Function) { - var node = path.node; + let node = path.node; if (path.isSuper()) { return this.getLooseSuperProperty(node, path.parent); } else if (path.isCallExpression()) { - var callee = node.callee; + let callee = node.callee; if (!t.isMemberExpression(callee)) return; if (!t.isSuper(callee.object)) return; @@ -195,7 +195,7 @@ export default class ReplaceSupers { // super.name = "val"; -> _set(Object.getPrototypeOf(objectRef.prototype), "name", this); return this.setSuperProperty(node.left.property, node.right, node.left.computed, getThisReference()); } else { - // super.age += 2; -> var _ref = super.age; super.age = _ref + 2; + // super.age += 2; -> let _ref = super.age; super.age = _ref + 2; ref = ref || path.scope.generateUidIdentifier("ref"); return [ t.variableDeclaration("var", [ @@ -209,21 +209,21 @@ export default class ReplaceSupers { } specHandle(path: NodePath, getThisReference: Function) { - var methodNode = this.methodNode; - var property; - var computed; - var args; - var thisReference; + let methodNode = this.methodNode; + let property; + let computed; + let args; + let thisReference; - var parent = path.parent; - var node = path.node; + let parent = path.parent; + let node = path.node; if (isIllegalBareSuper(node, parent)) { throw path.buildCodeFrameError(messages.get("classesIllegalBareSuper")); } if (t.isCallExpression(node)) { - var callee = node.callee; + let callee = node.callee; if (t.isSuper(callee)) { // super(); -> _get(Object.getPrototypeOf(objectRef), "MethodName", this).call(this); property = methodNode.key; @@ -234,7 +234,7 @@ export default class ReplaceSupers { // - https://esdiscuss.org/topic/super-call-in-methods // - https://twitter.com/wycats/status/544553184396836864 if (methodNode.key.name !== "constructor" || !this.inClass) { - var methodName = methodNode.key.name || "METHOD_NAME"; + let methodName = methodNode.key.name || "METHOD_NAME"; throw this.file.buildCodeFrameError(node, messages.get("classesIllegalSuperCall", methodName)); } } else if (isMemberExpressionSuper(callee)) { @@ -248,13 +248,13 @@ export default class ReplaceSupers { property = node.property; computed = node.computed; } else if (t.isUpdateExpression(node) && isMemberExpressionSuper(node.argument)) { - var binary = t.binaryExpression(node.operator[0], node.argument, t.numberLiteral(1)); + let binary = t.binaryExpression(node.operator[0], node.argument, t.numberLiteral(1)); if (node.prefix) { // ++super.foo; -> super.foo += 1; return this.specHandleAssignmentExpression(null, path, binary, getThisReference); } else { - // super.foo++; -> var _ref = super.foo; super.foo = _ref + 1; - var ref = path.scope.generateUidIdentifier("ref"); + // super.foo++; -> let _ref = super.foo; super.foo = _ref + 1; + let ref = path.scope.generateUidIdentifier("ref"); return this.specHandleAssignmentExpression(ref, path, binary, getThisReference).concat(t.expressionStatement(ref)); } } else if (t.isAssignmentExpression(node) && isMemberExpressionSuper(node.left)) { @@ -264,7 +264,7 @@ export default class ReplaceSupers { if (!property) return; thisReference = getThisReference(); - var superProperty = this.getSuperProperty(property, computed, thisReference); + let superProperty = this.getSuperProperty(property, computed, thisReference); if (args) { if (args.length === 1 && t.isSpreadElement(args[0])) { // super(...arguments); diff --git a/packages/babel-core/src/transformation/index.js b/packages/babel-core/src/transformation/index.js index da4c0dc0f4..3719de4bd0 100644 --- a/packages/babel-core/src/transformation/index.js +++ b/packages/babel-core/src/transformation/index.js @@ -1,7 +1,7 @@ import Pipeline from "./pipeline"; -var pipeline = new Pipeline; -var transform = pipeline.transform.bind(pipeline); +let pipeline = new Pipeline; +let transform = pipeline.transform.bind(pipeline); transform.fromAst = pipeline.transformFromAst.bind(pipeline); transform.lint = pipeline.lint.bind(pipeline); transform.pipeline = pipeline; diff --git a/packages/babel-core/src/transformation/internal-plugins/block-hoist.js b/packages/babel-core/src/transformation/internal-plugins/block-hoist.js index e033bc39f0..014b9e7711 100644 --- a/packages/babel-core/src/transformation/internal-plugins/block-hoist.js +++ b/packages/babel-core/src/transformation/internal-plugins/block-hoist.js @@ -16,9 +16,9 @@ export default new Plugin({ visitor: { Block: { exit({ node }) { - var hasChange = false; - for (var i = 0; i < node.body.length; i++) { - var bodyNode = node.body[i]; + let hasChange = false; + for (let i = 0; i < node.body.length; i++) { + let bodyNode = node.body[i]; if (bodyNode && bodyNode._blockHoist != null) { hasChange = true; break; @@ -27,7 +27,7 @@ export default new Plugin({ if (!hasChange) return; node.body = sortBy(node.body, function(bodyNode){ - var priority = bodyNode && bodyNode._blockHoist; + let priority = bodyNode && bodyNode._blockHoist; if (priority == null) priority = 1; if (priority === true) priority = 2; diff --git a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js index b386a44202..397b48b67a 100644 --- a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js +++ b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js @@ -25,13 +25,13 @@ function shouldShadow(path, shadowPath) { function remap(path, key, create) { // ensure that we're shadowed - var shadowPath = path.inShadow(key); + let shadowPath = path.inShadow(key); if (!shouldShadow(path, shadowPath)) return; - var shadowFunction = path.node._shadowedFunctionLiteral; - var currentFunction; + let shadowFunction = path.node._shadowedFunctionLiteral; + let currentFunction; - var fnPath = path.findParent(function (path) { + let fnPath = path.findParent(function (path) { if (path.isProgram() || path.isFunction()) { // catch current function in case this is the shadowed one and we can ignore it currentFunction = currentFunction || path; @@ -53,11 +53,11 @@ function remap(path, key, create) { // no point in realiasing if we're in this function if (fnPath === currentFunction) return; - var cached = fnPath.getData(key); + let cached = fnPath.getData(key); if (cached) return cached; - var init = create(); - var id = path.scope.generateUidIdentifier(key); + let init = create(); + let id = path.scope.generateUidIdentifier(key); fnPath.setData(key, id); fnPath.scope.push({ id, init }); diff --git a/packages/babel-core/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js index 73535a5d0e..48dd52bbd0 100644 --- a/packages/babel-core/src/transformation/modules/_default.js +++ b/packages/babel-core/src/transformation/modules/_default.js @@ -32,10 +32,10 @@ export default class DefaultFormatter { } addScope(path) { - var source = path.node.source && path.node.source.value; + let source = path.node.source && path.node.source.value; if (!source) return; - var existingScope = this.sourceScopes[source]; + let existingScope = this.sourceScopes[source]; if (existingScope && existingScope !== path.scope) { throw path.buildCodeFrameError(messages.get("modulesDuplicateDeclarations")); } @@ -44,7 +44,7 @@ export default class DefaultFormatter { } isModuleType(node, type) { - var modules = this.file.dynamicImportTypes[type]; + let modules = this.file.dynamicImportTypes[type]; return modules && modules.indexOf(node) >= 0; } @@ -57,8 +57,8 @@ export default class DefaultFormatter { } getMetadata() { - var has = false; - for (var node of (this.file.ast.program.body: Array)) { + let has = false; + for (let node of (this.file.ast.program.body: Array)) { if (t.isModuleDeclaration(node)) { has = true; break; @@ -76,9 +76,9 @@ export default class DefaultFormatter { } remapExportAssignment(node, exported) { - var assign = node; + let assign = node; - for (var i = 0; i < exported.length; i++) { + for (let i = 0; i < exported.length; i++) { assign = t.assignmentExpression( "=", t.memberExpression(t.identifier("exports"), exported[i]), @@ -90,7 +90,7 @@ export default class DefaultFormatter { } _addExport(name, exported) { - var info = this.localExports[name] = this.localExports[name] || { + let info = this.localExports[name] = this.localExports[name] || { binding: this.scope.getBindingIdentifier(name), exported: [] }; @@ -100,21 +100,21 @@ export default class DefaultFormatter { getExport(node, scope) { if (!t.isIdentifier(node)) return; - var local = this.localExports[node.name]; + let local = this.localExports[node.name]; if (local && local.binding === scope.getBindingIdentifier(node.name)) { return local.exported; } } getModuleName() { - var opts = this.file.opts; + let opts = this.file.opts; // moduleId is n/a if a `getModuleId()` is provided if (opts.moduleId != null && !opts.getModuleId) { return opts.moduleId; } - var filenameRelative = opts.filenameRelative; - var moduleName = ""; + let filenameRelative = opts.filenameRelative; + let moduleName = ""; if (opts.moduleRoot != null) { moduleName = opts.moduleRoot + "/"; @@ -126,7 +126,7 @@ export default class DefaultFormatter { if (opts.sourceRoot != null) { // remove sourceRoot from filename - var sourceRootRegEx = new RegExp("^" + opts.sourceRoot + "\/?"); + let sourceRootRegEx = new RegExp("^" + opts.sourceRoot + "\/?"); filenameRelative = filenameRelative.replace(sourceRootRegEx, ""); } @@ -168,8 +168,8 @@ export default class DefaultFormatter { } getExternalReference(node, nodes) { - var ids = this.ids; - var id = node.source.value; + let ids = this.ids; + let id = node.source.value; if (ids[id]) { return ids[id]; @@ -185,7 +185,7 @@ export default class DefaultFormatter { } exportAllDeclaration(node, nodes) { - var ref = this.getExternalReference(node, nodes); + let ref = this.getExternalReference(node, nodes); nodes.push(this.buildExportsWildcard(ref, node)); } @@ -195,7 +195,7 @@ export default class DefaultFormatter { exportSpecifier(specifier, node, nodes) { if (node.source) { - var ref = this.getExternalReference(node, nodes); + let ref = this.getExternalReference(node, nodes); if (specifier.local.name === "default" && !this.noInteropRequireExport) { // importing a default so we need to normalize it @@ -244,28 +244,28 @@ export default class DefaultFormatter { } exportDeclaration(node, nodes) { - var declar = node.declaration; + let declar = node.declaration; - var id = declar.id; + let id = declar.id; if (t.isExportDefaultDeclaration(node)) { id = t.identifier("default"); } - var assign; + let assign; if (t.isVariableDeclaration(declar)) { - for (var i = 0; i < declar.declarations.length; i++) { - var decl = declar.declarations[i]; + for (let i = 0; i < declar.declarations.length; i++) { + let decl = declar.declarations[i]; decl.init = this.buildExportsAssignment(decl.id, decl.init, node).expression; - var newDeclar = t.variableDeclaration(declar.kind, [decl]); + let newDeclar = t.variableDeclaration(declar.kind, [decl]); if (i === 0) t.inherits(newDeclar, declar); nodes.push(newDeclar); } } else { - var ref = declar; + let ref = declar; if (t.isFunctionDeclaration(declar) || t.isClassDeclaration(declar)) { ref = declar.id; diff --git a/packages/babel-core/src/transformation/modules/_strict.js b/packages/babel-core/src/transformation/modules/_strict.js index 02c8aba004..2a615dfc4a 100644 --- a/packages/babel-core/src/transformation/modules/_strict.js +++ b/packages/babel-core/src/transformation/modules/_strict.js @@ -1,7 +1,7 @@ import * as util from "../../util"; export default function (Parent) { - var Constructor = function () { + let Constructor = function () { this.noInteropRequireImport = true; this.noInteropRequireExport = true; Parent.apply(this, arguments); diff --git a/packages/babel-core/src/transformation/modules/amd.js b/packages/babel-core/src/transformation/modules/amd.js index 3a5f5c4341..6f2a1319a4 100644 --- a/packages/babel-core/src/transformation/modules/amd.js +++ b/packages/babel-core/src/transformation/modules/amd.js @@ -11,8 +11,8 @@ export default class AMDFormatter extends DefaultFormatter { } buildDependencyLiterals() { - var names = []; - for (var name in this.ids) { + let names = []; + for (let name in this.ids) { names.push(t.stringLiteral(name)); } return names; @@ -25,28 +25,28 @@ export default class AMDFormatter extends DefaultFormatter { transform(program) { CommonFormatter.prototype.transform.apply(this, arguments); - var body = program.body; + let body = program.body; // build an array of module names - var names = [t.stringLiteral("exports")]; + let names = [t.stringLiteral("exports")]; if (this.passModuleArg) names.push(t.stringLiteral("module")); names = names.concat(this.buildDependencyLiterals()); names = t.arrayExpression(names); // build up define container - var params = values(this.ids); + let params = values(this.ids); if (this.passModuleArg) params.unshift(t.identifier("module")); params.unshift(t.identifier("exports")); - var container = t.functionExpression(null, params, t.blockStatement(body)); + let container = t.functionExpression(null, params, t.blockStatement(body)); - var defineArgs = [names, container]; - var moduleName = this.getModuleName(); + let defineArgs = [names, container]; + let moduleName = this.getModuleName(); if (moduleName) defineArgs.unshift(t.stringLiteral(moduleName)); - var call = t.callExpression(t.identifier("define"), defineArgs); + let call = t.callExpression(t.identifier("define"), defineArgs); program.body = [t.expressionStatement(call)]; } @@ -73,8 +73,8 @@ export default class AMDFormatter extends DefaultFormatter { } importSpecifier(specifier, node, nodes, scope) { - var key = node.source.value; - var ref = this.getExternalReference(node); + let key = node.source.value; + let ref = this.getExternalReference(node); if (t.isImportNamespaceSpecifier(specifier) || t.isImportDefaultSpecifier(specifier)) { this.defaultIds[key] = specifier.local; @@ -90,14 +90,14 @@ export default class AMDFormatter extends DefaultFormatter { // import * as bar from "foo"; } else if (!includes(this.file.dynamicImported, node) && t.isSpecifierDefault(specifier) && !this.noInteropRequireImport) { // import foo from "foo"; - var uid = scope.generateUidIdentifier(specifier.local.name); + let uid = scope.generateUidIdentifier(specifier.local.name); nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(uid, t.callExpression(this.file.addHelper("interop-require-default"), [ref])) ])); ref = t.memberExpression(uid, t.identifier("default")); } else { // import { foo } from "foo"; - var imported = specifier.imported; + let imported = specifier.imported; if (t.isSpecifierDefault(specifier)) imported = t.identifier("default"); ref = t.memberExpression(ref, imported); } @@ -124,8 +124,8 @@ export default class AMDFormatter extends DefaultFormatter { if (this.doDefaultExportInterop(node)) { this.passModuleArg = true; - var declar = node.declaration; - var assign = util.template("exports-default-assign", { + let declar = node.declaration; + let assign = util.template("exports-default-assign", { VALUE: this._pushStatement(declar, nodes) }, true); diff --git a/packages/babel-core/src/transformation/modules/common.js b/packages/babel-core/src/transformation/modules/common.js index b6b18acf0c..1f81d20b68 100644 --- a/packages/babel-core/src/transformation/modules/common.js +++ b/packages/babel-core/src/transformation/modules/common.js @@ -8,16 +8,16 @@ export default class CommonJSFormatter extends DefaultFormatter { } _setup(conditional) { - var file = this.file; - var scope = file.scope; + let file = this.file; + let scope = file.scope; scope.rename("module"); scope.rename("exports"); if (!this.noInteropRequireImport && conditional) { - var templateName = "exports-module-declaration"; + let templateName = "exports-module-declaration"; if (this.file.isLoose("es6.modules")) templateName += "-loose"; - var declar = util.template(templateName, true); + let declar = util.template(templateName, true); declar._blockHoist = 3; file.path.unshiftContainer("body", [declar]); } @@ -38,9 +38,9 @@ export default class CommonJSFormatter extends DefaultFormatter { } importSpecifier(specifier, node, nodes, scope) { - var variableName = specifier.local; + let variableName = specifier.local; - var ref = this.getExternalReference(node, nodes); + let ref = this.getExternalReference(node, nodes); // import foo from "foo"; if (t.isSpecifierDefault(specifier)) { @@ -51,7 +51,7 @@ export default class CommonJSFormatter extends DefaultFormatter { } else if (this.noInteropRequireImport) { this.remaps.add(scope, variableName.name, t.memberExpression(ref, t.identifier("default"))); } else { - var uid = this.scope.generateUidIdentifierBasedOnNode(node, "import"); + let uid = this.scope.generateUidIdentifierBasedOnNode(node, "import"); nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(uid, t.callExpression(this.file.addHelper("interop-require-default"), [ref])) @@ -101,8 +101,8 @@ export default class CommonJSFormatter extends DefaultFormatter { } _getExternalReference(node, nodes) { - var call = t.callExpression(t.identifier("require"), [node.source]); - var uid; + let call = t.callExpression(t.identifier("require"), [node.source]); + let uid; if (this.isModuleType(node, "absolute")) { // absolute module reference @@ -114,7 +114,7 @@ export default class CommonJSFormatter extends DefaultFormatter { uid = uid || node.specifiers[0].local; - var declar = t.variableDeclaration("var", [ + let declar = t.variableDeclaration("var", [ t.variableDeclarator(uid, call) ]); nodes.push(declar); diff --git a/packages/babel-core/src/transformation/modules/ignore.js b/packages/babel-core/src/transformation/modules/ignore.js index aaef9dfb27..98056791a7 100644 --- a/packages/babel-core/src/transformation/modules/ignore.js +++ b/packages/babel-core/src/transformation/modules/ignore.js @@ -3,7 +3,7 @@ import * as t from "babel-types"; export default class IgnoreFormatter extends DefaultFormatter { exportDeclaration(node, nodes) { - var declar = t.toStatement(node.declaration, true); + let declar = t.toStatement(node.declaration, true); if (declar) nodes.push(t.inherits(declar, node)); } diff --git a/packages/babel-core/src/transformation/modules/lib/metadata.js b/packages/babel-core/src/transformation/modules/lib/metadata.js index e22f9aa0a0..4d248ada07 100644 --- a/packages/babel-core/src/transformation/modules/lib/metadata.js +++ b/packages/babel-core/src/transformation/modules/lib/metadata.js @@ -1,7 +1,7 @@ import extend from "lodash/object/extend"; import * as t from "babel-types"; -export var ModuleDeclaration = { +export let ModuleDeclaration = { enter(node, parent, scope, formatter) { if (node.source) { node.source.value = formatter.file.resolveModuleSource(node.source.value); @@ -10,23 +10,23 @@ export var ModuleDeclaration = { } }; -export var ImportDeclaration = { +export let ImportDeclaration = { exit(node, parent, scope, formatter) { formatter.hasLocalImports = true; - var specifiers = []; - var imported = []; + let specifiers = []; + let imported = []; formatter.metadata.imports.push({ source: node.source.value, imported, specifiers }); - for (var specifier of (this.get("specifiers"): Array)) { - var ids = specifier.getBindingIdentifiers(); + for (let specifier of (this.get("specifiers"): Array)) { + let ids = specifier.getBindingIdentifiers(); extend(formatter.localImports, ids); - var local = specifier.node.local.name; + let local = specifier.node.local.name; if (specifier.isImportDefaultSpecifier()) { imported.push("default"); @@ -38,7 +38,7 @@ export var ImportDeclaration = { } if (specifier.isImportSpecifier()) { - var importedName = specifier.node.imported.name; + let importedName = specifier.node.imported.name; imported.push(importedName); specifiers.push({ kind: "named", @@ -61,17 +61,17 @@ export var ImportDeclaration = { export function ExportDeclaration(node, parent, scope, formatter) { formatter.hasLocalExports = true; - var source = node.source ? node.source.value : null; - var exports = formatter.metadata.exports; + let source = node.source ? node.source.value : null; + let exports = formatter.metadata.exports; // export function foo() {} - // export var foo = "bar"; - var declar = this.get("declaration"); + // export let foo = "bar"; + let declar = this.get("declaration"); if (declar.isStatement()) { - var bindings = declar.getBindingIdentifiers(); + let bindings = declar.getBindingIdentifiers(); - for (var name in bindings) { - var binding = bindings[name]; + for (let name in bindings) { + let binding = bindings[name]; formatter._addExport(name, binding); exports.exported.push(name); @@ -84,8 +84,8 @@ export function ExportDeclaration(node, parent, scope, formatter) { } if (this.isExportNamedDeclaration() && node.specifiers) { - for (var specifier of (node.specifiers: Array)) { - var exported = specifier.exported.name; + for (let specifier of (node.specifiers: Array)) { + let exported = specifier.exported.name; exports.exported.push(exported); // export foo from "bar"; @@ -107,7 +107,7 @@ export function ExportDeclaration(node, parent, scope, formatter) { }); } - var local = specifier.local; + let local = specifier.local; if (!local) continue; formatter._addExport(local.name, specifier.exported); @@ -144,7 +144,7 @@ export function ExportDeclaration(node, parent, scope, formatter) { } if (!t.isExportDefaultDeclaration(node) && !declar.isTypeAlias()) { - var onlyDefault = node.specifiers && node.specifiers.length === 1 && t.isSpecifierDefault(node.specifiers[0]); + let onlyDefault = node.specifiers && node.specifiers.length === 1 && t.isSpecifierDefault(node.specifiers[0]); if (!onlyDefault) { formatter.hasNonDefaultExports = true; } diff --git a/packages/babel-core/src/transformation/modules/lib/remaps.js b/packages/babel-core/src/transformation/modules/lib/remaps.js index dcd4737124..9e8ee531a3 100644 --- a/packages/babel-core/src/transformation/modules/lib/remaps.js +++ b/packages/babel-core/src/transformation/modules/lib/remaps.js @@ -1,6 +1,6 @@ import * as t from "babel-types"; -var remapVisitor = { +let remapVisitor = { enter(node) { if (node._skipModulesRemap) { return this.skip(); @@ -8,9 +8,9 @@ var remapVisitor = { }, ReferencedIdentifier(node, parent, scope, remaps) { - var { formatter } = remaps; + let { formatter } = remaps; - var remap = remaps.get(scope, node.name); + let remap = remaps.get(scope, node.name); if (!remap || node === remap) return; if (!scope.hasBinding(node.name) || @@ -26,7 +26,7 @@ var remapVisitor = { AssignmentExpression: { exit(node, parent, scope, { formatter }) { if (!node._ignoreModulesRemap) { - var exported = formatter.getExport(node.left, scope); + let exported = formatter.getExport(node.left, scope); if (exported) { return formatter.remapExportAssignment(node, exported); } @@ -35,26 +35,26 @@ var remapVisitor = { }, UpdateExpression(node, parent, scope, { formatter }) { - var exported = formatter.getExport(node.argument, scope); + let exported = formatter.getExport(node.argument, scope); if (!exported) return; this.skip(); // expand to long file assignment expression - var assign = t.assignmentExpression(node.operator[0] + "=", node.argument, t.numberLiteral(1)); + let assign = t.assignmentExpression(node.operator[0] + "=", node.argument, t.numberLiteral(1)); // remap this assignment expression - var remapped = formatter.remapExportAssignment(assign, exported); + let remapped = formatter.remapExportAssignment(assign, exported); // we don't need to change the result if (t.isExpressionStatement(parent) || node.prefix) { return remapped; } - var nodes = []; + let nodes = []; nodes.push(remapped); - var operator; + let operator; if (node.operator === "--") { operator = "+"; } else { // "++" @@ -112,7 +112,7 @@ export default class Remaps { clearAll() { if (this.all) { - for (var remap of (this.all: Array)) { + for (let remap of (this.all: Array)) { remap.scope.removeData(this._getKey(remap.name)); } } diff --git a/packages/babel-core/src/transformation/modules/system.js b/packages/babel-core/src/transformation/modules/system.js index a5b051efe3..18817b5600 100644 --- a/packages/babel-core/src/transformation/modules/system.js +++ b/packages/babel-core/src/transformation/modules/system.js @@ -5,7 +5,7 @@ import last from "lodash/array/last"; import map from "lodash/collection/map"; import * as t from "babel-types"; -var hoistVariablesVisitor = { +let hoistVariablesVisitor = { Function(path) { // nothing inside is accessible path.skip(); @@ -20,19 +20,19 @@ var hoistVariablesVisitor = { // ignore block hoisted nodes as these can be left in if (state.formatter._canHoist(node)) return; - var nodes = []; + let nodes = []; - for (var i = 0; i < node.declarations.length; i++) { - var declar = node.declarations[i]; + for (let i = 0; i < node.declarations.length; i++) { + let declar = node.declarations[i]; state.hoistDeclarators.push(t.variableDeclarator(declar.id)); if (declar.init) { // no initializer so we can just hoist it as-is - var assign = t.expressionStatement(t.assignmentExpression("=", declar.id, declar.init)); + let assign = t.expressionStatement(t.assignmentExpression("=", declar.id, declar.init)); nodes.push(assign); } } - // for (var i in test) + // for (let i in test) if (t.isFor(parent) && parent.left === node) { return node.declarations[0].id; } @@ -41,7 +41,7 @@ var hoistVariablesVisitor = { } }; -var hoistFunctionsVisitor = { +let hoistFunctionsVisitor = { Function(path) { path.skip(); }, @@ -54,13 +54,13 @@ var hoistFunctionsVisitor = { } }; -var runnerSettersVisitor = { +let runnerSettersVisitor = { enter(path, state) { - var { node } = path; + let { node } = path; if (node._importSource === state.source) { if (t.isVariableDeclaration(node)) { - for (var declar of (node.declarations: Array)) { + for (let declar of (node.declarations: Array)) { state.hoistDeclarators.push(t.variableDeclarator(declar.id)); state.nodes.push(t.expressionStatement( t.assignmentExpression("=", declar.id, declar.init) @@ -93,16 +93,16 @@ export default class SystemFormatter extends AMDFormatter { } buildExportsWildcard(objectIdentifier, node) { - var leftIdentifier = this.scope.generateUidIdentifier("key"); - var valIdentifier = t.memberExpression(objectIdentifier, leftIdentifier, true); + let leftIdentifier = this.scope.generateUidIdentifier("key"); + let valIdentifier = t.memberExpression(objectIdentifier, leftIdentifier, true); - var left = t.variableDeclaration("var", [ + let left = t.variableDeclaration("var", [ t.variableDeclarator(leftIdentifier) ]); - var right = objectIdentifier; + let right = objectIdentifier; - var block = t.blockStatement([ + let block = t.blockStatement([ t.ifStatement( t.binaryExpression("!==", leftIdentifier, t.stringLiteral("default")), t.expressionStatement(this._buildExportCall(leftIdentifier, valIdentifier)) @@ -113,7 +113,7 @@ export default class SystemFormatter extends AMDFormatter { } buildExportsAssignment(id, init, node) { - var call = this._buildExportCall(t.stringLiteral(id.name), init, true); + let call = this._buildExportCall(t.stringLiteral(id.name), init, true); return this._addImportSource(call, node); } @@ -122,9 +122,9 @@ export default class SystemFormatter extends AMDFormatter { } remapExportAssignment(node, exported) { - var assign = node; + let assign = node; - for (var i = 0; i < exported.length; i++) { + for (let i = 0; i < exported.length; i++) { assign = this._buildExportCall(t.stringLiteral(exported[i].name), assign); } @@ -132,7 +132,7 @@ export default class SystemFormatter extends AMDFormatter { } _buildExportCall(id, init, isStatement) { - var call = t.callExpression(this.exportIdentifier, [id, init]); + let call = t.callExpression(this.exportIdentifier, [id, init]); if (isStatement) { return t.expressionStatement(call); } else { @@ -143,7 +143,7 @@ export default class SystemFormatter extends AMDFormatter { importSpecifier(specifier, node, nodes) { AMDFormatter.prototype.importSpecifier.apply(this, arguments); - for (var remap of (this.remaps.getAll(): Array)) { + for (let remap of (this.remaps.getAll(): Array)) { nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(t.identifier(remap.name), remap.node) ])); @@ -155,10 +155,10 @@ export default class SystemFormatter extends AMDFormatter { } _buildRunnerSetters(block, hoistDeclarators) { - var scope = this.file.scope; + let scope = this.file.scope; return t.arrayExpression(map(this.ids, function (uid, source) { - var state = { + let state = { hoistDeclarators: hoistDeclarators, source: source, nodes: [] @@ -177,16 +177,16 @@ export default class SystemFormatter extends AMDFormatter { transform(program) { DefaultFormatter.prototype.transform.apply(this, arguments); - var hoistDeclarators = []; - var moduleName = this.getModuleName(); - var moduleNameLiteral = t.stringLiteral(moduleName); + let hoistDeclarators = []; + let moduleName = this.getModuleName(); + let moduleNameLiteral = t.stringLiteral(moduleName); - var block = t.blockStatement(program.body); + let block = t.blockStatement(program.body); - var setterListNode = this._buildRunnerSetters(block, hoistDeclarators); + let setterListNode = this._buildRunnerSetters(block, hoistDeclarators); this._setters = setterListNode; - var runner = util.template("system", { + let runner = util.template("system", { MODULE_DEPENDENCIES: t.arrayExpression(this.buildDependencyLiterals()), EXPORT_IDENTIFIER: this.exportIdentifier, MODULE_NAME: moduleNameLiteral, @@ -194,10 +194,10 @@ export default class SystemFormatter extends AMDFormatter { EXECUTE: t.functionExpression(null, [], block) }, true); - var handlerBody = runner.expression.arguments[2].body.body; + let handlerBody = runner.expression.arguments[2].body.body; if (!moduleName) runner.expression.arguments.shift(); - var returnStatement = handlerBody.pop(); + let returnStatement = handlerBody.pop(); // hoist up all variable declarations this.file.scope.traverse(block, hoistVariablesVisitor, { @@ -206,7 +206,7 @@ export default class SystemFormatter extends AMDFormatter { }); if (hoistDeclarators.length) { - var hoistDeclar = t.variableDeclaration("var", hoistDeclarators); + let hoistDeclar = t.variableDeclaration("var", hoistDeclarators); hoistDeclar._blockHoist = true; handlerBody.unshift(hoistDeclar); } diff --git a/packages/babel-core/src/transformation/modules/umd.js b/packages/babel-core/src/transformation/modules/umd.js index a6f83c1911..60244a8fb2 100644 --- a/packages/babel-core/src/transformation/modules/umd.js +++ b/packages/babel-core/src/transformation/modules/umd.js @@ -9,38 +9,38 @@ export default class UMDFormatter extends AMDFormatter { transform(program) { DefaultFormatter.prototype.transform.apply(this, arguments); - var body = program.body; + let body = program.body; // build an array of module names - var names = []; + let names = []; for (let name in this.ids) { names.push(t.stringLiteral(name)); } // factory - var ids = values(this.ids); - var args = [t.identifier("exports")]; + let ids = values(this.ids); + let args = [t.identifier("exports")]; if (this.passModuleArg) args.push(t.identifier("module")); args = args.concat(ids); - var factory = t.functionExpression(null, args, t.blockStatement(body)); + let factory = t.functionExpression(null, args, t.blockStatement(body)); // amd - var defineArgs = [t.stringLiteral("exports")]; + let defineArgs = [t.stringLiteral("exports")]; if (this.passModuleArg) defineArgs.push(t.stringLiteral("module")); defineArgs = defineArgs.concat(names); defineArgs = [t.arrayExpression(defineArgs)]; // common - var testExports = util.template("test-exports"); - var testModule = util.template("test-module"); - var commonTests = this.passModuleArg ? t.logicalExpression("&&", testExports, testModule) : testExports; + let testExports = util.template("test-exports"); + let testModule = util.template("test-module"); + let commonTests = this.passModuleArg ? t.logicalExpression("&&", testExports, testModule) : testExports; - var commonArgs = [t.identifier("exports")]; + let commonArgs = [t.identifier("exports")]; if (this.passModuleArg) commonArgs.push(t.identifier("module")); commonArgs = commonArgs.concat(names.map(function (name) { return t.callExpression(t.identifier("require"), [name]); @@ -48,25 +48,25 @@ export default class UMDFormatter extends AMDFormatter { // globals - var browserArgs = []; + let browserArgs = []; if (this.passModuleArg) browserArgs.push(t.identifier("mod")); for (let name in this.ids) { - var id = this.defaultIds[name] || t.identifier(t.toIdentifier(path.basename(name, path.extname(name)))); + let id = this.defaultIds[name] || t.identifier(t.toIdentifier(path.basename(name, path.extname(name)))); browserArgs.push(t.memberExpression(t.identifier("global"), id)); } // - var moduleName = this.getModuleName(); + let moduleName = this.getModuleName(); if (moduleName) defineArgs.unshift(t.stringLiteral(moduleName)); // - var globalArg = this.file.opts.basename; + let globalArg = this.file.opts.basename; if (moduleName) globalArg = moduleName; globalArg = t.identifier(t.toIdentifier(globalArg)); - var runner = util.template("umd-runner-body", { + let runner = util.template("umd-runner-body", { AMD_ARGUMENTS: defineArgs, COMMON_TEST: commonTests, COMMON_ARGUMENTS: commonArgs, diff --git a/packages/babel-core/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js index 460861ef74..9b7abaf207 100644 --- a/packages/babel-core/src/transformation/pipeline.js +++ b/packages/babel-core/src/transformation/pipeline.js @@ -9,7 +9,7 @@ export default class Pipeline { } pretransform(code: string, opts?: Object) { - var file = new File(opts, this); + let file = new File(opts, this); return file.wrap(code, function () { file.addCode(code); file.parseCode(code); @@ -18,7 +18,7 @@ export default class Pipeline { } transform(code: string, opts?: Object) { - var file = new File(opts, this); + let file = new File(opts, this); return file.wrap(code, function () { file.addCode(code); file.parseCode(code); @@ -29,7 +29,7 @@ export default class Pipeline { transformFromAst(ast, code, opts) { ast = normalizeAst(ast); - var file = new File(opts, this); + let file = new File(opts, this); return file.wrap(code, function () { file.addCode(code); file.addAst(ast); diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index c1b560041c..5ef78e0a69 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -10,7 +10,7 @@ export default class PluginPass { } transform() { - var file = this.file; + let file = this.file; file.log.debug(`Start transformer ${this.key}`); traverse(file.ast, this.plugin.visitor, file.scope, file); file.log.debug(`Finish transformer ${this.key}`); diff --git a/packages/babel-core/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js index c960ffbda1..1ba7c3b135 100644 --- a/packages/babel-core/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -8,7 +8,7 @@ export default class Plugin { plugin = this.raw = assign({}, plugin); function take(key) { - var val = plugin[key]; + let val = plugin[key]; delete plugin[key]; return val; } diff --git a/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js index d326bdf0b8..344e1d081b 100644 --- a/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js +++ b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js @@ -8,7 +8,7 @@ import * as t from "babel-types"; * **In** * * ```javascript - * var foo = { + * let foo = { * get bar() { * return "bar"; * } @@ -18,7 +18,7 @@ import * as t from "babel-types"; * **Out** * * ```javascript - * var foo = Object.defineProperties({}, { + * let foo = Object.defineProperties({}, { * bar: { * get: function () { * return "bar"; @@ -30,7 +30,7 @@ import * as t from "babel-types"; * ``` */ -export var visitor = { +export let visitor = { /** * Look for getters and setters on an object. * Filter them out and wrap the object with an `Object.defineProperties` that @@ -38,8 +38,8 @@ export var visitor = { */ ObjectExpression(node, parent, scope, file) { - var hasAny = false; - for (var prop of (node.properties: Array)) { + let hasAny = false; + for (let prop of (node.properties: Array)) { if (prop.kind === "get" || prop.kind === "set") { hasAny = true; break; @@ -47,7 +47,7 @@ export var visitor = { } if (!hasAny) return; - var mutatorMap = {}; + let mutatorMap = {}; node.properties = node.properties.filter(function (prop) { if (prop.kind === "get" || prop.kind === "set") { diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js index 435406b0b9..71691c584f 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js @@ -15,8 +15,8 @@ function isLet(node, parent) { // https://github.com/babel/babel/issues/255 if (isLetInitable(node, parent)) { - for (var i = 0; i < node.declarations.length; i++) { - var declar = node.declarations[i]; + for (let i = 0; i < node.declarations.length; i++) { + let declar = node.declarations[i]; declar.init = declar.init || scope.buildUndefinedNode(); } } @@ -35,26 +35,26 @@ function isVar(node, parent, scope) { } function standardizeLets(declars) { - for (var declar of (declars: Array)) { + for (let declar of (declars: Array)) { delete declar._let; } } -export var metadata = { +export let metadata = { group: "builtin-advanced" }; -export var visitor = { +export let visitor = { VariableDeclaration(node, parent, scope, file) { if (!isLet(node, parent, scope)) return; if (isLetInitable(node) && node._tdzThis) { - var nodes = [node]; + let nodes = [node]; - for (var i = 0; i < node.declarations.length; i++) { - var decl = node.declarations[i]; + for (let i = 0; i < node.declarations.length; i++) { + let decl = node.declarations[i]; if (decl.init) { - var assign = t.assignmentExpression("=", decl.id, decl.init); + let assign = t.assignmentExpression("=", decl.id, decl.init); assign._ignoreBlockScopingTDZ = true; nodes.push(t.expressionStatement(assign)); } @@ -74,29 +74,29 @@ export var visitor = { }, Loop(node, parent, scope, file) { - var init = node.left || node.init; + let init = node.left || node.init; if (isLet(init, node, scope)) { t.ensureBlock(node); node.body._letDeclarators = [init]; } - var blockScoping = new BlockScoping(this, this.get("body"), parent, scope, file); + let blockScoping = new BlockScoping(this, this.get("body"), parent, scope, file); return blockScoping.run(); }, "BlockStatement|Program"(block, parent, scope, file) { if (!t.isLoop(parent)) { - var blockScoping = new BlockScoping(null, this, parent, scope, file); + let blockScoping = new BlockScoping(null, this, parent, scope, file); blockScoping.run(); } } }; function replace(node, parent, scope, remaps) { - var remap = remaps[node.name]; + let remap = remaps[node.name]; if (!remap) return; - var ownBinding = scope.getBindingIdentifier(node.name); + let ownBinding = scope.getBindingIdentifier(node.name); if (ownBinding === remap.binding) { node.name = remap.uid; } else { @@ -106,12 +106,12 @@ function replace(node, parent, scope, remaps) { } } -var replaceVisitor = { +let replaceVisitor = { ReferencedIdentifier: replace, AssignmentExpression(node, parent, scope, remaps) { - var ids = this.getBindingIdentifiers(); - for (var name in ids) { + let ids = this.getBindingIdentifiers(); + for (let name in ids) { replace(ids[name], node, scope, remaps); } }, @@ -123,8 +123,8 @@ function traverseReplace(node, parent, scope, remaps) { } if (t.isAssignmentExpression(node)) { - var ids = t.getBindingIdentifiers(node); - for (var name in ids) { + let ids = t.getBindingIdentifiers(node); + for (let name in ids) { replace(ids[name], parent, scope, remaps); } } @@ -132,34 +132,34 @@ function traverseReplace(node, parent, scope, remaps) { scope.traverse(node, replaceVisitor, remaps); } -var letReferenceBlockVisitor = traverse.visitors.merge([{ +let letReferenceBlockVisitor = traverse.visitors.merge([{ Function(node, parent, scope, state) { this.traverse(letReferenceFunctionVisitor, state); return this.skip(); } }, tdzVisitor]); -var letReferenceFunctionVisitor = traverse.visitors.merge([{ +let letReferenceFunctionVisitor = traverse.visitors.merge([{ ReferencedIdentifier(node, parent, scope, state) { - var ref = state.letReferences[node.name]; + let ref = state.letReferences[node.name]; // not a part of our scope if (!ref) return; // this scope has a variable with the same name so it couldn't belong // to our let scope - var localBinding = scope.getBindingIdentifier(node.name); + let localBinding = scope.getBindingIdentifier(node.name); if (localBinding && localBinding !== ref) return; state.closurify = true; } }, tdzVisitor]); -var hoistVarDeclarationsVisitor = { +let hoistVarDeclarationsVisitor = { enter(node, parent, scope, self) { if (this.isForStatement()) { if (isVar(node.init, node, scope)) { - var nodes = self.pushDeclar(node.init); + let nodes = self.pushDeclar(node.init); if (nodes.length === 1) { node.init = nodes[0]; } else { @@ -179,17 +179,17 @@ var hoistVarDeclarationsVisitor = { } }; -var loopLabelVisitor = { +let loopLabelVisitor = { LabeledStatement(node, parent, scope, state) { state.innerLabels.push(node.label.name); } }; -var continuationVisitor = { +let continuationVisitor = { enter(node, parent, scope, state) { if (this.isAssignmentExpression() || this.isUpdateExpression()) { - var bindings = this.getBindingIdentifiers(); - for (var name in bindings) { + let bindings = this.getBindingIdentifiers(); + for (let name in bindings) { if (state.outsideReferences[name] !== scope.getBindingIdentifier(name)) continue; state.reassignments[name] = true; } @@ -205,9 +205,9 @@ function loopNodeTo(node) { } } -var loopVisitor = { +let loopVisitor = { Loop(node, parent, scope, state) { - var oldIgnoreLabeless = state.ignoreLabeless; + let oldIgnoreLabeless = state.ignoreLabeless; state.ignoreLabeless = true; this.traverse(loopVisitor, state); state.ignoreLabeless = oldIgnoreLabeless; @@ -219,7 +219,7 @@ var loopVisitor = { }, SwitchCase(node, parent, scope, state) { - var oldInSwitchCase = state.inSwitchCase; + let oldInSwitchCase = state.inSwitchCase; state.inSwitchCase = true; this.traverse(loopVisitor, state); state.inSwitchCase = oldInSwitchCase; @@ -227,8 +227,8 @@ var loopVisitor = { }, "BreakStatement|ContinueStatement|ReturnStatement"(node, parent, scope, state) { - var replace; - var loopText = loopNodeTo(node); + let replace; + let loopText = loopNodeTo(node); if (loopText) { if (node.label) { @@ -297,11 +297,11 @@ class BlockScoping { */ run() { - var block = this.block; + let block = this.block; if (block._letDone) return; block._letDone = true; - var needsClosure = this.getLetReferences(); + let needsClosure = this.getLetReferences(); // this is a block within a `Function/Program` so we can safely leave it be if (t.isFunction(this.parent) || t.isProgram(this.block)) return; @@ -321,24 +321,24 @@ class BlockScoping { } remap() { - var hasRemaps = false; - var letRefs = this.letReferences; - var scope = this.scope; + let hasRemaps = false; + let letRefs = this.letReferences; + let scope = this.scope; // alright, so since we aren't wrapping this block in a closure // we have to check if any of our let variables collide with // those in upper scopes and then if they do, generate a uid // for them and replace all references with it - var remaps = Object.create(null); + let remaps = Object.create(null); - for (var key in letRefs) { + for (let key in letRefs) { // just an Identifier node we collected in `getLetReferences` // this is the defining identifier of a declaration - var ref = letRefs[key]; + let ref = letRefs[key]; // todo: could skip this if the colliding binding is in another function if (scope.parentHasBinding(key) || scope.hasGlobal(key)) { - var uid = scope.generateUidIdentifier(ref.name).name; + let uid = scope.generateUidIdentifier(ref.name).name; ref.name = uid; hasRemaps = true; @@ -353,7 +353,7 @@ class BlockScoping { // - var loop = this.loop; + let loop = this.loop; if (loop) { traverseReplace(loop.right, loop, scope, remaps); traverseReplace(loop.test, loop, scope, remaps); @@ -364,14 +364,14 @@ class BlockScoping { } wrapClosure() { - var block = this.block; + let block = this.block; - var outsideRefs = this.outsideLetReferences; + let outsideRefs = this.outsideLetReferences; // remap loop heads with colliding variables if (this.loop) { - for (var name in outsideRefs) { - var id = outsideRefs[name]; + for (let name in outsideRefs) { + let id = outsideRefs[name]; if (this.scope.hasGlobal(id.name) || this.scope.parentHasBinding(id.name)) { delete outsideRefs[id.name]; @@ -389,15 +389,15 @@ class BlockScoping { // `break`s, `continue`s, `return`s etc this.has = this.checkLoop(); - // hoist var references to retain scope + // hoist let references to retain scope this.hoistVarDeclarations(); // turn outsideLetReferences into an array - var params = values(outsideRefs); - var args = values(outsideRefs); + let params = values(outsideRefs); + let args = values(outsideRefs); // build the closure that we're going to wrap the block with - var fn = t.functionExpression(null, params, t.blockStatement(block.body)); + let fn = t.functionExpression(null, params, t.blockStatement(block.body)); fn.shadow = true; // continuation @@ -406,7 +406,7 @@ class BlockScoping { // replace the current block body with the one we're going to build block.body = this.body; - var ref = fn; + let ref = fn; if (this.loop) { ref = this.scope.generateUidIdentifier("loop"); @@ -416,18 +416,18 @@ class BlockScoping { } // build a call and a unique id that we can assign the return value to - var call = t.callExpression(ref, args); - var ret = this.scope.generateUidIdentifier("ret"); + let call = t.callExpression(ref, args); + let ret = this.scope.generateUidIdentifier("ret"); // handle generators - var hasYield = traverse.hasType(fn.body, this.scope, "YieldExpression", t.FUNCTION_TYPES); + let hasYield = traverse.hasType(fn.body, this.scope, "YieldExpression", t.FUNCTION_TYPES); if (hasYield) { fn.generator = true; call = t.yieldExpression(call, true); } // handlers async functions - var hasAsync = traverse.hasType(fn.body, this.scope, "AwaitExpression", t.FUNCTION_TYPES); + let hasAsync = traverse.hasType(fn.body, this.scope, "AwaitExpression", t.FUNCTION_TYPES); if (hasAsync) { fn.async = true; call = t.awaitExpression(call); @@ -441,7 +441,7 @@ class BlockScoping { */ buildClosure(ret: { type: "Identifier" }, call: { type: "CallExpression" }) { - var has = this.has; + let has = this.has; if (has.hasReturn || has.hasBreakContinue) { this.buildHas(ret, call); } else { @@ -458,18 +458,18 @@ class BlockScoping { */ addContinuations(fn) { - var state = { + let state = { reassignments: {}, outsideReferences: this.outsideLetReferences }; this.scope.traverse(fn, continuationVisitor, state); - for (var i = 0; i < fn.params.length; i++) { - var param = fn.params[i]; + for (let i = 0; i < fn.params.length; i++) { + let param = fn.params[i]; if (!state.reassignments[param.name]) continue; - var newParam = this.scope.generateUidIdentifier(param.name); + let newParam = this.scope.generateUidIdentifier(param.name); fn.params[i] = newParam; this.scope.rename(param.name, newParam.name, fn); @@ -480,9 +480,9 @@ class BlockScoping { } getLetReferences() { - var block = this.block; + let block = this.block; - var declarators = block._letDeclarators || []; + let declarators = block._letDeclarators || []; // for (let i = 0; i < declarators.length; i++) { @@ -503,7 +503,7 @@ class BlockScoping { // for (let i = 0; i < declarators.length; i++) { let declar = declarators[i]; - var keys = t.getBindingIdentifiers(declar); + let keys = t.getBindingIdentifiers(declar); extend(this.letReferences, keys); this.hasLetReferences = true; } @@ -511,10 +511,10 @@ class BlockScoping { // no let references so we can just quit if (!this.hasLetReferences) return; - // set let references to plain var references + // set let references to plain let references standardizeLets(declarators); - var state = { + let state = { letReferences: this.letReferences, closurify: false, file: this.file @@ -535,7 +535,7 @@ class BlockScoping { */ checkLoop(): Object { - var state = { + let state = { hasBreakContinue: false, ignoreLabeless: false, inSwitchCase: false, @@ -552,7 +552,7 @@ class BlockScoping { } /** - * Hoist all var declarations in this block to before it so they retain scope + * Hoist all let declarations in this block to before it so they retain scope * once we wrap everything in a closure. */ @@ -566,21 +566,21 @@ class BlockScoping { */ pushDeclar(node: { type: "VariableDeclaration" }): Array { - var declars = []; - var names = t.getBindingIdentifiers(node); - for (var name in names) { + let declars = []; + let names = t.getBindingIdentifiers(node); + for (let name in names) { declars.push(t.variableDeclarator(names[name])); } this.body.push(t.variableDeclaration(node.kind, declars)); - var replace = []; + let replace = []; - for (var i = 0; i < node.declarations.length; i++) { - var declar = node.declarations[i]; + for (let i = 0; i < node.declarations.length; i++) { + let declar = node.declarations[i]; if (!declar.init) continue; - var expr = t.assignmentExpression("=", declar.id, declar.init); + let expr = t.assignmentExpression("=", declar.id, declar.init); replace.push(t.inherits(expr, declar)); } @@ -588,15 +588,15 @@ class BlockScoping { } buildHas(ret: { type: "Identifier" }, call: { type: "CallExpression" }) { - var body = this.body; + let body = this.body; body.push(t.variableDeclaration("var", [ t.variableDeclarator(ret, call) ])); - var retCheck; - var has = this.has; - var cases = []; + let retCheck; + let has = this.has; + let cases = []; if (has.hasReturn) { // typeof ret === "object" @@ -606,7 +606,7 @@ class BlockScoping { } if (has.hasBreakContinue) { - for (var key in has.map) { + for (let key in has.map) { cases.push(t.switchCase(t.stringLiteral(key), [has.map[key]])); } @@ -615,15 +615,15 @@ class BlockScoping { } if (cases.length === 1) { - var single = cases[0]; + let single = cases[0]; body.push(this.file.attachAuxiliaryComment(t.ifStatement( t.binaryExpression("===", ret, single.test), single.consequent[0] ))); } else { // https://github.com/babel/babel/issues/998 - for (var i = 0; i < cases.length; i++) { - var caseConsequent = cases[i].consequent[0]; + for (let i = 0; i < cases.length; i++) { + let caseConsequent = cases[i].consequent[0]; if (t.isBreakStatement(caseConsequent) && !caseConsequent.label) { caseConsequent.label = this.loopLabel = this.loopLabel || this.file.scope.generateUidIdentifier("loop"); } diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js index cdd254fc62..718976b6f1 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js +++ b/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js @@ -1,7 +1,7 @@ import * as t from "babel-types"; function getTDZStatus(refPath, bindingPath) { - var executionStatus = bindingPath._guessExecutionStatusRelativeTo(refPath); + let executionStatus = bindingPath._guessExecutionStatusRelativeTo(refPath); if (executionStatus === "before") { return "inside"; @@ -20,25 +20,25 @@ function buildTDZAssert(node, file) { } function isReference(node, scope, state) { - var declared = state.letReferences[node.name]; + let declared = state.letReferences[node.name]; if (!declared) return false; // declared node is different in this scope return scope.getBindingIdentifier(node.name) === declared; } -export var visitor = { +export let visitor = { ReferencedIdentifier(node, parent, scope, state) { if (t.isFor(parent, { left: node })) return; if (!isReference(node, scope, state)) return; - var bindingPath = scope.getBinding(node.name).path; + let bindingPath = scope.getBinding(node.name).path; - var status = getTDZStatus(this, bindingPath); + let status = getTDZStatus(this, bindingPath); if (status === "inside") return; if (status === "maybe") { - var assert = buildTDZAssert(node, state.file); + let assert = buildTDZAssert(node, state.file); // add tdzThis to parent variable declarator so it's exploded bindingPath.parent._tdzThis = true; @@ -65,11 +65,11 @@ export var visitor = { exit(node, parent, scope, state) { if (node._ignoreBlockScopingTDZ) return; - var nodes = []; - var ids = this.getBindingIdentifiers(); + let nodes = []; + let ids = this.getBindingIdentifiers(); - for (var name in ids) { - var id = ids[name]; + for (let name in ids) { + let id = ids[name]; if (isReference(id, scope, state)) { nodes.push(buildTDZAssert(id, state.file)); diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/index.js b/packages/babel-core/src/transformation/transformers/es6/classes/index.js index 9f35895124..16b80720f9 100644 --- a/packages/babel-core/src/transformation/transformers/es6/classes/index.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/index.js @@ -3,7 +3,7 @@ import VanillaTransformer from "./vanilla"; import * as t from "babel-types"; import { bare } from "../../../helpers/name-method"; -export var visitor = { +export let visitor = { ClassDeclaration(node) { return t.variableDeclaration("var", [ t.variableDeclarator(node.id, t.toExpression(node)) @@ -11,7 +11,7 @@ export var visitor = { }, ClassExpression(node, parent, scope, file) { - var inferred = bare(node, parent, scope); + let inferred = bare(node, parent, scope); if (inferred) return inferred; if (file.isLoose("es6.classes")) { diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/loose.js b/packages/babel-core/src/transformation/transformers/es6/classes/loose.js index 10f7b2e622..4af2320e6c 100644 --- a/packages/babel-core/src/transformation/transformers/es6/classes/loose.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/loose.js @@ -11,11 +11,11 @@ export default class LooseClassTransformer extends VanillaTransformer { if (!node.decorators) { // use assignments instead of define properties for loose classes - var classRef = this.classRef; + let classRef = this.classRef; if (!node.static) classRef = t.memberExpression(classRef, t.identifier("prototype")); - var methodName = t.memberExpression(classRef, node.key, node.computed || t.isLiteral(node.key)); + let methodName = t.memberExpression(classRef, node.key, node.computed || t.isLiteral(node.key)); - var expr = t.expressionStatement(t.assignmentExpression("=", methodName, node.value)); + let expr = t.expressionStatement(t.assignmentExpression("=", methodName, node.value)); t.inheritsComments(expr, node); this.body.push(expr); return true; diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js index 6e0f4ab1b3..af8ca86023 100644 --- a/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js +++ b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js @@ -10,7 +10,7 @@ import * as t from "babel-types"; const PROPERTY_COLLISION_METHOD_NAME = "__initializeProperties"; -var collectPropertyReferencesVisitor = { +let collectPropertyReferencesVisitor = { Identifier: { enter(node, parent, scope, state) { if (this.parentPath.isClassProperty({ key: node })) { @@ -24,7 +24,7 @@ var collectPropertyReferencesVisitor = { } }; -var verifyConstructorVisitor = { +let verifyConstructorVisitor = { MethodDefinition() { this.skip(); }, @@ -54,7 +54,7 @@ var verifyConstructorVisitor = { if (state.isDerived && !state.hasBareSuper) { if (this.inShadow()) { // https://github.com/babel/babel/issues/1920 - var thisAlias = state.constructorPath.getData("this"); + let thisAlias = state.constructorPath.getData("this"); if (!thisAlias) { thisAlias = state.constructorPath.setData( @@ -111,19 +111,19 @@ export default class ClassTransformer { } run() { - var superName = this.superName; - var file = this.file; - var body = this.body; + let superName = this.superName; + let file = this.file; + let body = this.body; // - var constructorBody = this.constructorBody = t.blockStatement([]); + let constructorBody = this.constructorBody = t.blockStatement([]); this.constructor = this.buildConstructor(); // - var closureParams = []; - var closureArgs = []; + let closureParams = []; + let closureArgs = []; // if (this.isDerived) { @@ -136,7 +136,7 @@ export default class ClassTransformer { } // - var decorators = this.node.decorators; + let decorators = this.node.decorators; if (decorators) { // this is so super calls and the decorators have access to the raw function this.directRef = this.scope.generateUidIdentifier(this.classRef); @@ -166,19 +166,19 @@ export default class ClassTransformer { // body.push(t.returnStatement(this.classRef)); - var container = t.functionExpression(null, closureParams, t.blockStatement(body)); + let container = t.functionExpression(null, closureParams, t.blockStatement(body)); container.shadow = true; return t.callExpression(container, closureArgs); } buildConstructor() { - var func = t.functionDeclaration(this.classRef, [], this.constructorBody); + let func = t.functionDeclaration(this.classRef, [], this.constructorBody); t.inherits(func, this.node); return func; } pushToMap(node, enumerable, kind = "value") { - var mutatorMap; + let mutatorMap; if (node.static) { this.hasStaticDescriptors = true; mutatorMap = this.staticMutatorMap; @@ -187,7 +187,7 @@ export default class ClassTransformer { mutatorMap = this.instanceMutatorMap; } - var map = defineMap.push(mutatorMap, node, kind, this.file); + let map = defineMap.push(mutatorMap, node, kind, this.file); if (enumerable) { map.enumerable = t.booleanLiteral(true); @@ -204,15 +204,15 @@ export default class ClassTransformer { */ constructorMeMaybe() { - var hasConstructor = false; - var paths = this.path.get("body.body"); - for (var path of (paths: Array)) { + let hasConstructor = false; + let paths = this.path.get("body.body"); + for (let path of (paths: Array)) { hasConstructor = path.equals("kind", "constructor"); if (hasConstructor) break; } if (hasConstructor) return; - var constructor; + let constructor; if (this.isDerived) { constructor = util.template("class-derived-default-constructor"); } else { @@ -232,7 +232,7 @@ export default class ClassTransformer { this.placePropertyInitializers(); if (this.userConstructor) { - var constructorBody = this.constructorBody; + let constructorBody = this.constructorBody; constructorBody.body = constructorBody.body.concat(this.userConstructor.body.body); t.inherits(this.constructor, this.userConstructor); t.inherits(constructorBody, this.userConstructor.body); @@ -242,20 +242,20 @@ export default class ClassTransformer { } pushBody() { - var classBodyPaths = this.path.get("body.body"); + let classBodyPaths = this.path.get("body.body"); - for (var path of (classBodyPaths: Array)) { - var node = path.node; + for (let path of (classBodyPaths: Array)) { + let node = path.node; if (node.decorators) { memoiseDecorators(node.decorators, this.scope); } if (t.isMethodDefinition(node)) { - var isConstructor = node.kind === "constructor"; + let isConstructor = node.kind === "constructor"; if (isConstructor) this.verifyConstructor(path); - var replaceSupers = new ReplaceSupers({ + let replaceSupers = new ReplaceSupers({ methodPath: path, methodNode: node, objectRef: this.directRef, @@ -290,11 +290,11 @@ export default class ClassTransformer { pushDescriptors() { this.pushInherits(); - var body = this.body; + let body = this.body; - var instanceProps; - var staticProps; - var classHelper = "create-class"; + let instanceProps; + let staticProps; + let classHelper = "create-class"; if (this.hasDecorators) classHelper = "create-decorated-class"; if (this.hasInstanceDescriptors) { @@ -309,10 +309,10 @@ export default class ClassTransformer { if (instanceProps) instanceProps = defineMap.toComputedObjectFromClass(instanceProps); if (staticProps) staticProps = defineMap.toComputedObjectFromClass(staticProps); - var nullNode = t.nullLiteral(); + let nullNode = t.nullLiteral(); // (Constructor, instanceDescriptors, staticDescriptors, instanceInitializers, staticInitializers) - var args = [this.classRef, nullNode, nullNode, nullNode, nullNode]; + let args = [this.classRef, nullNode, nullNode, nullNode, nullNode]; if (instanceProps) args[1] = instanceProps; if (staticProps) args[2] = staticProps; @@ -327,7 +327,7 @@ export default class ClassTransformer { body.unshift(this.buildObjectAssignment(this.staticInitializersId)); } - var lastNonNullIndex = 0; + let lastNonNullIndex = 0; for (let i = 0; i < args.length; i++) { if (args[i] !== nullNode) lastNonNullIndex = i; } @@ -349,11 +349,11 @@ export default class ClassTransformer { } placePropertyInitializers() { - var body = this.instancePropBody; + let body = this.instancePropBody; if (!body.length) return; if (this.hasPropertyCollision()) { - var call = t.expressionStatement(t.callExpression( + let call = t.expressionStatement(t.callExpression( t.memberExpression(t.thisExpression(), t.identifier(PROPERTY_COLLISION_METHOD_NAME)), [] )); @@ -379,7 +379,7 @@ export default class ClassTransformer { hasPropertyCollision(): boolean { if (this.userConstructorPath) { - for (var name in this.instancePropRefs) { + for (let name in this.instancePropRefs) { if (this.userConstructorPath.scope.hasOwnBinding(name)) { return true; } @@ -390,7 +390,7 @@ export default class ClassTransformer { } verifyConstructor(path: NodePath) { - var state = { + let state = { constructorPath: path.get("value"), hasBareSuper: false, bareSuper: null, @@ -400,7 +400,7 @@ export default class ClassTransformer { state.constructorPath.traverse(verifyConstructorVisitor, state); - var thisAlias = state.constructorPath.getData("this"); + let thisAlias = state.constructorPath.getData("this"); if (thisAlias && state.bareSuper) { state.bareSuper.insertAfter(t.variableDeclaration("var", [ t.variableDeclarator(thisAlias, t.thisExpression()) @@ -442,7 +442,7 @@ export default class ClassTransformer { }); if (node.decorators) { - var body = []; + let body = []; if (node.value) { body.push(t.returnStatement(node.value)); node.value = t.functionExpression(null, [], t.blockStatement(body)); @@ -451,8 +451,8 @@ export default class ClassTransformer { } this.pushToMap(node, true, "initializer"); - var initializers; - var target; + let initializers; + let target; if (node.static) { initializers = this.staticInitializersId = this.staticInitializersId || this.scope.generateUidIdentifier("staticInitializers"); body = this.staticPropBody; @@ -492,13 +492,13 @@ export default class ClassTransformer { pushConstructor(method: { type: "MethodDefinition" }, path: NodePath) { // https://github.com/babel/babel/issues/1077 - var fnPath = path.get("value"); + let fnPath = path.get("value"); if (fnPath.scope.hasOwnBinding(this.classRef.name)) { fnPath.scope.rename(this.classRef.name); } - var construct = this.constructor; - var fn = method.value; + let construct = this.constructor; + let fn = method.value; this.userConstructorPath = fnPath; this.userConstructor = fn; @@ -550,7 +550,7 @@ export default class ClassTransformer { */ pushDecorators() { - var decorators = this.node.decorators; + let decorators = this.node.decorators; if (!decorators) return; this.body.push(t.variableDeclaration("var", [ @@ -560,8 +560,8 @@ export default class ClassTransformer { // reverse the decorators so we execute them in the right order decorators = decorators.reverse(); - for (var decorator of (decorators: Array)) { - var decoratorNode = util.template("class-decorator", { + for (let decorator of (decorators: Array)) { + let decoratorNode = util.template("class-decorator", { DECORATOR: decorator.expression, CLASS_REF: this.classRef }, true); diff --git a/packages/babel-core/src/transformation/transformers/es6/for-of.js b/packages/babel-core/src/transformation/transformers/es6/for-of.js index fea662b0ce..de224dc727 100644 --- a/packages/babel-core/src/transformation/transformers/es6/for-of.js +++ b/packages/babel-core/src/transformation/transformers/es6/for-of.js @@ -2,19 +2,19 @@ import * as messages from "babel-messages"; import * as util from "../../../util"; import * as t from "babel-types"; -export var visitor = { +export let visitor = { ForOfStatement(node, parent, scope, file) { if (this.get("right").isArrayExpression()) { return _ForOfStatementArray.call(this, node, scope, file); } - var callback = spec; + let callback = spec; if (file.isLoose("es6.forOf")) callback = loose; - var build = callback(node, parent, scope, file); - var declar = build.declar; - var loop = build.loop; - var block = loop.body; + let build = callback(node, parent, scope, file); + let declar = build.declar; + let loop = build.loop; + let block = loop.body; // ensure that it's a block so we can take all its statements this.ensureBlock(); @@ -40,20 +40,20 @@ export var visitor = { }; export function _ForOfStatementArray(node, scope) { - var nodes = []; - var right = node.right; + let nodes = []; + let right = node.right; if (!t.isIdentifier(right) || !scope.hasBinding(right.name)) { - var uid = scope.generateUidIdentifier("arr"); + let uid = scope.generateUidIdentifier("arr"); nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(uid, right) ])); right = uid; } - var iterationKey = scope.generateUidIdentifier("i"); + let iterationKey = scope.generateUidIdentifier("i"); - var loop = util.template("for-of-array", { + let loop = util.template("for-of-array", { BODY: node.body, KEY: iterationKey, ARR: right @@ -62,9 +62,9 @@ export function _ForOfStatementArray(node, scope) { t.inherits(loop, node); t.ensureBlock(loop); - var iterationValue = t.memberExpression(right, iterationKey, true); + let iterationValue = t.memberExpression(right, iterationKey, true); - var left = node.left; + let left = node.left; if (t.isVariableDeclaration(left)) { left.declarations[0].init = iterationValue; loop.body.body.unshift(left); @@ -81,15 +81,15 @@ export function _ForOfStatementArray(node, scope) { return nodes; } -var loose = function (node, parent, scope, file) { - var left = node.left; - var declar, id; +let loose = function (node, parent, scope, file) { + let left = node.left; + let declar, id; if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { // for (i of test), for ({ i } of test) id = left; } else if (t.isVariableDeclaration(left)) { - // for (var i of test) + // for (let i of test) id = scope.generateUidIdentifier("ref"); declar = t.variableDeclaration(left.kind, [ t.variableDeclarator(left.declarations[0].id, id) @@ -98,10 +98,10 @@ var loose = function (node, parent, scope, file) { throw file.errorWithNode(left, messages.get("unknownForHead", left.type)); } - var iteratorKey = scope.generateUidIdentifier("iterator"); - var isArrayKey = scope.generateUidIdentifier("isArray"); + let iteratorKey = scope.generateUidIdentifier("iterator"); + let isArrayKey = scope.generateUidIdentifier("isArray"); - var loop = util.template("for-of-loose", { + let loop = util.template("for-of-loose", { LOOP_OBJECT: iteratorKey, IS_ARRAY: isArrayKey, OBJECT: node.right, @@ -124,18 +124,18 @@ var loose = function (node, parent, scope, file) { }; }; -var spec = function (node, parent, scope, file) { - var left = node.left; - var declar; +let spec = function (node, parent, scope, file) { + let left = node.left; + let declar; - var stepKey = scope.generateUidIdentifier("step"); - var stepValue = t.memberExpression(stepKey, t.identifier("value")); + let stepKey = scope.generateUidIdentifier("step"); + let stepValue = t.memberExpression(stepKey, t.identifier("value")); if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { // for (i of test), for ({ i } of test) declar = t.expressionStatement(t.assignmentExpression("=", left, stepValue)); } else if (t.isVariableDeclaration(left)) { - // for (var i of test) + // for (let i of test) declar = t.variableDeclaration(left.kind, [ t.variableDeclarator(left.declarations[0].id, stepValue) ]); @@ -145,9 +145,9 @@ var spec = function (node, parent, scope, file) { // - var iteratorKey = scope.generateUidIdentifier("iterator"); + let iteratorKey = scope.generateUidIdentifier("iterator"); - var template = util.template("for-of", { + let template = util.template("for-of", { ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier("didIteratorError"), ITERATOR_COMPLETION: scope.generateUidIdentifier("iteratorNormalCompletion"), ITERATOR_ERROR_KEY: scope.generateUidIdentifier("iteratorError"), @@ -157,10 +157,10 @@ var spec = function (node, parent, scope, file) { BODY: null }); - var isLabeledParent = t.isLabeledStatement(parent); + let isLabeledParent = t.isLabeledStatement(parent); - var tryBody = template[3].block.body; - var loop = tryBody[0]; + let tryBody = template[3].block.body; + let loop = tryBody[0]; if (isLabeledParent) { tryBody[0] = t.labeledStatement(parent.label, loop); diff --git a/packages/babel-core/src/transformation/transformers/es6/modules.js b/packages/babel-core/src/transformation/transformers/es6/modules.js index 16c5ea5b2c..afde8d1f6a 100644 --- a/packages/babel-core/src/transformation/transformers/es6/modules.js +++ b/packages/babel-core/src/transformation/transformers/es6/modules.js @@ -8,19 +8,19 @@ function keepBlockHoist(node, nodes) { } } -export var metadata = { +export let metadata = { group: "builtin-modules" }; -export var visitor = { +export let visitor = { ImportDeclaration(node, parent, scope, file) { // flow type if (node.importKind === "type" || node.importKind === "typeof") return; - var nodes = []; + let nodes = []; if (node.specifiers.length) { - for (var specifier of (node.specifiers: Array)) { + for (let specifier of (node.specifiers: Array)) { file.moduleFormatter.importSpecifier(specifier, node, nodes, scope); } } else { @@ -36,14 +36,14 @@ export var visitor = { }, ExportAllDeclaration(node, parent, scope, file) { - var nodes = []; + let nodes = []; file.moduleFormatter.exportAllDeclaration(node, nodes, scope); keepBlockHoist(node, nodes); return nodes; }, ExportDefaultDeclaration(node, parent, scope, file) { - var nodes = []; + let nodes = []; file.moduleFormatter.exportDeclaration(node, nodes, scope); keepBlockHoist(node, nodes); return nodes; @@ -53,13 +53,13 @@ export var visitor = { // flow type if (this.get("declaration").isTypeAlias()) return; - var nodes = []; + let nodes = []; if (node.declaration) { // make sure variable exports have an initializer // this is done here to avoid duplicating it in the module formatters if (t.isVariableDeclaration(node.declaration)) { - var declar = node.declaration.declarations[0]; + let declar = node.declaration.declarations[0]; declar.init = declar.init || scope.buildUndefinedNode(); } diff --git a/packages/babel-core/src/transformation/transformers/es6/object-super.js b/packages/babel-core/src/transformation/transformers/es6/object-super.js index f3afd17552..b4e6a9006c 100644 --- a/packages/babel-core/src/transformation/transformers/es6/object-super.js +++ b/packages/babel-core/src/transformation/transformers/es6/object-super.js @@ -5,7 +5,7 @@ function Property(path, node, scope, getObjectRef, file) { if (!node.method && node.kind === "init") return; if (!t.isFunction(node.value)) return; - var replaceSupers = new ReplaceSupers({ + let replaceSupers = new ReplaceSupers({ getObjectRef: getObjectRef, methodNode: node, methodPath: path, @@ -17,13 +17,13 @@ function Property(path, node, scope, getObjectRef, file) { replaceSupers.replace(); } -export var visitor = { +export let visitor = { ObjectExpression(node, parent, scope, file) { - var objectRef; - var getObjectRef = () => objectRef = objectRef || scope.generateUidIdentifier("obj"); + let objectRef; + let getObjectRef = () => objectRef = objectRef || scope.generateUidIdentifier("obj"); - var propPaths = this.get("properties"); - for (var i = 0; i < node.properties.length; i++) { + let propPaths = this.get("properties"); + for (let i = 0; i < node.properties.length; i++) { Property(propPaths[i], node.properties[i], scope, getObjectRef, file); } diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/default.js b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js index cb8fabebae..4a49aee048 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/default.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js @@ -3,14 +3,14 @@ import getFunctionArity from "../../../helpers/get-function-arity"; import * as util from "../../../../util"; import * as t from "babel-types"; -var hasDefaults = function (node) { - for (var i = 0; i < node.params.length; i++) { +let hasDefaults = function (node) { + for (let i = 0; i < node.params.length; i++) { if (!t.isIdentifier(node.params[i])) return true; } return false; }; -var iifeVisitor = { +let iifeVisitor = { ReferencedIdentifier(node, parent, scope, state) { if (node.name !== "eval") { if (!state.scope.hasOwnBinding(node.name)) return; @@ -22,27 +22,27 @@ var iifeVisitor = { } }; -export var visitor = { +export let visitor = { Function(node, parent, scope, file) { if (!hasDefaults(node)) return; // ensure it's a block, useful for arrow functions this.ensureBlock(); - var state = { + let state = { iife: false, scope: scope }; - var body = []; + let body = []; // - var argsIdentifier = t.identifier("arguments"); + let argsIdentifier = t.identifier("arguments"); argsIdentifier._shadowedFunctionLiteral = this; // push a default parameter definition function pushDefNode(left, right, i) { - var defNode; + let defNode; if (exceedsLastNonDefault(i) || t.isPattern(left) || file.transformers["es6.spec.blockScoping"].canTransform()) { defNode = util.template("default-parameter", { VARIABLE_NAME: left, @@ -66,12 +66,12 @@ export var visitor = { } // - var lastNonDefaultParam = getFunctionArity(node); + let lastNonDefaultParam = getFunctionArity(node); // - var params = this.get("params"); - for (var i = 0; i < params.length; i++) { - var param = params[i]; + let params = this.get("params"); + for (let i = 0; i < params.length; i++) { + let param = params[i]; if (!param.isAssignmentPattern()) { if (!param.isIdentifier()) { @@ -85,11 +85,11 @@ export var visitor = { continue; } - var left = param.get("left"); - var right = param.get("right"); + let left = param.get("left"); + let right = param.get("right"); if (exceedsLastNonDefault(i) || left.isPattern()) { - var placeholder = scope.generateUidIdentifier("x"); + let placeholder = scope.generateUidIdentifier("x"); placeholder._isDefaultPlaceholder = true; node.params[i] = placeholder; } else { diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js b/packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js new file mode 100644 index 0000000000..da8b0de40f --- /dev/null +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js @@ -0,0 +1,23 @@ +import * as t from "babel-types"; + +export let visitor = { + Function(path) { + let params: Array = path.get("params"); + let body = path.get("body"); + + for (let i = 0; i < params.length; i++) { + let param = params[i]; + if (param.isArrayPattern() || param.isObjectPattern()) { + let uid = path.scope.generateUidIdentifierBasedOnNode(param.node); + + let declar = t.variableDeclaration("let", [ + t.variableDeclarator(param.node, uid) + ]); + declar._blockHoist = params.length - i; + body.unshiftContainer("body", declar); + + param.replaceWith(uid); + } + } + } +}; diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/index.js b/packages/babel-core/src/transformation/transformers/es6/parameters/index.js index e1061a0b68..6e154173aa 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/index.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/index.js @@ -3,8 +3,8 @@ import { visitors } from "babel-traverse"; import * as def from "./default"; import * as rest from "./rest"; -export var metadata = { +export let metadata = { group: "builtin-advanced" }; -export var visitor = visitors.merge([rest.visitor, def.visitor]); +export let visitor = visitors.merge([rest.visitor, def.visitor]); diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js b/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js index 8142737a54..6eb37b76d2 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js +++ b/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js @@ -1,7 +1,7 @@ import * as util from "../../../../util"; import * as t from "babel-types"; -var memberExpressionOptimisationVisitor = { +let memberExpressionOptimisationVisitor = { Scope(node, parent, scope, state) { // check if this scope has a local binding that will shadow the rest parameter if (!scope.bindingIdentifierEquals(state.name, state.outerBinding)) { @@ -17,7 +17,7 @@ var memberExpressionOptimisationVisitor = { Function(node, parent, scope, state) { // skip over functions as whatever `arguments` we reference inside will refer // to the wrong function - var oldNoOptimise = state.noOptimise; + let oldNoOptimise = state.noOptimise; state.noOptimise = true; this.traverse(memberExpressionOptimisationVisitor, state); state.noOptimise = oldNoOptimise; @@ -39,7 +39,7 @@ var memberExpressionOptimisationVisitor = { if (this.parentPath.isMemberExpression({ computed: true, object: node })) { // if we know that this member expression is referencing a number then we can safely // optimise it - var prop = this.parentPath.get("property"); + let prop = this.parentPath.get("property"); if (prop.isBaseType("number")) { state.candidates.push(this); return; @@ -48,7 +48,7 @@ var memberExpressionOptimisationVisitor = { // optimise single spread args in calls if (this.parentPath.isSpreadElement() && state.offset === 0) { - var call = this.parentPath.parentPath; + let call = this.parentPath.parentPath; if (call.isCallExpression() && call.node.arguments.length === 1) { state.candidates.push(this); return; @@ -75,8 +75,8 @@ var memberExpressionOptimisationVisitor = { function optimiseMemberExpression(parent, offset) { if (offset === 0) return; - var newExpr; - var prop = parent.property; + let newExpr; + let prop = parent.property; if (t.isLiteral(prop)) { prop.value += offset; @@ -91,32 +91,32 @@ function hasRest(node) { return t.isRestElement(node.params[node.params.length - 1]); } -export var visitor = { +export let visitor = { Function(node, parent, scope) { if (!hasRest(node)) return; - var restParam = node.params.pop(); - var rest = restParam.argument; + let restParam = node.params.pop(); + let rest = restParam.argument; - var argsId = t.identifier("arguments"); + let argsId = t.identifier("arguments"); // otherwise `arguments` will be remapped in arrow functions argsId._shadowedFunctionLiteral = this; // support patterns if (t.isPattern(rest)) { - var pattern = rest; + let pattern = rest; rest = scope.generateUidIdentifier("ref"); - var declar = t.variableDeclaration("let", pattern.elements.map(function (elem, index) { - var accessExpr = t.memberExpression(rest, t.numberLiteral(index), true); + let declar = t.variableDeclaration("let", pattern.elements.map(function (elem, index) { + let accessExpr = t.memberExpression(rest, t.numberLiteral(index), true); return t.variableDeclarator(elem, accessExpr); })); node.body.body.unshift(declar); } // check and optimise for extremely common cases - var state = { + let state = { references: [], offset: node.params.length, @@ -138,7 +138,7 @@ export var visitor = { if (!state.deopted && !state.references.length) { // we only have shorthands and there are no other references if (state.candidates.length) { - for (var candidate of (state.candidates: Array)) { + for (let candidate of (state.candidates: Array)) { candidate.replaceWith(argsId); if (candidate.parentPath.isMemberExpression()) { optimiseMemberExpression(candidate.parent, state.offset); @@ -155,12 +155,12 @@ export var visitor = { // - var start = t.numberLiteral(node.params.length); - var key = scope.generateUidIdentifier("key"); - var len = scope.generateUidIdentifier("len"); + let start = t.numberLiteral(node.params.length); + let key = scope.generateUidIdentifier("key"); + let len = scope.generateUidIdentifier("len"); - var arrKey = key; - var arrLen = len; + let arrKey = key; + let arrLen = len; if (node.params.length) { // this method has additional params, so we need to subtract // the index of the current argument position from the @@ -180,7 +180,7 @@ export var visitor = { ); } - var loop = util.template("rest", { + let loop = util.template("rest", { ARRAY_TYPE: restParam.typeAnnotation, ARGUMENTS: argsId, ARRAY_KEY: arrKey, @@ -198,10 +198,10 @@ export var visitor = { // perform allocation at the lowest common ancestor of all references loop._blockHoist = 1; - var target = this.getEarliestCommonAncestorFrom(state.references).getStatementParent(); + let target = this.getEarliestCommonAncestorFrom(state.references).getStatementParent(); // don't perform the allocation inside a loop - var highestLoop; + let highestLoop; target.findParent(function (path) { if (path.isLoop()) { highestLoop = path; diff --git a/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js index 26efd93f0d..bffc2e6dff 100644 --- a/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js +++ b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js @@ -1,7 +1,7 @@ import * as regex from "../../helpers/regex"; import * as t from "babel-types"; -export var visitor = { +export let visitor = { RegexLiteral(node) { if (!regex.is(node, "y")) return; return t.newExpression(t.identifier("RegExp"), [ diff --git a/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js b/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js index 8bb2763c0c..cb7266940f 100644 --- a/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js +++ b/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js @@ -1,7 +1,7 @@ import rewritePattern from "regexpu/rewrite-pattern"; import * as regex from "../../helpers/regex"; -export var visitor = { +export let visitor = { RegexLiteral(node) { if (!regex.is(node, "u")) return; node.regex.pattern = rewritePattern(node.pattern, node.flags); diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js b/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js index e8a70a1b6e..48acf05eca 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js @@ -1,16 +1,16 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { group: "builtin-pre", optional: true }; -export var visitor = { +export let visitor = { ArrowFunctionExpression(node, parent, scope, file) { if (node.shadow) return; node.shadow = { this: false }; - var boundThis = t.thisExpression(); + let boundThis = t.thisExpression(); boundThis._forceShadow = this; // make sure that arrow function won't be instantiated diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.modules.js b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js index 9e3f22640f..a51e2ea9ea 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spec.modules.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js @@ -1,13 +1,13 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { group: "builtin-pre", optional: true }; -export var visitor = { +export let visitor = { Program() { - var id = this.scope.generateUidIdentifier("null"); + let id = this.scope.generateUidIdentifier("null"); this.unshiftContainer("body", [ t.variableDeclaration("var", [ t.variableDeclarator(id, t.nullLiteral()) diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js index 0886017864..73826474b8 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js @@ -1,24 +1,24 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { optional: true }; -export var visitor = { +export let visitor = { UnaryExpression(node, parent, scope, file) { if (node._ignoreSpecSymbols) return; if (this.parentPath.isBinaryExpression() && t.EQUALITY_BINARY_OPERATORS.indexOf(parent.operator) >= 0) { // optimise `typeof foo === "string"` since we can determine that they'll never need to handle symbols - var opposite = this.getOpposite(); + let opposite = this.getOpposite(); if (opposite.isLiteral() && opposite.node.value !== "symbol" && opposite.node.value !== "object") return; } if (node.operator === "typeof") { - var call = t.callExpression(file.addHelper("typeof"), [node.argument]); + let call = t.callExpression(file.addHelper("typeof"), [node.argument]); if (this.get("argument").isIdentifier()) { - var undefLiteral = t.stringLiteral("undefined"); - var unary = t.unaryExpression("typeof", node.argument); + let undefLiteral = t.stringLiteral("undefined"); + let unary = t.unaryExpression("typeof", node.argument); unary._ignoreSpecSymbols = true; return t.conditionalExpression( t.binaryExpression("===", unary, undefLiteral), diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js b/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js index 7498b1820e..798718552b 100644 --- a/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js +++ b/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js @@ -1,15 +1,15 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { optional: true, group: "builtin-pre" }; -export var visitor = { +export let visitor = { TemplateLiteral(node, parent) { if (t.isTaggedTemplateExpression(parent)) return; - for (var i = 0; i < node.expressions.length; i++) { + for (let i = 0; i < node.expressions.length; i++) { node.expressions[i] = t.callExpression(t.identifier("String"), [node.expressions[i]]); } } diff --git a/packages/babel-core/src/transformation/transformers/es6/tail-call.js b/packages/babel-core/src/transformation/transformers/es6/tail-call.js index efe7e7eeb7..8400873e22 100644 --- a/packages/babel-core/src/transformation/transformers/es6/tail-call.js +++ b/packages/babel-core/src/transformation/transformers/es6/tail-call.js @@ -5,14 +5,14 @@ import * as util from "../../../util"; import map from "lodash/collection/map"; import * as t from "babel-types"; -export var metadata = { +export let metadata = { group: "builtin-trailing" }; -export var visitor = { +export let visitor = { Function(node, parent, scope, file) { if (node.generator || node.async) return; - var tailCall = new TailCallTransformer(this, scope, file); + let tailCall = new TailCallTransformer(this, scope, file); tailCall.run(); } }; @@ -21,7 +21,7 @@ function returnBlock(expr) { return t.blockStatement([t.returnStatement(expr)]); } -var visitor = { +let visitor = { enter(node, parent) { if (t.isTryStatement(parent)) { if (node === parent.block) { @@ -101,14 +101,14 @@ class TailCallTransformer { } getParams() { - var params = this.params; + let params = this.params; if (!params) { params = this.node.params; this.paramDecls = []; - for (var i = 0; i < params.length; i++) { - var param = params[i]; + for (let i = 0; i < params.length; i++) { + let param = params[i]; if (!param._isDefaultPlaceholder) { this.paramDecls.push(t.variableDeclarator( param, @@ -124,16 +124,16 @@ class TailCallTransformer { hasDeopt() { // check if the ownerId has been reassigned, if it has then it's not safe to // perform optimisations - var ownerIdInfo = this.scope.getBinding(this.ownerId.name); + let ownerIdInfo = this.scope.getBinding(this.ownerId.name); return ownerIdInfo && !ownerIdInfo.constant; } run() { - var node = this.node; + let node = this.node; // only tail recursion can be optimized as for now, so we can skip anonymous // functions entirely - var ownerId = this.ownerId; + let ownerId = this.ownerId; if (!ownerId) return; // traverse the function and look for tail recursion @@ -150,10 +150,10 @@ class TailCallTransformer { // - var body = this.path.ensureBlock().body; + let body = this.path.ensureBlock().body; - for (var i = 0; i < body.length; i++) { - var bodyNode = body[i]; + for (let i = 0; i < body.length; i++) { + let bodyNode = body[i]; if (!t.isFunctionDeclaration(bodyNode)) continue; bodyNode = body[i] = t.variableDeclaration("var", [ @@ -163,22 +163,22 @@ class TailCallTransformer { } if (this.vars.length > 0) { - var declarations = flatten(map(this.vars, function (decl) { + let declarations = flatten(map(this.vars, function (decl) { return decl.declarations; })); - var assignment = reduceRight(declarations, function (expr, decl) { + let assignment = reduceRight(declarations, function (expr, decl) { return t.assignmentExpression("=", decl.id, expr); }, this.scope.buildUndefinedNode()); - var statement = t.expressionStatement(assignment); + let statement = t.expressionStatement(assignment); statement._blockHoist = Infinity; body.unshift(statement); } - var paramDecls = this.paramDecls; + let paramDecls = this.paramDecls; if (paramDecls.length > 0) { - var paramDecl = t.variableDeclaration("var", paramDecls); + let paramDecl = t.variableDeclaration("var", paramDecls); paramDecl._blockHoist = Infinity; body.unshift(paramDecl); } @@ -193,10 +193,10 @@ class TailCallTransformer { BLOCK: node.body }); - var topVars = []; + let topVars = []; if (this.needsThis) { - for (var path of (this.thisPaths: Array)) { + for (let path of (this.thisPaths: Array)) { path.replaceWith(this.getThisId()); } @@ -208,7 +208,7 @@ class TailCallTransformer { path.replaceWith(this.argumentsId); } - var decl = t.variableDeclarator(this.argumentsId); + let decl = t.variableDeclarator(this.argumentsId); if (this.argumentsId) { decl.init = t.identifier("arguments"); decl.init._shadowedFunctionLiteral = this.path; @@ -216,7 +216,7 @@ class TailCallTransformer { topVars.push(decl); } - var leftId = this.leftId; + let leftId = this.leftId; if (leftId) { topVars.push(t.variableDeclarator(leftId)); } @@ -229,13 +229,13 @@ class TailCallTransformer { subTransform(node) { if (!node) return; - var handler = this[`subTransform${node.type}`]; + let handler = this[`subTransform${node.type}`]; if (handler) return handler.call(this, node); } subTransformConditionalExpression(node) { - var callConsequent = this.subTransform(node.consequent); - var callAlternate = this.subTransform(node.alternate); + let callConsequent = this.subTransform(node.consequent); + let callAlternate = this.subTransform(node.alternate); if (!callConsequent && !callAlternate) { return; } @@ -255,12 +255,12 @@ class TailCallTransformer { subTransformLogicalExpression(node) { // only call in right-value of can be optimized - var callRight = this.subTransform(node.right); + let callRight = this.subTransform(node.right); if (!callRight) return; // cache left value as it might have side-effects - var leftId = this.getLeftId(); - var testExpr = t.assignmentExpression( + let leftId = this.getLeftId(); + let testExpr = t.assignmentExpression( "=", leftId, node.left @@ -274,10 +274,10 @@ class TailCallTransformer { } subTransformSequenceExpression(node) { - var seq = node.expressions; + let seq = node.expressions; // only last element can be optimized - var lastCall = this.subTransform(seq[seq.length - 1]); + let lastCall = this.subTransform(seq[seq.length - 1]); if (!lastCall) { return; } @@ -292,8 +292,8 @@ class TailCallTransformer { } subTransformCallExpression(node) { - var callee = node.callee; - var thisBinding, args; + let callee = node.callee; + let thisBinding, args; if (t.isMemberExpression(callee, { computed: false }) && t.isIdentifier(callee.property)) { switch (callee.property.name) { @@ -323,7 +323,7 @@ class TailCallTransformer { if (this.hasDeopt()) return; - var body = []; + let body = []; if (this.needsThis && !t.isThisExpression(thisBinding)) { body.push(t.expressionStatement(t.assignmentExpression( @@ -337,8 +337,8 @@ class TailCallTransformer { args = t.arrayExpression(node.arguments); } - var argumentsId = this.getArgumentsId(); - var params = this.getParams(); + let argumentsId = this.getArgumentsId(); + let params = this.getParams(); if (this.needsArguments) { body.push(t.expressionStatement(t.assignmentExpression( @@ -349,7 +349,7 @@ class TailCallTransformer { } if (t.isArrayExpression(args)) { - var elems = args.elements; + let elems = args.elements; // pad out the args so all the function args are reset - https://github.com/babel/babel/issues/1938 while (elems.length < params.length) { diff --git a/packages/babel-core/src/transformation/transformers/es7/async-functions.js b/packages/babel-core/src/transformation/transformers/es7/async-functions.js index 83435eaaaa..18eb858c21 100644 --- a/packages/babel-core/src/transformation/transformers/es7/async-functions.js +++ b/packages/babel-core/src/transformation/transformers/es7/async-functions.js @@ -1,3 +1,3 @@ -export var metadata = { +export let metadata = { stage: 2 }; diff --git a/packages/babel-core/src/transformation/transformers/es7/class-properties.js b/packages/babel-core/src/transformation/transformers/es7/class-properties.js index ca95104fab..6d65970ef0 100644 --- a/packages/babel-core/src/transformation/transformers/es7/class-properties.js +++ b/packages/babel-core/src/transformation/transformers/es7/class-properties.js @@ -1,4 +1,4 @@ -export var metadata = { +export let metadata = { stage: 0, dependencies: ["es6.classes"] }; diff --git a/packages/babel-core/src/transformation/transformers/es7/comprehensions.js b/packages/babel-core/src/transformation/transformers/es7/comprehensions.js index 0936429cef..b9dd2a9e8e 100644 --- a/packages/babel-core/src/transformation/transformers/es7/comprehensions.js +++ b/packages/babel-core/src/transformation/transformers/es7/comprehensions.js @@ -3,21 +3,21 @@ import traverse from "babel-traverse"; import * as util from "../../../util"; import * as t from "babel-types"; -export var metadata = { +export let metadata = { stage: 0 }; -export var visitor = { +export let visitor = { ComprehensionExpression(node, parent, scope) { - var callback = array; + let callback = array; if (node.generator) callback = generator; return callback(node, parent, scope); } }; function generator(node) { - var body = []; - var container = t.functionExpression(null, [], t.blockStatement(body), true); + let body = []; + let container = t.functionExpression(null, [], t.blockStatement(body), true); container.shadow = true; body.push(buildComprehension(node, function () { @@ -28,22 +28,22 @@ function generator(node) { } function array(node, parent, scope) { - var uid = scope.generateUidIdentifierBasedOnNode(parent); + let uid = scope.generateUidIdentifierBasedOnNode(parent); - var container = util.template("array-comprehension-container", { + let container = util.template("array-comprehension-container", { KEY: uid }); container.callee.shadow = true; - var block = container.callee.body; - var body = block.body; + let block = container.callee.body; + let body = block.body; if (traverse.hasType(node, scope, "YieldExpression", t.FUNCTION_TYPES)) { container.callee.generator = true; container = t.yieldExpression(container, true); } - var returnStatement = body.pop(); + let returnStatement = body.pop(); body.push(buildComprehension(node, function () { return util.template("array-push", { diff --git a/packages/babel-core/src/transformation/transformers/es7/decorators.js b/packages/babel-core/src/transformation/transformers/es7/decorators.js index b0fd12c146..e81465ee44 100644 --- a/packages/babel-core/src/transformation/transformers/es7/decorators.js +++ b/packages/babel-core/src/transformation/transformers/es7/decorators.js @@ -2,15 +2,15 @@ import memoiseDecorators from "../../helpers/memoise-decorators"; import * as defineMap from "../../helpers/define-map"; import * as t from "babel-types"; -export var metadata = { +export let metadata = { dependencies: ["es6.classes"], optional: true, stage: 1 }; -export var visitor = { +export let visitor = { ObjectExpression(node, parent, scope, file) { - var hasDecorators = false; + let hasDecorators = false; for (let i = 0; i < node.properties.length; i++) { let prop = node.properties[i]; if (prop.decorators) { @@ -20,7 +20,7 @@ export var visitor = { } if (!hasDecorators) return; - var mutatorMap = {}; + let mutatorMap = {}; for (let i = 0; i < node.properties.length; i++) { let prop = node.properties[i]; @@ -37,7 +37,7 @@ export var visitor = { defineMap.push(mutatorMap, prop, "initializer", file); } - var obj = defineMap.toClassObject(mutatorMap); + let obj = defineMap.toClassObject(mutatorMap); obj = defineMap.toComputedObjectFromClass(obj); return t.callExpression(file.addHelper("create-decorated-object"), [obj]); } diff --git a/packages/babel-core/src/transformation/transformers/es7/do-expressions.js b/packages/babel-core/src/transformation/transformers/es7/do-expressions.js index 3e3be4b82b..e7f01f1102 100644 --- a/packages/babel-core/src/transformation/transformers/es7/do-expressions.js +++ b/packages/babel-core/src/transformation/transformers/es7/do-expressions.js @@ -1,13 +1,13 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { optional: true, stage: 0 }; -export var visitor = { +export let visitor = { DoExpression(node) { - var body = node.body.body; + let body = node.body.body; if (body.length) { return body; } else { diff --git a/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js index 6539ed6860..90e4b214c5 100644 --- a/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js +++ b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js @@ -3,11 +3,11 @@ import build from "../../helpers/build-binary-assignment-operator-transformer"; import * as t from "babel-types"; -export var metadata = { +export let metadata = { stage: 2 }; -export var visitor = build({ +export let visitor = build({ operator: "**", build(left, right) { diff --git a/packages/babel-core/src/transformation/transformers/es7/export-extensions.js b/packages/babel-core/src/transformation/transformers/es7/export-extensions.js index 2e622c2d56..4cf5d4caa4 100644 --- a/packages/babel-core/src/transformation/transformers/es7/export-extensions.js +++ b/packages/babel-core/src/transformation/transformers/es7/export-extensions.js @@ -2,18 +2,18 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { stage: 1 }; function build(node, nodes, scope) { - var first = node.specifiers[0]; + let first = node.specifiers[0]; if (!t.isExportNamespaceSpecifier(first) && !t.isExportDefaultSpecifier(first)) return; - var specifier = node.specifiers.shift(); - var uid = scope.generateUidIdentifier(specifier.exported.name); + let specifier = node.specifiers.shift(); + let uid = scope.generateUidIdentifier(specifier.exported.name); - var newSpecifier; + let newSpecifier; if (t.isExportNamespaceSpecifier(specifier)) { newSpecifier = t.importNamespaceSpecifier(uid); } else { @@ -26,9 +26,9 @@ function build(node, nodes, scope) { build(node, nodes, scope); } -export var visitor = { +export let visitor = { ExportNamedDeclaration(node, parent, scope) { - var nodes = []; + let nodes = []; build(node, nodes, scope); if (!nodes.length) return; diff --git a/packages/babel-core/src/transformation/transformers/es7/function-bind.js b/packages/babel-core/src/transformation/transformers/es7/function-bind.js index 30f9ddf621..74bf548bff 100644 --- a/packages/babel-core/src/transformation/transformers/es7/function-bind.js +++ b/packages/babel-core/src/transformation/transformers/es7/function-bind.js @@ -2,13 +2,13 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { optional: true, stage: 0 }; function getTempId(scope) { - var id = scope.path.getData("functionBind"); + let id = scope.path.getData("functionBind"); if (id) return id; id = scope.generateDeclaredUidIdentifier("context"); @@ -16,15 +16,15 @@ function getTempId(scope) { } function getStaticContext(bind, scope) { - var object = bind.object || bind.callee.object; + let object = bind.object || bind.callee.object; return scope.isStatic(object) && object; } function inferBindContext(bind, scope) { - var staticContext = getStaticContext(bind, scope); + let staticContext = getStaticContext(bind, scope); if (staticContext) return staticContext; - var tempId = getTempId(scope); + let tempId = getTempId(scope); if (bind.object) { bind.callee = t.sequenceExpression([ t.assignmentExpression("=", tempId, bind.object), @@ -36,18 +36,18 @@ function inferBindContext(bind, scope) { return tempId; } -export var visitor = { +export let visitor = { CallExpression(node, parent, scope) { - var bind = node.callee; + let bind = node.callee; if (!t.isBindExpression(bind)) return; - var context = inferBindContext(bind, scope); + let context = inferBindContext(bind, scope); node.callee = t.memberExpression(bind.callee, t.identifier("call")); node.arguments.unshift(context); }, BindExpression(node, parent, scope) { - var context = inferBindContext(node, scope); + let context = inferBindContext(node, scope); return t.callExpression(t.memberExpression(node.callee, t.identifier("bind")), [context]); } }; diff --git a/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js b/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js index 932adb0118..ea7b9c6a31 100644 --- a/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js +++ b/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js @@ -2,13 +2,13 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { stage: 2, dependencies: ["es6.destructuring"] }; -var hasSpread = function (node) { - for (var i = 0; i < node.properties.length; i++) { +let hasSpread = function (node) { + for (let i = 0; i < node.properties.length; i++) { if (t.isSpreadProperty(node.properties[i])) { return true; } @@ -16,21 +16,21 @@ var hasSpread = function (node) { return false; }; -export var visitor = { +export let visitor = { ObjectExpression(node, parent, scope, file) { if (!hasSpread(node)) return; - var args = []; - var props = []; + let args = []; + let props = []; - var push = function () { + let push = function () { if (!props.length) return; args.push(t.objectExpression(props)); props = []; }; - for (var i = 0; i < node.properties.length; i++) { - var prop = node.properties[i]; + for (let i = 0; i < node.properties.length; i++) { + let prop = node.properties[i]; if (t.isSpreadProperty(prop)) { push(); args.push(prop.argument); diff --git a/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js b/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js index 5059fdd666..e75a1bd865 100644 --- a/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js +++ b/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js @@ -1,3 +1,3 @@ -export var metadata = { +export let metadata = { stage: 1 }; diff --git a/packages/babel-core/src/transformation/transformers/filters.js b/packages/babel-core/src/transformation/transformers/filters.js index dff6631b9b..c34e5ea70e 100644 --- a/packages/babel-core/src/transformation/transformers/filters.js +++ b/packages/babel-core/src/transformation/transformers/filters.js @@ -5,17 +5,17 @@ export function internal(transformer) { } export function blacklist(transformer, opts) { - var blacklist = opts.blacklist; + let blacklist = opts.blacklist; if (blacklist.length && includes(blacklist, transformer.key)) return false; } export function whitelist(transformer, opts) { - var whitelist = opts.whitelist; + let whitelist = opts.whitelist; if (whitelist) return includes(whitelist, transformer.key); } export function stage(transformer, opts) { - var stage = transformer.metadata.stage; + let stage = transformer.metadata.stage; if (stage != null && stage >= opts.stage) return true; } diff --git a/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js b/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js index 74c9601515..dc38fc570a 100644 --- a/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js +++ b/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js @@ -1,14 +1,14 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { group: "builtin-pre" }; -export var visitor = { +export let visitor = { Block: { exit(node) { - for (var i = 0; i < node.body.length; i++) { - var bodyNode = node.body[i]; + for (let i = 0; i < node.body.length; i++) { + let bodyNode = node.body[i]; if (t.isExpressionStatement(bodyNode) && t.isLiteral(bodyNode.expression)) { bodyNode._blockHoist = Infinity; } else { diff --git a/packages/babel-core/src/transformation/transformers/internal/module-formatter.js b/packages/babel-core/src/transformation/transformers/internal/module-formatter.js index d767376582..a617385915 100644 --- a/packages/babel-core/src/transformation/transformers/internal/module-formatter.js +++ b/packages/babel-core/src/transformation/transformers/internal/module-formatter.js @@ -1,12 +1,12 @@ -export var metadata = { +export let metadata = { group: "builtin-modules" }; -export var visitor = { +export let visitor = { Program: { exit(program, parent, scope, file) { // ensure that these are at the top, just like normal imports - for (var node of (file.dynamicImports: Array)) { + for (let node of (file.dynamicImports: Array)) { node._blockHoist = 3; } diff --git a/packages/babel-core/src/transformation/transformers/internal/modules.js b/packages/babel-core/src/transformation/transformers/internal/modules.js index 340cc42893..ff3867981e 100644 --- a/packages/babel-core/src/transformation/transformers/internal/modules.js +++ b/packages/babel-core/src/transformation/transformers/internal/modules.js @@ -7,7 +7,7 @@ import * as t from "babel-types"; function getDeclar(node) { - var declar = node.declaration; + let declar = node.declaration; t.inheritsComments(declar, node); t.removeComments(node); declar._ignoreUserWhitespace = true; @@ -19,18 +19,18 @@ function buildExportSpecifier(id) { } function cloneIdentifier({ name, loc }) { - var id = t.identifier(name); + let id = t.identifier(name); id._loc = loc; return id; } -export var metadata = { +export let metadata = { group: "builtin-pre" }; -export var visitor = { +export let visitor = { ExportDefaultDeclaration(node, parent, scope) { - var declar = node.declaration; + let declar = node.declaration; if (t.isClassDeclaration(declar)) { // export default class Foo {}; @@ -39,7 +39,7 @@ export var visitor = { return nodes; } else if (t.isClassExpression(declar)) { // export default class {}; - var temp = scope.generateUidIdentifier("default"); + let temp = scope.generateUidIdentifier("default"); node.declaration = t.variableDeclaration("var", [ t.variableDeclarator(temp, declar) ]); @@ -58,7 +58,7 @@ export var visitor = { }, ExportNamedDeclaration(node) { - var declar = node.declaration; + let declar = node.declaration; if (t.isClassDeclaration(declar)) { // export class Foo {} @@ -69,14 +69,14 @@ export var visitor = { return nodes; } else if (t.isFunctionDeclaration(declar)) { // export function Foo() {} - var newExport = t.exportNamedDeclaration(null, [buildExportSpecifier(declar.id)]); + let newExport = t.exportNamedDeclaration(null, [buildExportSpecifier(declar.id)]); newExport._blockHoist = 2; return [getDeclar(node), newExport]; } else if (t.isVariableDeclaration(declar)) { - // export var foo = "bar"; - var specifiers = []; - var bindings = this.get("declaration").getBindingIdentifiers(); - for (var key in bindings) { + // export let foo = "bar"; + let specifiers = []; + let bindings = this.get("declaration").getBindingIdentifiers(); + for (let key in bindings) { specifiers.push(buildExportSpecifier(bindings[key])); } return [declar, t.exportNamedDeclaration(null, specifiers)]; @@ -85,11 +85,11 @@ export var visitor = { Program: { enter(node) { - var imports = []; - var rest = []; + let imports = []; + let rest = []; - for (var i = 0; i < node.body.length; i++) { - var bodyNode = node.body[i]; + for (let i = 0; i < node.body.length; i++) { + let bodyNode = node.body[i]; if (t.isImportDeclaration(bodyNode)) { imports.push(bodyNode); } else { diff --git a/packages/babel-core/src/transformation/transformers/internal/validation.js b/packages/babel-core/src/transformation/transformers/internal/validation.js index 7704923a70..8b27442419 100644 --- a/packages/babel-core/src/transformation/transformers/internal/validation.js +++ b/packages/babel-core/src/transformation/transformers/internal/validation.js @@ -1,22 +1,22 @@ import * as messages from "babel-messages"; import * as t from "babel-types"; -export var metadata = { +export let metadata = { group: "builtin-pre" }; -export var visitor = { +export let visitor = { ForXStatement(node, parent, scope, file) { - var left = node.left; + let left = node.left; if (t.isVariableDeclaration(left)) { - var declar = left.declarations[0]; + let declar = left.declarations[0]; if (declar.init) throw file.errorWithNode(declar, messages.get("noAssignmentsInForHead")); } }, Property(node, parent, scope, file) { if (node.kind === "set") { - var first = node.value.params[0]; + let first = node.value.params[0]; if (t.isRestElement(first)) { throw file.errorWithNode(first, messages.get("settersNoRest")); } diff --git a/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js b/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js index b5eeba6c62..b6b78bc25f 100644 --- a/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js +++ b/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js @@ -1,10 +1,10 @@ import { _ForOfStatementArray } from "../es6/for-of"; -export var metadata = { +export let metadata = { optional: true }; -export var visitor = { +export let visitor = { ForOfStatement(node, parent, scope, file) { if (this.get("right").isGenericType("Array")) { return _ForOfStatementArray.call(this, node, scope, file); diff --git a/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js b/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js index cf60703d1e..88260235ce 100644 --- a/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js +++ b/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js @@ -1,11 +1,11 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { optional: true, group: "builtin-trailing" }; -export var visitor = { +export let visitor = { Program(node, parent, scope, file){ if (file.moduleFormatter._setters){ scope.traverse(file.moduleFormatter._setters, optimizeSettersVisitor, { @@ -24,7 +24,7 @@ export var visitor = { * TODO: Ideally this would be optimized during construction of the setters, but the current * architecture of the module formatters make that difficult. */ -var optimizeSettersVisitor = { +let optimizeSettersVisitor = { FunctionExpression: { enter: (node, parent, scope, state) => { state.hasExports = false; @@ -44,7 +44,7 @@ var optimizeSettersVisitor = { if (!t.isIdentifier(node.callee, {name: state.exportFunctionIdentifier.name})) return; state.hasExports = true; - var memberNode = t.memberExpression(t.cloneDeep(state.exportObjectIdentifier), node.arguments[0], true); + let memberNode = t.memberExpression(t.cloneDeep(state.exportObjectIdentifier), node.arguments[0], true); return t.assignmentExpression("=", memberNode, node.arguments[1]); } }; diff --git a/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js index 6013f4772c..9769516a9f 100644 --- a/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js +++ b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js @@ -1,13 +1,13 @@ import { react } from "babel-types"; import * as t from "babel-types"; -export var metadata = { +export let metadata = { optional: true }; function hasRefOrSpread(attrs) { - for (var i = 0; i < attrs.length; i++) { - var attr = attrs[i]; + for (let i = 0; i < attrs.length; i++) { + let attr = attrs[i]; if (t.isJSXSpreadAttribute(attr)) return true; if (isJSXAttributeOfName(attr, "ref")) return true; } @@ -17,18 +17,18 @@ function hasRefOrSpread(attrs) { function isJSXAttributeOfName(attr, name) { return t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: name }); } -export var visitor = { +export let visitor = { JSXElement(node, parent, scope, file) { // filter - var open = node.openingElement; + let open = node.openingElement; if (hasRefOrSpread(open.attributes)) return; // init - var isComponent = true; - var props = t.objectExpression([]); - var obj = t.objectExpression([]); - var key = t.nullLiteral(); - var type = open.name; + let isComponent = true; + let props = t.objectExpression([]); + let obj = t.objectExpression([]); + let key = t.nullLiteral(); + let type = open.name; if (t.isJSXIdentifier(type) && react.isCompatTag(type.name)) { type = t.stringLiteral(type.name); @@ -48,14 +48,14 @@ export var visitor = { pushElemProp("ref", t.nullLiteral()); if (node.children.length) { - var children = react.buildChildren(node); + let children = react.buildChildren(node); children = children.length === 1 ? children[0] : t.arrayExpression(children); pushProp(props.properties, t.identifier("children"), children); } // props - for (var i = 0; i < open.attributes.length; i++) { - var attr = open.attributes[i]; + for (let i = 0; i < open.attributes.length; i++) { + let attr = open.attributes[i]; if (isJSXAttributeOfName(attr, "key")) { key = attr.value; } else { diff --git a/packages/babel-core/src/transformation/transformers/other/async-to-generator.js b/packages/babel-core/src/transformation/transformers/other/async-to-generator.js index 844bfd0691..a1ca6f2666 100644 --- a/packages/babel-core/src/transformation/transformers/other/async-to-generator.js +++ b/packages/babel-core/src/transformation/transformers/other/async-to-generator.js @@ -2,12 +2,12 @@ import remapAsyncToGenerator from "../../helpers/remap-async-to-generator"; export { manipulateOptions } from "./bluebird-coroutines"; -export var metadata = { +export let metadata = { optional: true, dependencies: ["es7.asyncFunctions", "es6.classes"] }; -export var visitor = { +export let visitor = { Function(node, parent, scope, file) { if (!node.async || node.generator) return; diff --git a/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js b/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js index 52cdc1b1e7..1caf3e82cd 100644 --- a/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js +++ b/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js @@ -5,12 +5,12 @@ export function manipulateOptions(opts) { opts.blacklist.push("regenerator"); } -export var metadata = { +export let metadata = { optional: true, dependencies: ["es7.asyncFunctions", "es6.classes"] }; -export var visitor = { +export let visitor = { Function(node, parent, scope, file) { if (!node.async || node.generator) return; diff --git a/packages/babel-core/src/transformation/transformers/other/react-compat.js b/packages/babel-core/src/transformation/transformers/other/react-compat.js index ed065009eb..0e3be1822b 100644 --- a/packages/babel-core/src/transformation/transformers/other/react-compat.js +++ b/packages/babel-core/src/transformation/transformers/other/react-compat.js @@ -5,12 +5,12 @@ export function manipulateOptions(opts) { opts.blacklist.push("react"); } -export var metadata = { +export let metadata = { optional: true, group: "builtin-advanced" }; -export var visitor = require("../../helpers/build-react-transformer")({ +export let visitor = require("../../helpers/build-react-transformer")({ pre(state) { state.callee = state.tagExpr; }, diff --git a/packages/babel-core/src/transformation/transformers/other/react.js b/packages/babel-core/src/transformation/transformers/other/react.js index 1345f842f2..7a8267bef6 100644 --- a/packages/babel-core/src/transformation/transformers/other/react.js +++ b/packages/babel-core/src/transformation/transformers/other/react.js @@ -1,16 +1,16 @@ import { react } from "babel-types"; import * as t from "babel-types"; -var JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/; +let JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/; -export var metadata = { +export let metadata = { group: "builtin-advanced" }; -export var visitor = require("../../helpers/build-react-transformer")({ +export let visitor = require("../../helpers/build-react-transformer")({ pre(state) { - var tagName = state.tagName; - var args = state.args; + let tagName = state.tagName; + let args = state.args; if (react.isCompatTag(tagName)) { args.push(t.stringLiteral(tagName)); } else { @@ -24,11 +24,11 @@ export var visitor = require("../../helpers/build-react-transformer")({ }); visitor.Program = function (node, parent, scope, file) { - var id = file.opts.jsxPragma; + let id = file.opts.jsxPragma; - for (var i = 0; i < file.ast.comments.length; i++) { - var comment = file.ast.comments[i]; - var matches = JSX_ANNOTATION_REGEX.exec(comment.value); + for (let i = 0; i < file.ast.comments.length; i++) { + let comment = file.ast.comments[i]; + let matches = JSX_ANNOTATION_REGEX.exec(comment.value); if (matches) { id = matches[1]; if (id === "React.DOM") { diff --git a/packages/babel-core/src/transformation/transformers/other/regenerator.js b/packages/babel-core/src/transformation/transformers/other/regenerator.js index 91f91dffb8..4d051b5f00 100644 --- a/packages/babel-core/src/transformation/transformers/other/regenerator.js +++ b/packages/babel-core/src/transformation/transformers/other/regenerator.js @@ -7,11 +7,11 @@ import * as t from "babel-types"; // the version that Regenerator depends on. See for example #1958. const NodePath = regenerator.types.NodePath; -export var metadata = { +export let metadata = { group: "builtin-advanced" }; -export var visitor = { +export let visitor = { Function: { exit(node) { if (node.async || node.generator) { @@ -33,17 +33,17 @@ export var visitor = { // complicated by having to include intermediate objects like blockStatement.body // arrays, in addition to Node objects. function convertNodePath(path) { - var programNode; - var keysAlongPath = []; + let programNode; + let keysAlongPath = []; while (path) { - var pp = path.parentPath; - var parentNode = pp && pp.node; + let pp = path.parentPath; + let parentNode = pp && pp.node; if (parentNode) { keysAlongPath.push(path.key); if (parentNode !== path.container) { - var found = Object.keys(parentNode).some(listKey => { + let found = Object.keys(parentNode).some(listKey => { if (parentNode[listKey] === path.container) { keysAlongPath.push(listKey); return true; @@ -68,7 +68,7 @@ function convertNodePath(path) { throw new Error("Failed to find root Program node"); } - var nodePath = new NodePath(programNode); + let nodePath = new NodePath(programNode); while (keysAlongPath.length > 0) { nodePath = nodePath.get(keysAlongPath.pop()); diff --git a/packages/babel-core/src/transformation/transformers/other/strict.js b/packages/babel-core/src/transformation/transformers/other/strict.js index 06832f7061..0902c92fcb 100644 --- a/packages/babel-core/src/transformation/transformers/other/strict.js +++ b/packages/babel-core/src/transformation/transformers/other/strict.js @@ -1,6 +1,6 @@ import * as t from "babel-types"; -export var metadata = { +export let metadata = { group: "builtin-pre" }; @@ -16,12 +16,12 @@ function isUseStrict(node) { } } -export var visitor = { +export let visitor = { Program: { enter(program) { - var first = program.body[0]; + let first = program.body[0]; - var directive; + let directive; if (t.isExpressionStatement(first) && isUseStrict(first.expression)) { directive = first; } else { diff --git a/packages/babel-core/src/transformation/transformers/spec/function-name.js b/packages/babel-core/src/transformation/transformers/spec/function-name.js index 5b6784c0b2..a4044ce7d2 100644 --- a/packages/babel-core/src/transformation/transformers/spec/function-name.js +++ b/packages/babel-core/src/transformation/transformers/spec/function-name.js @@ -1,12 +1,12 @@ import { bare } from "../../helpers/name-method"; -export var metadata = { +export let metadata = { group: "builtin-basic" }; // visit Property functions first - https://github.com/babel/babel/issues/1860 -export var visitor = { +export let visitor = { "ArrowFunctionExpression|FunctionExpression": { exit() { if (!this.parentPath.isProperty()) { @@ -16,11 +16,11 @@ export var visitor = { }, ObjectExpression() { - var props = this.get("properties"); - for (var prop of (props: Array)) { - var value = prop.get("value"); + let props = this.get("properties"); + for (let prop of (props: Array)) { + let value = prop.get("value"); if (value.isFunction()) { - var newNode = bare(value.node, prop.node, value.scope); + let newNode = bare(value.node, prop.node, value.scope); if (newNode) value.replaceWith(newNode); } } diff --git a/packages/babel-core/src/util.js b/packages/babel-core/src/util.js index 878af6f20c..cc7fe4f303 100644 --- a/packages/babel-core/src/util.js +++ b/packages/babel-core/src/util.js @@ -24,8 +24,8 @@ export { inherits, inspect } from "util"; */ export function canCompile(filename: string, altExts?: Array) { - var exts = altExts || canCompile.EXTENSIONS; - var ext = path.extname(filename); + let exts = altExts || canCompile.EXTENSIONS; + let ext = path.extname(filename); return contains(exts, ext); } @@ -68,7 +68,7 @@ export function regexify(val: any): RegExp { if (startsWith(val, "./") || startsWith(val, "*/")) val = val.slice(2); if (startsWith(val, "**/")) val = val.slice(3); - var regex = minimatch.makeRe(val, { nocase: true }); + let regex = minimatch.makeRe(val, { nocase: true }); return new RegExp(regex.source.slice(1, -1), "i"); } @@ -142,7 +142,7 @@ function _shouldIgnore(pattern, filename) { * A visitor for Babel templates, replaces placeholder references. */ -var templateVisitor = { +let templateVisitor = { /** * 360 NoScope PWNd */ @@ -169,7 +169,7 @@ var templateVisitor = { */ export function template(name: string, nodes?: Array, keepExpression?: boolean): Object { - var ast = exports.templates[name]; + let ast = exports.templates[name]; if (!ast) throw new ReferenceError(`unknown template ${name}`); if (nodes === true) { @@ -185,7 +185,7 @@ export function template(name: string, nodes?: Array, keepExpression?: b if (ast.body.length > 1) return ast.body; - var node = ast.body[0]; + let node = ast.body[0]; if (!keepExpression && t.isExpressionStatement(node)) { return node.expression; @@ -200,7 +200,7 @@ export function template(name: string, nodes?: Array, keepExpression?: b export function parseTemplate(loc: string, code: string): Object { try { - var ast = parse(code, { filename: loc, looseModules: true }).program; + let ast = parse(code, { filename: loc, looseModules: true }).program; ast = traverse.removeProperties(ast); return ast; } catch (err) { @@ -214,19 +214,19 @@ export function parseTemplate(loc: string, code: string): Object { */ function loadTemplates(): Object { - var templates = {}; + let templates = {}; - var templatesLoc = path.join(__dirname, "transformation/templates"); + let templatesLoc = path.join(__dirname, "transformation/templates"); if (!pathExists.sync(templatesLoc)) { throw new ReferenceError(messages.get("missingTemplatesDirectory")); } - for (var name of (fs.readdirSync(templatesLoc): Array)) { + for (let name of (fs.readdirSync(templatesLoc): Array)) { if (name[0] === ".") continue; - var key = path.basename(name, path.extname(name)); - var loc = path.join(templatesLoc, name); - var code = fs.readFileSync(loc, "utf8"); + let key = path.basename(name, path.extname(name)); + let loc = path.join(templatesLoc, name); + let code = fs.readFileSync(loc, "utf8"); templates[key] = parseTemplate(loc, code); } diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index 1dc67227d9..8cc1760976 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -210,12 +210,12 @@ export default class Buffer { */ _removeSpacesAfterLastNewline() { - var lastNewlineIndex = this.buf.lastIndexOf("\n"); + let lastNewlineIndex = this.buf.lastIndexOf("\n"); if (lastNewlineIndex === -1) { return; } - var index = this.buf.length - 1; + let index = this.buf.length - 1; while (index > lastNewlineIndex) { if (this.buf[index] !== " ") { break; @@ -236,7 +236,7 @@ export default class Buffer { push(str, noIndent) { if (!this.format.compact && this._indent && !noIndent && str !== "\n") { // we have an indent level and we aren't pushing a newline - var indent = this.getIndent(); + let indent = this.getIndent(); // replace all newlines with newlines with the indentation str = str.replace(/\n/g, `\n${indent}`); @@ -254,10 +254,10 @@ export default class Buffer { _push(str) { // see startTerminatorless() instance method - var parenPushNewlineState = this.parenPushNewlineState; + let parenPushNewlineState = this.parenPushNewlineState; if (parenPushNewlineState) { - for (var i = 0; i < str.length; i++) { - var cha = str[i]; + for (let i = 0; i < str.length; i++) { + let cha = str[i]; // we can ignore spaces since they wont interupt a terminatorless separator if (cha === " ") continue; @@ -299,8 +299,8 @@ export default class Buffer { isLast(cha) { if (this.format.compact) return false; - var buf = this.buf; - var last = buf[buf.length - 1]; + let buf = this.buf; + let last = buf[buf.length - 1]; if (Array.isArray(cha)) { return includes(cha, last); diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index d1ec81fd54..598592c4c6 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -5,8 +5,8 @@ import * as t from "babel-types"; const SCIENTIFIC_NOTATION = /e/i; export function UnaryExpression(node, print) { - var needsSpace = /[a-z]$/.test(node.operator); - var arg = node.argument; + let needsSpace = /[a-z]$/.test(node.operator); + let arg = node.argument; if (t.isUpdateExpression(arg) || t.isUnaryExpression(arg)) { needsSpace = true; @@ -86,9 +86,9 @@ export function CallExpression(node, print) { this.push("("); - var isPrettyCall = node._prettyCall && !this.format.retainLines && !this.format.compact; + let isPrettyCall = node._prettyCall && !this.format.retainLines && !this.format.compact; - var separator; + let separator; if (isPrettyCall) { separator = ",\n"; this.newline(); @@ -115,15 +115,15 @@ function buildYieldAwait(keyword) { if (node.argument) { this.push(" "); - var terminatorState = this.startTerminatorless(); + let terminatorState = this.startTerminatorless(); print.plain(node.argument); this.endTerminatorless(terminatorState); } }; } -export var YieldExpression = buildYieldAwait("yield"); -export var AwaitExpression = buildYieldAwait("await"); +export let YieldExpression = buildYieldAwait("yield"); +export let AwaitExpression = buildYieldAwait("await"); export function EmptyStatement() { this.semicolon(); @@ -144,7 +144,7 @@ export function AssignmentExpression(node, print) { // todo: add cases where the spaces can be dropped when in compact mode print.plain(node.left); - var spaces = node.operator === "in" || node.operator === "instanceof"; + let spaces = node.operator === "in" || node.operator === "instanceof"; spaces = true; // todo: https://github.com/babel/babel/issues/1835 this.space(spaces); @@ -175,14 +175,14 @@ export { }; export function MemberExpression(node, print) { - var obj = node.object; + let obj = node.object; print.plain(obj); if (!node.computed && t.isMemberExpression(node.property)) { throw new TypeError("Got a MemberExpression for MemberExpression property"); } - var computed = node.computed; + let computed = node.computed; if (t.isLiteral(node.property) && isNumber(node.property.value)) { computed = true; } @@ -193,7 +193,7 @@ export function MemberExpression(node, print) { this.push("]"); } else { if (t.isLiteral(node.object)) { - var val = this._Literal(node.object); + let val = this._Literal(node.object); if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !this.endsWith(".")) { this.push("."); } diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index 8e0e0cf832..4a42f81d04 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -38,7 +38,7 @@ export function DeclareModule(node, print) { } export function DeclareVariable(node, print) { - this.push("declare var "); + this.push("declare let "); print.plain(node.id); print.plain(node.id.typeAnnotation); this.semicolon(); @@ -174,7 +174,7 @@ export { TypeParameterInstantiation as TypeParameterDeclaration }; export function ObjectTypeAnnotation(node, print) { this.push("{"); - var props = node.properties.concat(node.callProperties, node.indexers); + let props = node.properties.concat(node.callProperties, node.indexers); if (props.length) { this.space(); diff --git a/packages/babel-generator/src/generators/jsx.js b/packages/babel-generator/src/generators/jsx.js index b187930a69..a89061e540 100644 --- a/packages/babel-generator/src/generators/jsx.js +++ b/packages/babel-generator/src/generators/jsx.js @@ -39,12 +39,12 @@ export function JSXText(node) { } export function JSXElement(node, print) { - var open = node.openingElement; + let open = node.openingElement; print.plain(open); if (open.selfClosing) return; this.indent(); - for (var child of (node.children: Array)) { + for (let child of (node.children: Array)) { print.plain(child); } this.dedent(); diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index 68f86f67dd..920235f05f 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -17,9 +17,9 @@ export function _params(node, print) { } export function _method(node, print) { - var value = node.value; - var kind = node.kind; - var key = node.key; + let value = node.value; + let kind = node.kind; + let key = node.key; if (kind === "method" || kind === "init") { if (value.generator) { diff --git a/packages/babel-generator/src/generators/modules.js b/packages/babel-generator/src/generators/modules.js index 951e6bb24b..0864dd58a6 100644 --- a/packages/babel-generator/src/generators/modules.js +++ b/packages/babel-generator/src/generators/modules.js @@ -51,10 +51,10 @@ export function ExportDefaultDeclaration(node, print) { } function ExportDeclaration(node, print) { - var specifiers = node.specifiers; + let specifiers = node.specifiers; if (node.declaration) { - var declar = node.declaration; + let declar = node.declaration; print.plain(declar); if (t.isStatement(declar) || t.isFunction(declar) || t.isClass(declar)) return; } else { @@ -62,8 +62,8 @@ function ExportDeclaration(node, print) { this.push("type "); } - var first = specifiers[0]; - var hasSpecial = false; + let first = specifiers[0]; + let hasSpecial = false; if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) { hasSpecial = true; print.plain(specifiers.shift()); @@ -98,9 +98,9 @@ export function ImportDeclaration(node, print) { this.push(node.importKind + " "); } - var specfiers = node.specifiers; + let specfiers = node.specifiers; if (specfiers && specfiers.length) { - var first = node.specifiers[0]; + let first = node.specifiers[0]; if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) { print.plain(node.specifiers.shift()); if (node.specifiers.length) { diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index d059ead64d..7a67bfdc63 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -55,7 +55,7 @@ export function WhileStatement(node, print) { print.block(node.body); } -var buildForXStatement = function (op) { +let buildForXStatement = function (op) { return function (node, print) { this.keyword("for"); this.push("("); @@ -67,8 +67,8 @@ var buildForXStatement = function (op) { }; }; -export var ForInStatement = buildForXStatement("in"); -export var ForOfStatement = buildForXStatement("of"); +export let ForInStatement = buildForXStatement("in"); +export let ForOfStatement = buildForXStatement("of"); export function DoWhileStatement(node, print) { this.push("do "); @@ -84,10 +84,10 @@ function buildLabelStatement(prefix, key = "label") { return function (node, print) { this.push(prefix); - var label = node[key]; + let label = node[key]; if (label) { this.push(" "); - var terminatorState = this.startTerminatorless(); + let terminatorState = this.startTerminatorless(); print.plain(label); this.endTerminatorless(terminatorState); } @@ -96,10 +96,10 @@ function buildLabelStatement(prefix, key = "label") { }; } -export var ContinueStatement = buildLabelStatement("continue"); -export var ReturnStatement = buildLabelStatement("return", "argument"); -export var BreakStatement = buildLabelStatement("break"); -export var ThrowStatement = buildLabelStatement("throw", "argument"); +export let ContinueStatement = buildLabelStatement("continue"); +export let ReturnStatement = buildLabelStatement("return", "argument"); +export let BreakStatement = buildLabelStatement("break"); +export let ThrowStatement = buildLabelStatement("throw", "argument"); export function LabeledStatement(node, print) { print.plain(node.label); @@ -176,10 +176,10 @@ export function DebuggerStatement() { export function VariableDeclaration(node, print, parent) { this.push(node.kind + " "); - var hasInits = false; + let hasInits = false; // don't add whitespace to loop heads if (!t.isFor(parent)) { - for (var declar of (node.declarations: Array)) { + for (let declar of (node.declarations: Array)) { if (declar.init) { // has an init so let's split it up over multiple lines hasInits = true; @@ -191,15 +191,15 @@ export function VariableDeclaration(node, print, parent) { // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on // this will format declarations like: // - // var foo = "bar", bar = "foo"; + // let foo = "bar", bar = "foo"; // // into // - // var foo = "bar", + // let foo = "bar", // bar = "foo"; // - var sep; + let sep; if (!this.format.compact && !this.format.concise && hasInits && !this.format.retainLines) { sep = `,\n${repeating(" ", node.kind.length + 1)}`; } diff --git a/packages/babel-generator/src/generators/template-literals.js b/packages/babel-generator/src/generators/template-literals.js index 1bd78796dd..9d0b4e694c 100644 --- a/packages/babel-generator/src/generators/template-literals.js +++ b/packages/babel-generator/src/generators/template-literals.js @@ -10,10 +10,10 @@ export function TemplateElement(node) { export function TemplateLiteral(node, print) { this.push("`"); - var quasis = node.quasis; - var len = quasis.length; + let quasis = node.quasis; + let len = quasis.length; - for (var i = 0; i < len; i++) { + for (let i = 0; i < len; i++) { print.plain(quasis[i]); if (i + 1 < len) { diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index dc892ab8f0..d1fcfac361 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -14,7 +14,7 @@ export function RestElement(node, print) { export { RestElement as SpreadElement, RestElement as SpreadProperty }; export function ObjectExpression(node, print) { - var props = node.properties; + let props = node.properties; this.push("{"); print.printInnerComments(); @@ -65,14 +65,14 @@ export function Property(node, print) { } export function ArrayExpression(node, print) { - var elems = node.elements; - var len = elems.length; + let elems = node.elements; + let len = elems.length; this.push("["); print.printInnerComments(); - for (var i = 0; i < elems.length; i++) { - var elem = elems[i]; + for (let i = 0; i < elems.length; i++) { + let elem = elems[i]; if (elem) { if (i > 0) this.space(); print.plain(elem); diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index 6a7b60e748..b560b7e518 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -40,13 +40,13 @@ class CodeGenerator { */ static normalizeOptions(code, opts, tokens) { - var style = " "; + let style = " "; if (code) { - var indent = detectIndent(code).indent; + let indent = detectIndent(code).indent; if (indent && indent !== " ") style = indent; } - var format = { + let format = { shouldPrintComment: opts.shouldPrintComment, retainLines: opts.retainLines, comments: opts.comments == null || opts.comments, @@ -78,18 +78,18 @@ class CodeGenerator { * Determine if input code uses more single or double quotes. */ static findCommonStringDelimiter(code, tokens) { - var occurences = { + let occurences = { single: 0, double: 0 }; - var checked = 0; + let checked = 0; - for (var i = 0; i < tokens.length; i++) { - var token = tokens[i]; + for (let i = 0; i < tokens.length; i++) { + let token = tokens[i]; if (token.type.label !== "string") continue; - var raw = code.slice(token.start, token.end); + let raw = code.slice(token.start, token.end); if (raw[0] === "'") { occurences.single++; } else { @@ -131,13 +131,13 @@ class CodeGenerator { */ generate() { - var ast = this.ast; + let ast = this.ast; this.print(ast); if (ast.comments) { - var comments = []; - for (var comment of (ast.comments: Array)) { + let comments = []; + for (let comment of (ast.comments: Array)) { if (!comment._displayed) comments.push(comment); } this._printComments(comments); @@ -171,7 +171,7 @@ class CodeGenerator { return; } - var lines = 0; + let lines = 0; if (node.start != null && !node._ignoreUserWhitespace) { // user node @@ -185,7 +185,7 @@ class CodeGenerator { if (!leading) lines++; // always include at least a single line after if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; - var needs = n.needsWhitespaceAfter; + let needs = n.needsWhitespaceAfter; if (leading) needs = n.needsWhitespaceBefore; if (needs(node, parent)) lines++; @@ -203,7 +203,7 @@ class CodeGenerator { node._compact = true; } - var oldConcise = this.format.concise; + let oldConcise = this.format.concise; if (node._compact) { this.format.concise = true; } @@ -212,7 +212,7 @@ class CodeGenerator { throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`); } - var needsParens = n.needsParens(node, parent); + let needsParens = n.needsParens(node, parent); if (needsParens) this.push("("); this.printLeadingComments(node, parent); @@ -241,11 +241,11 @@ class CodeGenerator { printJoin(print, nodes, opts = {}) { if (!nodes || !nodes.length) return; - var len = nodes.length; + let len = nodes.length; if (opts.indent) this.indent(); - var printOpts = { + let printOpts = { statement: opts.statement, addNewlines: opts.addNewlines, after: () => { @@ -259,8 +259,8 @@ class CodeGenerator { } }; - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i]; print.plain(node, printOpts); } @@ -268,7 +268,7 @@ class CodeGenerator { } printAndIndentOnComments(print, node) { - var indent = !!node.leadingComments; + let indent = !!node.leadingComments; if (indent) this.indent(); print.plain(node); if (indent) this.dedent(); @@ -284,7 +284,7 @@ class CodeGenerator { } generateComment(comment) { - var val = comment.value; + let val = comment.value; if (comment.type === "CommentLine") { val = `//${val}`; } else { @@ -306,8 +306,8 @@ class CodeGenerator { return []; } - var comments = []; - var nodes = [node]; + let comments = []; + let nodes = [node]; if (t.isExpressionStatement(node)) { nodes.push(node.argument); @@ -339,7 +339,7 @@ class CodeGenerator { _printComments(comments) { if (!comments || !comments.length) return; - for (var comment of (comments: Array)) { + for (let comment of (comments: Array)) { if (!this.shouldPrintComment(comment)) continue; if (comment._displayed) continue; comment._displayed = true; @@ -349,8 +349,8 @@ class CodeGenerator { // whitespace before this.newline(this.whitespace.getNewlinesBefore(comment)); - var column = this.position.column; - var val = this.generateComment(comment); + let column = this.position.column; + let val = this.generateComment(comment); if (column && !this.isLast(["\n", " ", "[", "{"])) { this._push(" "); @@ -359,13 +359,13 @@ class CodeGenerator { // if (comment.type === "CommentBlock" && this.format.indent.adjustMultilineComment) { - var offset = comment.loc && comment.loc.start.column; + let offset = comment.loc && comment.loc.start.column; if (offset) { - var newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + let newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); val = val.replace(newlineRegex, "\n"); } - var indent = Math.max(this.indentSize(), column); + let indent = Math.max(this.indentSize(), column); val = val.replace(/\n/g, `\n${repeating(" ", indent)}`); } @@ -399,7 +399,7 @@ each(CodeGenerator.generators, function (generator) { }); module.exports = function (ast, opts, code) { - var gen = new CodeGenerator(ast, opts, code); + let gen = new CodeGenerator(ast, opts, code); return gen.generate(); }; diff --git a/packages/babel-generator/src/node/index.js b/packages/babel-generator/src/node/index.js index ef60e3a2c8..b6fecc1a9f 100644 --- a/packages/babel-generator/src/node/index.js +++ b/packages/babel-generator/src/node/index.js @@ -14,16 +14,16 @@ import * as t from "babel-types"; * }, node, parent); */ -var find = function (obj, node, parent) { +let find = function (obj, node, parent) { if (!obj) return; - var result; + let result; - var types = Object.keys(obj); - for (var i = 0; i < types.length; i++) { - var type = types[i]; + let types = Object.keys(obj); + for (let i = 0; i < types.length; i++) { + let type = types[i]; if (t.is(type, node)) { - var fn = obj[type]; + let fn = obj[type]; result = fn(node, parent); if (result != null) break; } @@ -61,12 +61,12 @@ export default class Node { node = node.expression; } - var linesInfo = find(whitespace.nodes, node, parent); + let linesInfo = find(whitespace.nodes, node, parent); if (!linesInfo) { - var items = find(whitespace.list, node, parent); + let items = find(whitespace.list, node, parent); if (items) { - for (var i = 0; i < items.length; i++) { + for (let i = 0; i < items.length; i++) { linesInfo = Node.needsWhitespace(items[i], node, type); if (linesInfo) break; } @@ -102,7 +102,7 @@ export default class Node { if (t.isNewExpression(parent) && parent.callee === node) { if (t.isCallExpression(node)) return true; - var hasCall = some(node, function (val) { + let hasCall = some(node, function (val) { return t.isCallExpression(val); }); if (hasCall) return true; @@ -119,12 +119,12 @@ export default class Node { each(Node, function (fn, key) { Node.prototype[key] = function () { // Avoid leaking arguments to prevent deoptimization - var args = new Array(arguments.length + 2); + let args = new Array(arguments.length + 2); args[0] = this.node; args[1] = this.parent; - for (var i = 0; i < args.length; i++) { + for (let i = 0; i < args.length; i++) { args[i + 2] = arguments[i]; } diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index cb7642c7a1..11c8eb3502 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -62,11 +62,11 @@ export function Binary(node, parent) { } if (t.isBinary(parent)) { - var parentOp = parent.operator; - var parentPos = PRECEDENCE[parentOp]; + let parentOp = parent.operator; + let parentPos = PRECEDENCE[parentOp]; - var nodeOp = node.operator; - var nodePos = PRECEDENCE[nodeOp]; + let nodeOp = node.operator; + let nodePos = PRECEDENCE[nodeOp]; if (parentPos > nodePos) { return true; @@ -80,7 +80,7 @@ export function Binary(node, parent) { export function BinaryExpression(node, parent) { if (node.operator === "in") { - // var i = (1 in []); + // let i = (1 in []); if (t.isVariableDeclarator(parent)) { return true; } diff --git a/packages/babel-generator/src/node/printer.js b/packages/babel-generator/src/node/printer.js index ce580cae1f..5ee0f4a9a7 100644 --- a/packages/babel-generator/src/node/printer.js +++ b/packages/babel-generator/src/node/printer.js @@ -14,7 +14,7 @@ export default class NodePrinter { printInnerComments() { if (!this.parent.innerComments) return; - var gen = this.generator; + let gen = this.generator; gen.indent(); gen._printComments(this.parent.innerComments); gen.dedent(); diff --git a/packages/babel-generator/src/node/whitespace.js b/packages/babel-generator/src/node/whitespace.js index 6511c35949..2623e1a273 100644 --- a/packages/babel-generator/src/node/whitespace.js +++ b/packages/babel-generator/src/node/whitespace.js @@ -64,7 +64,7 @@ exports.nodes = { */ AssignmentExpression(node) { - var state = crawl(node.right); + let state = crawl(node.right); if ((state.hasCall && state.hasHelper) || state.hasFunction) { return { before: state.hasFunction, @@ -125,12 +125,12 @@ exports.nodes = { */ VariableDeclaration(node) { - for (var i = 0; i < node.declarations.length; i++) { - var declar = node.declarations[i]; + for (let i = 0; i < node.declarations.length; i++) { + let declar = node.declarations[i]; - var enabled = isHelper(declar.id) && !isType(declar.init); + let enabled = isHelper(declar.id) && !isType(declar.init); if (!enabled) { - var state = crawl(declar.init); + let state = crawl(declar.init); enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction; } diff --git a/packages/babel-generator/src/position.js b/packages/babel-generator/src/position.js index 9dc707b5d2..a6787fd3b2 100644 --- a/packages/babel-generator/src/position.js +++ b/packages/babel-generator/src/position.js @@ -13,7 +13,7 @@ export default class Position { */ push(str) { - for (var i = 0; i < str.length; i++) { + for (let i = 0; i < str.length; i++) { if (str[i] === "\n") { this.line++; this.column = 0; @@ -28,7 +28,7 @@ export default class Position { */ unshift(str) { - for (var i = 0; i < str.length; i++) { + for (let i = 0; i < str.length; i++) { if (str[i] === "\n") { this.line--; } else { diff --git a/packages/babel-generator/src/source-map.js b/packages/babel-generator/src/source-map.js index 51cb5665a7..f1b3ee3727 100644 --- a/packages/babel-generator/src/source-map.js +++ b/packages/babel-generator/src/source-map.js @@ -27,7 +27,7 @@ export default class SourceMap { */ get() { - var map = this.map; + let map = this.map; if (map) { return map.toJSON(); } else { @@ -40,22 +40,22 @@ export default class SourceMap { */ mark(node, type) { - var loc = node.loc; + let loc = node.loc; if (!loc) return; // no location info - var map = this.map; + let map = this.map; if (!map) return; // no source map if (t.isProgram(node) || t.isFile(node)) return; // illegal mapping nodes - var position = this.position; + let position = this.position; - var generated = { + let generated = { line: position.line, column: position.column }; - var original = loc[type]; + let original = loc[type]; map.addMapping({ source: this.opts.sourceFileName, diff --git a/packages/babel-generator/src/whitespace.js b/packages/babel-generator/src/whitespace.js index 24ff017962..05816b1b73 100644 --- a/packages/babel-generator/src/whitespace.js +++ b/packages/babel-generator/src/whitespace.js @@ -38,14 +38,14 @@ export default class Whitespace { */ getNewlinesBefore(node) { - var startToken; - var endToken; - var tokens = this.tokens; + let startToken; + let endToken; + let tokens = this.tokens; - for (var j = 0; j < tokens.length; j++) { + for (let j = 0; j < tokens.length; j++) { // optimize for forward traversal by shifting for loop index - var i = getLookupIndex(j, this._lastFoundIndex, this.tokens.length); - var token = tokens[i]; + let i = getLookupIndex(j, this._lastFoundIndex, this.tokens.length); + let token = tokens[i]; // this is the token this node starts with if (node.start === token.start) { @@ -65,14 +65,14 @@ export default class Whitespace { */ getNewlinesAfter(node) { - var startToken; - var endToken; - var tokens = this.tokens; + let startToken; + let endToken; + let tokens = this.tokens; - for (var j = 0; j < tokens.length; j++) { + for (let j = 0; j < tokens.length; j++) { // optimize for forward traversal by shifting for loop index - var i = getLookupIndex(j, this._lastFoundIndex, this.tokens.length); - var token = tokens[i]; + let i = getLookupIndex(j, this._lastFoundIndex, this.tokens.length); + let token = tokens[i]; // this is the token this node ends with if (node.end === token.end) { @@ -88,7 +88,7 @@ export default class Whitespace { if (endToken && endToken.type.label === "eof") { return 1; } else { - var lines = this.getNewlinesBetween(startToken, endToken); + let lines = this.getNewlinesBetween(startToken, endToken); if (node.type === "CommentLine" && !lines) { // line comment return 1; @@ -105,11 +105,11 @@ export default class Whitespace { getNewlinesBetween(startToken, endToken) { if (!endToken || !endToken.loc) return 0; - var start = startToken ? startToken.loc.end.line : 1; - var end = endToken.loc.start.line; - var lines = 0; + let start = startToken ? startToken.loc.end.line : 1; + let end = endToken.loc.start.line; + let lines = 0; - for (var line = start; line < end; line++) { + for (let line = start; line < end; line++) { if (typeof this.used[line] === "undefined") { this.used[line] = true; lines++; From 20f643b419c0362eadc98308d64a1b46e2f2810a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 23 Sep 2015 15:59:41 +0100 Subject: [PATCH 122/174] type annotate babylon --- packages/babylon/src/index.js | 2 + packages/babylon/src/options.js | 4 +- packages/babylon/src/parser/comments.js | 2 + packages/babylon/src/parser/expression.js | 6 +- packages/babylon/src/parser/index.js | 16 +++- packages/babylon/src/parser/location.js | 2 + packages/babylon/src/parser/lval.js | 8 +- packages/babylon/src/parser/node.js | 17 ++-- packages/babylon/src/parser/statement.js | 4 +- packages/babylon/src/parser/util.js | 2 + packages/babylon/src/plugins/flow.js | 2 + packages/babylon/src/plugins/jsx/index.js | 2 + packages/babylon/src/tokenizer/context.js | 14 +++- packages/babylon/src/tokenizer/index.js | 14 ++-- packages/babylon/src/tokenizer/state.js | 96 +++++++++++++++++------ packages/babylon/src/tokenizer/types.js | 2 + packages/babylon/src/util/identifier.js | 2 + packages/babylon/src/util/location.js | 2 + packages/babylon/src/util/whitespace.js | 2 + 19 files changed, 154 insertions(+), 45 deletions(-) diff --git a/packages/babylon/src/index.js b/packages/babylon/src/index.js index 694c4e4838..b01a0b1197 100755 --- a/packages/babylon/src/index.js +++ b/packages/babylon/src/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import Parser, { plugins } from "./parser"; import "./parser/util"; import "./parser/statement"; diff --git a/packages/babylon/src/options.js b/packages/babylon/src/options.js index f33e39d920..3b97f93a63 100755 --- a/packages/babylon/src/options.js +++ b/packages/babylon/src/options.js @@ -1,3 +1,5 @@ +/* @flow */ + // A second optional argument can be given to further configure // the parser process. These options are recognized: @@ -18,7 +20,7 @@ export const defaultOptions = { // Interpret and default an options object -export function getOptions(opts) { +export function getOptions(opts?: Object): Object { let options = {}; for (let key in defaultOptions) { options[key] = opts && key in opts ? opts[key] : defaultOptions[key]; diff --git a/packages/babylon/src/parser/comments.js b/packages/babylon/src/parser/comments.js index 39aa197872..5a3e96abcc 100644 --- a/packages/babylon/src/parser/comments.js +++ b/packages/babylon/src/parser/comments.js @@ -1,3 +1,5 @@ +/* @flow */ + /** * Based on the comment attachment algorithm used in espree and estraverse. * diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 786b094a25..8c9898429c 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -1,3 +1,5 @@ +/* @flow */ + // A recursive descent parser operates by defining functions for all // syntactic elements, and recursively calling those, each function // advancing the input stream and returning an AST node. Precedence @@ -793,7 +795,7 @@ pp.parseFunctionBody = function (node, allowExpression) { // normal function if (!isExpression && node.body.directives.length) { - for (var directive of (node.body.directives: Array)) { + for (var directive of (node.body.directives: Array)) { if (directive.value === "use strict") { checkLVal = true; checkLValStrict = true; @@ -809,7 +811,7 @@ pp.parseFunctionBody = function (node, allowExpression) { if (node.id) { this.checkLVal(node.id, true); } - for (let param of (node.params: Array)) { + for (let param of (node.params: Array)) { this.checkLVal(param, true, nameHash); } this.state.strict = oldStrict; diff --git a/packages/babylon/src/parser/index.js b/packages/babylon/src/parser/index.js index d0752f5af1..59dd256bae 100644 --- a/packages/babylon/src/parser/index.js +++ b/packages/babylon/src/parser/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import { reservedWords } from "../util/identifier"; import { getOptions } from "../options"; import Tokenizer from "../tokenizer"; @@ -7,7 +9,7 @@ import Tokenizer from "../tokenizer"; export const plugins = {}; export default class Parser extends Tokenizer { - constructor(options, input) { + constructor(options, input: string) { options = getOptions(options); super(options, input); @@ -25,11 +27,11 @@ export default class Parser extends Tokenizer { } } - hasFeature(name) { + hasFeature(name: string): boolean { return !!this.options.features[name]; } - extend(name, f) { + extend(name: string, f: Function) { this[name] = f(this[name]); } @@ -41,7 +43,13 @@ export default class Parser extends Tokenizer { } } - parse() { + parse(): { + type: "File", + program: { + type: "Program", + body: Array + } + } { let file = this.startNode(); let program = this.startNode(); this.nextToken(); diff --git a/packages/babylon/src/parser/location.js b/packages/babylon/src/parser/location.js index c8f10cc172..3029551c43 100644 --- a/packages/babylon/src/parser/location.js +++ b/packages/babylon/src/parser/location.js @@ -1,3 +1,5 @@ +/* @flow */ + import { getLineInfo } from "../util/location"; import Parser from "./index"; diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index cb8cae285a..333b6457b8 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -1,3 +1,5 @@ +/* @flow */ + import { types as tt } from "../tokenizer/types"; import Parser from "./index"; import { reservedWords } from "../util/identifier"; @@ -18,7 +20,7 @@ pp.toAssignable = function (node, isBinding) { case "ObjectExpression": node.type = "ObjectPattern"; - for (let prop of (node.properties: Array)) { + for (let prop of (node.properties: Array)) { if (prop.type === "SpreadProperty") continue; if (prop.kind !== "init") this.raise(prop.key.start, "Object pattern can't contain getter or setter"); this.toAssignable(prop.value, isBinding); @@ -184,14 +186,14 @@ pp.checkLVal = function (expr, isBinding, checkClashes) { break; case "ObjectPattern": - for (let prop of (expr.properties: Array)) { + for (let prop of (expr.properties: Array)) { if (prop.type === "Property") prop = prop.value; this.checkLVal(prop, isBinding, checkClashes); } break; case "ArrayPattern": - for (let elem of (expr.elements: Array)) { + for (let elem of (expr.elements: Array)) { if (elem) this.checkLVal(elem, isBinding, checkClashes); } break; diff --git a/packages/babylon/src/parser/node.js b/packages/babylon/src/parser/node.js index 7fb0cd2a62..d3544bc816 100644 --- a/packages/babylon/src/parser/node.js +++ b/packages/babylon/src/parser/node.js @@ -1,3 +1,5 @@ +/* @flow */ + import Parser from "./index"; import { SourceLocation } from "../util/location"; @@ -5,15 +7,20 @@ import { SourceLocation } from "../util/location"; const pp = Parser.prototype; -export class Node { - constructor(parser, pos, loc) { +class Node { + constructor(pos?: number, loc?: SourceLocation) { this.type = ""; this.start = pos; this.end = 0; this.loc = new SourceLocation(loc); } - __clone() { + type: string; + start: ?number; + end: number; + loc: SourceLocation; + + __clone(): Node { var node2 = new Node; for (var key in this) node2[key] = this[key]; return node2; @@ -21,11 +28,11 @@ export class Node { } pp.startNode = function () { - return new Node(this, this.state.start, this.state.startLoc); + return new Node(this.state.start, this.state.startLoc); }; pp.startNodeAt = function (pos, loc) { - return new Node(this, pos, loc); + return new Node(pos, loc); }; function finishNodeAt(node, type, pos, loc) { diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 536db0a82c..14cc0daa40 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -1,3 +1,5 @@ +/* @flow */ + import { types as tt } from "../tokenizer/types"; import Parser from "./index"; import { lineBreak } from "../util/whitespace"; @@ -380,7 +382,7 @@ pp.parseEmptyStatement = function (node) { }; pp.parseLabeledStatement = function (node, maybeName, expr) { - for (let label of (this.state.labels: Array)){ + for (let label of (this.state.labels: Array)){ if (label.name === maybeName) { this.raise(expr.start, `Label '${maybeName}' is already declared`); } diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index 2719607626..e20e2467c9 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -1,3 +1,5 @@ +/* @flow */ + import { types as tt } from "../tokenizer/types"; import Parser from "./index"; import { lineBreak } from "../util/whitespace"; diff --git a/packages/babylon/src/plugins/flow.js b/packages/babylon/src/plugins/flow.js index ea58d81aae..7fe1d97d19 100644 --- a/packages/babylon/src/plugins/flow.js +++ b/packages/babylon/src/plugins/flow.js @@ -1,3 +1,5 @@ +/* @flow */ + import { types as tt } from "../tokenizer/types"; import Parser from "../parser"; diff --git a/packages/babylon/src/plugins/jsx/index.js b/packages/babylon/src/plugins/jsx/index.js index b6ae663bee..c373f88b8d 100644 --- a/packages/babylon/src/plugins/jsx/index.js +++ b/packages/babylon/src/plugins/jsx/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import XHTMLEntities from "./xhtml"; import { TokenType, types as tt } from "../../tokenizer/types"; import { TokContext, types as tc } from "../../tokenizer/context"; diff --git a/packages/babylon/src/tokenizer/context.js b/packages/babylon/src/tokenizer/context.js index 05fb07056f..ef44998c8d 100644 --- a/packages/babylon/src/tokenizer/context.js +++ b/packages/babylon/src/tokenizer/context.js @@ -1,3 +1,5 @@ +/* @flow */ + // The algorithm used to determine whether a regexp can appear at a // given point in the program is loosely based on sweet.js' approach. // See https://github.com/mozilla/sweet.js/wiki/design @@ -5,12 +7,22 @@ import { types as tt } from "./types"; export class TokContext { - constructor(token, isExpr, preserveSpace, override) { + constructor( + token: string, + isExpr?: boolean, + preserveSpace?: boolean, + override?: Function, + ) { this.token = token; this.isExpr = !!isExpr; this.preserveSpace = !!preserveSpace; this.override = override; } + + token: string; + isExpr: boolean; + preserveSpace: boolean; + override: ?Function; } export const types = { diff --git a/packages/babylon/src/tokenizer/index.js b/packages/babylon/src/tokenizer/index.js index 3839f81e58..535fd5b856 100644 --- a/packages/babylon/src/tokenizer/index.js +++ b/packages/babylon/src/tokenizer/index.js @@ -1,3 +1,6 @@ +/* @flow */ + +import type { TokenType } from "./types"; import { isIdentifierStart, isIdentifierChar, isKeyword } from "../util/identifier"; import { types as tt, keywords as keywordTypes } from "./types"; import { types as ct } from "./context"; @@ -18,9 +21,11 @@ export class Token { this.loc = new SourceLocation(state.startLoc, state.endLoc); } - get range() { - return [this.start, this.end]; - } + type: TokenType; + value: any; + start: number; + end: number; + loc: SourceLocation; } // ## Tokenizer @@ -162,8 +167,7 @@ export default class Tokenizer { value: text, start: start, end: end, - loc: new SourceLocation(startLoc, endLoc), - range: [start, end] + loc: new SourceLocation(startLoc, endLoc) }; if (!this.isLookahead) { diff --git a/packages/babylon/src/tokenizer/state.js b/packages/babylon/src/tokenizer/state.js index b5a846ae20..b536a1fd8a 100644 --- a/packages/babylon/src/tokenizer/state.js +++ b/packages/babylon/src/tokenizer/state.js @@ -1,70 +1,120 @@ +/* @flow */ + +import type { TokContext } from "./context"; +import type { Token } from "./index"; import { Position } from "../util/location"; import { types as ct } from "./context"; import { types as tt } from "./types"; export default class State { - init(options, input) { - // strict + init(options: Object, input: string) { this.strict = options.strictMode === false ? false : options.sourceType === "module"; this.input = input; - // Used to signify the start of a potential arrow function this.potentialArrowAt = -1; - // Flags to track whether we are in a function, a generator. this.inFunction = this.inGenerator = false; - // Labels in scope. this.labels = []; - // Leading decorators. this.decorators = []; - // Token store. this.tokens = []; - // Comment store. this.comments = []; - // Comment attachment store this.trailingComments = []; this.leadingComments = []; this.commentStack = []; - // The current position of the tokenizer in the input. this.pos = this.lineStart = 0; this.curLine = 1; - // Properties of the current token: - // Its type this.type = tt.eof; - // For tokens that include more information than their type, the value this.value = null; - // Its start and end offset this.start = this.end = this.pos; - // And, if locations are used, the {line, column} object - // corresponding to those offsets this.startLoc = this.endLoc = this.curPosition(); - // Position information for the previous token this.lastTokEndLoc = this.lastTokStartLoc = null; this.lastTokStart = this.lastTokEnd = this.pos; - // The context stack is used to superficially track syntactic - // context to predict whether a regular expression is allowed in a - // given position. this.context = [ct.b_stat]; this.exprAllowed = true; - // Used to signal to callers of `readWord1` whether the word - // contained any escape sequences. This is needed because words with - // escape sequences must not be interpreted as keywords. this.containsEsc = false; return this; } + // TODO + strict: boolean; + + // TODO + input: string; + + // Used to signify the start of a potential arrow function + potentialArrowAt: number; + + // Flags to track whether we are in a function, a generator. + inFunction: boolean; + inGenerator: boolean; + + // Labels in scope. + labels: Array; + + // Leading decorators. + decorators: Array; + + // Token store. + tokens: Array; + + // Comment store. + comments: Array; + + // Comment attachment store + trailingComments: Array; + leadingComments: Array; + commentStack: Array; + + // The current position of the tokenizer in the input. + pos: number; + lineStart: number; + curLine: number; + + // Properties of the current token: + // Its type + type: Token; + + // For tokens that include more information than their type, the value + value: any; + + // Its start and end offset + start: number; + end: number; + + // And, if locations are used, the {line, column} object + // corresponding to those offsets + startLoc: Position; + endLoc: Position; + + // Position information for the previous token + lastTokEndLoc: ?Position; + lastTokStartLoc: ?Position; + lastTokStart: number; + lastTokEnd: number; + + // The context stack is used to superficially track syntactic + // context to predict whether a regular expression is allowed in a + // given position. + context: Array; + exprAllowed: boolean; + + // Used to signal to callers of `readWord1` whether the word + // contained any escape sequences. This is needed because words with + // escape sequences must not be interpreted as keywords. + containsEsc: boolean; + curPosition() { return new Position(this.curLine, this.pos - this.lineStart); } diff --git a/packages/babylon/src/tokenizer/types.js b/packages/babylon/src/tokenizer/types.js index d64407e920..90b60f4ca2 100644 --- a/packages/babylon/src/tokenizer/types.js +++ b/packages/babylon/src/tokenizer/types.js @@ -1,3 +1,5 @@ +/* @flow */ + // ## Token types // The assignment of fine-grained, information-carrying type objects diff --git a/packages/babylon/src/util/identifier.js b/packages/babylon/src/util/identifier.js index 48847c6277..947e993ade 100644 --- a/packages/babylon/src/util/identifier.js +++ b/packages/babylon/src/util/identifier.js @@ -1,3 +1,5 @@ +/* @flow */ + // This is a trick taken from Esprima. It turns out that, on // non-Chrome browsers, to check whether a string is in a set, a // predicate containing a big ugly `switch` statement is faster than diff --git a/packages/babylon/src/util/location.js b/packages/babylon/src/util/location.js index 883d4b3daa..47019f1068 100644 --- a/packages/babylon/src/util/location.js +++ b/packages/babylon/src/util/location.js @@ -1,3 +1,5 @@ +/* @flow */ + import { lineBreakG } from "./whitespace"; // These are used when `options.locations` is on, for the diff --git a/packages/babylon/src/util/whitespace.js b/packages/babylon/src/util/whitespace.js index d517d1f28a..78d800df7c 100644 --- a/packages/babylon/src/util/whitespace.js +++ b/packages/babylon/src/util/whitespace.js @@ -1,3 +1,5 @@ +/* @flow */ + // Matches a whole line break (where CRLF is considered a single // line break). Used to count lines. From 119520ed8725840d864adf351fdca42d91ef60a3 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 23 Sep 2015 16:00:41 +0100 Subject: [PATCH 123/174] add lib folder --- lib/file.js | 27 +++++++++++++++++++++++++++ lib/parser.js | 10 ++++++++++ 2 files changed, 37 insertions(+) create mode 100644 lib/file.js create mode 100644 lib/parser.js diff --git a/lib/file.js b/lib/file.js new file mode 100644 index 0000000000..f3c6f32c8d --- /dev/null +++ b/lib/file.js @@ -0,0 +1,27 @@ +type BabelFileModulesMetadata = { + imports: Array, + exports: { + exported: Array, + specifiers: Array + } +}; + +type BabelFileMetadata = { + usedHelpers: Array; + + marked: Array<{ + type: string; + message: string; + loc: Object; + }>; + + modules: BabelFileModulesMetadata +}; + +type BabelFileResult = { + ast?: ?Object; + code?: ?string; + map?: ?Object; + ignored?: ?boolean; + metadata?: ?BabelFileMetadata; +}; diff --git a/lib/parser.js b/lib/parser.js new file mode 100644 index 0000000000..a7fbb53186 --- /dev/null +++ b/lib/parser.js @@ -0,0 +1,10 @@ +type BabelParserOptions = { + strictMode?: boolean; + looseModules?: boolean; + highlightCode?: boolean; + nonStandard?: boolean; + sourceType?: "module" | "script"; + filename?: string; + features?: Object; + plugins?: Object; +}; From 227ed5638ae1269713df7cb9e0da317761b02a4b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Wed, 23 Sep 2015 16:10:44 +0100 Subject: [PATCH 124/174] add flow type annotations --- packages/babel-core/src/api/browser.js | 14 +-- packages/babel-core/src/api/node.js | 7 +- packages/babel-core/src/api/register/node.js | 38 ++++---- packages/babel-core/src/helpers/merge.js | 8 +- .../babel-core/src/helpers/normalize-ast.js | 8 +- packages/babel-core/src/helpers/parse.js | 4 +- packages/babel-core/src/store.js | 15 +++- .../src/tools/build-external-helpers.js | 7 +- .../src/transformation/file/logger.js | 11 ++- .../src/transformation/file/options/index.js | 22 +---- .../file/options/option-manager.js | 31 ++++--- .../transformation/file/options/parsers.js | 10 ++- ...-binary-assignment-operator-transformer.js | 7 +- .../helpers/build-comprehension.js | 4 +- ...itional-assignment-operator-transformer.js | 10 ++- .../transformation/helpers/call-delegate.js | 5 +- .../src/transformation/helpers/define-map.js | 13 +-- .../helpers/explode-assignable-expression.js | 23 +++-- .../helpers/get-function-arity.js | 10 ++- .../helpers/memoise-decorators.js | 8 +- .../src/transformation/helpers/name-method.js | 14 +-- .../src/transformation/helpers/regex.js | 6 +- .../helpers/remap-async-to-generator.js | 10 ++- .../transformation/helpers/replace-supers.js | 27 +++++- .../babel-core/src/transformation/index.js | 2 + .../internal-plugins/block-hoist.js | 2 + .../internal-plugins/shadow-functions.js | 2 + .../src/transformation/modules/_default.js | 72 +++++++++------ .../src/transformation/modules/_strict.js | 8 +- .../src/transformation/modules/amd-strict.js | 2 + .../src/transformation/modules/amd.js | 2 + .../transformation/modules/common-strict.js | 2 + .../src/transformation/modules/ignore.js | 2 + .../src/transformation/modules/index.js | 2 + .../transformation/modules/lib/metadata.js | 2 + .../src/transformation/modules/lib/remaps.js | 2 + .../src/transformation/modules/system.js | 2 + .../src/transformation/modules/umd-strict.js | 2 + .../src/transformation/modules/umd.js | 2 + .../babel-core/src/transformation/pipeline.js | 4 +- .../src/transformation/plugin-pass.js | 10 ++- .../babel-core/src/transformation/plugin.js | 13 ++- .../transformers/es5/properties.mutators.js | 41 +-------- packages/babel-core/src/util.js | 16 ++-- packages/babel-generator/src/buffer.js | 47 +++++----- .../babel-generator/src/generators/base.js | 10 ++- .../babel-generator/src/generators/classes.js | 12 ++- .../src/generators/comprehensions.js | 8 +- .../src/generators/expressions.js | 44 +++++----- .../babel-generator/src/generators/flow.js | 59 +++++++------ .../babel-generator/src/generators/jsx.js | 26 +++--- .../babel-generator/src/generators/methods.js | 11 ++- .../babel-generator/src/generators/modules.js | 43 ++++----- .../src/generators/statements.js | 33 +++---- .../src/generators/template-literals.js | 10 ++- .../babel-generator/src/generators/types.js | 23 ++--- packages/babel-generator/src/index.js | 87 ++++++++++--------- packages/babel-generator/src/node/index.js | 47 ++-------- .../babel-generator/src/node/parentheses.js | 84 +++++++++++------- packages/babel-generator/src/node/printer.js | 2 + .../babel-generator/src/node/whitespace.js | 2 + packages/babel-generator/src/position.js | 2 + packages/babel-generator/src/source-map.js | 2 + packages/babel-generator/src/whitespace.js | 2 + 64 files changed, 616 insertions(+), 440 deletions(-) diff --git a/packages/babel-core/src/api/browser.js b/packages/babel-core/src/api/browser.js index 17d8883762..f166494c60 100644 --- a/packages/babel-core/src/api/browser.js +++ b/packages/babel-core/src/api/browser.js @@ -1,13 +1,15 @@ +/* @flow */ + /* eslint no-new-func: 0 */ import { transform } from "./node"; export * from "./node"; -export function run(code, opts = {}) { +export function run(code: string, opts: Object = {}): any { return new Function(transform(code, opts).code)(); } -export function load(url, callback, opts = {}, hold) { +export function load(url: string, callback: Function, opts: Object = {}, hold?: boolean) { opts.filename = opts.filename || url; let xhr = global.ActiveXObject ? new global.ActiveXObject("Microsoft.XMLHTTP") : new global.XMLHttpRequest(); @@ -31,7 +33,7 @@ export function load(url, callback, opts = {}, hold) { } function runScripts() { - let scripts = []; + let scripts: Array | Object> = []; let types = ["text/ecmascript-6", "text/6to5", "text/babel", "module"]; let index = 0; @@ -42,7 +44,7 @@ function runScripts() { function exec() { let param = scripts[index]; if (param instanceof Array) { - run(param); + run(param, index); index++; exec(); } @@ -52,7 +54,7 @@ function runScripts() { * Load, transform, and execute all scripts. */ - function run(script, i) { + function run(script: Object, i: number) { let opts = {}; if (script.src) { @@ -75,7 +77,7 @@ function runScripts() { if (types.indexOf(_script.type) >= 0) scripts.push(_script); } - for (i in scripts) { + for (let i = 0; i < scripts.length; i++) { run(scripts[i], i); } diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index a4630f6257..d2a34f9a61 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -1,3 +1,5 @@ +/* @flow */ + import isFunction from "lodash/lang/isFunction"; import transform from "../transformation"; import * as babylon from "babylon"; @@ -16,6 +18,9 @@ export { default as buildExternalHelpers } from "../tools/build-external-helpers export { default as template } from "babel-template"; export { version } from "../../package"; +import * as messages from "babel-messages"; +export { messages }; + import * as t from "babel-types"; export { t as types }; @@ -48,7 +53,7 @@ export function transformFile(filename: string, opts?: Object, callback: Functio }); } -export function transformFileSync(filename: string, opts?: Object = {}) { +export function transformFileSync(filename: string, opts?: Object = {}): string { opts.filename = filename; return transform(fs.readFileSync(filename, "utf8"), opts); } diff --git a/packages/babel-core/src/api/register/node.js b/packages/babel-core/src/api/register/node.js index f130596a3b..bd4e7a79b5 100644 --- a/packages/babel-core/src/api/register/node.js +++ b/packages/babel-core/src/api/register/node.js @@ -1,3 +1,5 @@ +/* @flow */ + import sourceMapSupport from "source-map-support"; import * as registerCache from "./cache"; import OptionManager from "../../transformation/file/options/option-manager"; @@ -52,23 +54,23 @@ let cwd = process.cwd(); * Get path from `filename` relative to the current working directory. */ -let getRelativePath = function (filename){ +function getRelativePath(filename){ return path.relative(cwd, filename); -}; +} /** * Get last modified time for a `filename`. */ -let mtime = function (filename) { +function mtime(filename) { return +fs.statSync(filename).mtime; -}; +} /** * Compile a `filename` with optional `opts`. */ -let compile = function (filename, opts = {}) { +function compile(filename, opts = {}) { let result; opts.filename = filename; @@ -97,26 +99,26 @@ let compile = function (filename, opts = {}) { } if (cache) { - result.mtime = mtime(filename); cache[cacheKey] = result; + result.mtime = mtime(filename); } maps[filename] = result.map; return result.code; -}; +} /** * Test if a `filename` should be ignored by Babel. */ -let shouldIgnore = function (filename) { +function shouldIgnore(filename) { if (!ignore && !only) { return getRelativePath(filename).split(path.sep).indexOf("node_modules") >= 0; } else { return util.shouldIgnore(filename, ignore || [], only); } -}; +} /** * Monkey patch istanbul if it is running so that it works properly. @@ -147,24 +149,24 @@ if (process.env.running_under_istanbul) { * Replacement for the loader for istanbul. */ -let istanbulLoader = function (m, filename, old) { +function istanbulLoader(m, filename, old) { istanbulMonkey[filename] = true; old(m, filename); -}; +} /** * Default loader. */ -let normalLoader = function (m, filename) { +function normalLoader(m, filename) { m._compile(compile(filename), filename); -}; +} /** * Register a loader for an extension. */ -let registerExtension = function (ext) { +function registerExtension(ext) { let old = oldHandlers[ext] || oldHandlers[".js"] || require.extensions[".js"]; let loader = normalLoader; @@ -177,13 +179,13 @@ let registerExtension = function (ext) { loader(m, filename, old); } }; -}; +} /** * Register loader for given extensions. */ -let hookExtensions = function (_exts) { +function hookExtensions(_exts) { each(oldHandlers, function (old, ext) { if (old === undefined) { delete require.extensions[ext]; @@ -198,7 +200,7 @@ let hookExtensions = function (_exts) { oldHandlers[ext] = require.extensions[ext]; registerExtension(ext); }); -}; +} /** * Register loader for default extensions. @@ -210,7 +212,7 @@ hookExtensions(util.canCompile.EXTENSIONS); * Update options at runtime. */ -export default function (opts = {}) { +export default function (opts?: Object = {}) { if (opts.only != null) only = util.arrayify(opts.only, util.regexify); if (opts.ignore != null) ignore = util.arrayify(opts.ignore, util.regexify); diff --git a/packages/babel-core/src/helpers/merge.js b/packages/babel-core/src/helpers/merge.js index dbbc07d35a..71eacdbf2c 100644 --- a/packages/babel-core/src/helpers/merge.js +++ b/packages/babel-core/src/helpers/merge.js @@ -1,10 +1,8 @@ +/* @flow */ + import merge from "lodash/object/merge"; -/** - * Merge options. - */ - -export default function (dest, src) { +export default function (dest?: Object, src?: Object): ?Object { if (!dest || !src) return; return merge(dest, src, function (a, b) { diff --git a/packages/babel-core/src/helpers/normalize-ast.js b/packages/babel-core/src/helpers/normalize-ast.js index dd295e6021..cd8881a9fd 100644 --- a/packages/babel-core/src/helpers/normalize-ast.js +++ b/packages/babel-core/src/helpers/normalize-ast.js @@ -1,3 +1,5 @@ +/* @flow */ + import * as t from "babel-types"; /** @@ -6,7 +8,11 @@ import * as t from "babel-types"; * - Wrap `Program` node with a `File` node. */ -export default function (ast, comments, tokens) { +export default function ( + ast: Object, + comments?: Array, + tokens?: Array, +) { if (ast) { if (ast.type === "Program") { return t.file(ast, comments || [], tokens || []); diff --git a/packages/babel-core/src/helpers/parse.js b/packages/babel-core/src/helpers/parse.js index 0e4595b551..e4ac6911f5 100644 --- a/packages/babel-core/src/helpers/parse.js +++ b/packages/babel-core/src/helpers/parse.js @@ -1,10 +1,12 @@ +/* @flow */ + import * as babylon from "babylon"; /** * Parse `code` with normalized options, collecting tokens and comments. */ -export default function (code, opts = {}) { +export default function (code: string, opts: BabelParserOptions = {}) { let parseOpts = { allowImportExportEverywhere: opts.looseModules, allowReturnOutsideFunction: opts.looseModules, diff --git a/packages/babel-core/src/store.js b/packages/babel-core/src/store.js index d83cdd71c2..d4c31300b2 100644 --- a/packages/babel-core/src/store.js +++ b/packages/babel-core/src/store.js @@ -1,8 +1,15 @@ -export default class Store { - dynamicData = {}; - data = {}; +/* @flow */ - set(key: string, val): any { +export default class Store { + constructor() { + this.dynamicData = {}; + this.data = {}; + } + + dynamicData: Object; + data: Object; + + set(key: string, val: any): any { return this.data[key] = val; } diff --git a/packages/babel-core/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js index d19971ac2e..03536fbc14 100644 --- a/packages/babel-core/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -1,3 +1,5 @@ +/* @flow */ + import generator from "babel-generator"; import * as messages from "babel-messages"; import * as util from "../util"; @@ -61,7 +63,10 @@ function buildHelpers(body, namespace, whitelist) { }); } -export default function (whitelist, outputType = "global") { +export default function ( + whitelist?: Array, + outputType: "global" | "umd" | "var" = "global", +) { let namespace = t.identifier("babelHelpers"); let builder = function (body) { diff --git a/packages/babel-core/src/transformation/file/logger.js b/packages/babel-core/src/transformation/file/logger.js index 39a17ddf12..5655f67ca0 100644 --- a/packages/babel-core/src/transformation/file/logger.js +++ b/packages/babel-core/src/transformation/file/logger.js @@ -1,3 +1,5 @@ +/* @flow */ + import type File from "./index"; import buildDebug from "debug/node"; @@ -12,21 +14,24 @@ export default class Logger { this.file = file; } + filename: string; + file: File; + _buildMessage(msg: string): string { let parts = `[BABEL] ${this.filename}`; if (msg) parts += `: ${msg}`; return parts; } - warn(msg) { + warn(msg: string) { console.warn(this._buildMessage(msg)); } - error(msg: string, Constructor = Error) { + error(msg: string, Constructor: typeof Error = Error): Error { throw new Constructor(this._buildMessage(msg)); } - deprecate(msg) { + deprecate(msg: string) { if (this.file.opts && this.file.opts.suppressDeprecationMessages) return; msg = this._buildMessage(msg); diff --git a/packages/babel-core/src/transformation/file/options/index.js b/packages/babel-core/src/transformation/file/options/index.js index 2aeb85c41c..cbd3051618 100644 --- a/packages/babel-core/src/transformation/file/options/index.js +++ b/packages/babel-core/src/transformation/file/options/index.js @@ -1,27 +1,11 @@ +/* @flow */ + import * as parsers from "./parsers"; import config from "./config"; export { config }; -/** - * Validate an option. - */ - -export function validateOption(key, val, pipeline) { - let opt = config[key]; - let parser = opt && parsers[opt.type]; - if (parser && parser.validate) { - return parser.validate(key, val, pipeline); - } else { - return val; - } -} - -/** - * Normalize all options. - */ - -export function normaliseOptions(options = {}) { +export function normaliseOptions(options: Object = {}): Object { for (let key in options) { let val = options[key]; if (val == null) continue; diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index fd5cadc234..5151dd0901 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -1,3 +1,6 @@ +/* @flow */ + +import type Logger from "../logger"; import Plugin from "../../plugin"; import * as messages from "babel-messages"; import * as context from "../../../api/node"; @@ -29,17 +32,23 @@ function exists(filename) { } export default class OptionManager { - constructor(log, pipeline) { + constructor(log?: Logger) { this.resolvedConfigs = []; - this.options = OptionManager.createBareOptions(); - this.pipeline = pipeline; - this.log = log; + this.options = OptionManager.createBareOptions(); + this.log = log; } - static memoisedPlugins = []; + resolvedConfigs: Array; + options: Object; + log: ?Logger; + + static memoisedPlugins: Array<{ + container: Function; + plugin: Plugin; + }>; static memoisePluginContainer(fn, loc, i) { - for (let cache of (OptionManager.memoisedPlugins: Array)) { + for (let cache of (OptionManager.memoisedPlugins: Array)) { if (cache.container === fn) return cache.plugin; } @@ -103,7 +112,7 @@ export default class OptionManager { }); } - addConfig(loc, key?, json=json5) { + addConfig(loc: string, key?: string, json = json5) { if (this.resolvedConfigs.indexOf(loc) >= 0) return; let content = fs.readFileSync(loc, "utf8"); @@ -130,7 +139,7 @@ export default class OptionManager { * - `dirname` is used to resolve plugins relative to it. */ - mergeOptions(opts, alias = "foreign", loc, dirname) { + mergeOptions(opts?: Object, alias: string = "foreign", loc?: string, dirname?: string) { if (!opts) return; dirname = dirname || process.cwd(); @@ -177,7 +186,7 @@ export default class OptionManager { this.mergeOptions(envOpts, `${alias}.env.${envKey}`); } - mergePresets(presets: Array, dirname) { + mergePresets(presets: Array, dirname: string) { for (let val of presets) { if (typeof val === "string") { let presetLoc = resolve(`babel-preset-${val}`, dirname) || resolve(val, dirname); @@ -262,7 +271,7 @@ export default class OptionManager { } } - init(opts) { + init(opts: Object): Object { // resolve all .babelrc files if (opts.babelrc !== false) { this.findConfigs(opts.filename); @@ -277,3 +286,5 @@ export default class OptionManager { return this.options; } } + +OptionManager.memoisedPlugins = []; diff --git a/packages/babel-core/src/transformation/file/options/parsers.js b/packages/babel-core/src/transformation/file/options/parsers.js index 60d2752782..5b5c57faaa 100644 --- a/packages/babel-core/src/transformation/file/options/parsers.js +++ b/packages/babel-core/src/transformation/file/options/parsers.js @@ -1,20 +1,22 @@ +/* @flow */ + import slash from "slash"; import * as util from "../../../util"; -export function number(val) { +export function number(val: any): number { return +val; } export let filename = slash; -export function boolean(val) { +export function boolean(val: any): boolean { return !!val; } -export function booleanString(val) { +export function booleanString(val: any): boolean | any { return util.booleanify(val); } -export function list(val) { +export function list(val: any): Array { return util.list(val); } diff --git a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js index 4772176e69..689d3467f8 100644 --- a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js @@ -1,7 +1,12 @@ +/* @flow */ + import explode from "./explode-assignable-expression"; import * as t from "babel-types"; -export default function (opts) { +export default function (opts: { + build: Function; + operator: string; +}): Object { let exports = {}; let isAssignment = function (node) { diff --git a/packages/babel-core/src/transformation/helpers/build-comprehension.js b/packages/babel-core/src/transformation/helpers/build-comprehension.js index 2903f5fec4..832b002204 100644 --- a/packages/babel-core/src/transformation/helpers/build-comprehension.js +++ b/packages/babel-core/src/transformation/helpers/build-comprehension.js @@ -1,6 +1,8 @@ +/* @flow */ + import * as t from "babel-types"; -export default function build(node, buildBody) { +export default function build(node: Object, buildBody: Function): ?Object { let self = node.blocks.shift(); if (!self) return; diff --git a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js index 70275fa570..b8172ef5e3 100644 --- a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js +++ b/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js @@ -1,7 +1,15 @@ +/* @flow */ + import explode from "./explode-assignable-expression"; import * as t from "babel-types"; -export default function (exports, opts) { +export default function ( + exports: Object, + opts: { + build: Function; + is: Function; + }, +) { let buildAssignment = function (left, right) { return t.assignmentExpression("=", left, right); }; diff --git a/packages/babel-core/src/transformation/helpers/call-delegate.js b/packages/babel-core/src/transformation/helpers/call-delegate.js index 6fc6009251..b12c9287c9 100644 --- a/packages/babel-core/src/transformation/helpers/call-delegate.js +++ b/packages/babel-core/src/transformation/helpers/call-delegate.js @@ -1,3 +1,6 @@ +/* @flow */ + +import type { Scope } from "babel-traverse"; import * as t from "babel-types"; let visitor = { @@ -13,7 +16,7 @@ let visitor = { } }; -export default function (node, scope) { +export default function (node: Object, scope: Scope) { let container = t.functionExpression(null, [], node.body, node.generator, node.async); let callee = container; diff --git a/packages/babel-core/src/transformation/helpers/define-map.js b/packages/babel-core/src/transformation/helpers/define-map.js index 4fc596a5d4..21b4536df0 100644 --- a/packages/babel-core/src/transformation/helpers/define-map.js +++ b/packages/babel-core/src/transformation/helpers/define-map.js @@ -1,8 +1,11 @@ +/* @flow */ + +import type File from "../file"; import each from "lodash/collection/each"; import has from "lodash/object/has"; import * as t from "babel-types"; -export function push(mutatorMap, node, kind, file) { +export function push(mutatorMap: Object, node: Object, kind: string, file: File): Object { let alias = t.toKeyAlias(node); // @@ -43,7 +46,7 @@ export function push(mutatorMap, node, kind, file) { return map; } -export function hasComputed(mutatorMap) { +export function hasComputed(mutatorMap: Object): boolean { for (let key in mutatorMap) { if (mutatorMap[key]._computed) { return true; @@ -52,7 +55,7 @@ export function hasComputed(mutatorMap) { return false; } -export function toComputedObjectFromClass(obj) { +export function toComputedObjectFromClass(obj: Object): Object { let objExpr = t.arrayExpression([]); for (let i = 0; i < obj.properties.length; i++) { @@ -65,7 +68,7 @@ export function toComputedObjectFromClass(obj) { return objExpr; } -export function toClassObject(mutatorMap) { +export function toClassObject(mutatorMap: Object): Object { let objExpr = t.objectExpression([]); each(mutatorMap, function (map) { @@ -92,7 +95,7 @@ export function toClassObject(mutatorMap) { return objExpr; } -export function toDefineObject(mutatorMap) { +export function toDefineObject(mutatorMap: Object): Object { each(mutatorMap, function (map) { if (map.value) map.writable = t.booleanLiteral(true); map.configurable = t.booleanLiteral(true); diff --git a/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js b/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js index eddcc5d4c8..5a97200499 100644 --- a/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js +++ b/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js @@ -1,6 +1,10 @@ +/* @flow */ + +import type { Scope } from "babel-traverse"; +import type File from "../file"; import * as t from "babel-types"; -let getObjRef = function (node, nodes, file, scope) { +function getObjRef(node, nodes, file, scope) { let ref; if (t.isIdentifier(node)) { if (scope.hasBinding(node.name)) { @@ -31,9 +35,9 @@ let getObjRef = function (node, nodes, file, scope) { t.variableDeclarator(temp, ref) ])); return temp; -}; +} -let getPropRef = function (node, nodes, file, scope) { +function getPropRef(node, nodes, file, scope) { let prop = node.property; let key = t.toComputedKey(node, prop); if (t.isLiteral(key)) return key; @@ -43,9 +47,18 @@ let getPropRef = function (node, nodes, file, scope) { t.variableDeclarator(temp, prop) ])); return temp; -}; +} -export default function (node, nodes, file, scope, allowedSingleIdent) { +export default function ( + node: Object, + nodes: Array, + file: File, + scope: Scope, + allowedSingleIdent?: boolean, +): { + uid: Object; + ref: Object; +} { let obj; if (t.isIdentifier(node) && allowedSingleIdent) { obj = node; diff --git a/packages/babel-core/src/transformation/helpers/get-function-arity.js b/packages/babel-core/src/transformation/helpers/get-function-arity.js index 756a102d9a..581e695c42 100644 --- a/packages/babel-core/src/transformation/helpers/get-function-arity.js +++ b/packages/babel-core/src/transformation/helpers/get-function-arity.js @@ -1,11 +1,13 @@ +/* @flow */ + import * as t from "babel-types"; -export default function (node) { - for (let i = 0; i < node.params.length; i++) { - let param = node.params[i]; +export default function ({ params }: { params: Array }): number { + for (let i = 0; i < params.length; i++) { + let param = params[i]; if (t.isAssignmentPattern(param) || t.isRestElement(param)) { return i; } } - return node.params.length; + return params.length; } diff --git a/packages/babel-core/src/transformation/helpers/memoise-decorators.js b/packages/babel-core/src/transformation/helpers/memoise-decorators.js index d05d4c4e33..18eaa0a498 100644 --- a/packages/babel-core/src/transformation/helpers/memoise-decorators.js +++ b/packages/babel-core/src/transformation/helpers/memoise-decorators.js @@ -1,8 +1,10 @@ +/* @flow */ + +import type { Scope } from "babel-traverse"; import * as t from "babel-types"; -export default function (decorators, scope) { - for (let i = 0; i < decorators.length; i++) { - let decorator = decorators[i]; +export default function (decorators: Array, scope: Scope): Array { + for (let decorator of decorators) { let expression = decorator.expression; if (!t.isMemberExpression(expression)) continue; diff --git a/packages/babel-core/src/transformation/helpers/name-method.js b/packages/babel-core/src/transformation/helpers/name-method.js index df1a25e88c..034a825605 100644 --- a/packages/babel-core/src/transformation/helpers/name-method.js +++ b/packages/babel-core/src/transformation/helpers/name-method.js @@ -1,3 +1,7 @@ +/* @flow */ + +import type { Scope } from "babel-traverse"; +import type File from "../file"; import getFunctionArity from "./get-function-arity"; import * as util from "../../util"; import * as t from "babel-types"; @@ -94,12 +98,12 @@ function visit(node, name, scope) { return state; } -export function custom(node, id, scope) { +export function custom(node: Object, id: Object, scope: Scope) { let state = visit(node, id.name, scope); return wrap(state, node, id, scope); } -export function property(node, file, scope) { +export function property(node: Object, file: File, scope: Scope) { let key = t.toComputedKey(node, node.key); if (!t.isLiteral(key)) return; // we can't set a function id with this @@ -111,7 +115,7 @@ export function property(node, file, scope) { node.value = wrap(state, method, id, scope) || method; } -export function bare(node, parent, scope) { +export function bare(node: Object, parent: Object, scope: Scope) { // has an `id` so we don't need to infer one if (node.id) return; @@ -136,9 +140,9 @@ export function bare(node, parent, scope) { } let name; - if (t.isLiteral(id)) { + if (id && t.isLiteral(id)) { name = id.value; - } else if (t.isIdentifier(id)) { + } else if (id && t.isIdentifier(id)) { name = id.name; } else { return; diff --git a/packages/babel-core/src/transformation/helpers/regex.js b/packages/babel-core/src/transformation/helpers/regex.js index c99a183760..8044207c37 100644 --- a/packages/babel-core/src/transformation/helpers/regex.js +++ b/packages/babel-core/src/transformation/helpers/regex.js @@ -1,11 +1,13 @@ +/* @flow */ + import pull from "lodash/array/pull"; import * as t from "babel-types"; -export function is(node, flag) { +export function is(node: Object, flag: string): boolean { return t.isRegexLiteral(node) && node.flags.indexOf(flag) >= 0; } -export function pullFlag(node, flag) { +export function pullFlag(node: Object, flag: string) { let flags = node.flags.split(""); if (node.flags.indexOf(flag) < 0) return; pull(flags, flag); diff --git a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js index 561418e44f..2cd9a9aca5 100644 --- a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js +++ b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js @@ -1,3 +1,6 @@ +/* @flow */ + +import type { NodePath } from "babel-traverse"; import * as t from "babel-types"; let awaitVisitor = { @@ -25,13 +28,13 @@ let referenceVisitor = { } }; -export default function (path, callId) { +export default function (path: NodePath, callId: Object) { let node = path.node; node.async = false; node.generator = true; - path.traverse(awaitVisitor, state); + path.traverse(awaitVisitor); let call = t.callExpression(callId, [node]); @@ -48,7 +51,8 @@ export default function (path, callId) { node.type = "FunctionExpression"; if (id) { - let state = { id }; + let state = { id, ref: null }; + path.traverse(referenceVisitor, state); if (state.ref) { diff --git a/packages/babel-core/src/transformation/helpers/replace-supers.js b/packages/babel-core/src/transformation/helpers/replace-supers.js index 8239e9d481..11e6eab71f 100644 --- a/packages/babel-core/src/transformation/helpers/replace-supers.js +++ b/packages/babel-core/src/transformation/helpers/replace-supers.js @@ -1,4 +1,7 @@ -import type NodePath from "../../traversal/path"; +/* @flow */ + +import type File from "../file"; +import type { NodePath, Scope } from "babel-traverse"; import * as messages from "babel-messages"; import * as t from "babel-types"; @@ -59,6 +62,28 @@ export default class ReplaceSupers { this.opts = opts; } + topLevelThisReference: ?Object; + methodPath: NodePath; + methodNode: Object; + superRef: Object; + isStatic: boolean; + hasSuper: boolean; + inClass: boolean; + isLoose: boolean; + scope: Scope; + file: File; + opts: { + getObjetRef: Function; + topLevelThisReference: Object; + methodPath: NodePath; + methodNode: Object; + superRef: Object; + isStatic: boolean; + isLoose: boolean; + scope: Scope; + file: File; + }; + getObjectRef() { return this.opts.objectRef || this.opts.getObjectRef(); } diff --git a/packages/babel-core/src/transformation/index.js b/packages/babel-core/src/transformation/index.js index 3719de4bd0..daf3499a03 100644 --- a/packages/babel-core/src/transformation/index.js +++ b/packages/babel-core/src/transformation/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import Pipeline from "./pipeline"; let pipeline = new Pipeline; diff --git a/packages/babel-core/src/transformation/internal-plugins/block-hoist.js b/packages/babel-core/src/transformation/internal-plugins/block-hoist.js index 014b9e7711..a0b5fab150 100644 --- a/packages/babel-core/src/transformation/internal-plugins/block-hoist.js +++ b/packages/babel-core/src/transformation/internal-plugins/block-hoist.js @@ -1,3 +1,5 @@ +/* @flow */ + import Plugin from "../plugin"; import sortBy from "lodash/collection/sortBy"; diff --git a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js index 397b48b67a..3f13629329 100644 --- a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js +++ b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js @@ -1,3 +1,5 @@ +/* @flow */ + import Plugin from "../plugin"; import * as t from "babel-types"; diff --git a/packages/babel-core/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js index 48dd52bbd0..30b6549702 100644 --- a/packages/babel-core/src/transformation/modules/_default.js +++ b/packages/babel-core/src/transformation/modules/_default.js @@ -1,3 +1,7 @@ +/* @flow */ + +import type { File, FileModulesMetadata } from "../file"; +import type { Scope, NodePath } from "babel-traverse"; import * as metadataVisitor from "./lib/metadata"; import * as messages from "babel-messages"; import Remaps from "./lib/remaps"; @@ -5,7 +9,7 @@ import * as util from "../../util"; import * as t from "babel-types"; export default class DefaultFormatter { - constructor(file) { + constructor(file: File) { // object containg all module sources with the scope that they're contained in this.sourceScopes = Object.create(null); @@ -31,7 +35,20 @@ export default class DefaultFormatter { this.getMetadata(); } - addScope(path) { + sourceScopes: Object; + defaultIds: Object; + ids: Object; + remaps: Remaps; + scope: Scope; + file: File; + hasNonDefaultExports: boolean; + hasLocalExports: boolean; + hasLocalImports: boolean; + localExports: Object; + localImports: Object; + metadata: FileModulesMetadata; + + addScope(path: NodePath) { let source = path.node.source && path.node.source.value; if (!source) return; @@ -43,7 +60,7 @@ export default class DefaultFormatter { this.sourceScopes[source] = path.scope; } - isModuleType(node, type) { + isModuleType(node: Object, type: string): boolean { let modules = this.file.dynamicImportTypes[type]; return modules && modules.indexOf(node) >= 0; } @@ -52,19 +69,19 @@ export default class DefaultFormatter { this.remapAssignments(); } - doDefaultExportInterop(node) { + doDefaultExportInterop(node: Object): Object { return (t.isExportDefaultDeclaration(node) || t.isSpecifierDefault(node)) && !this.noInteropRequireExport && !this.hasNonDefaultExports; } getMetadata() { let has = false; - for (let node of (this.file.ast.program.body: Array)) { + for (let node of (this.file.ast.program.body: Array)) { if (t.isModuleDeclaration(node)) { has = true; break; } } - if (has || this.isLoose()) { + if (has) { this.file.path.traverse(metadataVisitor, this); } } @@ -75,13 +92,13 @@ export default class DefaultFormatter { } } - remapExportAssignment(node, exported) { + remapExportAssignment(node: Object, exported: Array) { let assign = node; - for (let i = 0; i < exported.length; i++) { + for (let prop of exported) { assign = t.assignmentExpression( "=", - t.memberExpression(t.identifier("exports"), exported[i]), + t.memberExpression(t.identifier("exports"), prop), assign ); } @@ -89,7 +106,7 @@ export default class DefaultFormatter { return assign; } - _addExport(name, exported) { + _addExport(name: string, exported: Array) { let info = this.localExports[name] = this.localExports[name] || { binding: this.scope.getBindingIdentifier(name), exported: [] @@ -97,7 +114,7 @@ export default class DefaultFormatter { info.exported.push(exported); } - getExport(node, scope) { + getExport(node: Object, scope: Scope) { if (!t.isIdentifier(node)) return; let local = this.localExports[node.name]; @@ -106,8 +123,9 @@ export default class DefaultFormatter { } } - getModuleName() { + getModuleName(): string { let opts = this.file.opts; + // moduleId is n/a if a `getModuleId()` is provided if (opts.moduleId != null && !opts.getModuleId) { return opts.moduleId; @@ -148,7 +166,7 @@ export default class DefaultFormatter { } } - _pushStatement(ref, nodes) { + _pushStatement(ref: Object, nodes: Array): Object { if (t.isClass(ref) || t.isFunction(ref)) { if (ref.id) { nodes.push(t.toStatement(ref)); @@ -159,7 +177,7 @@ export default class DefaultFormatter { return ref; } - _hoistExport(declar, assign, priority) { + _hoistExport(declar: Object, assign: Object, priority?: number): Object { if (t.isFunctionDeclaration(declar)) { assign._blockHoist = priority || 2; } @@ -167,7 +185,7 @@ export default class DefaultFormatter { return assign; } - getExternalReference(node, nodes) { + getExternalReference(node: Object, nodes: Array): Object { let ids = this.ids; let id = node.source.value; @@ -178,22 +196,22 @@ export default class DefaultFormatter { } } + _getExternalReference() { + throw new Error("Should be implemented"); + } + checkExportIdentifier(node) { if (t.isIdentifier(node, { name: "__esModule" })) { throw this.file.buildCodeFrameError(node, messages.get("modulesIllegalExportName", node.name)); } } - exportAllDeclaration(node, nodes) { + exportAllDeclaration(node: Object, nodes: Array) { let ref = this.getExternalReference(node, nodes); nodes.push(this.buildExportsWildcard(ref, node)); } - isLoose() { - return this.file.isLoose("es6.modules"); - } - - exportSpecifier(specifier, node, nodes) { + exportSpecifier(specifier: Object, node: Object, nodes: Array) { if (node.source) { let ref = this.getExternalReference(node, nodes); @@ -203,10 +221,8 @@ export default class DefaultFormatter { } else { ref = t.memberExpression(ref, specifier.local); - if (!this.isLoose()) { - nodes.push(this.buildExportsFromAssignment(specifier.exported, ref, node)); - return; - } + nodes.push(this.buildExportsFromAssignment(specifier.exported, ref, node)); + return; } // export { foo } from "test"; @@ -217,7 +233,7 @@ export default class DefaultFormatter { } } - buildExportsWildcard(objectIdentifier) { + buildExportsWildcard(objectIdentifier: Object) { return t.expressionStatement(t.callExpression(this.file.addHelper("defaults"), [ t.identifier("exports"), t.callExpression(this.file.addHelper("interop-export-wildcard"), [ @@ -227,7 +243,7 @@ export default class DefaultFormatter { ])); } - buildExportsFromAssignment(id, init) { + buildExportsFromAssignment(id: Object, init: Object) { this.checkExportIdentifier(id); return util.template("exports-from-assign", { INIT: init, @@ -243,7 +259,7 @@ export default class DefaultFormatter { }, true); } - exportDeclaration(node, nodes) { + exportDeclaration(node: Object, nodes: Array) { let declar = node.declaration; let id = declar.id; diff --git a/packages/babel-core/src/transformation/modules/_strict.js b/packages/babel-core/src/transformation/modules/_strict.js index 2a615dfc4a..fe705bc984 100644 --- a/packages/babel-core/src/transformation/modules/_strict.js +++ b/packages/babel-core/src/transformation/modules/_strict.js @@ -1,11 +1,13 @@ +/* @flow */ + import * as util from "../../util"; -export default function (Parent) { - let Constructor = function () { +export default function (Parent: Function): Function { + function Constructor() { this.noInteropRequireImport = true; this.noInteropRequireExport = true; Parent.apply(this, arguments); - }; + } util.inherits(Constructor, Parent); diff --git a/packages/babel-core/src/transformation/modules/amd-strict.js b/packages/babel-core/src/transformation/modules/amd-strict.js index d3dc3d6745..98422e148e 100644 --- a/packages/babel-core/src/transformation/modules/amd-strict.js +++ b/packages/babel-core/src/transformation/modules/amd-strict.js @@ -1,3 +1,5 @@ +/* @flow */ + import AMDFormatter from "./amd"; import buildStrict from "./_strict"; diff --git a/packages/babel-core/src/transformation/modules/amd.js b/packages/babel-core/src/transformation/modules/amd.js index 6f2a1319a4..646d98edc8 100644 --- a/packages/babel-core/src/transformation/modules/amd.js +++ b/packages/babel-core/src/transformation/modules/amd.js @@ -1,3 +1,5 @@ +/* @flow */ + import DefaultFormatter from "./_default"; import CommonFormatter from "./common"; import includes from "lodash/collection/includes"; diff --git a/packages/babel-core/src/transformation/modules/common-strict.js b/packages/babel-core/src/transformation/modules/common-strict.js index 19c2837aa1..c02ae2e75b 100644 --- a/packages/babel-core/src/transformation/modules/common-strict.js +++ b/packages/babel-core/src/transformation/modules/common-strict.js @@ -1,3 +1,5 @@ +/* @flow */ + import CommonFormatter from "./common"; import buildStrict from "./_strict"; diff --git a/packages/babel-core/src/transformation/modules/ignore.js b/packages/babel-core/src/transformation/modules/ignore.js index 98056791a7..b9c3ff627c 100644 --- a/packages/babel-core/src/transformation/modules/ignore.js +++ b/packages/babel-core/src/transformation/modules/ignore.js @@ -1,3 +1,5 @@ +/* @flow */ + import DefaultFormatter from "./_default"; import * as t from "babel-types"; diff --git a/packages/babel-core/src/transformation/modules/index.js b/packages/babel-core/src/transformation/modules/index.js index 82db428417..c7c7a598e7 100644 --- a/packages/babel-core/src/transformation/modules/index.js +++ b/packages/babel-core/src/transformation/modules/index.js @@ -1,3 +1,5 @@ +/* @flow */ + /** * [Please add a description.] */ diff --git a/packages/babel-core/src/transformation/modules/lib/metadata.js b/packages/babel-core/src/transformation/modules/lib/metadata.js index 4d248ada07..d733e80ee9 100644 --- a/packages/babel-core/src/transformation/modules/lib/metadata.js +++ b/packages/babel-core/src/transformation/modules/lib/metadata.js @@ -1,3 +1,5 @@ +/* @flow */ + import extend from "lodash/object/extend"; import * as t from "babel-types"; diff --git a/packages/babel-core/src/transformation/modules/lib/remaps.js b/packages/babel-core/src/transformation/modules/lib/remaps.js index 9e8ee531a3..3c7303428e 100644 --- a/packages/babel-core/src/transformation/modules/lib/remaps.js +++ b/packages/babel-core/src/transformation/modules/lib/remaps.js @@ -1,3 +1,5 @@ +/* @flow */ + import * as t from "babel-types"; let remapVisitor = { diff --git a/packages/babel-core/src/transformation/modules/system.js b/packages/babel-core/src/transformation/modules/system.js index 18817b5600..721e676e32 100644 --- a/packages/babel-core/src/transformation/modules/system.js +++ b/packages/babel-core/src/transformation/modules/system.js @@ -1,3 +1,5 @@ +/* @flow */ + import DefaultFormatter from "./_default"; import AMDFormatter from "./amd"; import * as util from "../../util"; diff --git a/packages/babel-core/src/transformation/modules/umd-strict.js b/packages/babel-core/src/transformation/modules/umd-strict.js index f929e475dc..831de7fc25 100644 --- a/packages/babel-core/src/transformation/modules/umd-strict.js +++ b/packages/babel-core/src/transformation/modules/umd-strict.js @@ -1,3 +1,5 @@ +/* @flow */ + import UMDFormatter from "./umd"; import buildStrict from "./_strict"; diff --git a/packages/babel-core/src/transformation/modules/umd.js b/packages/babel-core/src/transformation/modules/umd.js index 60244a8fb2..57955e82ed 100644 --- a/packages/babel-core/src/transformation/modules/umd.js +++ b/packages/babel-core/src/transformation/modules/umd.js @@ -1,3 +1,5 @@ +/* @flow */ + import DefaultFormatter from "./_default"; import AMDFormatter from "./amd"; import values from "lodash/object/values"; diff --git a/packages/babel-core/src/transformation/pipeline.js b/packages/babel-core/src/transformation/pipeline.js index 9b7abaf207..ea62e1b0a2 100644 --- a/packages/babel-core/src/transformation/pipeline.js +++ b/packages/babel-core/src/transformation/pipeline.js @@ -1,3 +1,5 @@ +/* @flow */ + import normalizeAst from "../helpers/normalize-ast"; import File from "./file"; @@ -26,7 +28,7 @@ export default class Pipeline { }); } - transformFromAst(ast, code, opts) { + transformFromAst(ast, code: string, opts: Object) { ast = normalizeAst(ast); let file = new File(opts, this); diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index 5ef78e0a69..93d86d84c0 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -1,14 +1,20 @@ -import type Transformer from "./transformer"; +/* @flow */ + +import type Plugin from "./plugin"; import traverse from "babel-traverse"; import File from "./file"; export default class PluginPass { - constructor(file: File, plugin: Transformer, options: Object = {}) { + constructor(file: File, plugin: Plugin, options: Object = {}) { this.plugin = plugin; this.file = file; this.opts = options; } + plugin: Plugin; + file: File; + opts: Object; + transform() { let file = this.file; file.log.debug(`Start transformer ${this.key}`); diff --git a/packages/babel-core/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js index 1ba7c3b135..81fe760cf4 100644 --- a/packages/babel-core/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -1,3 +1,5 @@ +/* @flow */ + import * as messages from "babel-messages"; import traverse from "babel-traverse"; import assign from "lodash/object/assign"; @@ -16,11 +18,16 @@ export default class Plugin { this.manipulateOptions = take("manipulateOptions"); this.post = take("post"); this.pre = take("pre"); - - this.visitor = this.normalize(clone(take("visitor")) || {}); + this.visitor = this.normalize(clone(take("visitor")) || {}); } - validate(loc, i) { + raw: Object; + manipulateOptions: ?Function; + post: ?Function; + pre: ?Function; + visitor: Object; + + validate(loc: string, i: number) { for (let key in this.raw) { throw new Error(messages.get("pluginInvalidProperty", loc, i, key)); } diff --git a/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js index 344e1d081b..5c7379a5f4 100644 --- a/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js +++ b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js @@ -1,45 +1,10 @@ import * as defineMap from "../../helpers/define-map"; import * as t from "babel-types"; -/** - * Turn [object initializer mutators](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions) - * into `Object.defineProperties`. - * - * **In** - * - * ```javascript - * let foo = { - * get bar() { - * return "bar"; - * } - * }; - * ``` - * - * **Out** - * - * ```javascript - * let foo = Object.defineProperties({}, { - * bar: { - * get: function () { - * return "bar"; - * }, - * enumerable: true, - * configurable: true - * } - * }); - * ``` - */ - export let visitor = { - /** - * Look for getters and setters on an object. - * Filter them out and wrap the object with an `Object.defineProperties` that - * defines the getters and setters. - */ - - ObjectExpression(node, parent, scope, file) { - let hasAny = false; - for (let prop of (node.properties: Array)) { + ObjectExpression({ node }, file) { + var hasAny = false; + for (var prop of (node.properties: Array)) { if (prop.kind === "get" || prop.kind === "set") { hasAny = true; break; diff --git a/packages/babel-core/src/util.js b/packages/babel-core/src/util.js index cc7fe4f303..e0a7d22fe6 100644 --- a/packages/babel-core/src/util.js +++ b/packages/babel-core/src/util.js @@ -81,7 +81,7 @@ export function regexify(val: any): RegExp { * Create an array from a boolean, string, or array, mapped by and optional function. */ -export function arrayify(val: any, mapFn?: Function): Array { +export function arrayify(val: any, mapFn?: Function): Array { if (!val) return []; if (isBoolean(val)) return arrayify([val], mapFn); if (isString(val)) return arrayify(list(val), mapFn); @@ -98,7 +98,7 @@ export function arrayify(val: any, mapFn?: Function): Array { * Makes boolean-like strings into booleans. */ -export function booleanify(val: any): boolean { +export function booleanify(val: any): boolean | any { if (val === "true") return true; if (val === "false") return false; return val; @@ -108,16 +108,20 @@ export function booleanify(val: any): boolean { * Tests if a filename should be ignored based on "ignore" and "only" options. */ -export function shouldIgnore(filename: string, ignore: Array, only): boolean { +export function shouldIgnore( + filename: string, + ignore: Array = [], + only?: Array, +): boolean { filename = slash(filename); if (only) { - for (let pattern of (only: Array)) { + for (let pattern of only) { if (_shouldIgnore(pattern, filename)) return false; } return true; } else if (ignore.length) { - for (let pattern of (ignore: Array)) { + for (let pattern of ignore) { if (_shouldIgnore(pattern, filename)) return true; } } @@ -130,7 +134,7 @@ export function shouldIgnore(filename: string, ignore: Array, only): boolean { * Otherwise returns result of matching pattern Regex with filename. */ -function _shouldIgnore(pattern, filename) { +function _shouldIgnore(pattern: Function | RegExp, filename: string) { if (typeof pattern === "function") { return pattern(filename); } else { diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index 8cc1760976..abd69f8006 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -1,23 +1,28 @@ +/* @flow */ + +import type Position from "./position"; import repeating from "repeating"; import trimRight from "trim-right"; -import isBoolean from "lodash/lang/isBoolean"; -import includes from "lodash/collection/includes"; -import isNumber from "lodash/lang/isNumber"; /** * Buffer for collecting generated output. */ export default class Buffer { - constructor(position, format) { + constructor(position: Position, format: Object) { this.parenPushNewlineState = null; - this.position = position; - this._indent = format.indent.base; - this.format = format; - this.buf = ""; + this._indent = format.indent.base; + this.format = format; + this.buf = ""; } + parenPushNewlineState: ?Object; + buf: string; + position: Position; + _indent: number; + format: Object; + /** * Get the current trimmed buffer. */ @@ -91,7 +96,7 @@ export default class Buffer { * Add a keyword to the buffer. */ - keyword(name) { + keyword(name: string) { this.push(name); this.space(); } @@ -100,7 +105,7 @@ export default class Buffer { * Add a space to the buffer unless it is compact (override with force). */ - space(force?) { + space(force?: boolean) { if (!force && this.format.compact) return; if (force || this.buf && !this.isLast(" ") && !this.isLast("\n")) { @@ -112,7 +117,7 @@ export default class Buffer { * Remove the last character. */ - removeLast(cha) { + removeLast(cha: string) { if (this.format.compact) return; if (!this.isLast(cha)) return; @@ -136,7 +141,7 @@ export default class Buffer { * `undefined` will be returned and not `foo` due to the terminator. */ - startTerminatorless() { + startTerminatorless(): Object { return this.parenPushNewlineState = { printed: false }; @@ -146,7 +151,7 @@ export default class Buffer { * Print an ending parentheses if a starting one has been printed. */ - endTerminatorless(state) { + endTerminatorless(state: Object) { if (state.printed) { this.dedent(); this.newline(); @@ -159,7 +164,7 @@ export default class Buffer { * Strips multiple newlines if removeLast is true. */ - newline(i, removeLast) { + newline(i?: boolean | number, removeLast?: boolean) { if (this.format.retainLines || this.format.compact) return; if (this.format.concise) { @@ -169,7 +174,7 @@ export default class Buffer { removeLast = removeLast || false; - if (isNumber(i)) { + if (typeof i === "number") { i = Math.min(2, i); if (this.endsWith("{\n") || this.endsWith(":\n")) i--; @@ -182,7 +187,7 @@ export default class Buffer { return; } - if (isBoolean(i)) { + if (typeof i === "boolean") { removeLast = i; } @@ -193,7 +198,7 @@ export default class Buffer { * Adds a newline unless there is already two previous newlines. */ - _newline(removeLast) { + _newline(removeLast?: boolean) { // never allow more than two lines if (this.endsWith("\n\n")) return; @@ -233,7 +238,7 @@ export default class Buffer { * Push a string to the buffer, maintaining indentation and newlines. */ - push(str, noIndent) { + push(str: string, noIndent?: boolean) { if (!this.format.compact && this._indent && !noIndent && str !== "\n") { // we have an indent level and we aren't pushing a newline let indent = this.getIndent(); @@ -284,7 +289,7 @@ export default class Buffer { * Test if the buffer ends with a string. */ - endsWith(str, buf = this.buf) { + endsWith(str: string, buf: string = this.buf): boolean { if (str.length === 1) { return buf[buf.length - 1] === str; } else { @@ -296,14 +301,14 @@ export default class Buffer { * Test if a character is last in the buffer. */ - isLast(cha) { + isLast(cha: string) { if (this.format.compact) return false; let buf = this.buf; let last = buf[buf.length - 1]; if (Array.isArray(cha)) { - return includes(cha, last); + return cha.indexOf(last) >= 0; } else { return cha === last; } diff --git a/packages/babel-generator/src/generators/base.js b/packages/babel-generator/src/generators/base.js index 344a9880f4..67fe2f580e 100644 --- a/packages/babel-generator/src/generators/base.js +++ b/packages/babel-generator/src/generators/base.js @@ -1,12 +1,16 @@ -export function File(node, print) { +/* @flow */ + +import type NodePrinter from "../node/printer"; + +export function File(node: Object, print: NodePrinter) { print.plain(node.program); } -export function Program(node, print) { +export function Program(node: Object, print: NodePrinter) { print.sequence(node.body); } -export function BlockStatement(node, print) { +export function BlockStatement(node: Object, print: NodePrinter) { this.push("{"); if (node.body.length) { this.newline(); diff --git a/packages/babel-generator/src/generators/classes.js b/packages/babel-generator/src/generators/classes.js index 769f43a80f..6222fa7924 100644 --- a/packages/babel-generator/src/generators/classes.js +++ b/packages/babel-generator/src/generators/classes.js @@ -1,4 +1,8 @@ -export function ClassDeclaration(node, print) { +/* @flow */ + +import type NodePrinter from "../node/printer"; + +export function ClassDeclaration(node: Object, print: NodePrinter) { print.list(node.decorators, { separator: "" }); this.push("class"); @@ -26,7 +30,7 @@ export function ClassDeclaration(node, print) { export { ClassDeclaration as ClassExpression }; -export function ClassBody(node, print) { +export function ClassBody(node: Object, print: NodePrinter) { this.push("{"); if (node.body.length === 0) { print.printInnerComments(); @@ -42,7 +46,7 @@ export function ClassBody(node, print) { } } -export function ClassProperty(node, print) { +export function ClassProperty(node: Object, print: NodePrinter) { print.list(node.decorators, { separator: "" }); if (node.static) this.push("static "); @@ -57,7 +61,7 @@ export function ClassProperty(node, print) { this.semicolon(); } -export function MethodDefinition(node, print) { +export function MethodDefinition(node: Object, print: NodePrinter) { print.list(node.decorators, { separator: "" }); if (node.static) { diff --git a/packages/babel-generator/src/generators/comprehensions.js b/packages/babel-generator/src/generators/comprehensions.js index 29b7029cb1..4128805dd4 100644 --- a/packages/babel-generator/src/generators/comprehensions.js +++ b/packages/babel-generator/src/generators/comprehensions.js @@ -1,4 +1,8 @@ -export function ComprehensionBlock(node, print) { +/* @flow */ + +import type NodePrinter from "../node/printer"; + +export function ComprehensionBlock(node: Object, print: NodePrinter) { this.keyword("for"); this.push("("); print.plain(node.left); @@ -7,7 +11,7 @@ export function ComprehensionBlock(node, print) { this.push(")"); } -export function ComprehensionExpression(node, print) { +export function ComprehensionExpression(node: Object, print: NodePrinter) { this.push(node.generator ? "(" : "["); print.join(node.blocks, { separator: " " }); diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index 598592c4c6..2df40bc43d 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -1,10 +1,13 @@ +/* @flow */ + +import type NodePrinter from "../node/printer"; import isInteger from "is-integer"; import isNumber from "lodash/lang/isNumber"; import * as t from "babel-types"; const SCIENTIFIC_NOTATION = /e/i; -export function UnaryExpression(node, print) { +export function UnaryExpression(node: Object, print: NodePrinter) { let needsSpace = /[a-z]$/.test(node.operator); let arg = node.argument; @@ -21,19 +24,19 @@ export function UnaryExpression(node, print) { print.plain(node.argument); } -export function DoExpression(node, print) { +export function DoExpression(node: Object, print: NodePrinter) { this.push("do"); this.space(); print.plain(node.body); } -export function ParenthesizedExpression(node, print) { +export function ParenthesizedExpression(node: Object, print: NodePrinter) { this.push("("); print.plain(node.expression); this.push(")"); } -export function UpdateExpression(node, print) { +export function UpdateExpression(node: Object, print: NodePrinter) { if (node.prefix) { this.push(node.operator); print.plain(node.argument); @@ -43,7 +46,7 @@ export function UpdateExpression(node, print) { } } -export function ConditionalExpression(node, print) { +export function ConditionalExpression(node: Object, print: NodePrinter) { print.plain(node.test); this.space(); this.push("?"); @@ -55,7 +58,7 @@ export function ConditionalExpression(node, print) { print.plain(node.alternate); } -export function NewExpression(node, print) { +export function NewExpression(node: Object, print: NodePrinter) { this.push("new "); print.plain(node.callee); this.push("("); @@ -63,7 +66,7 @@ export function NewExpression(node, print) { this.push(")"); } -export function SequenceExpression(node, print) { +export function SequenceExpression(node: Object, print: NodePrinter) { print.list(node.expressions); } @@ -75,13 +78,13 @@ export function Super() { this.push("super"); } -export function Decorator(node, print) { +export function Decorator(node: Object, print: NodePrinter) { this.push("@"); print.plain(node.expression); this.newline(); } -export function CallExpression(node, print) { +export function CallExpression(node: Object, print: NodePrinter) { print.plain(node.callee); this.push("("); @@ -106,7 +109,7 @@ export function CallExpression(node, print) { } function buildYieldAwait(keyword) { - return function (node, print) { + return function (node: Object, print: NodePrinter) { this.push(keyword); if (node.delegate || node.all) { @@ -129,24 +132,23 @@ export function EmptyStatement() { this.semicolon(); } -export function ExpressionStatement(node, print) { +export function ExpressionStatement(node: Object, print: NodePrinter) { print.plain(node.expression); this.semicolon(); } -export function AssignmentPattern(node, print) { +export function AssignmentPattern(node: Object, print: NodePrinter) { print.plain(node.left); this.push(" = "); print.plain(node.right); } -export function AssignmentExpression(node, print) { - // todo: add cases where the spaces can be dropped when in compact mode +export function AssignmentExpression(node: Object, print: NodePrinter) { print.plain(node.left); - let spaces = node.operator === "in" || node.operator === "instanceof"; + let spaces = !this.format.compact || node.operator === "in" || node.operator === "instanceof"; spaces = true; // todo: https://github.com/babel/babel/issues/1835 - this.space(spaces); + if (spaces) this.push(" "); this.push(node.operator); @@ -158,12 +160,12 @@ export function AssignmentExpression(node, print) { t.isUnaryExpression(node.right.argument, { prefix: true, operator: "--" }); } - this.space(spaces); + if (spaces) this.push(" "); print.plain(node.right); } -export function BindExpression(node, print) { +export function BindExpression(node: Object, print: NodePrinter) { print.plain(node.object); this.push("::"); print.plain(node.callee); @@ -174,7 +176,7 @@ export { AssignmentExpression as LogicalExpression }; -export function MemberExpression(node, print) { +export function MemberExpression(node: Object, print: NodePrinter) { let obj = node.object; print.plain(obj); @@ -193,7 +195,7 @@ export function MemberExpression(node, print) { this.push("]"); } else { if (t.isLiteral(node.object)) { - let val = this._Literal(node.object); + let val = this._stringLiteral(node.object); if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !this.endsWith(".")) { this.push("."); } @@ -204,7 +206,7 @@ export function MemberExpression(node, print) { } } -export function MetaProperty(node, print) { +export function MetaProperty(node: Object, print: NodePrinter) { print.plain(node.meta); this.push("."); print.plain(node.property); diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index 4a42f81d04..190d6887b7 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -1,10 +1,13 @@ +/* @flow */ + +import type NodePrinter from "../node/printer"; import * as t from "babel-types"; export function AnyTypeAnnotation() { this.push("any"); } -export function ArrayTypeAnnotation(node, print) { +export function ArrayTypeAnnotation(node: Object, print: NodePrinter) { print.plain(node.elementType); this.push("["); this.push("]"); @@ -14,37 +17,37 @@ export function BooleanTypeAnnotation() { this.push("bool"); } -export function BooleanLiteralTypeAnnotation(node) { +export function BooleanLiteralTypeAnnotation(node: Object) { this.push(node.value ? "true" : "false"); } -export function DeclareClass(node, print) { +export function DeclareClass(node: Object, print: NodePrinter) { this.push("declare class "); this._interfaceish(node, print); } -export function DeclareFunction(node, print) { +export function DeclareFunction(node: Object, print: NodePrinter) { this.push("declare function "); print.plain(node.id); print.plain(node.id.typeAnnotation.typeAnnotation); this.semicolon(); } -export function DeclareModule(node, print) { +export function DeclareModule(node: Object, print: NodePrinter) { this.push("declare module "); print.plain(node.id); this.space(); print.plain(node.body); } -export function DeclareVariable(node, print) { +export function DeclareVariable(node: Object, print: NodePrinter) { this.push("declare let "); print.plain(node.id); print.plain(node.id.typeAnnotation); this.semicolon(); } -export function FunctionTypeAnnotation(node, print, parent) { +export function FunctionTypeAnnotation(node: Object, print: NodePrinter, parent: Object) { print.plain(node.typeParameters); this.push("("); print.list(node.params); @@ -72,7 +75,7 @@ export function FunctionTypeAnnotation(node, print, parent) { print.plain(node.returnType); } -export function FunctionTypeParam(node, print) { +export function FunctionTypeParam(node: Object, print: NodePrinter) { print.plain(node.name); if (node.optional) this.push("?"); this.push(":"); @@ -80,14 +83,14 @@ export function FunctionTypeParam(node, print) { print.plain(node.typeAnnotation); } -export function InterfaceExtends(node, print) { +export function InterfaceExtends(node: Object, print: NodePrinter) { print.plain(node.id); print.plain(node.typeParameters); } export { InterfaceExtends as ClassImplements, InterfaceExtends as GenericTypeAnnotation }; -export function _interfaceish(node, print) { +export function _interfaceish(node: Object, print: NodePrinter) { print.plain(node.id); print.plain(node.typeParameters); if (node.extends.length) { @@ -98,12 +101,12 @@ export function _interfaceish(node, print) { print.plain(node.body); } -export function InterfaceDeclaration(node, print) { +export function InterfaceDeclaration(node: Object, print: NodePrinter) { this.push("interface "); this._interfaceish(node, print); } -export function IntersectionTypeAnnotation(node, print) { +export function IntersectionTypeAnnotation(node: Object, print: NodePrinter) { print.join(node.types, { separator: " & " }); } @@ -111,18 +114,18 @@ export function MixedTypeAnnotation() { this.push("mixed"); } -export function NullableTypeAnnotation(node, print) { +export function NullableTypeAnnotation(node: Object, print: NodePrinter) { this.push("?"); print.plain(node.typeAnnotation); } -export { Literal as NumberLiteralTypeAnnotation } from "./types"; +export { NumberLiteral as NumberLiteralTypeAnnotation } from "./types"; export function NumberTypeAnnotation() { this.push("number"); } -export function StringLiteralTypeAnnotation(node) { +export function StringLiteralTypeAnnotation(node: Object) { this.push(this._stringLiteral(node.value)); } @@ -130,18 +133,18 @@ export function StringTypeAnnotation() { this.push("string"); } -export function TupleTypeAnnotation(node, print) { +export function TupleTypeAnnotation(node: Object, print: NodePrinter) { this.push("["); print.join(node.types, { separator: ", " }); this.push("]"); } -export function TypeofTypeAnnotation(node, print) { +export function TypeofTypeAnnotation(node: Object, print: NodePrinter) { this.push("typeof "); print.plain(node.argument); } -export function TypeAlias(node, print) { +export function TypeAlias(node: Object, print: NodePrinter) { this.push("type "); print.plain(node.id); print.plain(node.typeParameters); @@ -152,18 +155,18 @@ export function TypeAlias(node, print) { this.semicolon(); } -export function TypeAnnotation(node, print) { +export function TypeAnnotation(node: Object, print: NodePrinter) { this.push(":"); this.space(); if (node.optional) this.push("?"); print.plain(node.typeAnnotation); } -export function TypeParameterInstantiation(node, print) { +export function TypeParameterInstantiation(node: Object, print: NodePrinter) { this.push("<"); print.join(node.params, { separator: ", ", - iterator(node) { + iterator(node: Object) { print.plain(node.typeAnnotation); } }); @@ -172,7 +175,7 @@ export function TypeParameterInstantiation(node, print) { export { TypeParameterInstantiation as TypeParameterDeclaration }; -export function ObjectTypeAnnotation(node, print) { +export function ObjectTypeAnnotation(node: Object, print: NodePrinter) { this.push("{"); let props = node.properties.concat(node.callProperties, node.indexers); @@ -196,12 +199,12 @@ export function ObjectTypeAnnotation(node, print) { this.push("}"); } -export function ObjectTypeCallProperty(node, print) { +export function ObjectTypeCallProperty(node: Object, print: NodePrinter) { if (node.static) this.push("static "); print.plain(node.value); } -export function ObjectTypeIndexer(node, print) { +export function ObjectTypeIndexer(node: Object, print: NodePrinter) { if (node.static) this.push("static "); this.push("["); print.plain(node.id); @@ -214,7 +217,7 @@ export function ObjectTypeIndexer(node, print) { print.plain(node.value); } -export function ObjectTypeProperty(node, print) { +export function ObjectTypeProperty(node: Object, print: NodePrinter) { if (node.static) this.push("static "); print.plain(node.key); if (node.optional) this.push("?"); @@ -225,17 +228,17 @@ export function ObjectTypeProperty(node, print) { print.plain(node.value); } -export function QualifiedTypeIdentifier(node, print) { +export function QualifiedTypeIdentifier(node: Object, print: NodePrinter) { print.plain(node.qualification); this.push("."); print.plain(node.id); } -export function UnionTypeAnnotation(node, print) { +export function UnionTypeAnnotation(node: Object, print: NodePrinter) { print.join(node.types, { separator: " | " }); } -export function TypeCastExpression(node, print) { +export function TypeCastExpression(node: Object, print: NodePrinter) { this.push("("); print.plain(node.expression); print.plain(node.typeAnnotation); diff --git a/packages/babel-generator/src/generators/jsx.js b/packages/babel-generator/src/generators/jsx.js index a89061e540..54b881ca46 100644 --- a/packages/babel-generator/src/generators/jsx.js +++ b/packages/babel-generator/src/generators/jsx.js @@ -1,4 +1,8 @@ -export function JSXAttribute(node, print) { +/* @flow */ + +import type NodePrinter from "../node/printer"; + +export function JSXAttribute(node: Object, print: NodePrinter) { print.plain(node.name); if (node.value) { this.push("="); @@ -6,45 +10,45 @@ export function JSXAttribute(node, print) { } } -export function JSXIdentifier(node) { +export function JSXIdentifier(node: Object) { this.push(node.name); } -export function JSXNamespacedName(node, print) { +export function JSXNamespacedName(node: Object, print: NodePrinter) { print.plain(node.namespace); this.push(":"); print.plain(node.name); } -export function JSXMemberExpression(node, print) { +export function JSXMemberExpression(node: Object, print: NodePrinter) { print.plain(node.object); this.push("."); print.plain(node.property); } -export function JSXSpreadAttribute(node, print) { +export function JSXSpreadAttribute(node: Object, print: NodePrinter) { this.push("{..."); print.plain(node.argument); this.push("}"); } -export function JSXExpressionContainer(node, print) { +export function JSXExpressionContainer(node: Object, print: NodePrinter) { this.push("{"); print.plain(node.expression); this.push("}"); } -export function JSXText(node) { +export function JSXText(node: Object) { this.push(node.value, true); } -export function JSXElement(node, print) { +export function JSXElement(node: Object, print: NodePrinter) { let open = node.openingElement; print.plain(open); if (open.selfClosing) return; this.indent(); - for (let child of (node.children: Array)) { + for (let child of (node.children: Array)) { print.plain(child); } this.dedent(); @@ -52,7 +56,7 @@ export function JSXElement(node, print) { print.plain(node.closingElement); } -export function JSXOpeningElement(node, print) { +export function JSXOpeningElement(node: Object, print: NodePrinter) { this.push("<"); print.plain(node.name); if (node.attributes.length > 0) { @@ -62,7 +66,7 @@ export function JSXOpeningElement(node, print) { this.push(node.selfClosing ? " />" : ">"); } -export function JSXClosingElement(node, print) { +export function JSXClosingElement(node: Object, print: NodePrinter) { this.push(""); diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index 920235f05f..65c23a6312 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -1,6 +1,9 @@ +/* @flow */ + +import type NodePrinter from "../node/printer"; import * as t from "babel-types"; -export function _params(node, print) { +export function _params(node: Object, print: NodePrinter) { print.plain(node.typeParameters); this.push("("); print.list(node.params, { @@ -16,7 +19,7 @@ export function _params(node, print) { } } -export function _method(node, print) { +export function _method(node: Object, print: NodePrinter) { let value = node.value; let kind = node.kind; let key = node.key; @@ -46,7 +49,7 @@ export function _method(node, print) { print.plain(value.body); } -export function FunctionExpression(node, print) { +export function FunctionExpression(node: Object, print: NodePrinter) { if (node.async) this.push("async "); this.push("function"); if (node.generator) this.push("*"); @@ -65,7 +68,7 @@ export function FunctionExpression(node, print) { export { FunctionExpression as FunctionDeclaration }; -export function ArrowFunctionExpression(node, print) { +export function ArrowFunctionExpression(node: Object, print: NodePrinter) { if (node.async) this.push("async "); if (node.params.length === 1 && t.isIdentifier(node.params[0])) { diff --git a/packages/babel-generator/src/generators/modules.js b/packages/babel-generator/src/generators/modules.js index 0864dd58a6..7cd2106d50 100644 --- a/packages/babel-generator/src/generators/modules.js +++ b/packages/babel-generator/src/generators/modules.js @@ -1,6 +1,9 @@ +/* @flow */ + +import type NodePrinter from "../node/printer"; import * as t from "babel-types"; -export function ImportSpecifier(node, print) { +export function ImportSpecifier(node: Object, print: NodePrinter) { print.plain(node.imported); if (node.local && node.local.name !== node.imported.name) { this.push(" as "); @@ -8,15 +11,15 @@ export function ImportSpecifier(node, print) { } } -export function ImportDefaultSpecifier(node, print) { +export function ImportDefaultSpecifier(node: Object, print: NodePrinter) { print.plain(node.local); } -export function ExportDefaultSpecifier(node, print) { +export function ExportDefaultSpecifier(node: Object, print: NodePrinter) { print.plain(node.exported); } -export function ExportSpecifier(node, print) { +export function ExportSpecifier(node: Object, print: NodePrinter) { print.plain(node.local); if (node.exported && node.local.name !== node.exported.name) { this.push(" as "); @@ -24,12 +27,12 @@ export function ExportSpecifier(node, print) { } } -export function ExportNamespaceSpecifier(node, print) { +export function ExportNamespaceSpecifier(node: Object, print: NodePrinter) { this.push("* as "); print.plain(node.exported); } -export function ExportAllDeclaration(node, print) { +export function ExportAllDeclaration(node: Object, print: NodePrinter) { this.push("export *"); if (node.exported) { this.push(" as "); @@ -40,19 +43,17 @@ export function ExportAllDeclaration(node, print) { this.semicolon(); } -export function ExportNamedDeclaration(node, print) { +export function ExportNamedDeclaration(node: Object, print: NodePrinter) { this.push("export "); ExportDeclaration.call(this, node, print); } -export function ExportDefaultDeclaration(node, print) { +export function ExportDefaultDeclaration(node: Object, print: NodePrinter) { this.push("export default "); ExportDeclaration.call(this, node, print); } -function ExportDeclaration(node, print) { - let specifiers = node.specifiers; - +function ExportDeclaration(node: Object, print: NodePrinter) { if (node.declaration) { let declar = node.declaration; print.plain(declar); @@ -62,6 +63,8 @@ function ExportDeclaration(node, print) { this.push("type "); } + let specifiers = node.specifiers.slice(0); + let first = specifiers[0]; let hasSpecial = false; if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) { @@ -91,27 +94,27 @@ function ExportDeclaration(node, print) { this.ensureSemicolon(); } -export function ImportDeclaration(node, print) { +export function ImportDeclaration(node: Object, print: NodePrinter) { this.push("import "); if (node.importKind === "type" || node.importKind === "typeof") { this.push(node.importKind + " "); } - let specfiers = node.specifiers; - if (specfiers && specfiers.length) { - let first = node.specifiers[0]; + let specifiers = node.specifiers.slice(0); + if (specifiers && specifiers.length) { + let first = specifiers[0]; if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) { - print.plain(node.specifiers.shift()); - if (node.specifiers.length) { + print.plain(specifiers.shift()); + if (specifiers.length) { this.push(", "); } } - if (node.specifiers.length) { + if (specifiers.length) { this.push("{"); this.space(); - print.join(node.specifiers, { separator: ", " }); + print.join(specifiers, { separator: ", " }); this.space(); this.push("}"); } @@ -123,7 +126,7 @@ export function ImportDeclaration(node, print) { this.semicolon(); } -export function ImportNamespaceSpecifier(node, print) { +export function ImportNamespaceSpecifier(node: Object, print: NodePrinter) { this.push("* as "); print.plain(node.local); } diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index 7a67bfdc63..75ec354998 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -1,7 +1,10 @@ +/* @flow */ + +import type NodePrinter from "../node/printer"; import repeating from "repeating"; import * as t from "babel-types"; -export function WithStatement(node, print) { +export function WithStatement(node: Object, print: NodePrinter) { this.keyword("with"); this.push("("); print.plain(node.object); @@ -9,7 +12,7 @@ export function WithStatement(node, print) { print.block(node.body); } -export function IfStatement(node, print) { +export function IfStatement(node: Object, print: NodePrinter) { this.keyword("if"); this.push("("); print.plain(node.test); @@ -25,7 +28,7 @@ export function IfStatement(node, print) { } } -export function ForStatement(node, print) { +export function ForStatement(node: Object, print: NodePrinter) { this.keyword("for"); this.push("("); @@ -47,7 +50,7 @@ export function ForStatement(node, print) { print.block(node.body); } -export function WhileStatement(node, print) { +export function WhileStatement(node: Object, print: NodePrinter) { this.keyword("while"); this.push("("); print.plain(node.test); @@ -56,7 +59,7 @@ export function WhileStatement(node, print) { } let buildForXStatement = function (op) { - return function (node, print) { + return function (node: Object, print: NodePrinter) { this.keyword("for"); this.push("("); print.plain(node.left); @@ -70,7 +73,7 @@ let buildForXStatement = function (op) { export let ForInStatement = buildForXStatement("in"); export let ForOfStatement = buildForXStatement("of"); -export function DoWhileStatement(node, print) { +export function DoWhileStatement(node: Object, print: NodePrinter) { this.push("do "); print.plain(node.body); this.space(); @@ -81,7 +84,7 @@ export function DoWhileStatement(node, print) { } function buildLabelStatement(prefix, key = "label") { - return function (node, print) { + return function (node: Object, print: NodePrinter) { this.push(prefix); let label = node[key]; @@ -101,13 +104,13 @@ export let ReturnStatement = buildLabelStatement("return", "argument"); export let BreakStatement = buildLabelStatement("break"); export let ThrowStatement = buildLabelStatement("throw", "argument"); -export function LabeledStatement(node, print) { +export function LabeledStatement(node: Object, print: NodePrinter) { print.plain(node.label); this.push(": "); print.plain(node.body); } -export function TryStatement(node, print) { +export function TryStatement(node: Object, print: NodePrinter) { this.keyword("try"); print.plain(node.block); this.space(); @@ -128,7 +131,7 @@ export function TryStatement(node, print) { } } -export function CatchClause(node, print) { +export function CatchClause(node: Object, print: NodePrinter) { this.keyword("catch"); this.push("("); print.plain(node.param); @@ -136,7 +139,7 @@ export function CatchClause(node, print) { print.plain(node.body); } -export function SwitchStatement(node, print) { +export function SwitchStatement(node: Object, print: NodePrinter) { this.keyword("switch"); this.push("("); print.plain(node.discriminant); @@ -154,7 +157,7 @@ export function SwitchStatement(node, print) { this.push("}"); } -export function SwitchCase(node, print) { +export function SwitchCase(node: Object, print: NodePrinter) { if (node.test) { this.push("case "); print.plain(node.test); @@ -173,13 +176,13 @@ export function DebuggerStatement() { this.push("debugger;"); } -export function VariableDeclaration(node, print, parent) { +export function VariableDeclaration(node: Object, print: NodePrinter, parent: Object) { this.push(node.kind + " "); let hasInits = false; // don't add whitespace to loop heads if (!t.isFor(parent)) { - for (let declar of (node.declarations: Array)) { + for (let declar of (node.declarations: Array)) { if (declar.init) { // has an init so let's split it up over multiple lines hasInits = true; @@ -216,7 +219,7 @@ export function VariableDeclaration(node, print, parent) { this.semicolon(); } -export function VariableDeclarator(node, print) { +export function VariableDeclarator(node: Object, print: NodePrinter) { print.plain(node.id); print.plain(node.id.typeAnnotation); if (node.init) { diff --git a/packages/babel-generator/src/generators/template-literals.js b/packages/babel-generator/src/generators/template-literals.js index 9d0b4e694c..d10f0d461e 100644 --- a/packages/babel-generator/src/generators/template-literals.js +++ b/packages/babel-generator/src/generators/template-literals.js @@ -1,13 +1,17 @@ -export function TaggedTemplateExpression(node, print) { +/* @flow */ + +import type NodePrinter from "../node/printer"; + +export function TaggedTemplateExpression(node: Object, print: NodePrinter) { print.plain(node.tag); print.plain(node.quasi); } -export function TemplateElement(node) { +export function TemplateElement(node: Object) { this._push(node.value.raw); } -export function TemplateLiteral(node, print) { +export function TemplateLiteral(node: Object, print: NodePrinter) { this.push("`"); let quasis = node.quasis; diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index d1fcfac361..4310509baa 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -1,19 +1,22 @@ +/* @flow */ + /* eslint quotes: 0 */ +import type NodePrinter from "../node/printer"; import * as t from "babel-types"; -export function Identifier(node) { +export function Identifier(node: Object) { this.push(node.name); } -export function RestElement(node, print) { +export function RestElement(node: Object, print: NodePrinter) { this.push("..."); print.plain(node.argument); } export { RestElement as SpreadElement, RestElement as SpreadProperty }; -export function ObjectExpression(node, print) { +export function ObjectExpression(node: Object, print: NodePrinter) { let props = node.properties; this.push("{"); @@ -30,7 +33,7 @@ export function ObjectExpression(node, print) { export { ObjectExpression as ObjectPattern }; -export function Property(node, print) { +export function Property(node: Object, print: NodePrinter) { print.list(node.decorators, { separator: "" }); if (node.method || node.kind === "get" || node.kind === "set") { @@ -64,7 +67,7 @@ export function Property(node, print) { } } -export function ArrayExpression(node, print) { +export function ArrayExpression(node: Object, print: NodePrinter) { let elems = node.elements; let len = elems.length; @@ -92,11 +95,11 @@ export function ArrayExpression(node, print) { export { ArrayExpression as ArrayPattern }; -export function RegexLiteral(node) { +export function RegexLiteral(node: Object) { this.push(`/${node.pattern}/${node.flags}`); } -export function BooleanLiteral(node) { +export function BooleanLiteral(node: Object) { this.push(node.value ? "true" : "false"); } @@ -104,15 +107,15 @@ export function NullLiteral() { this.push("null"); } -export function NumberLiteral(node) { +export function NumberLiteral(node: Object) { this.push(node.value + ""); } -export function StringLiteral(node) { +export function StringLiteral(node: Object) { this.push(this._stringLiteral(node.value)); } -export function _stringLiteral(val) { +export function _stringLiteral(val: string): string { val = JSON.stringify(val); // escape illegal js but valid json unicode characters diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index b560b7e518..d6b14dbf0e 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import detectIndent from "detect-indent"; import Whitespace from "./whitespace"; import NodePrinter from "./node/printer"; @@ -32,6 +34,29 @@ class CodeGenerator { this.buffer = new Buffer(this.position, this.format); } + format: { + shouldPrintComment: boolean; + retainLines: boolean; + comments: boolean; + compact: boolean | "auto"; + quotes: "single" | "double"; + concise: boolean; + indent: { + adjustMultilineComment: boolean; + style: string; + base: number; + } + }; + + whitespace: Whitespace; + position: Position; + map: SourceMap; + buffer: Buffer; + comments: Array; + tokens: Array; + opts: Object; + ast: Object; + /** * Normalize generator options, setting defaults. * @@ -51,6 +76,7 @@ class CodeGenerator { retainLines: opts.retainLines, comments: opts.comments == null || opts.comments, compact: opts.compact, + concise: opts.concise, quotes: CodeGenerator.findCommonStringDelimiter(code, tokens), indent: { adjustMultilineComment: true, @@ -106,24 +132,6 @@ class CodeGenerator { } } - /** - * All node generators. - */ - - static generators = { - templateLiterals: require("./generators/template-literals"), - comprehensions: require("./generators/comprehensions"), - expressions: require("./generators/expressions"), - statements: require("./generators/statements"), - classes: require("./generators/classes"), - methods: require("./generators/methods"), - modules: require("./generators/modules"), - types: require("./generators/types"), - flow: require("./generators/flow"), - base: require("./generators/base"), - jsx: require("./generators/jsx") - }; - /** * Generate code and sourcemap from ast. * @@ -131,17 +139,7 @@ class CodeGenerator { */ generate() { - let ast = this.ast; - - this.print(ast); - - if (ast.comments) { - let comments = []; - for (let comment of (ast.comments: Array)) { - if (!comment._displayed) comments.push(comment); - } - this._printComments(comments); - } + this.print(this.ast); return { map: this.map.get(), @@ -238,10 +236,11 @@ class CodeGenerator { this.printTrailingComments(node, parent); } - printJoin(print, nodes, opts = {}) { + printJoin(print, nodes: ?Array, opts = {}) { if (!nodes || !nodes.length) return; let len = nodes.length; + let node, i; if (opts.indent) this.indent(); @@ -259,8 +258,8 @@ class CodeGenerator { } }; - for (let i = 0; i < nodes.length; i++) { - let node = nodes[i]; + for (i = 0; i < nodes.length; i++) { + node = nodes[i]; print.plain(node, printOpts); } @@ -307,13 +306,13 @@ class CodeGenerator { } let comments = []; - let nodes = [node]; + let nodes: Array = [node]; if (t.isExpressionStatement(node)) { nodes.push(node.argument); } - for (let node of (nodes: Array)) { + for (let node of nodes) { comments = comments.concat(this._getComments(key, node)); } @@ -394,13 +393,23 @@ each(Buffer.prototype, function (fn, key) { }; }); -each(CodeGenerator.generators, function (generator) { +each([ + require("./generators/template-literals"), + require("./generators/comprehensions"), + require("./generators/expressions"), + require("./generators/statements"), + require("./generators/classes"), + require("./generators/methods"), + require("./generators/modules"), + require("./generators/types"), + require("./generators/flow"), + require("./generators/base"), + require("./generators/jsx") +], function (generator) { extend(CodeGenerator.prototype, generator); }); -module.exports = function (ast, opts, code) { +export default function (ast: Object, opts: Object, code: string): Object { let gen = new CodeGenerator(ast, opts, code); return gen.generate(); -}; - -module.exports.CodeGenerator = CodeGenerator; +} diff --git a/packages/babel-generator/src/node/index.js b/packages/babel-generator/src/node/index.js index b6fecc1a9f..a477bde0e0 100644 --- a/packages/babel-generator/src/node/index.js +++ b/packages/babel-generator/src/node/index.js @@ -1,20 +1,12 @@ +/* @flow */ + import whitespace from "./whitespace"; import * as parens from "./parentheses"; import each from "lodash/collection/each"; import some from "lodash/collection/some"; import * as t from "babel-types"; -/** - * Test if node matches a set of type-matcher pairs. - * @example - * find({ - * VariableDeclaration(node, parent) { - * return true; - * } - * }, node, parent); - */ - -let find = function (obj, node, parent) { +function find(obj, node, parent) { if (!obj) return; let result; @@ -30,30 +22,21 @@ let find = function (obj, node, parent) { } return result; -}; - -/** - * Whitespace and Parenthesis related methods for nodes. - */ +} export default class Node { - constructor(node, parent) { + constructor(node: Object, parent: Object) { this.parent = parent; this.node = node; } - /** - * Test if `node` can have whitespace set by the user. - */ + parent: Object; + node: Object; static isUserWhitespacable(node) { return t.isUserWhitespacable(node); } - /** - * Test if a `node` requires whitespace. - */ - static needsWhitespace(node, parent, type) { if (!node) return 0; @@ -76,26 +59,14 @@ export default class Node { return (linesInfo && linesInfo[type]) || 0; } - /** - * Test if a `node` requires whitespace before it. - */ - static needsWhitespaceBefore(node, parent) { return Node.needsWhitespace(node, parent, "before"); } - /** - * Test if a `note` requires whitespace after it. - */ - static needsWhitespaceAfter(node, parent) { return Node.needsWhitespace(node, parent, "after"); } - /** - * Test if a `node` needs parentheses around it. - */ - static needsParens(node, parent) { if (!parent) return false; @@ -112,10 +83,6 @@ export default class Node { } } -/** - * Add all static methods from `Node` to `Node.prototype`. - */ - each(Node, function (fn, key) { Node.prototype[key] = function () { // Avoid leaking arguments to prevent deoptimization diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index 11c8eb3502..685ed247a2 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -1,40 +1,50 @@ -import each from "lodash/collection/each"; +/* @flow */ + import * as t from "babel-types"; -const PRECEDENCE = {}; +const PRECEDENCE = { + "||": 0, + "&&": 1, + "|": 2, + "^": 3, + "&": 4, + "==": 5, + "===": 5, + "!=": 5, + "!==": 5, + "<": 6, + ">": 6, + "<=": 6, + ">=": 6, + in: 6, + instanceof: 6, + ">>": 7, + "<<": 7, + ">>>": 7, + "+": 8, + "-": 8, + "*": 9, + "/": 9, + "%": 9, + "**": 10 +}; -each([ - ["||"], - ["&&"], - ["|"], - ["^"], - ["&"], - ["==", "===", "!=", "!=="], - ["<", ">", "<=", ">=", "in", "instanceof"], - [">>", "<<", ">>>"], - ["+", "-"], - ["*", "/", "%"], - ["**"] -], function (tier, i) { - each(tier, function (op) { - PRECEDENCE[op] = i; - }); -}); - -export function NullableTypeAnnotation(node, parent) { +export function NullableTypeAnnotation(node: Object, parent: Object): boolean { return t.isArrayTypeAnnotation(parent); } export { NullableTypeAnnotation as FunctionTypeAnnotation }; -export function UpdateExpression(node, parent) { +export function UpdateExpression(node: Object, parent: Object): boolean { if (t.isMemberExpression(parent) && parent.object === node) { // (foo++).test() return true; } + + return false; } -export function ObjectExpression(node, parent) { +export function ObjectExpression(node: Object, parent: Object): boolean { if (t.isExpressionStatement(parent)) { // ({ foo: "bar" }); return true; @@ -48,7 +58,7 @@ export function ObjectExpression(node, parent) { return false; } -export function Binary(node, parent) { +export function Binary(node: Object, parent: Object): boolean { if ((t.isCallExpression(parent) || t.isNewExpression(parent)) && parent.callee === node) { return true; } @@ -76,9 +86,11 @@ export function Binary(node, parent) { return true; } } + + return false; } -export function BinaryExpression(node, parent) { +export function BinaryExpression(node: Object, parent: Object): boolean { if (node.operator === "in") { // let i = (1 in []); if (t.isVariableDeclarator(parent)) { @@ -90,11 +102,13 @@ export function BinaryExpression(node, parent) { return true; } } + + return false; } -export function SequenceExpression(node, parent) { +export function SequenceExpression(node: Object, parent: Object): boolean { if (t.isForStatement(parent)) { - // Although parentheses wouldn't hurt around sequence + // Although parentheses wouldn"t hurt around sequence // expressions in the head of for loops, traditional style // dictates that e.g. i++, j++ should not be wrapped with // parentheses. @@ -110,7 +124,7 @@ export function SequenceExpression(node, parent) { return true; } -export function YieldExpression(node, parent) { +export function YieldExpression(node: Object, parent: Object): boolean { return t.isBinary(parent) || t.isUnaryLike(parent) || t.isCallExpression(parent) || @@ -120,7 +134,7 @@ export function YieldExpression(node, parent) { t.isYieldExpression(parent); } -export function ClassExpression(node, parent) { +export function ClassExpression(node: Object, parent: Object): boolean { // (class {}); if (t.isExpressionStatement(parent)) { return true; @@ -130,13 +144,15 @@ export function ClassExpression(node, parent) { if (t.isExportDeclaration(parent)) { return true; } + + return false; } -export function UnaryLike(node, parent) { +export function UnaryLike(node: Object, parent: Object): boolean { return t.isMemberExpression(parent) && parent.object === node; } -export function FunctionExpression(node, parent) { +export function FunctionExpression(node: Object, parent: Object): boolean { // (function () {}); if (t.isExpressionStatement(parent)) { return true; @@ -156,9 +172,11 @@ export function FunctionExpression(node, parent) { if (t.isCallExpression(parent) && parent.callee === node) { return true; } + + return false; } -export function ConditionalExpression(node, parent) { +export function ConditionalExpression(node: Object, parent: Object): boolean { if (t.isUnaryLike(parent)) { return true; } @@ -184,7 +202,7 @@ export function ConditionalExpression(node, parent) { return false; } -export function AssignmentExpression(node) { +export function AssignmentExpression(node: Object): boolean { if (t.isObjectPattern(node.left)) { return true; } else { diff --git a/packages/babel-generator/src/node/printer.js b/packages/babel-generator/src/node/printer.js index 5ee0f4a9a7..f672d167df 100644 --- a/packages/babel-generator/src/node/printer.js +++ b/packages/babel-generator/src/node/printer.js @@ -1,3 +1,5 @@ +/* @flow */ + /** * Printer for nodes, needs a `generator` and a `parent`. */ diff --git a/packages/babel-generator/src/node/whitespace.js b/packages/babel-generator/src/node/whitespace.js index 2623e1a273..b9ac11f2e8 100644 --- a/packages/babel-generator/src/node/whitespace.js +++ b/packages/babel-generator/src/node/whitespace.js @@ -1,3 +1,5 @@ +/* @flow */ + import isBoolean from "lodash/lang/isBoolean"; import each from "lodash/collection/each"; import map from "lodash/collection/map"; diff --git a/packages/babel-generator/src/position.js b/packages/babel-generator/src/position.js index a6787fd3b2..5810a90d6b 100644 --- a/packages/babel-generator/src/position.js +++ b/packages/babel-generator/src/position.js @@ -1,3 +1,5 @@ +/* @flow */ + /** * Track current position in code generation. */ diff --git a/packages/babel-generator/src/source-map.js b/packages/babel-generator/src/source-map.js index f1b3ee3727..75254843c9 100644 --- a/packages/babel-generator/src/source-map.js +++ b/packages/babel-generator/src/source-map.js @@ -1,3 +1,5 @@ +/* @flow */ + import sourceMap from "source-map"; import * as t from "babel-types"; diff --git a/packages/babel-generator/src/whitespace.js b/packages/babel-generator/src/whitespace.js index 05816b1b73..de8873d043 100644 --- a/packages/babel-generator/src/whitespace.js +++ b/packages/babel-generator/src/whitespace.js @@ -1,3 +1,5 @@ +/* @flow */ + /** * Returns `i`th number from `base`, continuing from 0 when `max` is reached. * Useful for shifting `for` loop by a fixed number but going over all items. From 464d2b7ef32f59b9e81cd7413ec93b237fa79a2a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 24 Sep 2015 18:42:50 +0100 Subject: [PATCH 125/174] enable no-var rule in eslint config --- package.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 3d49f6de63..b22a6c6448 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,12 @@ "parser": "babel-eslint", "extends": "eslint:recommended", "rules": { - "quotes": [2, "double", "avoid-escape"], + "quotes": [ + 2, + "double", + "avoid-escape" + ], + "no-var": 2, "strict": 0, "no-underscore-dangle": 0, "curly": 0, From d1588990d5ee1bf75d528e2314b33b6a4c1eb574 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 24 Sep 2015 18:43:10 +0100 Subject: [PATCH 126/174] add flow-comments plugin to babelrc and format json --- package.json | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index b22a6c6448..08e36a316c 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "devDependencies": { "babel": "5.8.21", "babel-eslint": "^4.0.6", + "babel-plugin-flow-comments": "^1.0.9", "browserify": "^11.0.0", "chai": "^2.2.0", "chalk": "^1.1.0", @@ -24,11 +25,25 @@ "uglify-js": "^2.4.16" }, "babel": { - "ignore": ["packages/babel-cli/src/babel-plugin/templates"], + "ignore": [ + "packages/babel-cli/src/babel-plugin/templates" + ], "stage": 0, - "loose": ["all"], - "blacklist": ["es6.tailCall"], - "optional": ["optimisation.flow.forOf", "bluebirdCoroutines", "runtime"], + "loose": [ + "all" + ], + "plugins": [ + "flow-comments" + ], + "blacklist": [ + "flow", + "es6.tailCall" + ], + "optional": [ + "optimisation.flow.forOf", + "bluebirdCoroutines", + "runtime" + ], "env": { "test": { "auxiliaryCommentBefore": "istanbul ignore next" From 6740561f911e82d0b023f8f9f8e90ef9b7d3c11d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:27:17 +0100 Subject: [PATCH 127/174] remove comments from old node after inheriting from new one when replacing nodes - closes #2490, closes #2489 --- packages/babel-traverse/src/path/replacement.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/babel-traverse/src/path/replacement.js b/packages/babel-traverse/src/path/replacement.js index 1094e447a3..eb0ef5c61b 100644 --- a/packages/babel-traverse/src/path/replacement.js +++ b/packages/babel-traverse/src/path/replacement.js @@ -137,8 +137,11 @@ export function replaceWith(replacement, whateverAllowed) { return this.replaceExpressionWithStatements([replacement]); } - var oldNode = this.node; - if (oldNode) t.inheritsComments(replacement, oldNode); + let oldNode = this.node; + if (oldNode) { + t.inheritsComments(replacement, oldNode); + t.removeComments(oldNode); + } // replace the node this._replaceWith(replacement); From 63cfb82ca7b6366a3e9da7fd84383805a4c19bc5 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:34:40 +0100 Subject: [PATCH 128/174] clean up mergeSourceMap method - closes #2479 --- packages/babel-core/src/transformation/file/index.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index e6c69ca1cd..731f62c5a8 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -417,13 +417,9 @@ export default class File extends Store { } mergeSourceMap(map: Object) { - let opts = this.opts; - - let inputMap = opts.inputSourceMap; + let inputMap = this.opts.inputSourceMap; if (inputMap) { - map.sources[0] = inputMap.file; - let inputMapConsumer = new sourceMap.SourceMapConsumer(inputMap); let outputMapConsumer = new sourceMap.SourceMapConsumer(map); let outputMapGenerator = sourceMap.SourceMapGenerator.fromSourceMap(outputMapConsumer); @@ -433,9 +429,9 @@ export default class File extends Store { mergedMap.sources = inputMap.sources; mergedMap.file = inputMap.file; return mergedMap; + } else { + return map; } - - return map; } getModuleFormatter(type: string) { From f88cc9d509c3d8b3b42f2f4729e2f4df08b9bbc4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:37:37 +0100 Subject: [PATCH 129/174] clean up babel-generator - closes #2210 --- packages/babel-generator/package.json | 4 + packages/babel-generator/src/buffer.js | 13 + .../babel-generator/src/generators/base.js | 28 +- .../babel-generator/src/generators/classes.js | 40 ++- .../src/generators/comprehensions.js | 31 -- .../src/generators/expressions.js | 88 +++--- .../babel-generator/src/generators/flow.js | 139 ++++----- .../babel-generator/src/generators/jsx.js | 46 ++- .../babel-generator/src/generators/methods.js | 37 ++- .../babel-generator/src/generators/modules.js | 61 ++-- .../src/generators/statements.js | 95 +++--- .../src/generators/template-literals.js | 19 +- .../babel-generator/src/generators/types.js | 37 ++- packages/babel-generator/src/index.js | 295 +----------------- packages/babel-generator/src/node/printer.js | 78 ----- packages/babel-generator/src/printer.js | 280 +++++++++++++++++ .../auto-indentation/hard-tab/actual.js | 6 + .../auto-indentation/hard-tab/expected.js | 6 + .../auto-indentation/soft-tab-2/actual.js | 6 + .../auto-indentation/soft-tab-2/expected.js | 6 + .../auto-indentation/soft-tab-4/actual.js | 6 + .../auto-indentation/soft-tab-4/expected.js | 6 + .../fixtures/auto-string/double/actual.js | 4 + .../fixtures/auto-string/double/expected.js | 4 + .../fixtures/auto-string/single/actual.js | 4 + .../fixtures/auto-string/single/expected.js | 4 + .../actual.js | 10 + .../expected.js | 8 + .../comments/2-space-multi-comment/actual.js | 6 + .../2-space-multi-comment/expected.js | 6 + .../actual.js | 4 + .../expected.js | 4 + .../options.json | 3 + .../comments/block-line-comment/actual.js | 4 + .../comments/block-line-comment/expected.js | 4 + .../comment-only-with-space/actual.js | 7 + .../comment-only-with-space/expected.js | 7 + .../fixtures/comments/comment-only/actual.js | 4 + .../comments/comment-only/expected.js | 4 + .../actual.js | 5 + .../expected.js | 5 + .../options.json | 3 + .../computed-property-comments-2/actual.js | 10 + .../computed-property-comments-2/expected.js | 11 + .../computed-property-comments/actual.js | 28 ++ .../computed-property-comments/expected.js | 27 ++ .../comments/do-while-line-comment/actual.js | 3 + .../do-while-line-comment/expected.js | 2 + .../comments/empty-line-comment/actual.js | 4 + .../comments/empty-line-comment/expected.js | 4 + .../test/fixtures/comments/empty/actual.js | 1 + .../test/fixtures/comments/empty/expected.js | 1 + .../function-block-line-comment/actual.js | 6 + .../function-block-line-comment/expected.js | 6 + .../comments/if-block-line-comment/actual.js | 5 + .../if-block-line-comment/expected.js | 5 + .../comments/if-empty-line-comment/actual.js | 3 + .../if-empty-line-comment/expected.js | 3 + .../comments/if-line-comment/actual.js | 5 + .../comments/if-line-comment/expected.js | 7 + .../comments/object_comments/actual.js | 12 + .../comments/object_comments/expected.js | 12 + .../comments/return-no-argument/actual.js | 3 + .../comments/return-no-argument/expected.js | 3 + .../simple-a-lot-of-line-comment/actual.js | 49 +++ .../simple-a-lot-of-line-comment/expected.js | 45 +++ .../simple-a-lot-of-multi-comment/actual.js | 51 +++ .../simple-a-lot-of-multi-comment/expected.js | 49 +++ .../comments/simple-line-comment/actual.js | 3 + .../comments/simple-line-comment/expected.js | 3 + .../comments/simple-multi-comment/actual.js | 22 ++ .../comments/simple-multi-comment/expected.js | 22 ++ .../simple-statement-comment/actual.js | 1 + .../simple-statement-comment/expected.js | 1 + .../comments/try-block-line-comment/actual.js | 12 + .../try-block-line-comment/expected.js | 10 + .../actual.js | 9 + .../expected.js | 10 + .../actual.js | 13 + .../expected.js | 14 + .../actual.js | 16 + .../expected.js | 18 ++ .../test/fixtures/compact/options.json | 3 + .../compact/single-line-comment/actual.js | 2 + .../compact/single-line-comment/expected.js | 2 + .../edgecase/bitwise-precedence/actual.js | 3 + .../edgecase/bitwise-precedence/expected.js | 3 + .../edgecase/floating-point/actual.js | 2 + .../edgecase/floating-point/expected.js | 2 + .../fixtures/edgecase/for-in-no-in/actual.js | 12 + .../edgecase/for-in-no-in/expected.js | 12 + .../edgecase/new-precedence/actual.js | 9 + .../edgecase/new-precedence/expected.js | 9 + .../actual.js | 3 + .../expected.js | 3 + .../actual.js | 6 + .../expected.js | 4 + .../options.json | 5 + .../return-with-retainlines-option/actual.js | 11 + .../expected.js | 10 + .../options.json | 3 + .../test/fixtures/edgecase/unary-op/actual.js | 5 + .../fixtures/edgecase/unary-op/expected.js | 5 + .../edgecase/variable-declaration/actual.js | 4 + .../edgecase/variable-declaration/expected.js | 4 + .../test/fixtures/flow/array-types/actual.js | 6 + .../fixtures/flow/array-types/expected.js | 6 + .../flow/boolean-literal-types/actual.js | 2 + .../flow/boolean-literal-types/expected.js | 2 + .../fixtures/flow/call-properties/actual.js | 5 + .../fixtures/flow/call-properties/expected.js | 5 + .../fixtures/flow/declare-module/actual.js | 5 + .../fixtures/flow/declare-module/expected.js | 11 + .../flow/declare-statements/actual.js | 11 + .../flow/declare-statements/expected.js | 11 + .../interfaces-module-and-script/actual.js | 9 + .../interfaces-module-and-script/expected.js | 9 + .../flow/number-literal-types/actual.js | 5 + .../flow/number-literal-types/expected.js | 5 + .../flow/qualified-generic-type/actual.js | 4 + .../flow/qualified-generic-type/expected.js | 4 + .../flow/string-literal-types/actual.js | 2 + .../flow/string-literal-types/expected.js | 2 + .../test/fixtures/flow/tuples/actual.js | 4 + .../test/fixtures/flow/tuples/expected.js | 4 + .../test/fixtures/flow/type-alias/actual.js | 3 + .../test/fixtures/flow/type-alias/expected.js | 3 + .../fixtures/flow/type-annotations/actual.js | 100 ++++++ .../flow/type-annotations/expected.js | 104 ++++++ .../test/fixtures/flow/typecasts/actual.js | 4 + .../test/fixtures/flow/typecasts/expected.js | 4 + .../harmony-edgecase/arrow-function/actual.js | 11 + .../arrow-function/expected.js | 10 + .../class-declaration/actual.js | 56 ++++ .../class-declaration/expected.js | 38 +++ .../class-expression/actual.js | 55 ++++ .../class-expression/expected.js | 39 +++ .../computed-property/actual.js | 14 + .../computed-property/expected.js | 14 + .../default-parameter/actual.js | 11 + .../default-parameter/expected.js | 8 + .../destructuring-assignment/actual.js | 18 ++ .../destructuring-assignment/expected.js | 15 + .../export-default-declaration/actual.js | 1 + .../export-default-declaration/expected.js | 1 + .../harmony-edgecase/exports/actual.js | 9 + .../harmony-edgecase/exports/expected.js | 9 + .../for-of-statement/actual.js | 7 + .../for-of-statement/expected.js | 5 + .../import-with-default/actual.js | 7 + .../import-with-default/expected.js | 3 + .../harmony-edgecase/imports/actual.js | 8 + .../harmony-edgecase/imports/expected.js | 4 + .../harmony-edgecase/spread-element/actual.js | 5 + .../spread-element/expected.js | 4 + .../templates-escape/actual.js | 12 + .../templates-escape/expected.js | 12 + .../harmony-edgecase/templates/actual.js | 31 ++ .../harmony-edgecase/templates/expected.js | 31 ++ .../yield-precedence/actual.js | 7 + .../yield-precedence/expected.js | 8 + .../arrow-function-object-body/actual.js | 4 + .../arrow-function-object-body/expected.js | 4 + .../parentheses/terminator-break/actual.js | 12 + .../parentheses/terminator-break/expected.js | 12 + .../ArrayExpression-ArrayPattern/actual.js | 5 + .../ArrayExpression-ArrayPattern/expected.js | 5 + .../types/ArrowFunctionExpression/actual.js | 4 + .../types/ArrowFunctionExpression/expected.js | 4 + .../actual.js | 3 + .../expected.js | 3 + .../fixtures/types/AwaitExpression/actual.js | 7 + .../types/AwaitExpression/expected.js | 7 + .../fixtures/types/BindExpression/actual.js | 5 + .../fixtures/types/BindExpression/expected.js | 5 + .../fixtures/types/BlockStatement/actual.js | 5 + .../fixtures/types/BlockStatement/expected.js | 5 + .../fixtures/types/BreakStatement/actual.js | 7 + .../fixtures/types/BreakStatement/expected.js | 7 + .../fixtures/types/CallExpression/actual.js | 5 + .../fixtures/types/CallExpression/expected.js | 5 + .../ClassBody-MethodDefinition/actual.js | 13 + .../ClassBody-MethodDefinition/expected.js | 13 + .../fixtures/types/ClassDeclaration/actual.js | 2 + .../types/ClassDeclaration/expected.js | 2 + .../fixtures/types/ClassExpression/actual.js | 2 + .../types/ClassExpression/expected.js | 2 + .../types/ConditionalExpression/actual.js | 1 + .../types/ConditionalExpression/expected.js | 1 + .../types/ContinueStatement/actual.js | 7 + .../types/ContinueStatement/expected.js | 7 + .../types/DebuggerStatement/actual.js | 1 + .../types/DebuggerStatement/expected.js | 1 + .../test/fixtures/types/Decorator/actual.js | 31 ++ .../test/fixtures/types/Decorator/expected.js | 31 ++ .../fixtures/types/DoWhileStatement/actual.js | 5 + .../types/DoWhileStatement/expected.js | 5 + .../fixtures/types/EmptyStatement/actual.js | 1 + .../fixtures/types/EmptyStatement/expected.js | 1 + .../actual.js | 31 ++ .../expected.js | 31 ++ .../fixtures/types/ForInStatement/actual.js | 5 + .../fixtures/types/ForInStatement/expected.js | 5 + .../fixtures/types/ForOfStatement/actual.js | 5 + .../fixtures/types/ForOfStatement/expected.js | 5 + .../fixtures/types/ForStatement/actual.js | 3 + .../fixtures/types/ForStatement/expected.js | 3 + .../actual.js | 23 ++ .../expected.js | 23 ++ .../test/fixtures/types/Identifier/actual.js | 2 + .../fixtures/types/Identifier/expected.js | 2 + .../test/fixtures/types/IfStatement/actual.js | 25 ++ .../fixtures/types/IfStatement/expected.js | 25 ++ .../actual.js | 9 + .../expected.js | 9 + .../fixtures/types/LabeledStatement/actual.js | 1 + .../types/LabeledStatement/expected.js | 1 + .../test/fixtures/types/Literal/actual.js | 12 + .../test/fixtures/types/Literal/expected.js | 12 + .../fixtures/types/MemberExpression/actual.js | 11 + .../types/MemberExpression/expected.js | 11 + .../fixtures/types/NewExpression/actual.js | 3 + .../fixtures/types/NewExpression/expected.js | 3 + .../actual.js | 20 ++ .../expected.js | 20 ++ .../fixtures/types/ReturnStatement/actual.js | 7 + .../types/ReturnStatement/expected.js | 7 + .../types/SequenceExpression/actual.js | 4 + .../types/SequenceExpression/expected.js | 3 + .../SpreadElement-SpreadProperty/actual.js | 3 + .../SpreadElement-SpreadProperty/expected.js | 3 + .../SwitchStatement-SwitchCase/actual.js | 39 +++ .../SwitchStatement-SwitchCase/expected.js | 42 +++ .../actual.js | 12 + .../expected.js | 12 + .../fixtures/types/ThisExpression/actual.js | 5 + .../fixtures/types/ThisExpression/expected.js | 5 + .../fixtures/types/ThrowStatement/actual.js | 3 + .../fixtures/types/ThrowStatement/expected.js | 3 + .../types/TryStatement-CatchClause/actual.js | 25 ++ .../TryStatement-CatchClause/expected.js | 25 ++ .../fixtures/types/UnaryExpression/actual.js | 5 + .../types/UnaryExpression/expected.js | 5 + .../fixtures/types/UpdateExpression/actual.js | 3 + .../types/UpdateExpression/expected.js | 3 + .../actual.js | 13 + .../expected.js | 18 ++ .../fixtures/types/WhileStatement/actual.js | 5 + .../fixtures/types/WhileStatement/expected.js | 5 + .../fixtures/types/WithStatement/actual.js | 5 + .../fixtures/types/WithStatement/expected.js | 5 + .../fixtures/types/XJSAttribute/actual.js | 7 + .../fixtures/types/XJSAttribute/expected.js | 7 + .../actual.js | 5 + .../expected.js | 5 + .../types/XJSEmptyExpression/actual.js | 1 + .../types/XJSEmptyExpression/expected.js | 1 + .../types/XJSExpressionContainer/actual.js | 1 + .../types/XJSExpressionContainer/expected.js | 1 + .../types/XJSMemberExpression/actual.js | 1 + .../types/XJSMemberExpression/expected.js | 1 + .../types/XJSNamespacedName/actual.js | 1 + .../types/XJSNamespacedName/expected.js | 1 + .../types/XJSSpreadAttribute/actual.js | 1 + .../types/XJSSpreadAttribute/expected.js | 1 + .../fixtures/types/YieldExpression/actual.js | 7 + .../types/YieldExpression/expected.js | 7 + packages/babel-generator/test/index.js | 49 +++ 268 files changed, 3061 insertions(+), 682 deletions(-) delete mode 100644 packages/babel-generator/src/generators/comprehensions.js delete mode 100644 packages/babel-generator/src/node/printer.js create mode 100644 packages/babel-generator/src/printer.js create mode 100644 packages/babel-generator/test/fixtures/auto-indentation/hard-tab/actual.js create mode 100644 packages/babel-generator/test/fixtures/auto-indentation/hard-tab/expected.js create mode 100644 packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/actual.js create mode 100644 packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/expected.js create mode 100644 packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/actual.js create mode 100644 packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/expected.js create mode 100644 packages/babel-generator/test/fixtures/auto-string/double/actual.js create mode 100644 packages/babel-generator/test/fixtures/auto-string/double/expected.js create mode 100644 packages/babel-generator/test/fixtures/auto-string/single/actual.js create mode 100644 packages/babel-generator/test/fixtures/auto-string/single/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/2-space-multi-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/2-space-multi-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/options.json create mode 100644 packages/babel-generator/test/fixtures/comments/block-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/block-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-only-with-space/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-only-with-space/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-only/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-only/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/options.json create mode 100644 packages/babel-generator/test/fixtures/comments/computed-property-comments-2/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/computed-property-comments-2/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/computed-property-comments/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/computed-property-comments/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/do-while-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/do-while-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/empty-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/empty-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/empty/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/empty/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/function-block-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/if-block-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/if-block-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/if-empty-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/if-empty-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/if-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/if-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/object_comments/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/object_comments/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/return-no-argument/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/return-no-argument/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-multi-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-multi-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-statement-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/simple-statement-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/try-block-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/try-block-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/compact/options.json create mode 100644 packages/babel-generator/test/fixtures/compact/single-line-comment/actual.js create mode 100644 packages/babel-generator/test/fixtures/compact/single-line-comment/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/floating-point/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/floating-point/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/new-precedence/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/new-precedence/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/options.json create mode 100644 packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/options.json create mode 100644 packages/babel-generator/test/fixtures/edgecase/unary-op/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/unary-op/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/variable-declaration/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/variable-declaration/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/array-types/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/array-types/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/boolean-literal-types/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/boolean-literal-types/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/call-properties/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/call-properties/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/declare-module/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/declare-module/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/declare-statements/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/declare-statements/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/number-literal-types/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/number-literal-types/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/qualified-generic-type/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/qualified-generic-type/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/string-literal-types/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/string-literal-types/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/tuples/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/tuples/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/type-alias/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/type-alias/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/type-annotations/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/type-annotations/expected.js create mode 100644 packages/babel-generator/test/fixtures/flow/typecasts/actual.js create mode 100644 packages/babel-generator/test/fixtures/flow/typecasts/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/exports/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/exports/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/imports/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/imports/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/templates/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/templates/expected.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/actual.js create mode 100644 packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/expected.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/actual.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/expected.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/terminator-break/actual.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/BindExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/BindExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/BlockStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/BlockStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/BreakStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/BreakStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/CallExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/CallExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ClassDeclaration/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ClassDeclaration/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ClassExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ClassExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ConditionalExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ConditionalExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ContinueStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ContinueStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/DebuggerStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/DebuggerStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/Decorator/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/Decorator/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/DoWhileStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/DoWhileStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/EmptyStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/EmptyStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ForInStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ForInStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ForOfStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ForOfStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ForStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ForStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/Identifier/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/Identifier/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/IfStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/IfStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/LabeledStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/LabeledStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/Literal/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/Literal/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/MemberExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/MemberExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/NewExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/NewExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/SequenceExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/SequenceExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ThisExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ThisExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/ThrowStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/ThrowStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/UnaryExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/UnaryExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/UpdateExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/UpdateExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/WhileStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/WhileStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/WithStatement/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/WithStatement/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSAttribute/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSAttribute/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSEmptyExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSEmptyExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSExpressionContainer/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSExpressionContainer/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSMemberExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSMemberExpression/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSNamespacedName/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSNamespacedName/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/expected.js create mode 100644 packages/babel-generator/test/fixtures/types/YieldExpression/actual.js create mode 100644 packages/babel-generator/test/fixtures/types/YieldExpression/expected.js create mode 100644 packages/babel-generator/test/index.js diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json index b74448c7f2..fdafee3b9d 100644 --- a/packages/babel-generator/package.json +++ b/packages/babel-generator/package.json @@ -9,6 +9,7 @@ "main": "lib/index.js", "dependencies": { "babel-messages": "^5.8.22", + "babel-runtime": "^5.8.20", "babel-types": "^5.8.22", "detect-indent": "^3.0.1", "is-integer": "^1.0.4", @@ -16,5 +17,8 @@ "repeating": "^1.1.3", "source-map": "^0.4.4", "trim-right": "^1.0.1" + }, + "devDependencies": { + "babel-helper-fixtures": "^1.0.0" } } diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index abd69f8006..7d521f9ef1 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -23,6 +23,19 @@ export default class Buffer { _indent: number; format: Object; + /** + * Description + */ + + catchUp(node) { + // catch up to this nodes newline if we're behind + if (node.loc && this.format.retainLines && this.buf) { + while (this.position.line < node.loc.start.line) { + this._push("\n"); + } + } + } + /** * Get the current trimmed buffer. */ diff --git a/packages/babel-generator/src/generators/base.js b/packages/babel-generator/src/generators/base.js index 67fe2f580e..f1ee541a26 100644 --- a/packages/babel-generator/src/generators/base.js +++ b/packages/babel-generator/src/generators/base.js @@ -1,26 +1,36 @@ /* @flow */ -import type NodePrinter from "../node/printer"; - -export function File(node: Object, print: NodePrinter) { - print.plain(node.program); +export function File(node: Object) { + this.print(node.program, node); } -export function Program(node: Object, print: NodePrinter) { - print.sequence(node.body); +export function Program(node: Object) { + this.printInnerComments(node, false); + this.printSequence(node.directives, node); + this.printSequence(node.body, node); } -export function BlockStatement(node: Object, print: NodePrinter) { +export function BlockStatement(node: Object) { this.push("{"); + this.printInnerComments(node); if (node.body.length) { this.newline(); - print.sequence(node.body, { indent: true }); + this.printSequence(node.directives, node, { indent: true }); + this.printSequence(node.body, node, { indent: true }); if (!this.format.retainLines) this.removeLast("\n"); this.rightBrace(); } else { - print.printInnerComments(); this.push("}"); } } export function Noop() {} + +export function Directive(node: Object) { + this.print(node.value, node); + this.semicolon(); +} + +export function DirectiveLiteral(node: Object) { + this.push(this._stringLiteral(node.value)); +} diff --git a/packages/babel-generator/src/generators/classes.js b/packages/babel-generator/src/generators/classes.js index 6222fa7924..f692bc10a4 100644 --- a/packages/babel-generator/src/generators/classes.js +++ b/packages/babel-generator/src/generators/classes.js @@ -1,72 +1,70 @@ /* @flow */ -import type NodePrinter from "../node/printer"; - -export function ClassDeclaration(node: Object, print: NodePrinter) { - print.list(node.decorators, { separator: "" }); +export function ClassDeclaration(node: Object) { + this.printJoin(node.decorators, node, { separator: "" }); this.push("class"); if (node.id) { this.push(" "); - print.plain(node.id); + this.print(node.id, node); } - print.plain(node.typeParameters); + this.print(node.typeParameters, node); if (node.superClass) { this.push(" extends "); - print.plain(node.superClass); - print.plain(node.superTypeParameters); + this.print(node.superClass, node); + this.print(node.superTypeParameters, node); } if (node.implements) { this.push(" implements "); - print.join(node.implements, { separator: ", " }); + this.printJoin(node.implements, node, { separator: ", " }); } this.space(); - print.plain(node.body); + this.print(node.body, node); } export { ClassDeclaration as ClassExpression }; -export function ClassBody(node: Object, print: NodePrinter) { +export function ClassBody(node: Object) { this.push("{"); + this.printInnerComments(node); if (node.body.length === 0) { - print.printInnerComments(); this.push("}"); } else { this.newline(); this.indent(); - print.sequence(node.body); + this.printSequence(node.body, node); this.dedent(); this.rightBrace(); } } -export function ClassProperty(node: Object, print: NodePrinter) { - print.list(node.decorators, { separator: "" }); +export function ClassProperty(node: Object) { + this.printJoin(node.decorators, node, { separator: "" }); if (node.static) this.push("static "); - print.plain(node.key); - print.plain(node.typeAnnotation); + this.print(node.key, node); + this.print(node.typeAnnotation, node); if (node.value) { this.space(); this.push("="); this.space(); - print.plain(node.value); + this.print(node.value, node); } this.semicolon(); } -export function MethodDefinition(node: Object, print: NodePrinter) { - print.list(node.decorators, { separator: "" }); +export function MethodDefinition(node: Object) { + this.printJoin(node.decorators, node, { separator: "" }); if (node.static) { this.push("static "); } - this._method(node, print); + this._method(node); } diff --git a/packages/babel-generator/src/generators/comprehensions.js b/packages/babel-generator/src/generators/comprehensions.js deleted file mode 100644 index 4128805dd4..0000000000 --- a/packages/babel-generator/src/generators/comprehensions.js +++ /dev/null @@ -1,31 +0,0 @@ -/* @flow */ - -import type NodePrinter from "../node/printer"; - -export function ComprehensionBlock(node: Object, print: NodePrinter) { - this.keyword("for"); - this.push("("); - print.plain(node.left); - this.push(" of "); - print.plain(node.right); - this.push(")"); -} - -export function ComprehensionExpression(node: Object, print: NodePrinter) { - this.push(node.generator ? "(" : "["); - - print.join(node.blocks, { separator: " " }); - this.space(); - - if (node.filter) { - this.keyword("if"); - this.push("("); - print.plain(node.filter); - this.push(")"); - this.space(); - } - - print.plain(node.body); - - this.push(node.generator ? ")" : "]"); -} diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index 2df40bc43d..ea51bacc65 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -1,13 +1,12 @@ /* @flow */ -import type NodePrinter from "../node/printer"; import isInteger from "is-integer"; import isNumber from "lodash/lang/isNumber"; import * as t from "babel-types"; const SCIENTIFIC_NOTATION = /e/i; -export function UnaryExpression(node: Object, print: NodePrinter) { +export function UnaryExpression(node: Object) { let needsSpace = /[a-z]$/.test(node.operator); let arg = node.argument; @@ -21,53 +20,53 @@ export function UnaryExpression(node: Object, print: NodePrinter) { this.push(node.operator); if (needsSpace) this.push(" "); - print.plain(node.argument); + this.print(node.argument, node); } -export function DoExpression(node: Object, print: NodePrinter) { +export function DoExpression(node: Object) { this.push("do"); this.space(); - print.plain(node.body); + this.print(node.body, node); } -export function ParenthesizedExpression(node: Object, print: NodePrinter) { +export function ParenthesizedExpression(node: Object) { this.push("("); - print.plain(node.expression); + this.print(node.expression, node); this.push(")"); } -export function UpdateExpression(node: Object, print: NodePrinter) { +export function UpdateExpression(node: Object) { if (node.prefix) { this.push(node.operator); - print.plain(node.argument); + this.print(node.argument, node); } else { - print.plain(node.argument); + this.print(node.argument, node); this.push(node.operator); } } -export function ConditionalExpression(node: Object, print: NodePrinter) { - print.plain(node.test); +export function ConditionalExpression(node: Object) { + this.print(node.test, node); this.space(); this.push("?"); this.space(); - print.plain(node.consequent); + this.print(node.consequent, node); this.space(); this.push(":"); this.space(); - print.plain(node.alternate); + this.print(node.alternate, node); } -export function NewExpression(node: Object, print: NodePrinter) { +export function NewExpression(node: Object) { this.push("new "); - print.plain(node.callee); + this.print(node.callee, node); this.push("("); - print.list(node.arguments); + this.printList(node.arguments, node); this.push(")"); } -export function SequenceExpression(node: Object, print: NodePrinter) { - print.list(node.expressions); +export function SequenceExpression(node: Object) { + this.printList(node.expressions, node); } export function ThisExpression() { @@ -78,14 +77,14 @@ export function Super() { this.push("super"); } -export function Decorator(node: Object, print: NodePrinter) { +export function Decorator(node: Object) { this.push("@"); - print.plain(node.expression); + this.print(node.expression, node); this.newline(); } -export function CallExpression(node: Object, print: NodePrinter) { - print.plain(node.callee); +export function CallExpression(node: Object) { + this.print(node.callee, node); this.push("("); @@ -98,7 +97,7 @@ export function CallExpression(node: Object, print: NodePrinter) { this.indent(); } - print.list(node.arguments, { separator }); + this.printList(node.arguments, node, { separator }); if (isPrettyCall) { this.newline(); @@ -109,7 +108,7 @@ export function CallExpression(node: Object, print: NodePrinter) { } function buildYieldAwait(keyword) { - return function (node: Object, print: NodePrinter) { + return function (node: Object) { this.push(keyword); if (node.delegate || node.all) { @@ -119,7 +118,7 @@ function buildYieldAwait(keyword) { if (node.argument) { this.push(" "); let terminatorState = this.startTerminatorless(); - print.plain(node.argument); + this.print(node.argument, node); this.endTerminatorless(terminatorState); } }; @@ -132,19 +131,19 @@ export function EmptyStatement() { this.semicolon(); } -export function ExpressionStatement(node: Object, print: NodePrinter) { - print.plain(node.expression); +export function ExpressionStatement(node: Object) { + this.print(node.expression, node); this.semicolon(); } -export function AssignmentPattern(node: Object, print: NodePrinter) { - print.plain(node.left); +export function AssignmentPattern(node: Object) { + this.print(node.left, node); this.push(" = "); - print.plain(node.right); + this.print(node.right, node); } -export function AssignmentExpression(node: Object, print: NodePrinter) { - print.plain(node.left); +export function AssignmentExpression(node: Object) { + this.print(node.left, node); let spaces = !this.format.compact || node.operator === "in" || node.operator === "instanceof"; spaces = true; // todo: https://github.com/babel/babel/issues/1835 @@ -162,13 +161,13 @@ export function AssignmentExpression(node: Object, print: NodePrinter) { if (spaces) this.push(" "); - print.plain(node.right); + this.print(node.right, node); } -export function BindExpression(node: Object, print: NodePrinter) { - print.plain(node.object); +export function BindExpression(node: Object) { + this.print(node.object, node); this.push("::"); - print.plain(node.callee); + this.print(node.callee, node); } export { @@ -176,9 +175,8 @@ export { AssignmentExpression as LogicalExpression }; -export function MemberExpression(node: Object, print: NodePrinter) { - let obj = node.object; - print.plain(obj); +export function MemberExpression(node: Object) { + this.print(node.object, node); if (!node.computed && t.isMemberExpression(node.property)) { throw new TypeError("Got a MemberExpression for MemberExpression property"); @@ -191,7 +189,7 @@ export function MemberExpression(node: Object, print: NodePrinter) { if (computed) { this.push("["); - print.plain(node.property); + this.print(node.property, node); this.push("]"); } else { if (t.isLiteral(node.object)) { @@ -202,12 +200,12 @@ export function MemberExpression(node: Object, print: NodePrinter) { } this.push("."); - print.plain(node.property); + this.print(node.property, node); } } -export function MetaProperty(node: Object, print: NodePrinter) { - print.plain(node.meta); +export function MetaProperty(node: Object) { + this.print(node.meta, node); this.push("."); - print.plain(node.property); + this.print(node.property, node); } diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index 190d6887b7..a487c3a4e0 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -1,14 +1,13 @@ /* @flow */ -import type NodePrinter from "../node/printer"; import * as t from "babel-types"; export function AnyTypeAnnotation() { this.push("any"); } -export function ArrayTypeAnnotation(node: Object, print: NodePrinter) { - print.plain(node.elementType); +export function ArrayTypeAnnotation(node: Object) { + this.print(node.elementType, node); this.push("["); this.push("]"); } @@ -21,36 +20,36 @@ export function BooleanLiteralTypeAnnotation(node: Object) { this.push(node.value ? "true" : "false"); } -export function DeclareClass(node: Object, print: NodePrinter) { +export function DeclareClass(node: Object) { this.push("declare class "); - this._interfaceish(node, print); + this._interfaceish(node); } -export function DeclareFunction(node: Object, print: NodePrinter) { +export function DeclareFunction(node: Object) { this.push("declare function "); - print.plain(node.id); - print.plain(node.id.typeAnnotation.typeAnnotation); + this.print(node.id, node); + this.print(node.id.typeAnnotation.typeAnnotation, node); this.semicolon(); } -export function DeclareModule(node: Object, print: NodePrinter) { +export function DeclareModule(node: Object) { this.push("declare module "); - print.plain(node.id); + this.print(node.id, node); this.space(); - print.plain(node.body); + this.print(node.body, node); } -export function DeclareVariable(node: Object, print: NodePrinter) { - this.push("declare let "); - print.plain(node.id); - print.plain(node.id.typeAnnotation); +export function DeclareVariable(node: Object) { + this.push("declare var "); + this.print(node.id, node); + this.print(node.id.typeAnnotation, node); this.semicolon(); } -export function FunctionTypeAnnotation(node: Object, print: NodePrinter, parent: Object) { - print.plain(node.typeParameters); +export function FunctionTypeAnnotation(node: Object, parent: Object) { + this.print(node.typeParameters, node); this.push("("); - print.list(node.params); + this.printList(node.params, node); if (node.rest) { if (node.params.length) { @@ -58,7 +57,7 @@ export function FunctionTypeAnnotation(node: Object, print: NodePrinter, parent: this.space(); } this.push("..."); - print.plain(node.rest); + this.print(node.rest, node); } this.push(")"); @@ -72,51 +71,51 @@ export function FunctionTypeAnnotation(node: Object, print: NodePrinter, parent: } this.space(); - print.plain(node.returnType); + this.print(node.returnType, node); } -export function FunctionTypeParam(node: Object, print: NodePrinter) { - print.plain(node.name); +export function FunctionTypeParam(node: Object) { + this.print(node.name, node); if (node.optional) this.push("?"); this.push(":"); this.space(); - print.plain(node.typeAnnotation); + this.print(node.typeAnnotation, node); } -export function InterfaceExtends(node: Object, print: NodePrinter) { - print.plain(node.id); - print.plain(node.typeParameters); +export function InterfaceExtends(node: Object) { + this.print(node.id, node); + this.print(node.typeParameters, node); } export { InterfaceExtends as ClassImplements, InterfaceExtends as GenericTypeAnnotation }; -export function _interfaceish(node: Object, print: NodePrinter) { - print.plain(node.id); - print.plain(node.typeParameters); +export function _interfaceish(node: Object) { + this.print(node.id, node); + this.print(node.typeParameters, node); if (node.extends.length) { this.push(" extends "); - print.join(node.extends, { separator: ", " }); + this.printJoin(node.extends, node, { separator: ", " }); } this.space(); - print.plain(node.body); + this.print(node.body, node); } -export function InterfaceDeclaration(node: Object, print: NodePrinter) { +export function InterfaceDeclaration(node: Object) { this.push("interface "); - this._interfaceish(node, print); + this._interfaceish(node); } -export function IntersectionTypeAnnotation(node: Object, print: NodePrinter) { - print.join(node.types, { separator: " & " }); +export function IntersectionTypeAnnotation(node: Object) { + this.printJoin(node.types, node, { separator: " & " }); } export function MixedTypeAnnotation() { this.push("mixed"); } -export function NullableTypeAnnotation(node: Object, print: NodePrinter) { +export function NullableTypeAnnotation(node: Object) { this.push("?"); - print.plain(node.typeAnnotation); + this.print(node.typeAnnotation, node); } export { NumberLiteral as NumberLiteralTypeAnnotation } from "./types"; @@ -133,41 +132,41 @@ export function StringTypeAnnotation() { this.push("string"); } -export function TupleTypeAnnotation(node: Object, print: NodePrinter) { +export function TupleTypeAnnotation(node: Object) { this.push("["); - print.join(node.types, { separator: ", " }); + this.printJoin(node.types, node, { separator: ", " }); this.push("]"); } -export function TypeofTypeAnnotation(node: Object, print: NodePrinter) { +export function TypeofTypeAnnotation(node: Object) { this.push("typeof "); - print.plain(node.argument); + this.print(node.argument, node); } -export function TypeAlias(node: Object, print: NodePrinter) { +export function TypeAlias(node: Object) { this.push("type "); - print.plain(node.id); - print.plain(node.typeParameters); + this.print(node.id, node); + this.print(node.typeParameters, node); this.space(); this.push("="); this.space(); - print.plain(node.right); + this.print(node.right, node); this.semicolon(); } -export function TypeAnnotation(node: Object, print: NodePrinter) { +export function TypeAnnotation(node: Object) { this.push(":"); this.space(); if (node.optional) this.push("?"); - print.plain(node.typeAnnotation); + this.print(node.typeAnnotation, node); } -export function TypeParameterInstantiation(node: Object, print: NodePrinter) { +export function TypeParameterInstantiation(node: Object) { this.push("<"); - print.join(node.params, { + this.printJoin(node.params, node, { separator: ", ", - iterator(node: Object) { - print.plain(node.typeAnnotation); + iterator: (node: Object) => { + this.print(node.typeAnnotation, node); } }); this.push(">"); @@ -175,14 +174,14 @@ export function TypeParameterInstantiation(node: Object, print: NodePrinter) { export { TypeParameterInstantiation as TypeParameterDeclaration }; -export function ObjectTypeAnnotation(node: Object, print: NodePrinter) { +export function ObjectTypeAnnotation(node: Object) { this.push("{"); let props = node.properties.concat(node.callProperties, node.indexers); if (props.length) { this.space(); - print.list(props, { + this.printJoin(props, node, { separator: false, indent: true, iterator: () => { @@ -199,49 +198,49 @@ export function ObjectTypeAnnotation(node: Object, print: NodePrinter) { this.push("}"); } -export function ObjectTypeCallProperty(node: Object, print: NodePrinter) { +export function ObjectTypeCallProperty(node: Object) { if (node.static) this.push("static "); - print.plain(node.value); + this.print(node.value, node); } -export function ObjectTypeIndexer(node: Object, print: NodePrinter) { +export function ObjectTypeIndexer(node: Object) { if (node.static) this.push("static "); this.push("["); - print.plain(node.id); + this.print(node.id, node); this.push(":"); this.space(); - print.plain(node.key); + this.print(node.key, node); this.push("]"); this.push(":"); this.space(); - print.plain(node.value); + this.print(node.value, node); } -export function ObjectTypeProperty(node: Object, print: NodePrinter) { +export function ObjectTypeProperty(node: Object) { if (node.static) this.push("static "); - print.plain(node.key); + this.print(node.key, node); if (node.optional) this.push("?"); if (!t.isFunctionTypeAnnotation(node.value)) { this.push(":"); this.space(); } - print.plain(node.value); + this.print(node.value, node); } -export function QualifiedTypeIdentifier(node: Object, print: NodePrinter) { - print.plain(node.qualification); +export function QualifiedTypeIdentifier(node: Object) { + this.print(node.qualification, node); this.push("."); - print.plain(node.id); + this.print(node.id, node); } -export function UnionTypeAnnotation(node: Object, print: NodePrinter) { - print.join(node.types, { separator: " | " }); +export function UnionTypeAnnotation(node: Object) { + this.printJoin(node.types, node, { separator: " | " }); } -export function TypeCastExpression(node: Object, print: NodePrinter) { +export function TypeCastExpression(node: Object) { this.push("("); - print.plain(node.expression); - print.plain(node.typeAnnotation); + this.print(node.expression, node); + this.print(node.typeAnnotation, node); this.push(")"); } diff --git a/packages/babel-generator/src/generators/jsx.js b/packages/babel-generator/src/generators/jsx.js index 54b881ca46..310a26209f 100644 --- a/packages/babel-generator/src/generators/jsx.js +++ b/packages/babel-generator/src/generators/jsx.js @@ -1,12 +1,10 @@ /* @flow */ -import type NodePrinter from "../node/printer"; - -export function JSXAttribute(node: Object, print: NodePrinter) { - print.plain(node.name); +export function JSXAttribute(node: Object) { + this.print(node.name, node); if (node.value) { this.push("="); - print.plain(node.value); + this.print(node.value, node); } } @@ -14,27 +12,27 @@ export function JSXIdentifier(node: Object) { this.push(node.name); } -export function JSXNamespacedName(node: Object, print: NodePrinter) { - print.plain(node.namespace); +export function JSXNamespacedName(node: Object) { + this.print(node.namespace, node); this.push(":"); - print.plain(node.name); + this.print(node.name, node); } -export function JSXMemberExpression(node: Object, print: NodePrinter) { - print.plain(node.object); +export function JSXMemberExpression(node: Object) { + this.print(node.object, node); this.push("."); - print.plain(node.property); + this.print(node.property, node); } -export function JSXSpreadAttribute(node: Object, print: NodePrinter) { +export function JSXSpreadAttribute(node: Object) { this.push("{..."); - print.plain(node.argument); + this.print(node.argument, node); this.push("}"); } -export function JSXExpressionContainer(node: Object, print: NodePrinter) { +export function JSXExpressionContainer(node: Object) { this.push("{"); - print.plain(node.expression); + this.print(node.expression, node); this.push("}"); } @@ -42,33 +40,33 @@ export function JSXText(node: Object) { this.push(node.value, true); } -export function JSXElement(node: Object, print: NodePrinter) { +export function JSXElement(node: Object) { let open = node.openingElement; - print.plain(open); + this.print(open, node); if (open.selfClosing) return; this.indent(); for (let child of (node.children: Array)) { - print.plain(child); + this.print(child, node); } this.dedent(); - print.plain(node.closingElement); + this.print(node.closingElement, node); } -export function JSXOpeningElement(node: Object, print: NodePrinter) { +export function JSXOpeningElement(node: Object) { this.push("<"); - print.plain(node.name); + this.print(node.name, node); if (node.attributes.length > 0) { this.push(" "); - print.join(node.attributes, { separator: " " }); + this.printJoin(node.attributes, node, { separator: " " }); } this.push(node.selfClosing ? " />" : ">"); } -export function JSXClosingElement(node: Object, print: NodePrinter) { +export function JSXClosingElement(node: Object) { this.push(""); } diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index 65c23a6312..a78d7ce927 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -1,25 +1,24 @@ /* @flow */ -import type NodePrinter from "../node/printer"; import * as t from "babel-types"; -export function _params(node: Object, print: NodePrinter) { - print.plain(node.typeParameters); +export function _params(node: Object) { + this.print(node.typeParameters, node); this.push("("); - print.list(node.params, { + this.printList(node.params, node, { iterator: (node) =>{ if (node.optional) this.push("?"); - print.plain(node.typeAnnotation); + this.print(node.typeAnnotation, node); } }); this.push(")"); if (node.returnType) { - print.plain(node.returnType); + this.print(node.returnType, node); } } -export function _method(node: Object, print: NodePrinter) { +export function _method(node: Object) { let value = node.value; let kind = node.kind; let key = node.key; @@ -38,43 +37,43 @@ export function _method(node: Object, print: NodePrinter) { if (node.computed) { this.push("["); - print.plain(key); + this.print(key, node); this.push("]"); } else { - print.plain(key); + this.print(key, node); } - this._params(value, print); + this._params(value); this.space(); - print.plain(value.body); + this.print(value.body, value); } -export function FunctionExpression(node: Object, print: NodePrinter) { +export function FunctionExpression(node: Object) { if (node.async) this.push("async "); this.push("function"); if (node.generator) this.push("*"); if (node.id) { this.push(" "); - print.plain(node.id); + this.print(node.id, node); } else { this.space(); } - this._params(node, print); + this._params(node); this.space(); - print.plain(node.body); + this.print(node.body, node); } export { FunctionExpression as FunctionDeclaration }; -export function ArrowFunctionExpression(node: Object, print: NodePrinter) { +export function ArrowFunctionExpression(node: Object) { if (node.async) this.push("async "); if (node.params.length === 1 && t.isIdentifier(node.params[0])) { - print.plain(node.params[0]); + this.print(node.params[0], node); } else { - this._params(node, print); + this._params(node); } this.push(" => "); @@ -85,7 +84,7 @@ export function ArrowFunctionExpression(node: Object, print: NodePrinter) { this.push("("); } - print.plain(node.body); + this.print(node.body, node); if (bodyNeedsParens) { this.push(")"); diff --git a/packages/babel-generator/src/generators/modules.js b/packages/babel-generator/src/generators/modules.js index 7cd2106d50..860b720c87 100644 --- a/packages/babel-generator/src/generators/modules.js +++ b/packages/babel-generator/src/generators/modules.js @@ -1,62 +1,61 @@ /* @flow */ -import type NodePrinter from "../node/printer"; import * as t from "babel-types"; -export function ImportSpecifier(node: Object, print: NodePrinter) { - print.plain(node.imported); +export function ImportSpecifier(node: Object) { + this.print(node.imported, node); if (node.local && node.local.name !== node.imported.name) { this.push(" as "); - print.plain(node.local); + this.print(node.local, node); } } -export function ImportDefaultSpecifier(node: Object, print: NodePrinter) { - print.plain(node.local); +export function ImportDefaultSpecifier(node: Object) { + this.print(node.local, node); } -export function ExportDefaultSpecifier(node: Object, print: NodePrinter) { - print.plain(node.exported); +export function ExportDefaultSpecifier(node: Object) { + this.print(node.exported, node); } -export function ExportSpecifier(node: Object, print: NodePrinter) { - print.plain(node.local); +export function ExportSpecifier(node: Object) { + this.print(node.local, node); if (node.exported && node.local.name !== node.exported.name) { this.push(" as "); - print.plain(node.exported); + this.print(node.exported, node); } } -export function ExportNamespaceSpecifier(node: Object, print: NodePrinter) { +export function ExportNamespaceSpecifier(node: Object) { this.push("* as "); - print.plain(node.exported); + this.print(node.exported, node); } -export function ExportAllDeclaration(node: Object, print: NodePrinter) { +export function ExportAllDeclaration(node: Object) { this.push("export *"); if (node.exported) { this.push(" as "); - print.plain(node.exported); + this.print(node.exported, node); } this.push(" from "); - print.plain(node.source); + this.print(node.source, node); this.semicolon(); } -export function ExportNamedDeclaration(node: Object, print: NodePrinter) { +export function ExportNamedDeclaration() { this.push("export "); - ExportDeclaration.call(this, node, print); + ExportDeclaration.apply(this, arguments); } -export function ExportDefaultDeclaration(node: Object, print: NodePrinter) { +export function ExportDefaultDeclaration() { this.push("export default "); - ExportDeclaration.call(this, node, print); + ExportDeclaration.apply(this, arguments); } -function ExportDeclaration(node: Object, print: NodePrinter) { +function ExportDeclaration(node: Object) { if (node.declaration) { let declar = node.declaration; - print.plain(declar); + this.print(declar, node); if (t.isStatement(declar) || t.isFunction(declar) || t.isClass(declar)) return; } else { if (node.exportKind === "type") { @@ -69,7 +68,7 @@ function ExportDeclaration(node: Object, print: NodePrinter) { let hasSpecial = false; if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) { hasSpecial = true; - print.plain(specifiers.shift()); + this.print(specifiers.shift(), node); if (specifiers.length) { this.push(", "); } @@ -79,7 +78,7 @@ function ExportDeclaration(node: Object, print: NodePrinter) { this.push("{"); if (specifiers.length) { this.space(); - print.join(specifiers, { separator: ", " }); + this.printJoin(specifiers, node, { separator: ", " }); this.space(); } this.push("}"); @@ -87,14 +86,14 @@ function ExportDeclaration(node: Object, print: NodePrinter) { if (node.source) { this.push(" from "); - print.plain(node.source); + this.print(node.source, node); } } this.ensureSemicolon(); } -export function ImportDeclaration(node: Object, print: NodePrinter) { +export function ImportDeclaration(node: Object) { this.push("import "); if (node.importKind === "type" || node.importKind === "typeof") { @@ -105,7 +104,7 @@ export function ImportDeclaration(node: Object, print: NodePrinter) { if (specifiers && specifiers.length) { let first = specifiers[0]; if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) { - print.plain(specifiers.shift()); + this.print(specifiers.shift(), node); if (specifiers.length) { this.push(", "); } @@ -114,7 +113,7 @@ export function ImportDeclaration(node: Object, print: NodePrinter) { if (specifiers.length) { this.push("{"); this.space(); - print.join(specifiers, { separator: ", " }); + this.printJoin(specifiers, node, { separator: ", " }); this.space(); this.push("}"); } @@ -122,11 +121,11 @@ export function ImportDeclaration(node: Object, print: NodePrinter) { this.push(" from "); } - print.plain(node.source); + this.print(node.source, node); this.semicolon(); } -export function ImportNamespaceSpecifier(node: Object, print: NodePrinter) { +export function ImportNamespaceSpecifier(node: Object) { this.push("* as "); - print.plain(node.local); + this.print(node.local, node); } diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index 75ec354998..508a00ab59 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -1,97 +1,96 @@ /* @flow */ -import type NodePrinter from "../node/printer"; import repeating from "repeating"; import * as t from "babel-types"; -export function WithStatement(node: Object, print: NodePrinter) { +export function WithStatement(node: Object) { this.keyword("with"); this.push("("); - print.plain(node.object); + this.print(node.object, node); this.push(")"); - print.block(node.body); + this.printBlock(node); } -export function IfStatement(node: Object, print: NodePrinter) { +export function IfStatement(node: Object) { this.keyword("if"); this.push("("); - print.plain(node.test); + this.print(node.test, node); this.push(")"); this.space(); - print.indentOnComments(node.consequent); + this.printAndIndentOnComments(node.consequent, node); if (node.alternate) { if (this.isLast("}")) this.space(); this.push("else "); - print.indentOnComments(node.alternate); + this.printAndIndentOnComments(node.alternate, node); } } -export function ForStatement(node: Object, print: NodePrinter) { +export function ForStatement(node: Object) { this.keyword("for"); this.push("("); - print.plain(node.init); + this.print(node.init, node); this.push(";"); if (node.test) { this.space(); - print.plain(node.test); + this.print(node.test, node); } this.push(";"); if (node.update) { this.space(); - print.plain(node.update); + this.print(node.update, node); } this.push(")"); - print.block(node.body); + this.printBlock(node); } -export function WhileStatement(node: Object, print: NodePrinter) { +export function WhileStatement(node: Object) { this.keyword("while"); this.push("("); - print.plain(node.test); + this.print(node.test, node); this.push(")"); - print.block(node.body); + this.printBlock(node); } let buildForXStatement = function (op) { - return function (node: Object, print: NodePrinter) { + return function (node: Object) { this.keyword("for"); this.push("("); - print.plain(node.left); + this.print(node.left, node); this.push(` ${op} `); - print.plain(node.right); + this.print(node.right, node); this.push(")"); - print.block(node.body); + this.printBlock(node); }; }; export let ForInStatement = buildForXStatement("in"); export let ForOfStatement = buildForXStatement("of"); -export function DoWhileStatement(node: Object, print: NodePrinter) { +export function DoWhileStatement(node: Object) { this.push("do "); - print.plain(node.body); + this.print(node.body, node); this.space(); this.keyword("while"); this.push("("); - print.plain(node.test); + this.print(node.test, node); this.push(");"); } function buildLabelStatement(prefix, key = "label") { - return function (node: Object, print: NodePrinter) { + return function (node: Object) { this.push(prefix); let label = node[key]; if (label) { this.push(" "); let terminatorState = this.startTerminatorless(); - print.plain(label); + this.print(label, node); this.endTerminatorless(terminatorState); } @@ -104,50 +103,50 @@ export let ReturnStatement = buildLabelStatement("return", "argument"); export let BreakStatement = buildLabelStatement("break"); export let ThrowStatement = buildLabelStatement("throw", "argument"); -export function LabeledStatement(node: Object, print: NodePrinter) { - print.plain(node.label); +export function LabeledStatement(node: Object) { + this.print(node.label, node); this.push(": "); - print.plain(node.body); + this.print(node.body, node); } -export function TryStatement(node: Object, print: NodePrinter) { +export function TryStatement(node: Object) { this.keyword("try"); - print.plain(node.block); + this.print(node.block, node); this.space(); // Esprima bug puts the catch clause in a `handlers` array. // see https://code.google.com/p/esprima/issues/detail?id=433 // We run into this from regenerator generated ast. if (node.handlers) { - print.plain(node.handlers[0]); + this.print(node.handlers[0], node); } else { - print.plain(node.handler); + this.print(node.handler, node); } if (node.finalizer) { this.space(); this.push("finally "); - print.plain(node.finalizer); + this.print(node.finalizer, node); } } -export function CatchClause(node: Object, print: NodePrinter) { +export function CatchClause(node: Object) { this.keyword("catch"); this.push("("); - print.plain(node.param); + this.print(node.param, node); this.push(") "); - print.plain(node.body); + this.print(node.body, node); } -export function SwitchStatement(node: Object, print: NodePrinter) { +export function SwitchStatement(node: Object) { this.keyword("switch"); this.push("("); - print.plain(node.discriminant); + this.print(node.discriminant, node); this.push(")"); this.space(); this.push("{"); - print.sequence(node.cases, { + this.printSequence(node.cases, node, { indent: true, addNewlines(leading, cas) { if (!leading && node.cases[node.cases.length - 1] === cas) return -1; @@ -157,10 +156,10 @@ export function SwitchStatement(node: Object, print: NodePrinter) { this.push("}"); } -export function SwitchCase(node: Object, print: NodePrinter) { +export function SwitchCase(node: Object) { if (node.test) { this.push("case "); - print.plain(node.test); + this.print(node.test, node); this.push(":"); } else { this.push("default:"); @@ -168,7 +167,7 @@ export function SwitchCase(node: Object, print: NodePrinter) { if (node.consequent.length) { this.newline(); - print.sequence(node.consequent, { indent: true }); + this.printSequence(node.consequent, node, { indent: true }); } } @@ -176,7 +175,7 @@ export function DebuggerStatement() { this.push("debugger;"); } -export function VariableDeclaration(node: Object, print: NodePrinter, parent: Object) { +export function VariableDeclaration(node: Object, parent: Object) { this.push(node.kind + " "); let hasInits = false; @@ -209,7 +208,7 @@ export function VariableDeclaration(node: Object, print: NodePrinter, parent: Ob // - print.list(node.declarations, { separator: sep }); + this.printList(node.declarations, node, { separator: sep }); if (t.isFor(parent)) { // don't give semicolons to these nodes since they'll be inserted in the parent generator @@ -219,13 +218,13 @@ export function VariableDeclaration(node: Object, print: NodePrinter, parent: Ob this.semicolon(); } -export function VariableDeclarator(node: Object, print: NodePrinter) { - print.plain(node.id); - print.plain(node.id.typeAnnotation); +export function VariableDeclarator(node: Object) { + this.print(node.id, node); + this.print(node.id.typeAnnotation, node); if (node.init) { this.space(); this.push("="); this.space(); - print.plain(node.init); + this.print(node.init, node); } } diff --git a/packages/babel-generator/src/generators/template-literals.js b/packages/babel-generator/src/generators/template-literals.js index d10f0d461e..ed644eedb0 100644 --- a/packages/babel-generator/src/generators/template-literals.js +++ b/packages/babel-generator/src/generators/template-literals.js @@ -1,28 +1,25 @@ /* @flow */ -import type NodePrinter from "../node/printer"; - -export function TaggedTemplateExpression(node: Object, print: NodePrinter) { - print.plain(node.tag); - print.plain(node.quasi); +export function TaggedTemplateExpression(node: Object) { + this.print(node.tag, node); + this.print(node.quasi, node); } export function TemplateElement(node: Object) { this._push(node.value.raw); } -export function TemplateLiteral(node: Object, print: NodePrinter) { +export function TemplateLiteral(node: Object) { this.push("`"); let quasis = node.quasis; - let len = quasis.length; - for (let i = 0; i < len; i++) { - print.plain(quasis[i]); + for (let i = 0; i < quasis.length; i++) { + this.print(quasis[i], node); - if (i + 1 < len) { + if (i + 1 < quasis.length) { this.push("${ "); - print.plain(node.expressions[i]); + this.print(node.expressions[i], node); this.push(" }"); } } diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index 4310509baa..a4c6881e07 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -2,29 +2,32 @@ /* eslint quotes: 0 */ -import type NodePrinter from "../node/printer"; import * as t from "babel-types"; export function Identifier(node: Object) { this.push(node.name); } -export function RestElement(node: Object, print: NodePrinter) { +export function RestElement(node: Object) { this.push("..."); - print.plain(node.argument); + this.print(node.argument, node); } -export { RestElement as SpreadElement, RestElement as SpreadProperty }; +export { + RestElement as SpreadElement, + RestElement as SpreadProperty, + RestElement as RestProperty, +}; -export function ObjectExpression(node: Object, print: NodePrinter) { +export function ObjectExpression(node: Object) { let props = node.properties; this.push("{"); - print.printInnerComments(); + this.printInnerComments(node); if (props.length) { this.space(); - print.list(props, { indent: true }); + this.printList(props, node, { indent: true }); this.space(); } @@ -33,24 +36,24 @@ export function ObjectExpression(node: Object, print: NodePrinter) { export { ObjectExpression as ObjectPattern }; -export function Property(node: Object, print: NodePrinter) { - print.list(node.decorators, { separator: "" }); +export function Property(node: Object) { + this.printJoin(node.decorators, node, { separator: "" }); if (node.method || node.kind === "get" || node.kind === "set") { - this._method(node, print); + this._method(node); } else { if (node.computed) { this.push("["); - print.plain(node.key); + this.print(node.key, node); this.push("]"); } else { // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});` if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) { - print.plain(node.value); + this.print(node.value, node); return; } - print.plain(node.key); + this.print(node.key, node); // shorthand! if (node.shorthand && @@ -63,22 +66,22 @@ export function Property(node: Object, print: NodePrinter) { this.push(":"); this.space(); - print.plain(node.value); + this.print(node.value, node); } } -export function ArrayExpression(node: Object, print: NodePrinter) { +export function ArrayExpression(node: Object) { let elems = node.elements; let len = elems.length; this.push("["); - print.printInnerComments(); + this.printInnerComments(node); for (let i = 0; i < elems.length; i++) { let elem = elems[i]; if (elem) { if (i > 0) this.space(); - print.plain(elem); + this.print(elem, node); if (i < len - 1) this.push(","); } else { // If the array expression ends with a hole, that hole diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index d6b14dbf0e..a9a9a1783f 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -2,36 +2,37 @@ import detectIndent from "detect-indent"; import Whitespace from "./whitespace"; -import NodePrinter from "./node/printer"; -import repeating from "repeating"; import SourceMap from "./source-map"; import Position from "./position"; import * as messages from "babel-messages"; -import Buffer from "./buffer"; -import extend from "lodash/object/extend"; -import each from "lodash/collection/each"; -import n from "./node"; -import * as t from "babel-types"; +import Printer from "./printer"; /** * Babel's code generator, turns an ast into code, maintaining sourcemaps, * user preferences, and valid output. */ -class CodeGenerator { +export class CodeGenerator extends Printer { constructor(ast, opts, code) { opts = opts || {}; - this.comments = ast.comments || []; - this.tokens = ast.tokens || []; - this.format = CodeGenerator.normalizeOptions(code, opts, this.tokens); + let comments = ast.comments || []; + let tokens = ast.tokens || []; + let format = CodeGenerator.normalizeOptions(code, opts, tokens); + + let position = new Position; + + super(position, format); + + this.comments = comments; + this.position = position; + this.tokens = tokens; + this.format = format; this.opts = opts; this.ast = ast; - this.whitespace = new Whitespace(this.tokens); - this.position = new Position; - this.map = new SourceMap(this.position, opts, code); - this.buffer = new Buffer(this.position, this.format); + this.whitespace = new Whitespace(tokens); + this.map = new SourceMap(position, opts, code); } format: { @@ -51,7 +52,6 @@ class CodeGenerator { whitespace: Whitespace; position: Position; map: SourceMap; - buffer: Buffer; comments: Array; tokens: Array; opts: Object; @@ -143,272 +143,11 @@ class CodeGenerator { return { map: this.map.get(), - code: this.buffer.get() + code: this.get() }; } - - /** - * Build NodePrinter. - */ - - buildPrint(parent) { - return new NodePrinter(this, parent); - } - - catchUp(node) { - // catch up to this nodes newline if we're behind - if (node.loc && this.format.retainLines && this.buffer.buf) { - while (this.position.line < node.loc.start.line) { - this._push("\n"); - } - } - } - - _printNewline(leading, node, parent, opts) { - if (!opts.statement && !n.isUserWhitespacable(node, parent)) { - return; - } - - let lines = 0; - - if (node.start != null && !node._ignoreUserWhitespace) { - // user node - if (leading) { - lines = this.whitespace.getNewlinesBefore(node); - } else { - lines = this.whitespace.getNewlinesAfter(node); - } - } else { - // generated node - if (!leading) lines++; // always include at least a single line after - if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; - - let needs = n.needsWhitespaceAfter; - if (leading) needs = n.needsWhitespaceBefore; - if (needs(node, parent)) lines++; - - // generated nodes can't add starting file whitespace - if (!this.buffer.buf) lines = 0; - } - - this.newline(lines); - } - - print(node, parent, opts = {}) { - if (!node) return; - - if (parent && parent._compact) { - node._compact = true; - } - - let oldConcise = this.format.concise; - if (node._compact) { - this.format.concise = true; - } - - if (!this[node.type]) { - throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`); - } - - let needsParens = n.needsParens(node, parent); - if (needsParens) this.push("("); - - this.printLeadingComments(node, parent); - - this.catchUp(node); - - this._printNewline(true, node, parent, opts); - - if (opts.before) opts.before(); - this.map.mark(node, "start"); - - this[node.type](node, this.buildPrint(node), parent); - - if (needsParens) this.push(")"); - - this.map.mark(node, "end"); - if (opts.after) opts.after(); - - this.format.concise = oldConcise; - - this._printNewline(false, node, parent, opts); - - this.printTrailingComments(node, parent); - } - - printJoin(print, nodes: ?Array, opts = {}) { - if (!nodes || !nodes.length) return; - - let len = nodes.length; - let node, i; - - if (opts.indent) this.indent(); - - let printOpts = { - statement: opts.statement, - addNewlines: opts.addNewlines, - after: () => { - if (opts.iterator) { - opts.iterator(node, i); - } - - if (opts.separator && i < len - 1) { - this.push(opts.separator); - } - } - }; - - for (i = 0; i < nodes.length; i++) { - node = nodes[i]; - print.plain(node, printOpts); - } - - if (opts.indent) this.dedent(); - } - - printAndIndentOnComments(print, node) { - let indent = !!node.leadingComments; - if (indent) this.indent(); - print.plain(node); - if (indent) this.dedent(); - } - - printBlock(print, node) { - if (t.isEmptyStatement(node)) { - this.semicolon(); - } else { - this.push(" "); - print.plain(node); - } - } - - generateComment(comment) { - let val = comment.value; - if (comment.type === "CommentLine") { - val = `//${val}`; - } else { - val = `/*${val}*/`; - } - return val; - } - - printTrailingComments(node, parent) { - this._printComments(this.getComments("trailingComments", node, parent)); - } - - printLeadingComments(node, parent) { - this._printComments(this.getComments("leadingComments", node, parent)); - } - - getComments(key, node, parent) { - if (t.isExpressionStatement(parent)) { - return []; - } - - let comments = []; - let nodes: Array = [node]; - - if (t.isExpressionStatement(node)) { - nodes.push(node.argument); - } - - for (let node of nodes) { - comments = comments.concat(this._getComments(key, node)); - } - - return comments; - } - - _getComments(key, node) { - return (node && node[key]) || []; - } - - shouldPrintComment(comment) { - if (this.format.shouldPrintComment) { - return this.format.shouldPrintComment(comment.value); - } else { - if (comment.value.indexOf("@license") >= 0 || comment.value.indexOf("@preserve") >= 0) { - return true; - } else { - return this.format.comments; - } - } - } - - _printComments(comments) { - if (!comments || !comments.length) return; - - for (let comment of (comments: Array)) { - if (!this.shouldPrintComment(comment)) continue; - if (comment._displayed) continue; - comment._displayed = true; - - this.catchUp(comment); - - // whitespace before - this.newline(this.whitespace.getNewlinesBefore(comment)); - - let column = this.position.column; - let val = this.generateComment(comment); - - if (column && !this.isLast(["\n", " ", "[", "{"])) { - this._push(" "); - column++; - } - - // - if (comment.type === "CommentBlock" && this.format.indent.adjustMultilineComment) { - let offset = comment.loc && comment.loc.start.column; - if (offset) { - let newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); - val = val.replace(newlineRegex, "\n"); - } - - let indent = Math.max(this.indentSize(), column); - val = val.replace(/\n/g, `\n${repeating(" ", indent)}`); - } - - if (column === 0) { - val = this.getIndent() + val; - } - - // force a newline for line comments when retainLines is set in case the next printed node - // doesn't catch up - if ((this.format.compact || this.format.retainLines) && comment.type === "CommentLine") { - val += "\n"; - } - - // - this._push(val); - - // whitespace after - this.newline(this.whitespace.getNewlinesAfter(comment)); - } - } } -each(Buffer.prototype, function (fn, key) { - CodeGenerator.prototype[key] = function () { - return fn.apply(this.buffer, arguments); - }; -}); - -each([ - require("./generators/template-literals"), - require("./generators/comprehensions"), - require("./generators/expressions"), - require("./generators/statements"), - require("./generators/classes"), - require("./generators/methods"), - require("./generators/modules"), - require("./generators/types"), - require("./generators/flow"), - require("./generators/base"), - require("./generators/jsx") -], function (generator) { - extend(CodeGenerator.prototype, generator); -}); - export default function (ast: Object, opts: Object, code: string): Object { let gen = new CodeGenerator(ast, opts, code); return gen.generate(); diff --git a/packages/babel-generator/src/node/printer.js b/packages/babel-generator/src/node/printer.js deleted file mode 100644 index f672d167df..0000000000 --- a/packages/babel-generator/src/node/printer.js +++ /dev/null @@ -1,78 +0,0 @@ -/* @flow */ - -/** - * Printer for nodes, needs a `generator` and a `parent`. - */ - -export default class NodePrinter { - constructor(generator, parent) { - this.generator = generator; - this.parent = parent; - } - - /** - * Description - */ - - printInnerComments() { - if (!this.parent.innerComments) return; - let gen = this.generator; - gen.indent(); - gen._printComments(this.parent.innerComments); - gen.dedent(); - } - - /** - * Print a plain node. - */ - - plain(node, opts) { - return this.generator.print(node, this.parent, opts); - } - - /** - * Print a sequence of nodes as statements. - */ - - sequence(nodes, opts = {}) { - opts.statement = true; - return this.generator.printJoin(this, nodes, opts); - } - - /** - * Print a sequence of nodes as expressions. - */ - - join(nodes, opts) { - return this.generator.printJoin(this, nodes, opts); - } - - /** - * Print a list of nodes, with a customizable separator (defaults to ","). - */ - - list(items, opts = {}) { - if (opts.separator == null) { - opts.separator = ","; - if (!this.generator.format.compact) opts.separator += " "; - } - - return this.join(items, opts); - } - - /** - * Print a block-like node. - */ - - block(node) { - return this.generator.printBlock(this, node); - } - - /** - * Print node and indent comments. - */ - - indentOnComments(node) { - return this.generator.printAndIndentOnComments(this, node); - } -} diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js new file mode 100644 index 0000000000..949d1dc3eb --- /dev/null +++ b/packages/babel-generator/src/printer.js @@ -0,0 +1,280 @@ +/* @flow */ + +import repeating from "repeating"; +import Buffer from "./buffer"; +import n from "./node"; +import * as t from "babel-types"; + +export default class Printer extends Buffer { + print(node, parent, opts = {}) { + if (!node) return; + + if (parent && parent._compact) { + node._compact = true; + } + + let oldConcise = this.format.concise; + if (node._compact) { + this.format.concise = true; + } + + let printMethod = this[node.type]; + if (!printMethod) { + throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`); + } + + let needsParens = n.needsParens(node, parent); + if (needsParens) this.push("("); + + this.printLeadingComments(node, parent); + + this.catchUp(node); + + this._printNewline(true, node, parent, opts); + + if (opts.before) opts.before(); + this.map.mark(node, "start"); + + // + this._print(node, parent); + + if (needsParens) this.push(")"); + + this.map.mark(node, "end"); + if (opts.after) opts.after(); + + this.format.concise = oldConcise; + + this._printNewline(false, node, parent, opts); + + this.printTrailingComments(node, parent); + } + + _print(node, parent) { + let extra = node.extra; + if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) { + this.push(""); + this._push(extra.raw); + } else { + let printMethod = this[node.type]; + printMethod.call(this, node, parent); + } + } + + printJoin(nodes: ?Array, parent: Object, opts = {}) { + if (!nodes || !nodes.length) return; + + let len = nodes.length; + let node, i; + + if (opts.indent) this.indent(); + + let printOpts = { + statement: opts.statement, + addNewlines: opts.addNewlines, + after: () => { + if (opts.iterator) { + opts.iterator(node, i); + } + + if (opts.separator && i < len - 1) { + this.push(opts.separator); + } + } + }; + + for (i = 0; i < nodes.length; i++) { + node = nodes[i]; + this.print(node, parent, printOpts); + } + + if (opts.indent) this.dedent(); + } + + printAndIndentOnComments(node, parent) { + let indent = !!node.leadingComments; + if (indent) this.indent(); + this.print(node, parent); + if (indent) this.dedent(); + } + + printBlock(parent) { + let node = parent.body; + if (t.isEmptyStatement(node)) { + this.semicolon(); + } else { + this.push(" "); + this.print(node, parent); + } + } + + generateComment(comment) { + let val = comment.value; + if (comment.type === "CommentLine") { + val = `//${val}`; + } else { + val = `/*${val}*/`; + } + return val; + } + + printTrailingComments(node, parent) { + this._printComments(this.getComments("trailingComments", node, parent)); + } + + printLeadingComments(node, parent) { + this._printComments(this.getComments("leadingComments", node, parent)); + } + + printInnerComments(node, indent = true) { + if (!node.innerComments) return; + if (indent) this.indent(); + this._printComments(node.innerComments); + if (indent) this.dedent(); + } + + printSequence(nodes, parent, opts = {}) { + opts.statement = true; + return this.printJoin(nodes, parent, opts); + } + + printList(items, parent, opts = {}) { + if (opts.separator == null) { + opts.separator = ","; + if (!this.format.compact) opts.separator += " "; + } + + return this.printJoin(items, parent, opts); + } + + _printNewline(leading, node, parent, opts) { + if (!opts.statement && !n.isUserWhitespacable(node, parent)) { + return; + } + + let lines = 0; + + if (node.start != null && !node._ignoreUserWhitespace) { + // user node + if (leading) { + lines = this.whitespace.getNewlinesBefore(node); + } else { + lines = this.whitespace.getNewlinesAfter(node); + } + } else { + // generated node + if (!leading) lines++; // always include at least a single line after + if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0; + + let needs = n.needsWhitespaceAfter; + if (leading) needs = n.needsWhitespaceBefore; + if (needs(node, parent)) lines++; + + // generated nodes can't add starting file whitespace + if (!this.buf) lines = 0; + } + + this.newline(lines); + } + + getComments(key, node, parent) { + if (t.isExpressionStatement(parent)) { + return []; + } + + let comments = []; + let nodes: Array = [node]; + + if (t.isExpressionStatement(node)) { + nodes.push(node.argument); + } + + for (let node of nodes) { + comments = comments.concat(this._getComments(key, node)); + } + + return comments; + } + + _getComments(key, node) { + return (node && node[key]) || []; + } + + shouldPrintComment(comment) { + if (this.format.shouldPrintComment) { + return this.format.shouldPrintComment(comment.value); + } else { + if (comment.value.indexOf("@license") >= 0 || comment.value.indexOf("@preserve") >= 0) { + return true; + } else { + return this.format.comments; + } + } + } + + _printComments(comments) { + if (!comments || !comments.length) return; + + for (let comment of (comments: Array)) { + if (!this.shouldPrintComment(comment)) continue; + if (comment._displayed) continue; + comment._displayed = true; + + this.catchUp(comment); + + // whitespace before + this.newline(this.whitespace.getNewlinesBefore(comment)); + + let column = this.position.column; + let val = this.generateComment(comment); + + if (column && !this.isLast(["\n", " ", "[", "{"])) { + this._push(" "); + column++; + } + + // + if (comment.type === "CommentBlock" && this.format.indent.adjustMultilineComment) { + let offset = comment.loc && comment.loc.start.column; + if (offset) { + let newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + + let indent = Math.max(this.indentSize(), column); + val = val.replace(/\n/g, `\n${repeating(" ", indent)}`); + } + + if (column === 0) { + val = this.getIndent() + val; + } + + // force a newline for line comments when retainLines is set in case the next printed node + // doesn't catch up + if ((this.format.compact || this.format.retainLines) && comment.type === "CommentLine") { + val += "\n"; + } + + // + this._push(val); + + // whitespace after + this.newline(this.whitespace.getNewlinesAfter(comment)); + } + } +} + +for (let generator of [ + require("./generators/template-literals"), + require("./generators/expressions"), + require("./generators/statements"), + require("./generators/classes"), + require("./generators/methods"), + require("./generators/modules"), + require("./generators/types"), + require("./generators/flow"), + require("./generators/base"), + require("./generators/jsx") +]) { + Object.assign(Printer.prototype, generator); +} diff --git a/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/actual.js b/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/actual.js new file mode 100644 index 0000000000..2beaed5903 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/actual.js @@ -0,0 +1,6 @@ +function foo() { + bar(); + if (foo) { + bar(); + } +} diff --git a/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/expected.js b/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/expected.js new file mode 100644 index 0000000000..2beaed5903 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-indentation/hard-tab/expected.js @@ -0,0 +1,6 @@ +function foo() { + bar(); + if (foo) { + bar(); + } +} diff --git a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/actual.js b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/actual.js new file mode 100644 index 0000000000..017db5a0f8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/actual.js @@ -0,0 +1,6 @@ +function foo() { + bar(); + if (foo) { + bar(); + } +} diff --git a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/expected.js b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/expected.js new file mode 100644 index 0000000000..017db5a0f8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-2/expected.js @@ -0,0 +1,6 @@ +function foo() { + bar(); + if (foo) { + bar(); + } +} diff --git a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/actual.js b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/actual.js new file mode 100644 index 0000000000..9f080a2650 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/actual.js @@ -0,0 +1,6 @@ +function foo() { + bar(); + if (foo) { + bar(); + } +} diff --git a/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/expected.js b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/expected.js new file mode 100644 index 0000000000..9f080a2650 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-indentation/soft-tab-4/expected.js @@ -0,0 +1,6 @@ +function foo() { + bar(); + if (foo) { + bar(); + } +} diff --git a/packages/babel-generator/test/fixtures/auto-string/double/actual.js b/packages/babel-generator/test/fixtures/auto-string/double/actual.js new file mode 100644 index 0000000000..5a8fcf7e29 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-string/double/actual.js @@ -0,0 +1,4 @@ +foo("foo"); +foo("foo\nlol"); +foo("foo\n\"lol"); +foo("foo\n\"'lol"); diff --git a/packages/babel-generator/test/fixtures/auto-string/double/expected.js b/packages/babel-generator/test/fixtures/auto-string/double/expected.js new file mode 100644 index 0000000000..5a8fcf7e29 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-string/double/expected.js @@ -0,0 +1,4 @@ +foo("foo"); +foo("foo\nlol"); +foo("foo\n\"lol"); +foo("foo\n\"'lol"); diff --git a/packages/babel-generator/test/fixtures/auto-string/single/actual.js b/packages/babel-generator/test/fixtures/auto-string/single/actual.js new file mode 100644 index 0000000000..1d8e7531c9 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-string/single/actual.js @@ -0,0 +1,4 @@ +foo('foo'); +foo('foo\nlol'); +foo('foo\n"lol'); +foo('foo\n"\'lol'); diff --git a/packages/babel-generator/test/fixtures/auto-string/single/expected.js b/packages/babel-generator/test/fixtures/auto-string/single/expected.js new file mode 100644 index 0000000000..1d8e7531c9 --- /dev/null +++ b/packages/babel-generator/test/fixtures/auto-string/single/expected.js @@ -0,0 +1,4 @@ +foo('foo'); +foo('foo\nlol'); +foo('foo\n"lol'); +foo('foo\n"\'lol'); diff --git a/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/actual.js b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/actual.js new file mode 100644 index 0000000000..aa61a9c8fe --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/actual.js @@ -0,0 +1,10 @@ +function test() { + + + /* + * this is comment + */ + + + var i = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/expected.js b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/expected.js new file mode 100644 index 0000000000..62aee76944 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment-with-space/expected.js @@ -0,0 +1,8 @@ +function test() { + + /* + * this is comment + */ + + var i = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/2-space-multi-comment/actual.js b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment/actual.js new file mode 100644 index 0000000000..1cacd84afd --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment/actual.js @@ -0,0 +1,6 @@ +function test() { + /* + * this is comment + */ + var i = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/2-space-multi-comment/expected.js b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment/expected.js new file mode 100644 index 0000000000..1cacd84afd --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/2-space-multi-comment/expected.js @@ -0,0 +1,6 @@ +function test() { + /* + * this is comment + */ + var i = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/actual.js b/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/actual.js new file mode 100644 index 0000000000..5c85ac0e06 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/actual.js @@ -0,0 +1,4 @@ +{ + print("hello"); + // comment +} diff --git a/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/expected.js b/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/expected.js new file mode 100644 index 0000000000..5c85ac0e06 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/expected.js @@ -0,0 +1,4 @@ +{ + print("hello"); + // comment +} diff --git a/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/options.json b/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/options.json new file mode 100644 index 0000000000..97925bbcb6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/block-line-comment-with-retainlines-option/options.json @@ -0,0 +1,3 @@ +{ + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/comments/block-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/block-line-comment/actual.js new file mode 100644 index 0000000000..ddc9499b49 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/block-line-comment/actual.js @@ -0,0 +1,4 @@ +// Leading to block +{ + print("hello"); +} diff --git a/packages/babel-generator/test/fixtures/comments/block-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/block-line-comment/expected.js new file mode 100644 index 0000000000..ddc9499b49 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/block-line-comment/expected.js @@ -0,0 +1,4 @@ +// Leading to block +{ + print("hello"); +} diff --git a/packages/babel-generator/test/fixtures/comments/comment-only-with-space/actual.js b/packages/babel-generator/test/fixtures/comments/comment-only-with-space/actual.js new file mode 100644 index 0000000000..befcf38bfa --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-only-with-space/actual.js @@ -0,0 +1,7 @@ + +// from #23 + +/**/ + +/* +*/ diff --git a/packages/babel-generator/test/fixtures/comments/comment-only-with-space/expected.js b/packages/babel-generator/test/fixtures/comments/comment-only-with-space/expected.js new file mode 100644 index 0000000000..befcf38bfa --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-only-with-space/expected.js @@ -0,0 +1,7 @@ + +// from #23 + +/**/ + +/* +*/ diff --git a/packages/babel-generator/test/fixtures/comments/comment-only/actual.js b/packages/babel-generator/test/fixtures/comments/comment-only/actual.js new file mode 100644 index 0000000000..acfb1b9a7b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-only/actual.js @@ -0,0 +1,4 @@ +// from #23 +/**/ +/* +*/ diff --git a/packages/babel-generator/test/fixtures/comments/comment-only/expected.js b/packages/babel-generator/test/fixtures/comments/comment-only/expected.js new file mode 100644 index 0000000000..acfb1b9a7b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-only/expected.js @@ -0,0 +1,4 @@ +// from #23 +/**/ +/* +*/ diff --git a/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/actual.js b/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/actual.js new file mode 100644 index 0000000000..7f2608b525 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/actual.js @@ -0,0 +1,5 @@ +// comment +print("hello"); + +// comment2 +print("hello2"); diff --git a/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/expected.js b/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/expected.js new file mode 100644 index 0000000000..7f2608b525 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/expected.js @@ -0,0 +1,5 @@ +// comment +print("hello"); + +// comment2 +print("hello2"); diff --git a/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/options.json b/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/options.json new file mode 100644 index 0000000000..97925bbcb6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/comment-statement-with-retainlines-option/options.json @@ -0,0 +1,3 @@ +{ + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/actual.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/actual.js new file mode 100644 index 0000000000..0c0c0272a5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/actual.js @@ -0,0 +1,10 @@ +var test = { + /** + * Before bracket init + */ + ["a"]:"1", + [/* + * Inside bracket init + */ + "b"]:"2" + }, ok = 42; diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/expected.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/expected.js new file mode 100644 index 0000000000..1ad3a0f35f --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments-2/expected.js @@ -0,0 +1,11 @@ +var test = { + /** + * Before bracket init + */ + ["a"]: "1", + [/* + * Inside bracket init + */ + "b"]: "2" +}, + ok = 42; diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments/actual.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments/actual.js new file mode 100644 index 0000000000..0c7aae7d18 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments/actual.js @@ -0,0 +1,28 @@ +var test = { + /** + * Before bracket init + */ + ["a"]:"1", + + [/* + * Inside bracket init + */ + "b"]:"2", + + ["c" + /* + * After bracket key + */]:"3", + + // Before bracket, line comment + [ + "d"]:"4", + + [ + // Inside bracket, line comment + "e"]:"5", + + ["f" + // After bracket, line comment + ]:"6" +}; diff --git a/packages/babel-generator/test/fixtures/comments/computed-property-comments/expected.js b/packages/babel-generator/test/fixtures/comments/computed-property-comments/expected.js new file mode 100644 index 0000000000..c6ffd441f8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/computed-property-comments/expected.js @@ -0,0 +1,27 @@ +var test = { + /** + * Before bracket init + */ + ["a"]: "1", + + [/* + * Inside bracket init + */ + "b"]: "2", + + ["c" + /* + * After bracket key + */]: "3", + + // Before bracket, line comment + ["d"]: "4", + + [ + // Inside bracket, line comment + "e"]: "5", + + ["f" + // After bracket, line comment + ]: "6" +}; diff --git a/packages/babel-generator/test/fixtures/comments/do-while-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/do-while-line-comment/actual.js new file mode 100644 index 0000000000..760ae4934e --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/do-while-line-comment/actual.js @@ -0,0 +1,3 @@ +do { +} // LINE +while (true); diff --git a/packages/babel-generator/test/fixtures/comments/do-while-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/do-while-line-comment/expected.js new file mode 100644 index 0000000000..dbcec4152a --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/do-while-line-comment/expected.js @@ -0,0 +1,2 @@ +do {} // LINE +while (true); diff --git a/packages/babel-generator/test/fixtures/comments/empty-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/empty-line-comment/actual.js new file mode 100644 index 0000000000..ea9f2a7244 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/empty-line-comment/actual.js @@ -0,0 +1,4 @@ +function test() { +// Leading to EmptyStatement +; // Trailing to EmptyStatement +} diff --git a/packages/babel-generator/test/fixtures/comments/empty-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/empty-line-comment/expected.js new file mode 100644 index 0000000000..118cbc17a2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/empty-line-comment/expected.js @@ -0,0 +1,4 @@ +function test() { + // Leading to EmptyStatement + ; // Trailing to EmptyStatement +} diff --git a/packages/babel-generator/test/fixtures/comments/empty/actual.js b/packages/babel-generator/test/fixtures/comments/empty/actual.js new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/empty/actual.js @@ -0,0 +1 @@ + diff --git a/packages/babel-generator/test/fixtures/comments/empty/expected.js b/packages/babel-generator/test/fixtures/comments/empty/expected.js new file mode 100644 index 0000000000..8b13789179 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/empty/expected.js @@ -0,0 +1 @@ + diff --git a/packages/babel-generator/test/fixtures/comments/function-block-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/actual.js new file mode 100644 index 0000000000..105b25217c --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/actual.js @@ -0,0 +1,6 @@ +!function(){}// +,42; +!{get 42(){}// +,foo:42}; +(function(){}// +) diff --git a/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js new file mode 100644 index 0000000000..d6802cba24 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js @@ -0,0 +1,6 @@ +!function () {}, // +42; +!{ get 42() {}, // + foo: 42 }; +(function () {}); +// diff --git a/packages/babel-generator/test/fixtures/comments/if-block-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/if-block-line-comment/actual.js new file mode 100644 index 0000000000..a17714740f --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/if-block-line-comment/actual.js @@ -0,0 +1,5 @@ +if (cond) + // Leading to if-block +{ + print("hello"); +} // Trailing to if-block diff --git a/packages/babel-generator/test/fixtures/comments/if-block-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/if-block-line-comment/expected.js new file mode 100644 index 0000000000..cc93b54438 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/if-block-line-comment/expected.js @@ -0,0 +1,5 @@ +if (cond) + // Leading to if-block + { + print("hello"); + } // Trailing to if-block diff --git a/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/actual.js new file mode 100644 index 0000000000..524b81aa7e --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/actual.js @@ -0,0 +1,3 @@ +if (cond) +// Leading to EmptyStatement + ; // Trailing to EmptyStatement diff --git a/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/expected.js new file mode 100644 index 0000000000..bcb989f64f --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/if-empty-line-comment/expected.js @@ -0,0 +1,3 @@ +if (cond) + // Leading to EmptyStatement + ; // Trailing to EmptyStatement diff --git a/packages/babel-generator/test/fixtures/comments/if-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/if-line-comment/actual.js new file mode 100644 index 0000000000..c6ce430feb --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/if-line-comment/actual.js @@ -0,0 +1,5 @@ +function test() { +// Leading if statement + if (cond) {print("hello") } +// Trailing if-block statement +} diff --git a/packages/babel-generator/test/fixtures/comments/if-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/if-line-comment/expected.js new file mode 100644 index 0000000000..065ba70e81 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/if-line-comment/expected.js @@ -0,0 +1,7 @@ +function test() { + // Leading if statement + if (cond) { + print("hello"); + } + // Trailing if-block statement +} diff --git a/packages/babel-generator/test/fixtures/comments/object_comments/actual.js b/packages/babel-generator/test/fixtures/comments/object_comments/actual.js new file mode 100644 index 0000000000..ec76f88897 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/object_comments/actual.js @@ -0,0 +1,12 @@ +var test = { + /** + * Test 2 + */ + a:"1", + /* + * Test 1 + */ + b:"2", + // Test 3 + c:"3" +}; diff --git a/packages/babel-generator/test/fixtures/comments/object_comments/expected.js b/packages/babel-generator/test/fixtures/comments/object_comments/expected.js new file mode 100644 index 0000000000..d835befd05 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/object_comments/expected.js @@ -0,0 +1,12 @@ +var test = { + /** + * Test 2 + */ + a: "1", + /* + * Test 1 + */ + b: "2", + // Test 3 + c: "3" +}; diff --git a/packages/babel-generator/test/fixtures/comments/return-no-argument/actual.js b/packages/babel-generator/test/fixtures/comments/return-no-argument/actual.js new file mode 100644 index 0000000000..a43f15d232 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/return-no-argument/actual.js @@ -0,0 +1,3 @@ +(function() { + return; // comment +}()); diff --git a/packages/babel-generator/test/fixtures/comments/return-no-argument/expected.js b/packages/babel-generator/test/fixtures/comments/return-no-argument/expected.js new file mode 100644 index 0000000000..0dc96b3a8c --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/return-no-argument/expected.js @@ -0,0 +1,3 @@ +(function () { + return; // comment +})(); diff --git a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/actual.js new file mode 100644 index 0000000000..4b9cd6df29 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/actual.js @@ -0,0 +1,49 @@ +// Copyright (C) 2012 Yusuke Suzuki +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +function test() { +} + + + +// Copyright (C) 2012 Yusuke Suzuki +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/expected.js new file mode 100644 index 0000000000..47869b2606 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-line-comment/expected.js @@ -0,0 +1,45 @@ +// Copyright (C) 2012 Yusuke Suzuki +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +function test() {} + +// Copyright (C) 2012 Yusuke Suzuki +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/actual.js b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/actual.js new file mode 100644 index 0000000000..1076529e0b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/actual.js @@ -0,0 +1,51 @@ +/* + Copyright (C) 2012 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +function test() { + +} + +/* + Copyright (C) 2012 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ diff --git a/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/expected.js b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/expected.js new file mode 100644 index 0000000000..de284d6c01 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-a-lot-of-multi-comment/expected.js @@ -0,0 +1,49 @@ +/* + Copyright (C) 2012 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +function test() {} + +/* + Copyright (C) 2012 Yusuke Suzuki + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ diff --git a/packages/babel-generator/test/fixtures/comments/simple-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/simple-line-comment/actual.js new file mode 100644 index 0000000000..780a9c2b4a --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-line-comment/actual.js @@ -0,0 +1,3 @@ +// Leading +var i = 20; +// Trailing diff --git a/packages/babel-generator/test/fixtures/comments/simple-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/simple-line-comment/expected.js new file mode 100644 index 0000000000..780a9c2b4a --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-line-comment/expected.js @@ -0,0 +1,3 @@ +// Leading +var i = 20; +// Trailing diff --git a/packages/babel-generator/test/fixtures/comments/simple-multi-comment/actual.js b/packages/babel-generator/test/fixtures/comments/simple-multi-comment/actual.js new file mode 100644 index 0000000000..e0ad4c2075 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-multi-comment/actual.js @@ -0,0 +1,22 @@ +function test() { + /* + * Leading comment + */ + + /* + * + * Leading comment 2 + * + */ + + var i = 20; + /* + * Trailing comment + */ + + /* + * + * Trailing comment 2 + * + */ +} diff --git a/packages/babel-generator/test/fixtures/comments/simple-multi-comment/expected.js b/packages/babel-generator/test/fixtures/comments/simple-multi-comment/expected.js new file mode 100644 index 0000000000..e0ad4c2075 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-multi-comment/expected.js @@ -0,0 +1,22 @@ +function test() { + /* + * Leading comment + */ + + /* + * + * Leading comment 2 + * + */ + + var i = 20; + /* + * Trailing comment + */ + + /* + * + * Trailing comment 2 + * + */ +} diff --git a/packages/babel-generator/test/fixtures/comments/simple-statement-comment/actual.js b/packages/babel-generator/test/fixtures/comments/simple-statement-comment/actual.js new file mode 100644 index 0000000000..322d46769b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-statement-comment/actual.js @@ -0,0 +1 @@ +; // Trailing diff --git a/packages/babel-generator/test/fixtures/comments/simple-statement-comment/expected.js b/packages/babel-generator/test/fixtures/comments/simple-statement-comment/expected.js new file mode 100644 index 0000000000..733f7f0c6b --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/simple-statement-comment/expected.js @@ -0,0 +1 @@ +; // Trailing diff --git a/packages/babel-generator/test/fixtures/comments/try-block-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/try-block-line-comment/actual.js new file mode 100644 index 0000000000..2ef66cdb71 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/try-block-line-comment/actual.js @@ -0,0 +1,12 @@ +try{}// +finally{} + +try{} +catch(e){}// +finally{} + +{ +try{} +catch(e){}// +finally{} +} diff --git a/packages/babel-generator/test/fixtures/comments/try-block-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/try-block-line-comment/expected.js new file mode 100644 index 0000000000..034d32569f --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/try-block-line-comment/expected.js @@ -0,0 +1,10 @@ +try {} // +finally {} + +try {} catch (e) {} // +finally {} + +{ + try {} catch (e) {} // + finally {} +} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/actual.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/actual.js new file mode 100644 index 0000000000..5cc784bea2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/actual.js @@ -0,0 +1,9 @@ +function test() { + var + // Leading to VariableDeclarator + // Leading to VariableDeclarator + i = 20, + // Leading to VariableDeclarator + // Leading to VariableDeclarator + j = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/expected.js new file mode 100644 index 0000000000..a7c1703428 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-line-comment/expected.js @@ -0,0 +1,10 @@ +function test() { + var + // Leading to VariableDeclarator + // Leading to VariableDeclarator + i = 20, + + // Leading to VariableDeclarator + // Leading to VariableDeclarator + j = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/actual.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/actual.js new file mode 100644 index 0000000000..41dcd3d3a9 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/actual.js @@ -0,0 +1,13 @@ +function test() { + var + /* + * Leading to VariableDeclarator + * Leading to VariableDeclarator + */ + i = 20, + /* + * Leading to VariableDeclarator + * Leading to VariableDeclarator + */ + j = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/expected.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/expected.js new file mode 100644 index 0000000000..84354421c2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-multi-comment/expected.js @@ -0,0 +1,14 @@ +function test() { + var + /* + * Leading to VariableDeclarator + * Leading to VariableDeclarator + */ + i = 20, + + /* + * Leading to VariableDeclarator + * Leading to VariableDeclarator + */ + j = 20; +} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/actual.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/actual.js new file mode 100644 index 0000000000..4ae8f0b59d --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/actual.js @@ -0,0 +1,16 @@ +{ + var t = 20; /* + * This is trailing comment + */ +} + +{ + var tt = 20; /* + * This is trailing comment + */ +} +{{ + var t = 20; /* + * This is trailing comment + */ +}} diff --git a/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/expected.js b/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/expected.js new file mode 100644 index 0000000000..7819d36b16 --- /dev/null +++ b/packages/babel-generator/test/fixtures/comments/variable-declarator-trailing-comment/expected.js @@ -0,0 +1,18 @@ +{ + var t = 20; /* + * This is trailing comment + */ +} + +{ + var tt = 20; /* + * This is trailing comment + */ +} +{ + { + var t = 20; /* + * This is trailing comment + */ + } +} diff --git a/packages/babel-generator/test/fixtures/compact/options.json b/packages/babel-generator/test/fixtures/compact/options.json new file mode 100644 index 0000000000..eb4e948bfa --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/options.json @@ -0,0 +1,3 @@ +{ + "compact": true +} diff --git a/packages/babel-generator/test/fixtures/compact/single-line-comment/actual.js b/packages/babel-generator/test/fixtures/compact/single-line-comment/actual.js new file mode 100644 index 0000000000..e2589c7138 --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/single-line-comment/actual.js @@ -0,0 +1,2 @@ +// foo +bar(); diff --git a/packages/babel-generator/test/fixtures/compact/single-line-comment/expected.js b/packages/babel-generator/test/fixtures/compact/single-line-comment/expected.js new file mode 100644 index 0000000000..e2589c7138 --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/single-line-comment/expected.js @@ -0,0 +1,2 @@ +// foo +bar(); diff --git a/packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/actual.js b/packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/actual.js new file mode 100644 index 0000000000..7c6969bfc8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/actual.js @@ -0,0 +1,3 @@ +x | y ^ z; +x | (y ^ z); +(x | y) ^ z; diff --git a/packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/expected.js b/packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/expected.js new file mode 100644 index 0000000000..ffcf91adde --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/bitwise-precedence/expected.js @@ -0,0 +1,3 @@ +x | y ^ z; +x | y ^ z; +(x | y) ^ z; diff --git a/packages/babel-generator/test/fixtures/edgecase/floating-point/actual.js b/packages/babel-generator/test/fixtures/edgecase/floating-point/actual.js new file mode 100644 index 0000000000..b38eebf513 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/floating-point/actual.js @@ -0,0 +1,2 @@ +1.1.valueOf(); +(1e+300).valueOf(); diff --git a/packages/babel-generator/test/fixtures/edgecase/floating-point/expected.js b/packages/babel-generator/test/fixtures/edgecase/floating-point/expected.js new file mode 100644 index 0000000000..f0c3126dbe --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/floating-point/expected.js @@ -0,0 +1,2 @@ +1.1.valueOf(); +1e+300.valueOf(); diff --git a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js new file mode 100644 index 0000000000..f84b95ae6b --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js @@ -0,0 +1,12 @@ +for (var i = (1 in []) in []); +for (var i = 1 in [] in []); +for (var i = (10 * 10 in []) in []); +for (var i = (10 + 10 in []) in []); +for (var i = 10 + (10 in []) in []); +for (var i = 10 + 10 in [] in []); +for (var i = (1 in []);;); +for ((1 in []);;); +for (1 * (1 in []);;); +for (1 * (1 + 1 in []);;); +for (1 * ((1 + 1) in []);;); +for (1 * (1 + (1 in []));;); diff --git a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js new file mode 100644 index 0000000000..029b11e515 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js @@ -0,0 +1,12 @@ +for (var i = (1 in []) in []); +for (var i = 1 in ([] in [])); +for (var i = (10 * 10 in []) in []); +for (var i = (10 + 10 in []) in []); +for (var i = 10 + (10 in []) in []); +for (var i = 10 + 10 in ([] in [])); +for (var i = (1 in []);;); +for ((1 in []);;); +for (1 * (1 in []);;); +for (1 * (1 + 1 in []);;); +for (1 * (1 + 1 in []);;); +for (1 * (1 + (1 in []));;); diff --git a/packages/babel-generator/test/fixtures/edgecase/new-precedence/actual.js b/packages/babel-generator/test/fixtures/edgecase/new-precedence/actual.js new file mode 100644 index 0000000000..7100c69c3d --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/new-precedence/actual.js @@ -0,0 +1,9 @@ +new (a().b)(); +new a().b(); +new (a()).b(); +new (a())(); +new new a(a)(); +new (new a())(a); +(new a()).test; +(new a().test); +(new (a().test)()); diff --git a/packages/babel-generator/test/fixtures/edgecase/new-precedence/expected.js b/packages/babel-generator/test/fixtures/edgecase/new-precedence/expected.js new file mode 100644 index 0000000000..646afe94da --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/new-precedence/expected.js @@ -0,0 +1,9 @@ +new (a().b)(); +new a().b(); +new (a().b)(); +new (a())(); +new new a(a)(); +new new a()(a); +new a().test; +new a().test; +new (a().test)(); diff --git a/packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/actual.js b/packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/actual.js new file mode 100644 index 0000000000..cfbda48a0d --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/actual.js @@ -0,0 +1,3 @@ +dejavu.Class.declare({ + method2: function () {} +}); diff --git a/packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/expected.js b/packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/expected.js new file mode 100644 index 0000000000..cfbda48a0d --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/one-property-with-line-terminator/expected.js @@ -0,0 +1,3 @@ +dejavu.Class.declare({ + method2: function () {} +}); diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/actual.js b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/actual.js new file mode 100644 index 0000000000..2a0e91f010 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/actual.js @@ -0,0 +1,6 @@ +function foo(l) { + return ( + // hi + l + ); +} diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/expected.js b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/expected.js new file mode 100644 index 0000000000..042f71356d --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/expected.js @@ -0,0 +1,4 @@ +function foo(l){ +return ( + +l);} diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/options.json b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/options.json new file mode 100644 index 0000000000..a3e2539639 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-and-compact-option/options.json @@ -0,0 +1,5 @@ +{ + "comments": false, + "retainLines": true, + "compact": true +} diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/actual.js b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/actual.js new file mode 100644 index 0000000000..3d4fdd63e3 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/actual.js @@ -0,0 +1,11 @@ +function foo(l) { + return ( + l + ); +} + +function foo() { + return ( + 1 && 2 + ) || 3; +} diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js new file mode 100644 index 0000000000..cc911760dc --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/expected.js @@ -0,0 +1,10 @@ +function foo(l) { + return ( + l);} + + + +function foo() { + return ( + 1 && 2 || + 3);} diff --git a/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/options.json b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/options.json new file mode 100644 index 0000000000..97925bbcb6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/return-with-retainlines-option/options.json @@ -0,0 +1,3 @@ +{ + "retainLines": true +} diff --git a/packages/babel-generator/test/fixtures/edgecase/unary-op/actual.js b/packages/babel-generator/test/fixtures/edgecase/unary-op/actual.js new file mode 100644 index 0000000000..9f318cdb1f --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/unary-op/actual.js @@ -0,0 +1,5 @@ +delete delete i; ++ +i; +!!i; ++ ++i; +- --i; diff --git a/packages/babel-generator/test/fixtures/edgecase/unary-op/expected.js b/packages/babel-generator/test/fixtures/edgecase/unary-op/expected.js new file mode 100644 index 0000000000..9f318cdb1f --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/unary-op/expected.js @@ -0,0 +1,5 @@ +delete delete i; ++ +i; +!!i; ++ ++i; +- --i; diff --git a/packages/babel-generator/test/fixtures/edgecase/variable-declaration/actual.js b/packages/babel-generator/test/fixtures/edgecase/variable-declaration/actual.js new file mode 100644 index 0000000000..31fcb452eb --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/variable-declaration/actual.js @@ -0,0 +1,4 @@ +var fact5 = function fact(n){ + if (n <= 1) return 1 + return n * fact(n - 1) +}(5) diff --git a/packages/babel-generator/test/fixtures/edgecase/variable-declaration/expected.js b/packages/babel-generator/test/fixtures/edgecase/variable-declaration/expected.js new file mode 100644 index 0000000000..0af0dd6ac0 --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/variable-declaration/expected.js @@ -0,0 +1,4 @@ +var fact5 = (function fact(n) { + if (n <= 1) return 1; + return n * fact(n - 1); +})(5); diff --git a/packages/babel-generator/test/fixtures/flow/array-types/actual.js b/packages/babel-generator/test/fixtures/flow/array-types/actual.js new file mode 100644 index 0000000000..39f1c281a2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/array-types/actual.js @@ -0,0 +1,6 @@ +var a: number[]; +var a: ?number[]; +var a: (?number)[]; +var a: () => number[]; +var a: (() => number)[]; +var a: typeof A[]; diff --git a/packages/babel-generator/test/fixtures/flow/array-types/expected.js b/packages/babel-generator/test/fixtures/flow/array-types/expected.js new file mode 100644 index 0000000000..39f1c281a2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/array-types/expected.js @@ -0,0 +1,6 @@ +var a: number[]; +var a: ?number[]; +var a: (?number)[]; +var a: () => number[]; +var a: (() => number)[]; +var a: typeof A[]; diff --git a/packages/babel-generator/test/fixtures/flow/boolean-literal-types/actual.js b/packages/babel-generator/test/fixtures/flow/boolean-literal-types/actual.js new file mode 100644 index 0000000000..8573e6b69e --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/boolean-literal-types/actual.js @@ -0,0 +1,2 @@ +var foo: true; +var bar: false; diff --git a/packages/babel-generator/test/fixtures/flow/boolean-literal-types/expected.js b/packages/babel-generator/test/fixtures/flow/boolean-literal-types/expected.js new file mode 100644 index 0000000000..8573e6b69e --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/boolean-literal-types/expected.js @@ -0,0 +1,2 @@ +var foo: true; +var bar: false; diff --git a/packages/babel-generator/test/fixtures/flow/call-properties/actual.js b/packages/babel-generator/test/fixtures/flow/call-properties/actual.js new file mode 100644 index 0000000000..62f0a1b259 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/call-properties/actual.js @@ -0,0 +1,5 @@ +var a: { (): number }; +var a: { (): number; }; +var a: { (): number; y: string; (x: string): string }; +var a: { (x: T): number; }; +interface A { (): number; }; diff --git a/packages/babel-generator/test/fixtures/flow/call-properties/expected.js b/packages/babel-generator/test/fixtures/flow/call-properties/expected.js new file mode 100644 index 0000000000..11d4f2a107 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/call-properties/expected.js @@ -0,0 +1,5 @@ +var a: { (): number }; +var a: { (): number }; +var a: { y: string; (): number; (x: string): string; }; +var a: { (x: T): number }; +interface A { (): number }; diff --git a/packages/babel-generator/test/fixtures/flow/declare-module/actual.js b/packages/babel-generator/test/fixtures/flow/declare-module/actual.js new file mode 100644 index 0000000000..7612b7dc0d --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/declare-module/actual.js @@ -0,0 +1,5 @@ +declare module A {} +declare module "./a/b.js" {} +declare module A { declare var x: number; } +declare module A { declare function foo(): number; } +declare module A { declare class B { foo(): number; } } diff --git a/packages/babel-generator/test/fixtures/flow/declare-module/expected.js b/packages/babel-generator/test/fixtures/flow/declare-module/expected.js new file mode 100644 index 0000000000..0b6fbd09e0 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/declare-module/expected.js @@ -0,0 +1,11 @@ +declare module A {} +declare module "./a/b.js" {} +declare module A { + declare var x: number; +} +declare module A { + declare function foo(): number; +} +declare module A { + declare class B { foo(): number } +} diff --git a/packages/babel-generator/test/fixtures/flow/declare-statements/actual.js b/packages/babel-generator/test/fixtures/flow/declare-statements/actual.js new file mode 100644 index 0000000000..369f608fa2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/declare-statements/actual.js @@ -0,0 +1,11 @@ +declare var foo +declare var foo; +declare function foo(): void +declare function foo(): void; +declare function foo(): void; +declare function foo(x: number, y: string): void; +declare class A {} +declare class A extends B { x: number } +declare class A { static foo(): number; static x : string } +declare class A { static [ indexer: number]: string } +declare class A { static () : number } diff --git a/packages/babel-generator/test/fixtures/flow/declare-statements/expected.js b/packages/babel-generator/test/fixtures/flow/declare-statements/expected.js new file mode 100644 index 0000000000..323cc86f70 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/declare-statements/expected.js @@ -0,0 +1,11 @@ +declare var foo; +declare var foo; +declare function foo(): void; +declare function foo(): void; +declare function foo(): void; +declare function foo(x: number, y: string): void; +declare class A {} +declare class A extends B { x: number } +declare class A { static foo(): number; static x: string; } +declare class A { static [indexer: number]: string } +declare class A { static (): number } diff --git a/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/actual.js b/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/actual.js new file mode 100644 index 0000000000..f55148215c --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/actual.js @@ -0,0 +1,9 @@ +interface A {}; +interface A extends B {}; +interface A extends B, C {}; +interface A { foo: () => number; }; +interface Dictionary { [index: string]: string; length: number; }; +class Foo implements Bar {} +class Foo extends Bar implements Bat, Man {} +class Foo extends class Bar implements Bat {} {} +class Foo extends class Bar implements Bat {} implements Man {} diff --git a/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/expected.js b/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/expected.js new file mode 100644 index 0000000000..90aafb539e --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/interfaces-module-and-script/expected.js @@ -0,0 +1,9 @@ +interface A {}; +interface A extends B {}; +interface A extends B, C {}; +interface A { foo(): number }; +interface Dictionary { length: number; [index: string]: string; }; +class Foo implements Bar {} +class Foo extends Bar implements Bat, Man {} +class Foo extends class Bar implements Bat {} {} +class Foo extends class Bar implements Bat {} implements Man {} diff --git a/packages/babel-generator/test/fixtures/flow/number-literal-types/actual.js b/packages/babel-generator/test/fixtures/flow/number-literal-types/actual.js new file mode 100644 index 0000000000..8aa0ffac4b --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/number-literal-types/actual.js @@ -0,0 +1,5 @@ +var a: 123; +var a: 123.0; +var a: 0x7B; +var a: 0b1111011; +var a: 0o173; diff --git a/packages/babel-generator/test/fixtures/flow/number-literal-types/expected.js b/packages/babel-generator/test/fixtures/flow/number-literal-types/expected.js new file mode 100644 index 0000000000..8aa0ffac4b --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/number-literal-types/expected.js @@ -0,0 +1,5 @@ +var a: 123; +var a: 123.0; +var a: 0x7B; +var a: 0b1111011; +var a: 0o173; diff --git a/packages/babel-generator/test/fixtures/flow/qualified-generic-type/actual.js b/packages/babel-generator/test/fixtures/flow/qualified-generic-type/actual.js new file mode 100644 index 0000000000..040a63c165 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/qualified-generic-type/actual.js @@ -0,0 +1,4 @@ +var a: A.B; +var a: A.B.C; +var a: A.B; +var a: typeof A.B; diff --git a/packages/babel-generator/test/fixtures/flow/qualified-generic-type/expected.js b/packages/babel-generator/test/fixtures/flow/qualified-generic-type/expected.js new file mode 100644 index 0000000000..040a63c165 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/qualified-generic-type/expected.js @@ -0,0 +1,4 @@ +var a: A.B; +var a: A.B.C; +var a: A.B; +var a: typeof A.B; diff --git a/packages/babel-generator/test/fixtures/flow/string-literal-types/actual.js b/packages/babel-generator/test/fixtures/flow/string-literal-types/actual.js new file mode 100644 index 0000000000..6acd7f1342 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/string-literal-types/actual.js @@ -0,0 +1,2 @@ +function createElement(tagName: "div"): HTMLDivElement {} +function createElement(tagName: 'div'): HTMLDivElement {} diff --git a/packages/babel-generator/test/fixtures/flow/string-literal-types/expected.js b/packages/babel-generator/test/fixtures/flow/string-literal-types/expected.js new file mode 100644 index 0000000000..6acd7f1342 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/string-literal-types/expected.js @@ -0,0 +1,2 @@ +function createElement(tagName: "div"): HTMLDivElement {} +function createElement(tagName: 'div'): HTMLDivElement {} diff --git a/packages/babel-generator/test/fixtures/flow/tuples/actual.js b/packages/babel-generator/test/fixtures/flow/tuples/actual.js new file mode 100644 index 0000000000..4c4291e8b2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/tuples/actual.js @@ -0,0 +1,4 @@ +var a: [] = []; +var a: [Foo] = [foo]; +var a: [number,] = [123,]; +var a: [number, string] = [123, "duck"]; diff --git a/packages/babel-generator/test/fixtures/flow/tuples/expected.js b/packages/babel-generator/test/fixtures/flow/tuples/expected.js new file mode 100644 index 0000000000..2fb1a921e0 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/tuples/expected.js @@ -0,0 +1,4 @@ +var a: [] = []; +var a: [Foo] = [foo]; +var a: [number] = [123]; +var a: [number, string] = [123, "duck"]; diff --git a/packages/babel-generator/test/fixtures/flow/type-alias/actual.js b/packages/babel-generator/test/fixtures/flow/type-alias/actual.js new file mode 100644 index 0000000000..a56fa1a17b --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/type-alias/actual.js @@ -0,0 +1,3 @@ +type FBID = number; +type Foo = Bar +export type Foo = number; diff --git a/packages/babel-generator/test/fixtures/flow/type-alias/expected.js b/packages/babel-generator/test/fixtures/flow/type-alias/expected.js new file mode 100644 index 0000000000..f0a50c1904 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/type-alias/expected.js @@ -0,0 +1,3 @@ +type FBID = number; +type Foo = Bar; +export type Foo = number; diff --git a/packages/babel-generator/test/fixtures/flow/type-annotations/actual.js b/packages/babel-generator/test/fixtures/flow/type-annotations/actual.js new file mode 100644 index 0000000000..2acac2f2d8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/type-annotations/actual.js @@ -0,0 +1,100 @@ +function foo(numVal: any) {} +function foo(numVal: number) {} +function foo(numVal: number, strVal: string) {} +function foo(numVal: number, untypedVal) {} +function foo(untypedVal, numVal: number) {} +function foo(nullableNum: ?number) {} +function foo(callback: () => void) {} +function foo(callback: () => number) {} +function foo(callback: (_: bool) => number) {} +function foo(callback: (_1: bool, _2: string) => number) {} +function foo(callback: (_1: bool, ...foo: Array) => number) {} +function foo(): number{} +function foo():() => void {} +function foo():(_:bool) => number{} +function foo():(_?:bool) => number{} +function foo(): {} {} +function foo() {} +function foo() {} +function foo() {} +a = function() {}; +a = { set fooProp(value: number) {} }; +a = { set fooProp(value: number): void {} }; +a = { get fooProp():number{} }; +a = { id(x: T): T {} }; +a = { *id(x: T): T {} }; +a = { async id(x: T): T {} }; +a = { 123(x: T): T {} }; +class Foo { + set fooProp(value: number) {} +} +class Foo { + set fooProp(value: number): void {} +} +class Foo { + get fooProp(): number {} +} +var numVal: number; +var numVal: number = otherNumVal; +var a: { numVal: number }; +var a: { numVal: number; }; +var a: { numVal: number; [indexer: string]: number }; +var a: ?{ numVal: number }; +var a: { numVal: number; strVal: string } +var a: { subObj: {strVal: string} } +var a: { subObj: ?{strVal: string} } +var a: { param1: number; param2: string } +var a: { param1: number; param2?: string } +var a: { [a: number]: string; [b: number]: string; }; +var a: { add(x: number, ...y: Array): void }; +var a: { id(x: T): T; }; +var a:Array = [1, 2, 3] +a = class Foo {} +a = class Foo extends Bar {} +class Foo {} +class Foo extends Bar {} +class Foo extends mixin(Bar) {} +class Foo { + bar():number { return 42; } +} +class Foo { + "bar"() {} +} +function foo(requiredParam, optParam?) {} +class Foo { + prop1: string; + prop2: number; +} +class Foo { + static prop1: string; + prop2: number; +} +var x: number | string = 4; +class Array { concat(items:number | string) {}; } +var x: () => number | () => string = fn; +var x: typeof Y = Y; +var x: typeof Y | number = Y; +var {x}: {x: string; } = { x: "hello" }; +var {x}: {x: string } = { x: "hello" }; +var [x]: Array = [ "hello" ]; +function foo({x}: { x: string; }) {} +function foo([x]: Array) {} +function foo(...rest: Array) {} +(function (...rest: Array) {}); +((...rest: Array) => rest); +var a: Map > +var a: Map> +var a: number[] +var a: ?string[] +var a: Promise[] +var a:(...rest:Array) => number +var identity: (x: T) => T +var identity: (x: T, ...y:T[]) => T +import type foo from "bar"; +import type { foo, bar } from "baz"; +import type { foo as bar } from "baz"; +import type from "foo"; +import type, { foo } from "bar"; +import type * as namespace from "bar"; +export type { foo }; +export type { foo } from "bar"; diff --git a/packages/babel-generator/test/fixtures/flow/type-annotations/expected.js b/packages/babel-generator/test/fixtures/flow/type-annotations/expected.js new file mode 100644 index 0000000000..f263cf9bd5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/type-annotations/expected.js @@ -0,0 +1,104 @@ +function foo(numVal: any) {} +function foo(numVal: number) {} +function foo(numVal: number, strVal: string) {} +function foo(numVal: number, untypedVal) {} +function foo(untypedVal, numVal: number) {} +function foo(nullableNum: ?number) {} +function foo(callback: () => void) {} +function foo(callback: () => number) {} +function foo(callback: (_: bool) => number) {} +function foo(callback: (_1: bool, _2: string) => number) {} +function foo(callback: (_1: bool, ...foo: Array) => number) {} +function foo(): number {} +function foo(): () => void {} +function foo(): (_: bool) => number {} +function foo(): (_?: bool) => number {} +function foo(): {} {} +function foo() {} +function foo() {} +function foo() {} +a = function () {}; +a = { set fooProp(value: number) {} }; +a = { set fooProp(value: number): void {} }; +a = { get fooProp(): number {} }; +a = { id(x: T): T {} }; +a = { *id(x: T): T {} }; +a = { async id(x: T): T {} }; +a = { 123(x: T): T {} }; +class Foo { + set fooProp(value: number) {} +} +class Foo { + set fooProp(value: number): void {} +} +class Foo { + get fooProp(): number {} +} +var numVal: number; +var numVal: number = otherNumVal; +var a: { numVal: number }; +var a: { numVal: number }; +var a: { numVal: number; [indexer: string]: number; }; +var a: ?{ numVal: number }; +var a: { numVal: number; strVal: string; }; +var a: { subObj: { strVal: string } }; +var a: { subObj: ?{ strVal: string } }; +var a: { param1: number; param2: string; }; +var a: { param1: number; param2?: string; }; +var a: { [a: number]: string; [b: number]: string; }; +var a: { add(x: number, ...y: Array): void }; +var a: { id(x: T): T }; +var a: Array = [1, 2, 3]; +a = class Foo {}; +a = class Foo extends Bar {}; +class Foo {} +class Foo extends Bar {} +class Foo extends mixin(Bar) {} +class Foo { + bar(): number { + return 42; + } +} +class Foo { + "bar"() {} +} +function foo(requiredParam, optParam?) {} +class Foo { + prop1: string; + prop2: number; +} +class Foo { + static prop1: string; + prop2: number; +} +var x: number | string = 4; +class Array { + concat(items: number | string) {} +} +var x: () => number | () => string = fn; +var x: typeof Y = Y; +var x: typeof Y | number = Y; +var { x }: { x: string } = { x: "hello" }; +var { x }: { x: string } = { x: "hello" }; +var [x]: Array = ["hello"]; +function foo({ x }: { x: string }) {} +function foo([x]: Array) {} +function foo(...rest: Array) {} +(function (...rest: Array) {}); +(...rest: Array) => rest; +var a: Map>; +var a: Map>; +var a: number[]; +var a: ?string[]; +var a: Promise[]; +var a: (...rest: Array) => number; +var identity: (x: T) => T; +var identity: (x: T, ...y: T[]) => T; +import type foo from "bar"; +import type { foo, bar } from "baz"; +import type { foo as bar } from "baz"; +import type from "foo"; +import type, { foo } from "bar"; +import type * as namespace from "bar"; +export type { foo }; +export type { foo } from "bar"; diff --git a/packages/babel-generator/test/fixtures/flow/typecasts/actual.js b/packages/babel-generator/test/fixtures/flow/typecasts/actual.js new file mode 100644 index 0000000000..aa691e87d2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/typecasts/actual.js @@ -0,0 +1,4 @@ +(xxx: number); +({ xxx: 0, yyy: "hey" }: { xxx: number; yyy: string }); +(xxx => xxx + 1: (xxx: number) => number); +((xxx: number), (yyy: string)); diff --git a/packages/babel-generator/test/fixtures/flow/typecasts/expected.js b/packages/babel-generator/test/fixtures/flow/typecasts/expected.js new file mode 100644 index 0000000000..69c9dc4b93 --- /dev/null +++ b/packages/babel-generator/test/fixtures/flow/typecasts/expected.js @@ -0,0 +1,4 @@ +(xxx: number); +({ xxx: 0, yyy: "hey" }: { xxx: number; yyy: string; }); +(xxx => xxx + 1: (xxx: number) => number); +(xxx: number), (yyy: string); diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/actual.js new file mode 100644 index 0000000000..21333a47b5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/actual.js @@ -0,0 +1,11 @@ +e => { + print("hello world"); +}; +(e1, e2, e3) => { + print("hello world"); +}; +e => e; +(e1, e2, e3) => e; +(e) => { +}; +e => 20 + 20 diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/expected.js new file mode 100644 index 0000000000..665c99a5cb --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/arrow-function/expected.js @@ -0,0 +1,10 @@ +e => { + print("hello world"); +}; +(e1, e2, e3) => { + print("hello world"); +}; +e => e; +(e1, e2, e3) => e; +e => {}; +e => 20 + 20; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/actual.js new file mode 100644 index 0000000000..46e3476c79 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/actual.js @@ -0,0 +1,56 @@ +class Test { +} +class Derived extends Super { +} +class StaticMethods { + static n1() { + } + + static get get1() { + } + + static set set1(value) { + } + + static *gen1() { + } +} +class Methods { + n2() { + } + + get get2() { + } + + set set2(value) { + } + + *gen1() { + } +} +class ComputedStaticMethods { + static [n1]() { + } + + static get [get1]() { + } + + static set [set1](value) { + } + + static *[gen1]() { + } +} +class ComputedMethods { + [n2]() { + } + + get [get2]() { + } + + set [set2](value) { + } + + *[gen1]() { + } +} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/expected.js new file mode 100644 index 0000000000..ee25d48aa9 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/class-declaration/expected.js @@ -0,0 +1,38 @@ +class Test {} +class Derived extends Super {} +class StaticMethods { + static n1() {} + + static get get1() {} + + static set set1(value) {} + + static *gen1() {} +} +class Methods { + n2() {} + + get get2() {} + + set set2(value) {} + + *gen1() {} +} +class ComputedStaticMethods { + static [n1]() {} + + static get [get1]() {} + + static set [set1](value) {} + + static *[gen1]() {} +} +class ComputedMethods { + [n2]() {} + + get [get2]() {} + + set [set2](value) {} + + *[gen1]() {} +} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/actual.js new file mode 100644 index 0000000000..209eada40b --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/actual.js @@ -0,0 +1,55 @@ +(class Test { }); +(class Derived extends Super { }); +(class StaticMethods { + static n1() { + } + + static get get1() { + } + + static set set1(value) { + } + + static *gen1() { + } +}); +(class Methods { + n2() { + } + + get get2() { + } + + set set2(value) { + } + + *gen1() { + } +}); +(class ComputedStaticMethods { + static [n1]() { + } + + static get [get1]() { + } + + static set [set1](value) { + } + + static *[gen1]() { + } +}); +(class ComputedMethods { + [n2]() { + } + + get [get2]() { + } + + set [set2](value) { + } + + *[gen1]() { + } +}); +(class { }); diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/expected.js new file mode 100644 index 0000000000..d49bc099bc --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/class-expression/expected.js @@ -0,0 +1,39 @@ +(class Test {}); +(class Derived extends Super {}); +(class StaticMethods { + static n1() {} + + static get get1() {} + + static set set1(value) {} + + static *gen1() {} +}); +(class Methods { + n2() {} + + get get2() {} + + set set2(value) {} + + *gen1() {} +}); +(class ComputedStaticMethods { + static [n1]() {} + + static get [get1]() {} + + static set [set1](value) {} + + static *[gen1]() {} +}); +(class ComputedMethods { + [n2]() {} + + get [get2]() {} + + set [set2](value) {} + + *[gen1]() {} +}); +(class {}); diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/actual.js new file mode 100644 index 0000000000..e5db5ac150 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/actual.js @@ -0,0 +1,14 @@ +var object1 = { + get [Symbol.create]() { }, + set [set()](value) { } +}; +var object2 = { + *[generator()]() { } +}; +var object3 = { + *[generator()]() { } +}; +var object4 = { + [Symbol.xxx]: "hello", + [ok()]: 42 +}; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/expected.js new file mode 100644 index 0000000000..f691ac68dc --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/computed-property/expected.js @@ -0,0 +1,14 @@ +var object1 = { + get [Symbol.create]() {}, + set [set()](value) {} +}; +var object2 = { + *[generator()]() {} +}; +var object3 = { + *[generator()]() {} +}; +var object4 = { + [Symbol.xxx]: "hello", + [ok()]: 42 +}; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/actual.js new file mode 100644 index 0000000000..aa61f5ec66 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/actual.js @@ -0,0 +1,11 @@ +function a(p=20) { +} + +function b(p, q=30) { +} + +function c(p, q=30, ...r) { +} + +(p = 20) => { }; +(p = 20, ...q) => { }; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/expected.js new file mode 100644 index 0000000000..bc5604fa1b --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/default-parameter/expected.js @@ -0,0 +1,8 @@ +function a(p = 20) {} + +function b(p, q = 30) {} + +function c(p, q = 30, ...r) {} + +(p = 20) => {}; +(p = 20, ...q) => {}; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/actual.js new file mode 100644 index 0000000000..b9325bbae1 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/actual.js @@ -0,0 +1,18 @@ +function t1({responseText: responseText}) { +} +function t2({responseText}) { +} +function t3([a, b]) { +} +var [i, j, k] = array; +var { + i, + j, + k +} = obj; +let {i, j, k} = obj; +const {i, j, k} = obj; +var { value } = obj; +var { + value +} = obj; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/expected.js new file mode 100644 index 0000000000..d32b4e5bae --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/destructuring-assignment/expected.js @@ -0,0 +1,15 @@ +function t1({ responseText: responseText }) {} +function t2({ responseText }) {} +function t3([a, b]) {} +var [i, j, k] = array; +var { + i, + j, + k +} = obj; +let { i, j, k } = obj; +const { i, j, k } = obj; +var { value } = obj; +var { + value +} = obj; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/actual.js new file mode 100644 index 0000000000..3d8267c6c7 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/actual.js @@ -0,0 +1 @@ +export default function a () { } diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/expected.js new file mode 100644 index 0000000000..c33f5633d7 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/export-default-declaration/expected.js @@ -0,0 +1 @@ +export default function a() {} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/exports/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/exports/actual.js new file mode 100644 index 0000000000..d76fe5a8ad --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/exports/actual.js @@ -0,0 +1,9 @@ +export * from "OK" +export { name } from "OK" +export { a as b, c as d } from "hello" +export { a as b, c as d } +export { } +export default i = 20 +export function test() { } +export var i = 20 +export let i = 42 diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/exports/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/exports/expected.js new file mode 100644 index 0000000000..269678f691 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/exports/expected.js @@ -0,0 +1,9 @@ +export * from "OK"; +export { name } from "OK"; +export { a as b, c as d } from "hello"; +export { a as b, c as d }; +export {}; +export default i = 20; +export function test() {} +export var i = 20; +export let i = 42; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/actual.js new file mode 100644 index 0000000000..0cffaf8dc1 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/actual.js @@ -0,0 +1,7 @@ +function test() { + for (var i of array) { + } + + for (let i of array) { + } +} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/expected.js new file mode 100644 index 0000000000..be22a40333 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/for-of-statement/expected.js @@ -0,0 +1,5 @@ +function test() { + for (var i of array) {} + + for (let i of array) {} +} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/actual.js new file mode 100644 index 0000000000..7fb048846d --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/actual.js @@ -0,0 +1,7 @@ +import foo from "foo"; +import * as foo from "foo"; +import ok, { + foo as bar, + test as testing, + logging +} from "foo"; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/expected.js new file mode 100644 index 0000000000..530a0ce14b --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/import-with-default/expected.js @@ -0,0 +1,3 @@ +import foo from "foo"; +import * as foo from "foo"; +import ok, { foo as bar, test as testing, logging } from "foo"; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/imports/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/imports/actual.js new file mode 100644 index 0000000000..98bbc6bbcb --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/imports/actual.js @@ -0,0 +1,8 @@ +import "foo"; +import {foo} from "foo"; +import {foo as bar} from "foo"; +import { + foo as bar, + test as testing, + logging +} from "foo"; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/imports/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/imports/expected.js new file mode 100644 index 0000000000..d4d486ece9 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/imports/expected.js @@ -0,0 +1,4 @@ +import "foo"; +import { foo } from "foo"; +import { foo as bar } from "foo"; +import { foo as bar, test as testing, logging } from "foo"; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/actual.js new file mode 100644 index 0000000000..c4cd936913 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/actual.js @@ -0,0 +1,5 @@ +var [a, b, ...rest] = array; +const [a, b, ...rest] = array; +function a([a, b, ...rest]) { +} +([a, b, ...rest]) => { }; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/expected.js new file mode 100644 index 0000000000..bdad6cc5aa --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/spread-element/expected.js @@ -0,0 +1,4 @@ +var [a, b, ...rest] = array; +const [a, b, ...rest] = array; +function a([a, b, ...rest]) {} +([a, b, ...rest]) => {}; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/actual.js new file mode 100644 index 0000000000..5d8a96d54f --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/actual.js @@ -0,0 +1,12 @@ +var escaped = ` +\u2028 +\u2029 +`; + +var escaped = ` +\v +\b +\t +\n +\r +`; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/expected.js new file mode 100644 index 0000000000..5d8a96d54f --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/templates-escape/expected.js @@ -0,0 +1,12 @@ +var escaped = ` +\u2028 +\u2029 +`; + +var escaped = ` +\v +\b +\t +\n +\r +`; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/templates/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/templates/actual.js new file mode 100644 index 0000000000..153f90d596 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/templates/actual.js @@ -0,0 +1,31 @@ +var hello = `hello`; + +var hello = ` +line +terminators`; + +var tagged = tagged`hello`; +var tagged = member.call`hello`; +var tagged = new call`hello`; +var tagged = new (call`hello`()); +var tageed = member[call`hello`]; + +var middles = ` +Is the order a rabbit? +`; + +var middles = ` +Is the order ${ order }? +`; + +var middles = ` +Is the order ${ order }? +`; + +var middles = ` +1. ${ cocoa } +2. ${ chino } +3. ${ rize } +4. ${ syaro } +5. ${ chiya } +`; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/templates/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/templates/expected.js new file mode 100644 index 0000000000..93ff1e3ebb --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/templates/expected.js @@ -0,0 +1,31 @@ +var hello = `hello`; + +var hello = ` +line +terminators`; + +var tagged = tagged`hello`; +var tagged = member.call`hello`; +var tagged = new call`hello`(); +var tagged = new (call`hello`())(); +var tageed = member[call`hello`]; + +var middles = ` +Is the order a rabbit? +`; + +var middles = ` +Is the order ${ order }? +`; + +var middles = ` +Is the order ${ order }? +`; + +var middles = ` +1. ${ cocoa } +2. ${ chino } +3. ${ rize } +4. ${ syaro } +5. ${ chiya } +`; diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/actual.js b/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/actual.js new file mode 100644 index 0000000000..c5cd08ca3a --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/actual.js @@ -0,0 +1,7 @@ +function *foo () { + var a = yield wat(), b = 2; + var c = yield a = b; + yield a, yield b; + yield a = b; + return (yield 1) || (yield 2); +} diff --git a/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/expected.js b/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/expected.js new file mode 100644 index 0000000000..302ffe6c55 --- /dev/null +++ b/packages/babel-generator/test/fixtures/harmony-edgecase/yield-precedence/expected.js @@ -0,0 +1,8 @@ +function* foo() { + var a = yield wat(), + b = 2; + var c = yield a = b; + yield a, yield b; + yield a = b; + return (yield 1) || (yield 2); +} diff --git a/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/actual.js b/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/actual.js new file mode 100644 index 0000000000..d9187763fe --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/actual.js @@ -0,0 +1,4 @@ +var foo = arr.map(v => ({ + x: v.bar, + y: v.bar*2 +})); diff --git a/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/expected.js b/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/expected.js new file mode 100644 index 0000000000..18f4fa7da5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/arrow-function-object-body/expected.js @@ -0,0 +1,4 @@ +var foo = arr.map(v => ({ + x: v.bar, + y: v.bar * 2 +})); diff --git a/packages/babel-generator/test/fixtures/parentheses/terminator-break/actual.js b/packages/babel-generator/test/fixtures/parentheses/terminator-break/actual.js new file mode 100644 index 0000000000..ad3ad2eecf --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/terminator-break/actual.js @@ -0,0 +1,12 @@ +function foo() { + return ( // foobar + "bar" + ); +} + +function foo() { + return ( + // foobar + "bar" + ); +} diff --git a/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js b/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js new file mode 100644 index 0000000000..e6604a1cf0 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/terminator-break/expected.js @@ -0,0 +1,12 @@ +function foo() { + return (// foobar + "bar" + ); +} + +function foo() { + return( + // foobar + "bar" + ); +} diff --git a/packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/actual.js b/packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/actual.js new file mode 100644 index 0000000000..20076ec145 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/actual.js @@ -0,0 +1,5 @@ +[a, b, c]; +[[], [b, c], []]; +[a,, b,]; +[a,,,, b]; +[a, b,, c]; diff --git a/packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/expected.js b/packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/expected.js new file mode 100644 index 0000000000..472dd398ba --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ArrayExpression-ArrayPattern/expected.js @@ -0,0 +1,5 @@ +[a, b, c]; +[[], [b, c], []]; +[a,, b]; +[a,,,, b]; +[a, b,, c]; diff --git a/packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/actual.js b/packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/actual.js new file mode 100644 index 0000000000..359ef770df --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/actual.js @@ -0,0 +1,4 @@ +var foo = x => x * x; +var foo = (a, b) => a * b; +var foo = async x => x * x; +var foo = async (a, b) => a * b; diff --git a/packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/expected.js b/packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/expected.js new file mode 100644 index 0000000000..359ef770df --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ArrowFunctionExpression/expected.js @@ -0,0 +1,4 @@ +var foo = x => x * x; +var foo = (a, b) => a * b; +var foo = async x => x * x; +var foo = async (a, b) => a * b; diff --git a/packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js b/packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js new file mode 100644 index 0000000000..5cdce74d9b --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js @@ -0,0 +1,3 @@ +foo === bar; +foo + bar; +foo = bar; diff --git a/packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js b/packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js new file mode 100644 index 0000000000..5cdce74d9b --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js @@ -0,0 +1,3 @@ +foo === bar; +foo + bar; +foo = bar; diff --git a/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js b/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js new file mode 100644 index 0000000000..17bd494915 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/AwaitExpression/actual.js @@ -0,0 +1,7 @@ +async function foo() { + await bar(); +} + +async function bar() { + await* foo(); +} diff --git a/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js b/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js new file mode 100644 index 0000000000..17bd494915 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/AwaitExpression/expected.js @@ -0,0 +1,7 @@ +async function foo() { + await bar(); +} + +async function bar() { + await* foo(); +} diff --git a/packages/babel-generator/test/fixtures/types/BindExpression/actual.js b/packages/babel-generator/test/fixtures/types/BindExpression/actual.js new file mode 100644 index 0000000000..c78d72da44 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/BindExpression/actual.js @@ -0,0 +1,5 @@ +::foo.bar.foo; +::foo.bar["foo"]; + +ctx::foo.bar.foo; +ctx::foo.bar["foo"]; diff --git a/packages/babel-generator/test/fixtures/types/BindExpression/expected.js b/packages/babel-generator/test/fixtures/types/BindExpression/expected.js new file mode 100644 index 0000000000..c78d72da44 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/BindExpression/expected.js @@ -0,0 +1,5 @@ +::foo.bar.foo; +::foo.bar["foo"]; + +ctx::foo.bar.foo; +ctx::foo.bar["foo"]; diff --git a/packages/babel-generator/test/fixtures/types/BlockStatement/actual.js b/packages/babel-generator/test/fixtures/types/BlockStatement/actual.js new file mode 100644 index 0000000000..f9ce0d4e58 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/BlockStatement/actual.js @@ -0,0 +1,5 @@ +{} + +{ + foo(); +} diff --git a/packages/babel-generator/test/fixtures/types/BlockStatement/expected.js b/packages/babel-generator/test/fixtures/types/BlockStatement/expected.js new file mode 100644 index 0000000000..f9ce0d4e58 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/BlockStatement/expected.js @@ -0,0 +1,5 @@ +{} + +{ + foo(); +} diff --git a/packages/babel-generator/test/fixtures/types/BreakStatement/actual.js b/packages/babel-generator/test/fixtures/types/BreakStatement/actual.js new file mode 100644 index 0000000000..21e486a7df --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/BreakStatement/actual.js @@ -0,0 +1,7 @@ +for (var i in foo) { + break; +} + +foo: for (var i in foo) { + break foo; +} diff --git a/packages/babel-generator/test/fixtures/types/BreakStatement/expected.js b/packages/babel-generator/test/fixtures/types/BreakStatement/expected.js new file mode 100644 index 0000000000..21e486a7df --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/BreakStatement/expected.js @@ -0,0 +1,7 @@ +for (var i in foo) { + break; +} + +foo: for (var i in foo) { + break foo; +} diff --git a/packages/babel-generator/test/fixtures/types/CallExpression/actual.js b/packages/babel-generator/test/fixtures/types/CallExpression/actual.js new file mode 100644 index 0000000000..356fa149e2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/CallExpression/actual.js @@ -0,0 +1,5 @@ +foo(); +foo("foo"); +foo("foo", "bar"); +foo(bar()); +foo(bar("test")); diff --git a/packages/babel-generator/test/fixtures/types/CallExpression/expected.js b/packages/babel-generator/test/fixtures/types/CallExpression/expected.js new file mode 100644 index 0000000000..356fa149e2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/CallExpression/expected.js @@ -0,0 +1,5 @@ +foo(); +foo("foo"); +foo("foo", "bar"); +foo(bar()); +foo(bar("test")); diff --git a/packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/actual.js b/packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/actual.js new file mode 100644 index 0000000000..1e431aa75b --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/actual.js @@ -0,0 +1,13 @@ +class Foo { + async foo() {} + foo() {} + ["foo"]() {} + get foo() {} + set foo(bar) {} + + static async foo() {} + static foo() {} + static ["foo"]() {} + static get foo() {} + static set foo(bar) {} +} diff --git a/packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/expected.js b/packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/expected.js new file mode 100644 index 0000000000..1e431aa75b --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ClassBody-MethodDefinition/expected.js @@ -0,0 +1,13 @@ +class Foo { + async foo() {} + foo() {} + ["foo"]() {} + get foo() {} + set foo(bar) {} + + static async foo() {} + static foo() {} + static ["foo"]() {} + static get foo() {} + static set foo(bar) {} +} diff --git a/packages/babel-generator/test/fixtures/types/ClassDeclaration/actual.js b/packages/babel-generator/test/fixtures/types/ClassDeclaration/actual.js new file mode 100644 index 0000000000..072c7c10e6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ClassDeclaration/actual.js @@ -0,0 +1,2 @@ +var foo = class Foo {}; +var foo = class Foo extends Bar {}; diff --git a/packages/babel-generator/test/fixtures/types/ClassDeclaration/expected.js b/packages/babel-generator/test/fixtures/types/ClassDeclaration/expected.js new file mode 100644 index 0000000000..072c7c10e6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ClassDeclaration/expected.js @@ -0,0 +1,2 @@ +var foo = class Foo {}; +var foo = class Foo extends Bar {}; diff --git a/packages/babel-generator/test/fixtures/types/ClassExpression/actual.js b/packages/babel-generator/test/fixtures/types/ClassExpression/actual.js new file mode 100644 index 0000000000..1931f1faea --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ClassExpression/actual.js @@ -0,0 +1,2 @@ +class Foo {} +class Foo extends Bar {} diff --git a/packages/babel-generator/test/fixtures/types/ClassExpression/expected.js b/packages/babel-generator/test/fixtures/types/ClassExpression/expected.js new file mode 100644 index 0000000000..1931f1faea --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ClassExpression/expected.js @@ -0,0 +1,2 @@ +class Foo {} +class Foo extends Bar {} diff --git a/packages/babel-generator/test/fixtures/types/ConditionalExpression/actual.js b/packages/babel-generator/test/fixtures/types/ConditionalExpression/actual.js new file mode 100644 index 0000000000..58ab924af4 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ConditionalExpression/actual.js @@ -0,0 +1 @@ +foo ? foo : bar; diff --git a/packages/babel-generator/test/fixtures/types/ConditionalExpression/expected.js b/packages/babel-generator/test/fixtures/types/ConditionalExpression/expected.js new file mode 100644 index 0000000000..58ab924af4 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ConditionalExpression/expected.js @@ -0,0 +1 @@ +foo ? foo : bar; diff --git a/packages/babel-generator/test/fixtures/types/ContinueStatement/actual.js b/packages/babel-generator/test/fixtures/types/ContinueStatement/actual.js new file mode 100644 index 0000000000..593fe2c367 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ContinueStatement/actual.js @@ -0,0 +1,7 @@ +for (var i in foo) { + continue; +} + +foo: for (var i in foo) { + continue foo; +} diff --git a/packages/babel-generator/test/fixtures/types/ContinueStatement/expected.js b/packages/babel-generator/test/fixtures/types/ContinueStatement/expected.js new file mode 100644 index 0000000000..593fe2c367 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ContinueStatement/expected.js @@ -0,0 +1,7 @@ +for (var i in foo) { + continue; +} + +foo: for (var i in foo) { + continue foo; +} diff --git a/packages/babel-generator/test/fixtures/types/DebuggerStatement/actual.js b/packages/babel-generator/test/fixtures/types/DebuggerStatement/actual.js new file mode 100644 index 0000000000..eab7469213 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DebuggerStatement/actual.js @@ -0,0 +1 @@ +debugger; diff --git a/packages/babel-generator/test/fixtures/types/DebuggerStatement/expected.js b/packages/babel-generator/test/fixtures/types/DebuggerStatement/expected.js new file mode 100644 index 0000000000..eab7469213 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DebuggerStatement/expected.js @@ -0,0 +1 @@ +debugger; diff --git a/packages/babel-generator/test/fixtures/types/Decorator/actual.js b/packages/babel-generator/test/fixtures/types/Decorator/actual.js new file mode 100644 index 0000000000..d0b6d43621 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/Decorator/actual.js @@ -0,0 +1,31 @@ +var obj = { + @foo + @bar + foo: "bar", + + @foo + @bar + foo() {}, + + @foo + get foo() {}, + + @bar + set bar(foo) {} +}; + +class Foo { + @foo + @bar + foo() {} + + @foo + @bar + foo() {} + + @foo + get foo() {} + + @bar + set bar(foo) {} +} diff --git a/packages/babel-generator/test/fixtures/types/Decorator/expected.js b/packages/babel-generator/test/fixtures/types/Decorator/expected.js new file mode 100644 index 0000000000..d0b6d43621 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/Decorator/expected.js @@ -0,0 +1,31 @@ +var obj = { + @foo + @bar + foo: "bar", + + @foo + @bar + foo() {}, + + @foo + get foo() {}, + + @bar + set bar(foo) {} +}; + +class Foo { + @foo + @bar + foo() {} + + @foo + @bar + foo() {} + + @foo + get foo() {} + + @bar + set bar(foo) {} +} diff --git a/packages/babel-generator/test/fixtures/types/DoWhileStatement/actual.js b/packages/babel-generator/test/fixtures/types/DoWhileStatement/actual.js new file mode 100644 index 0000000000..c567c9b0c5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DoWhileStatement/actual.js @@ -0,0 +1,5 @@ +do { + test(); +} while (true); + +do {} while (true); diff --git a/packages/babel-generator/test/fixtures/types/DoWhileStatement/expected.js b/packages/babel-generator/test/fixtures/types/DoWhileStatement/expected.js new file mode 100644 index 0000000000..c567c9b0c5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/DoWhileStatement/expected.js @@ -0,0 +1,5 @@ +do { + test(); +} while (true); + +do {} while (true); diff --git a/packages/babel-generator/test/fixtures/types/EmptyStatement/actual.js b/packages/babel-generator/test/fixtures/types/EmptyStatement/actual.js new file mode 100644 index 0000000000..092bc2b041 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/EmptyStatement/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/EmptyStatement/expected.js b/packages/babel-generator/test/fixtures/types/EmptyStatement/expected.js new file mode 100644 index 0000000000..092bc2b041 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/EmptyStatement/expected.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js b/packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js new file mode 100644 index 0000000000..288b335663 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js @@ -0,0 +1,31 @@ +export default 42; +export default {}; +export default []; +export default foo; +export default function () {} +export default class {} +export default function foo() {} +export default class Foo {} +export * from "foo"; +export * as foo from "foo"; +export foo from "foo"; +export * as foo, { bar } from "foo"; +export foo, { bar } from "foo"; +export { foo } from "foo"; +export { foo, bar } from "foo"; +export { foo as bar } from "foo"; +export { foo as default } from "foo"; +export { foo as default, bar } from "foo"; +export { foo }; +export { foo, bar }; +export { foo as bar }; +export { foo as default }; +export { foo as default, bar }; +export var foo = 1; +export var foo2 = function () {}; +export var foo3; +export let foo4 = 2; +export let foo5; +export const foo6 = 3; +export function foo7() {} +export class foo8 {} diff --git a/packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js b/packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js new file mode 100644 index 0000000000..288b335663 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js @@ -0,0 +1,31 @@ +export default 42; +export default {}; +export default []; +export default foo; +export default function () {} +export default class {} +export default function foo() {} +export default class Foo {} +export * from "foo"; +export * as foo from "foo"; +export foo from "foo"; +export * as foo, { bar } from "foo"; +export foo, { bar } from "foo"; +export { foo } from "foo"; +export { foo, bar } from "foo"; +export { foo as bar } from "foo"; +export { foo as default } from "foo"; +export { foo as default, bar } from "foo"; +export { foo }; +export { foo, bar }; +export { foo as bar }; +export { foo as default }; +export { foo as default, bar }; +export var foo = 1; +export var foo2 = function () {}; +export var foo3; +export let foo4 = 2; +export let foo5; +export const foo6 = 3; +export function foo7() {} +export class foo8 {} diff --git a/packages/babel-generator/test/fixtures/types/ForInStatement/actual.js b/packages/babel-generator/test/fixtures/types/ForInStatement/actual.js new file mode 100644 index 0000000000..f767fe3b0f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ForInStatement/actual.js @@ -0,0 +1,5 @@ +for (var i in nums) {} + +for (var i in nums) { + nums[i] = nums[i] * nums[i]; +} diff --git a/packages/babel-generator/test/fixtures/types/ForInStatement/expected.js b/packages/babel-generator/test/fixtures/types/ForInStatement/expected.js new file mode 100644 index 0000000000..f767fe3b0f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ForInStatement/expected.js @@ -0,0 +1,5 @@ +for (var i in nums) {} + +for (var i in nums) { + nums[i] = nums[i] * nums[i]; +} diff --git a/packages/babel-generator/test/fixtures/types/ForOfStatement/actual.js b/packages/babel-generator/test/fixtures/types/ForOfStatement/actual.js new file mode 100644 index 0000000000..190da9ebfa --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ForOfStatement/actual.js @@ -0,0 +1,5 @@ +for (var x of nums) {} + +for (var x of nums) { + console.log(x * x); +} diff --git a/packages/babel-generator/test/fixtures/types/ForOfStatement/expected.js b/packages/babel-generator/test/fixtures/types/ForOfStatement/expected.js new file mode 100644 index 0000000000..190da9ebfa --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ForOfStatement/expected.js @@ -0,0 +1,5 @@ +for (var x of nums) {} + +for (var x of nums) { + console.log(x * x); +} diff --git a/packages/babel-generator/test/fixtures/types/ForStatement/actual.js b/packages/babel-generator/test/fixtures/types/ForStatement/actual.js new file mode 100644 index 0000000000..1f82486abe --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ForStatement/actual.js @@ -0,0 +1,3 @@ +for (var i = 0;;) {} +for (var i = 0; i < 5;) {} +for (var i = 0; i < 5; i++) {} diff --git a/packages/babel-generator/test/fixtures/types/ForStatement/expected.js b/packages/babel-generator/test/fixtures/types/ForStatement/expected.js new file mode 100644 index 0000000000..1f82486abe --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ForStatement/expected.js @@ -0,0 +1,3 @@ +for (var i = 0;;) {} +for (var i = 0; i < 5;) {} +for (var i = 0; i < 5; i++) {} diff --git a/packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/actual.js b/packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/actual.js new file mode 100644 index 0000000000..3b31e93eb7 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/actual.js @@ -0,0 +1,23 @@ +function foo(bar = "bar") {} + +function foo(bar = "bar", ...items) {} + +function foo(...items) {} + +function* foo() {} + +function foo() {} + +async function foo() {} + +var foo = function* foo() {}; + +var foo = function foo() {}; + +var foo = async function foo() {}; + +var foo = function* () {}; + +var foo = function () {}; + +var foo = async function () {}; diff --git a/packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/expected.js b/packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/expected.js new file mode 100644 index 0000000000..3b31e93eb7 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/FunctionDeclaration-FunctionExpression/expected.js @@ -0,0 +1,23 @@ +function foo(bar = "bar") {} + +function foo(bar = "bar", ...items) {} + +function foo(...items) {} + +function* foo() {} + +function foo() {} + +async function foo() {} + +var foo = function* foo() {}; + +var foo = function foo() {}; + +var foo = async function foo() {}; + +var foo = function* () {}; + +var foo = function () {}; + +var foo = async function () {}; diff --git a/packages/babel-generator/test/fixtures/types/Identifier/actual.js b/packages/babel-generator/test/fixtures/types/Identifier/actual.js new file mode 100644 index 0000000000..ef20d940c5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/Identifier/actual.js @@ -0,0 +1,2 @@ +foo; +undefined; diff --git a/packages/babel-generator/test/fixtures/types/Identifier/expected.js b/packages/babel-generator/test/fixtures/types/Identifier/expected.js new file mode 100644 index 0000000000..ef20d940c5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/Identifier/expected.js @@ -0,0 +1,2 @@ +foo; +undefined; diff --git a/packages/babel-generator/test/fixtures/types/IfStatement/actual.js b/packages/babel-generator/test/fixtures/types/IfStatement/actual.js new file mode 100644 index 0000000000..4631d3503f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/IfStatement/actual.js @@ -0,0 +1,25 @@ +if (foo) foobar(); + +if (foo) { + foobar(); +} + +if (foo) {} + +if (foo) { + foo(); +} else bar(); + +if (foo) { + foo(); +} else { + bar(); +} + +if (foo) { + foo(); +} else if (bar) { + foobar(); +} else { + bar(); +} diff --git a/packages/babel-generator/test/fixtures/types/IfStatement/expected.js b/packages/babel-generator/test/fixtures/types/IfStatement/expected.js new file mode 100644 index 0000000000..4631d3503f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/IfStatement/expected.js @@ -0,0 +1,25 @@ +if (foo) foobar(); + +if (foo) { + foobar(); +} + +if (foo) {} + +if (foo) { + foo(); +} else bar(); + +if (foo) { + foo(); +} else { + bar(); +} + +if (foo) { + foo(); +} else if (bar) { + foobar(); +} else { + bar(); +} diff --git a/packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js b/packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js new file mode 100644 index 0000000000..b7a4a4b9fd --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js @@ -0,0 +1,9 @@ +import "foo"; +import foo from "foo"; +import { default as foo } from "foo"; +import * as foo from "foo"; +import foo, { baz as xyz } from "foo"; +import { bar } from "foo"; +import { bar, baz } from "foo"; +import { bar as baz } from "foo"; +import { bar as baz, xyz } from "foo"; diff --git a/packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js b/packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js new file mode 100644 index 0000000000..b7a4a4b9fd --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js @@ -0,0 +1,9 @@ +import "foo"; +import foo from "foo"; +import { default as foo } from "foo"; +import * as foo from "foo"; +import foo, { baz as xyz } from "foo"; +import { bar } from "foo"; +import { bar, baz } from "foo"; +import { bar as baz } from "foo"; +import { bar as baz, xyz } from "foo"; diff --git a/packages/babel-generator/test/fixtures/types/LabeledStatement/actual.js b/packages/babel-generator/test/fixtures/types/LabeledStatement/actual.js new file mode 100644 index 0000000000..2846749406 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/LabeledStatement/actual.js @@ -0,0 +1 @@ +label: for (var i in test) {} diff --git a/packages/babel-generator/test/fixtures/types/LabeledStatement/expected.js b/packages/babel-generator/test/fixtures/types/LabeledStatement/expected.js new file mode 100644 index 0000000000..2846749406 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/LabeledStatement/expected.js @@ -0,0 +1 @@ +label: for (var i in test) {} diff --git a/packages/babel-generator/test/fixtures/types/Literal/actual.js b/packages/babel-generator/test/fixtures/types/Literal/actual.js new file mode 100644 index 0000000000..6bd9f84a96 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/Literal/actual.js @@ -0,0 +1,12 @@ +5; +5.0; +"foobar"; +"\n\r\u2028\u2029"; +/foobar/g; +null; +true; +false; +5.; +0b10; +0o70; +0X1F; diff --git a/packages/babel-generator/test/fixtures/types/Literal/expected.js b/packages/babel-generator/test/fixtures/types/Literal/expected.js new file mode 100644 index 0000000000..6bd9f84a96 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/Literal/expected.js @@ -0,0 +1,12 @@ +5; +5.0; +"foobar"; +"\n\r\u2028\u2029"; +/foobar/g; +null; +true; +false; +5.; +0b10; +0o70; +0X1F; diff --git a/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js b/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js new file mode 100644 index 0000000000..b1b488aa12 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/MemberExpression/actual.js @@ -0,0 +1,11 @@ +foo["bar"]; +foo.bar; + +foo.bar.foo; +foo.bar["foo"]; + +foo["foo"]["bar"]; +foo[test()][bar()]; + +0..toString(); +0.5.toString(); diff --git a/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js b/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js new file mode 100644 index 0000000000..b1b488aa12 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/MemberExpression/expected.js @@ -0,0 +1,11 @@ +foo["bar"]; +foo.bar; + +foo.bar.foo; +foo.bar["foo"]; + +foo["foo"]["bar"]; +foo[test()][bar()]; + +0..toString(); +0.5.toString(); diff --git a/packages/babel-generator/test/fixtures/types/NewExpression/actual.js b/packages/babel-generator/test/fixtures/types/NewExpression/actual.js new file mode 100644 index 0000000000..2e4ccdb39d --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/NewExpression/actual.js @@ -0,0 +1,3 @@ +new Foo; +new Foo(); +new Foo(bar); diff --git a/packages/babel-generator/test/fixtures/types/NewExpression/expected.js b/packages/babel-generator/test/fixtures/types/NewExpression/expected.js new file mode 100644 index 0000000000..962d55bf72 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/NewExpression/expected.js @@ -0,0 +1,3 @@ +new Foo(); +new Foo(); +new Foo(bar); diff --git a/packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/actual.js b/packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/actual.js new file mode 100644 index 0000000000..5dff240f1e --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/actual.js @@ -0,0 +1,20 @@ +var foo = {}; + +var foo = { x, y }; + +var foo = { x: x, y: y }; + +var foo = { + x: x, + y: y +}; + +var foo = { + ["bar"]: "foo", + ["foo"]() {}, + foo() {}, + async foo() {}, + *foo() {}, + get foo() {}, + set foo(foo) {} +}; diff --git a/packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/expected.js b/packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/expected.js new file mode 100644 index 0000000000..5dff240f1e --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ObjectExpression-ObjectPattern-Property/expected.js @@ -0,0 +1,20 @@ +var foo = {}; + +var foo = { x, y }; + +var foo = { x: x, y: y }; + +var foo = { + x: x, + y: y +}; + +var foo = { + ["bar"]: "foo", + ["foo"]() {}, + foo() {}, + async foo() {}, + *foo() {}, + get foo() {}, + set foo(foo) {} +}; diff --git a/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js b/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js new file mode 100644 index 0000000000..404a7c2e64 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js @@ -0,0 +1,7 @@ +function foo() { + return; +} + +function bar() { + return "foo"; +} diff --git a/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js b/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js new file mode 100644 index 0000000000..404a7c2e64 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js @@ -0,0 +1,7 @@ +function foo() { + return; +} + +function bar() { + return "foo"; +} diff --git a/packages/babel-generator/test/fixtures/types/SequenceExpression/actual.js b/packages/babel-generator/test/fixtures/types/SequenceExpression/actual.js new file mode 100644 index 0000000000..df1a8bc422 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/SequenceExpression/actual.js @@ -0,0 +1,4 @@ +foo, bar; + +foo, +bar; diff --git a/packages/babel-generator/test/fixtures/types/SequenceExpression/expected.js b/packages/babel-generator/test/fixtures/types/SequenceExpression/expected.js new file mode 100644 index 0000000000..8a6b86f823 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/SequenceExpression/expected.js @@ -0,0 +1,3 @@ +foo, bar; + +foo, bar; diff --git a/packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/actual.js b/packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/actual.js new file mode 100644 index 0000000000..7a9e438858 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/actual.js @@ -0,0 +1,3 @@ +[...foo]; +foo(bar, ...items); +new Foo(...foo); diff --git a/packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/expected.js b/packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/expected.js new file mode 100644 index 0000000000..7a9e438858 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/SpreadElement-SpreadProperty/expected.js @@ -0,0 +1,3 @@ +[...foo]; +foo(bar, ...items); +new Foo(...foo); diff --git a/packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/actual.js b/packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/actual.js new file mode 100644 index 0000000000..dbfef765fe --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/actual.js @@ -0,0 +1,39 @@ +switch (foo) {} + +switch (foo) { + case "foo": +} + +switch (foo) { + default: +} + +switch (foo) { + case "foo": + default: +} + +switch (foo) { + case "foo": + case "bar": + default: +} + +switch (foo) { + case "foo": + foo(); + break; + + case "bar": + bar(); + break; + + default: + yay(); +} + +switch (foo) { + case "foo": foo(); + case "bar": bar(); + default: yay(); +} diff --git a/packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/expected.js b/packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/expected.js new file mode 100644 index 0000000000..3fee51a4d2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/SwitchStatement-SwitchCase/expected.js @@ -0,0 +1,42 @@ +switch (foo) {} + +switch (foo) { + case "foo": +} + +switch (foo) { + default: +} + +switch (foo) { + case "foo": + default: +} + +switch (foo) { + case "foo": + case "bar": + default: +} + +switch (foo) { + case "foo": + foo(); + break; + + case "bar": + bar(); + break; + + default: + yay(); +} + +switch (foo) { + case "foo": + foo(); + case "bar": + bar(); + default: + yay(); +} diff --git a/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js new file mode 100644 index 0000000000..455ed642b5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js @@ -0,0 +1,12 @@ +html``; + +`multi + lines`; + +`test ${ interpolation } test`; + +`foob + + asdf +awer + erqer`; diff --git a/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js new file mode 100644 index 0000000000..455ed642b5 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js @@ -0,0 +1,12 @@ +html``; + +`multi + lines`; + +`test ${ interpolation } test`; + +`foob + + asdf +awer + erqer`; diff --git a/packages/babel-generator/test/fixtures/types/ThisExpression/actual.js b/packages/babel-generator/test/fixtures/types/ThisExpression/actual.js new file mode 100644 index 0000000000..0ce825c42a --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ThisExpression/actual.js @@ -0,0 +1,5 @@ +this; +this.foo; +this["foo"]; +this.foo(); +this["foo"](); diff --git a/packages/babel-generator/test/fixtures/types/ThisExpression/expected.js b/packages/babel-generator/test/fixtures/types/ThisExpression/expected.js new file mode 100644 index 0000000000..0ce825c42a --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ThisExpression/expected.js @@ -0,0 +1,5 @@ +this; +this.foo; +this["foo"]; +this.foo(); +this["foo"](); diff --git a/packages/babel-generator/test/fixtures/types/ThrowStatement/actual.js b/packages/babel-generator/test/fixtures/types/ThrowStatement/actual.js new file mode 100644 index 0000000000..15dd4fc7b2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ThrowStatement/actual.js @@ -0,0 +1,3 @@ +throw err; +throw Error("foobar"); +throw new Error("foobar"); diff --git a/packages/babel-generator/test/fixtures/types/ThrowStatement/expected.js b/packages/babel-generator/test/fixtures/types/ThrowStatement/expected.js new file mode 100644 index 0000000000..15dd4fc7b2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/ThrowStatement/expected.js @@ -0,0 +1,3 @@ +throw err; +throw Error("foobar"); +throw new Error("foobar"); diff --git a/packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/actual.js b/packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/actual.js new file mode 100644 index 0000000000..95717a83b6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/actual.js @@ -0,0 +1,25 @@ +try {} catch (err) {} + +try { + bar; +} catch (err) {} + +try { + bar; +} catch (err) { + foo(); +} + +try { + bar; +} catch (err) { + foo(); +} finally { + yay(); +} + +try { + bar; +} catch (err) { + foo(); +} finally {} diff --git a/packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/expected.js b/packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/expected.js new file mode 100644 index 0000000000..95717a83b6 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/TryStatement-CatchClause/expected.js @@ -0,0 +1,25 @@ +try {} catch (err) {} + +try { + bar; +} catch (err) {} + +try { + bar; +} catch (err) { + foo(); +} + +try { + bar; +} catch (err) { + foo(); +} finally { + yay(); +} + +try { + bar; +} catch (err) { + foo(); +} finally {} diff --git a/packages/babel-generator/test/fixtures/types/UnaryExpression/actual.js b/packages/babel-generator/test/fixtures/types/UnaryExpression/actual.js new file mode 100644 index 0000000000..9f318cdb1f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/UnaryExpression/actual.js @@ -0,0 +1,5 @@ +delete delete i; ++ +i; +!!i; ++ ++i; +- --i; diff --git a/packages/babel-generator/test/fixtures/types/UnaryExpression/expected.js b/packages/babel-generator/test/fixtures/types/UnaryExpression/expected.js new file mode 100644 index 0000000000..9f318cdb1f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/UnaryExpression/expected.js @@ -0,0 +1,5 @@ +delete delete i; ++ +i; +!!i; ++ ++i; +- --i; diff --git a/packages/babel-generator/test/fixtures/types/UpdateExpression/actual.js b/packages/babel-generator/test/fixtures/types/UpdateExpression/actual.js new file mode 100644 index 0000000000..0aba7be1a0 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/UpdateExpression/actual.js @@ -0,0 +1,3 @@ +++i; +i++; +(foo++).test(); diff --git a/packages/babel-generator/test/fixtures/types/UpdateExpression/expected.js b/packages/babel-generator/test/fixtures/types/UpdateExpression/expected.js new file mode 100644 index 0000000000..0aba7be1a0 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/UpdateExpression/expected.js @@ -0,0 +1,3 @@ +++i; +i++; +(foo++).test(); diff --git a/packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/actual.js b/packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/actual.js new file mode 100644 index 0000000000..ede42c53ec --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/actual.js @@ -0,0 +1,13 @@ +let foo; +var foo; + +let foo = "foo"; +var foo = "bar"; +const foo = "foo"; + +let foo, bar = "bar"; +var foo, bar = "bar"; + +let foo = "foo", bar = "bar"; +var foo = "foo", bar = "bar"; +const foo = "foo", bar = "bar"; diff --git a/packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/expected.js b/packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/expected.js new file mode 100644 index 0000000000..487fff2ae2 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/VariableDeclaration-VariableDeclarator/expected.js @@ -0,0 +1,18 @@ +let foo; +var foo; + +let foo = "foo"; +var foo = "bar"; +const foo = "foo"; + +let foo, + bar = "bar"; +var foo, + bar = "bar"; + +let foo = "foo", + bar = "bar"; +var foo = "foo", + bar = "bar"; +const foo = "foo", + bar = "bar"; diff --git a/packages/babel-generator/test/fixtures/types/WhileStatement/actual.js b/packages/babel-generator/test/fixtures/types/WhileStatement/actual.js new file mode 100644 index 0000000000..616c1dcd45 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/WhileStatement/actual.js @@ -0,0 +1,5 @@ +while (foo) {} + +while (foo) { + bar(); +} diff --git a/packages/babel-generator/test/fixtures/types/WhileStatement/expected.js b/packages/babel-generator/test/fixtures/types/WhileStatement/expected.js new file mode 100644 index 0000000000..616c1dcd45 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/WhileStatement/expected.js @@ -0,0 +1,5 @@ +while (foo) {} + +while (foo) { + bar(); +} diff --git a/packages/babel-generator/test/fixtures/types/WithStatement/actual.js b/packages/babel-generator/test/fixtures/types/WithStatement/actual.js new file mode 100644 index 0000000000..eb30b5f541 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/WithStatement/actual.js @@ -0,0 +1,5 @@ +with (foo) {} + +with (foo) { + bar(); +} diff --git a/packages/babel-generator/test/fixtures/types/WithStatement/expected.js b/packages/babel-generator/test/fixtures/types/WithStatement/expected.js new file mode 100644 index 0000000000..eb30b5f541 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/WithStatement/expected.js @@ -0,0 +1,5 @@ +with (foo) {} + +with (foo) { + bar(); +} diff --git a/packages/babel-generator/test/fixtures/types/XJSAttribute/actual.js b/packages/babel-generator/test/fixtures/types/XJSAttribute/actual.js new file mode 100644 index 0000000000..ff8711dc2f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSAttribute/actual.js @@ -0,0 +1,7 @@ +
; + +
text
; + +
; + +
text
; diff --git a/packages/babel-generator/test/fixtures/types/XJSAttribute/expected.js b/packages/babel-generator/test/fixtures/types/XJSAttribute/expected.js new file mode 100644 index 0000000000..ff8711dc2f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSAttribute/expected.js @@ -0,0 +1,7 @@ +
; + +
text
; + +
; + +
text
; diff --git a/packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js b/packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js new file mode 100644 index 0000000000..4ef54fa621 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js @@ -0,0 +1,5 @@ +
; + +
; + +
text
; diff --git a/packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js b/packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js new file mode 100644 index 0000000000..4ef54fa621 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js @@ -0,0 +1,5 @@ +
; + +
; + +
text
; diff --git a/packages/babel-generator/test/fixtures/types/XJSEmptyExpression/actual.js b/packages/babel-generator/test/fixtures/types/XJSEmptyExpression/actual.js new file mode 100644 index 0000000000..a7a4a7e533 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSEmptyExpression/actual.js @@ -0,0 +1 @@ +{}; diff --git a/packages/babel-generator/test/fixtures/types/XJSEmptyExpression/expected.js b/packages/babel-generator/test/fixtures/types/XJSEmptyExpression/expected.js new file mode 100644 index 0000000000..a7a4a7e533 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSEmptyExpression/expected.js @@ -0,0 +1 @@ +{}; diff --git a/packages/babel-generator/test/fixtures/types/XJSExpressionContainer/actual.js b/packages/babel-generator/test/fixtures/types/XJSExpressionContainer/actual.js new file mode 100644 index 0000000000..b7c8a18a62 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSExpressionContainer/actual.js @@ -0,0 +1 @@ +
{this.props.children}
; diff --git a/packages/babel-generator/test/fixtures/types/XJSExpressionContainer/expected.js b/packages/babel-generator/test/fixtures/types/XJSExpressionContainer/expected.js new file mode 100644 index 0000000000..b7c8a18a62 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSExpressionContainer/expected.js @@ -0,0 +1 @@ +
{this.props.children}
; diff --git a/packages/babel-generator/test/fixtures/types/XJSMemberExpression/actual.js b/packages/babel-generator/test/fixtures/types/XJSMemberExpression/actual.js new file mode 100644 index 0000000000..875ffe4f32 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSMemberExpression/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/XJSMemberExpression/expected.js b/packages/babel-generator/test/fixtures/types/XJSMemberExpression/expected.js new file mode 100644 index 0000000000..875ffe4f32 --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSMemberExpression/expected.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/XJSNamespacedName/actual.js b/packages/babel-generator/test/fixtures/types/XJSNamespacedName/actual.js new file mode 100644 index 0000000000..33efe268cf --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSNamespacedName/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/XJSNamespacedName/expected.js b/packages/babel-generator/test/fixtures/types/XJSNamespacedName/expected.js new file mode 100644 index 0000000000..33efe268cf --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSNamespacedName/expected.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/actual.js b/packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/actual.js new file mode 100644 index 0000000000..82aa5eb72d --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/actual.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/expected.js b/packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/expected.js new file mode 100644 index 0000000000..82aa5eb72d --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/XJSSpreadAttribute/expected.js @@ -0,0 +1 @@ +; diff --git a/packages/babel-generator/test/fixtures/types/YieldExpression/actual.js b/packages/babel-generator/test/fixtures/types/YieldExpression/actual.js new file mode 100644 index 0000000000..b37159854f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/YieldExpression/actual.js @@ -0,0 +1,7 @@ +function* foo() { + yield bar; +} + +function* bar() { + yield* foo(); +} diff --git a/packages/babel-generator/test/fixtures/types/YieldExpression/expected.js b/packages/babel-generator/test/fixtures/types/YieldExpression/expected.js new file mode 100644 index 0000000000..b37159854f --- /dev/null +++ b/packages/babel-generator/test/fixtures/types/YieldExpression/expected.js @@ -0,0 +1,7 @@ +function* foo() { + yield bar; +} + +function* bar() { + yield* foo(); +} diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js new file mode 100644 index 0000000000..2eb653eea9 --- /dev/null +++ b/packages/babel-generator/test/index.js @@ -0,0 +1,49 @@ +var generate = require("../lib"); +var assert = require("assert"); +var parse = require("babylon").parse; +var chai = require("chai"); +var t = require("babel-types"); +var _ = require("lodash"); + +suite("generation", function () { + test("completeness", function () { + _.each(t.VISITOR_KEYS, function (keys, type) { + assert.ok(!!generate.CodeGenerator.prototype[type], type + " should exist"); + }); + + _.each(generate.CodeGenerator.prototype, function (fn, type) { + if (!/[A-Z]/.test(type[0])) return; + assert.ok(t.VISITOR_KEYS[type], type + " should not exist"); + }); + }); +}); + +var suites = require("babel-helper-fixtures")(__dirname + "/fixtures"); + +suites.forEach(function (testSuite) { + suite("generation/" + testSuite.title, function () { + _.each(testSuite.tests, function (task) { + test(task.title, !task.disabled && function () { + var expect = task.expect; + var actual = task.actual; + + var actualAst = parse(actual.code, { + filename: actual.loc, + plugins: [ + "jsx", + "flow", + "decorators", + "asyncFunctions", + "exportExtensions", + "functionBind", + ], + strictMode: false, + sourceType: "module", + }); + + var actualCode = generate.default(actualAst, task.options, actual.code).code; + chai.expect(actualCode).to.equal(expect.code, actual.loc + " !== " + expect.loc); + }); + }); + }); +}); From 9113542b12008d58fab53af916f13d2c2d074a3b Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:37:49 +0100 Subject: [PATCH 130/174] add syntax plugins --- .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../babel-plugin-syntax-decorators/.npmignore | 3 ++ .../babel-plugin-syntax-decorators/README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../babel-plugin-syntax-flow/src/index.js | 6 +--- .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ packages/babel-plugin-syntax-jsx/src/index.js | 2 +- .../.npmignore | 3 ++ .../README.md | 35 +++++++++++++++++++ .../package.json | 11 ++++++ .../src/index.js | 7 ++++ .../src/index.js | 2 +- 35 files changed, 451 insertions(+), 7 deletions(-) create mode 100644 packages/babel-plugin-syntax-async-functions/.npmignore create mode 100644 packages/babel-plugin-syntax-async-functions/README.md create mode 100644 packages/babel-plugin-syntax-async-functions/package.json create mode 100644 packages/babel-plugin-syntax-async-functions/src/index.js create mode 100644 packages/babel-plugin-syntax-class-properties/.npmignore create mode 100644 packages/babel-plugin-syntax-class-properties/README.md create mode 100644 packages/babel-plugin-syntax-class-properties/package.json create mode 100644 packages/babel-plugin-syntax-class-properties/src/index.js create mode 100644 packages/babel-plugin-syntax-decorators/.npmignore create mode 100644 packages/babel-plugin-syntax-decorators/README.md create mode 100644 packages/babel-plugin-syntax-decorators/package.json create mode 100644 packages/babel-plugin-syntax-decorators/src/index.js create mode 100644 packages/babel-plugin-syntax-do-expressions/.npmignore create mode 100644 packages/babel-plugin-syntax-do-expressions/README.md create mode 100644 packages/babel-plugin-syntax-do-expressions/package.json create mode 100644 packages/babel-plugin-syntax-do-expressions/src/index.js create mode 100644 packages/babel-plugin-syntax-exponentiation-operator/.npmignore create mode 100644 packages/babel-plugin-syntax-exponentiation-operator/README.md create mode 100644 packages/babel-plugin-syntax-exponentiation-operator/package.json create mode 100644 packages/babel-plugin-syntax-exponentiation-operator/src/index.js create mode 100644 packages/babel-plugin-syntax-export-extensions/.npmignore create mode 100644 packages/babel-plugin-syntax-export-extensions/README.md create mode 100644 packages/babel-plugin-syntax-export-extensions/package.json create mode 100644 packages/babel-plugin-syntax-export-extensions/src/index.js create mode 100644 packages/babel-plugin-syntax-function-bind/.npmignore create mode 100644 packages/babel-plugin-syntax-function-bind/README.md create mode 100644 packages/babel-plugin-syntax-function-bind/package.json create mode 100644 packages/babel-plugin-syntax-function-bind/src/index.js create mode 100644 packages/babel-plugin-syntax-object-rest-spread/.npmignore create mode 100644 packages/babel-plugin-syntax-object-rest-spread/README.md create mode 100644 packages/babel-plugin-syntax-object-rest-spread/package.json create mode 100644 packages/babel-plugin-syntax-object-rest-spread/src/index.js diff --git a/packages/babel-plugin-syntax-async-functions/.npmignore b/packages/babel-plugin-syntax-async-functions/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-async-functions/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-async-functions/README.md b/packages/babel-plugin-syntax-async-functions/README.md new file mode 100644 index 0000000000..a2c13f519d --- /dev/null +++ b/packages/babel-plugin-syntax-async-functions/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-async-functions + +Allow parsing of async functions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-async-functions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-async-functions"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-async-functions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-async-functions"] +}); +``` diff --git a/packages/babel-plugin-syntax-async-functions/package.json b/packages/babel-plugin-syntax-async-functions/package.json new file mode 100644 index 0000000000..9fce60af41 --- /dev/null +++ b/packages/babel-plugin-syntax-async-functions/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-async-functions", + "version": "1.0.0", + "description": "Allow parsing of async functions", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-async-functions/src/index.js b/packages/babel-plugin-syntax-async-functions/src/index.js new file mode 100644 index 0000000000..a95134d839 --- /dev/null +++ b/packages/babel-plugin-syntax-async-functions/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("asyncFunctions"); + } + }; +} diff --git a/packages/babel-plugin-syntax-class-properties/.npmignore b/packages/babel-plugin-syntax-class-properties/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-class-properties/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-class-properties/README.md b/packages/babel-plugin-syntax-class-properties/README.md new file mode 100644 index 0000000000..970049b47a --- /dev/null +++ b/packages/babel-plugin-syntax-class-properties/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-class-properties + +Allow parsing of class properties. + +## Installation + +```sh +$ npm install babel-plugin-syntax-class-properties +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-class-properties"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-class-properties script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-class-properties"] +}); +``` diff --git a/packages/babel-plugin-syntax-class-properties/package.json b/packages/babel-plugin-syntax-class-properties/package.json new file mode 100644 index 0000000000..edf59c1d57 --- /dev/null +++ b/packages/babel-plugin-syntax-class-properties/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-class-properties", + "version": "1.0.0", + "description": "Allow parsing of class properties", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-class-properties/src/index.js b/packages/babel-plugin-syntax-class-properties/src/index.js new file mode 100644 index 0000000000..d9ba5cf12f --- /dev/null +++ b/packages/babel-plugin-syntax-class-properties/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("classProperties"); + } + }; +} diff --git a/packages/babel-plugin-syntax-decorators/.npmignore b/packages/babel-plugin-syntax-decorators/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-decorators/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-decorators/README.md b/packages/babel-plugin-syntax-decorators/README.md new file mode 100644 index 0000000000..a7b27efc88 --- /dev/null +++ b/packages/babel-plugin-syntax-decorators/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-decorators + +Allow parsing of decorators. + +## Installation + +```sh +$ npm install babel-plugin-syntax-decorators +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-decorators"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-decorators script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-decorators"] +}); +``` diff --git a/packages/babel-plugin-syntax-decorators/package.json b/packages/babel-plugin-syntax-decorators/package.json new file mode 100644 index 0000000000..402281dcb8 --- /dev/null +++ b/packages/babel-plugin-syntax-decorators/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-decorators", + "version": "1.0.0", + "description": "Allow parsing of decorators", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-decorators/src/index.js b/packages/babel-plugin-syntax-decorators/src/index.js new file mode 100644 index 0000000000..db7392f158 --- /dev/null +++ b/packages/babel-plugin-syntax-decorators/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("decorators"); + } + }; +} diff --git a/packages/babel-plugin-syntax-do-expressions/.npmignore b/packages/babel-plugin-syntax-do-expressions/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-do-expressions/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-do-expressions/README.md b/packages/babel-plugin-syntax-do-expressions/README.md new file mode 100644 index 0000000000..9f7556a15d --- /dev/null +++ b/packages/babel-plugin-syntax-do-expressions/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-do-expressions + +Allow parsing of do expressions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-do-expressions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-do-expressions"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-do-expressions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-do-expressions"] +}); +``` diff --git a/packages/babel-plugin-syntax-do-expressions/package.json b/packages/babel-plugin-syntax-do-expressions/package.json new file mode 100644 index 0000000000..2545e296aa --- /dev/null +++ b/packages/babel-plugin-syntax-do-expressions/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-do-expressions", + "version": "1.0.0", + "description": "Allow parsing of do expressions", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-do-expressions/src/index.js b/packages/babel-plugin-syntax-do-expressions/src/index.js new file mode 100644 index 0000000000..469b32173e --- /dev/null +++ b/packages/babel-plugin-syntax-do-expressions/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("doExpressions"); + } + }; +} diff --git a/packages/babel-plugin-syntax-exponentiation-operator/.npmignore b/packages/babel-plugin-syntax-exponentiation-operator/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-exponentiation-operator/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-exponentiation-operator/README.md b/packages/babel-plugin-syntax-exponentiation-operator/README.md new file mode 100644 index 0000000000..42057eaf23 --- /dev/null +++ b/packages/babel-plugin-syntax-exponentiation-operator/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-exponentiation-operator + +Allow parsing of the exponentiation operator. + +## Installation + +```sh +$ npm install babel-plugin-syntax-exponentiation-operator +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-exponentiation-operator"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-exponentiation-operator script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-exponentiation-operator"] +}); +``` diff --git a/packages/babel-plugin-syntax-exponentiation-operator/package.json b/packages/babel-plugin-syntax-exponentiation-operator/package.json new file mode 100644 index 0000000000..f12524f751 --- /dev/null +++ b/packages/babel-plugin-syntax-exponentiation-operator/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-exponentiation-operator", + "version": "1.0.0", + "description": "Allow parsing of the exponentiation operator", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-exponentiation-operator/src/index.js b/packages/babel-plugin-syntax-exponentiation-operator/src/index.js new file mode 100644 index 0000000000..943542f771 --- /dev/null +++ b/packages/babel-plugin-syntax-exponentiation-operator/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("exponentiationOperator"); + } + }; +} diff --git a/packages/babel-plugin-syntax-export-extensions/.npmignore b/packages/babel-plugin-syntax-export-extensions/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-export-extensions/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-export-extensions/README.md b/packages/babel-plugin-syntax-export-extensions/README.md new file mode 100644 index 0000000000..97e99ccd3b --- /dev/null +++ b/packages/babel-plugin-syntax-export-extensions/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-export-extensions + +Allow parsing of export extensions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-export-extensions +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-export-extensions"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-export-extensions script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-export-extensions"] +}); +``` diff --git a/packages/babel-plugin-syntax-export-extensions/package.json b/packages/babel-plugin-syntax-export-extensions/package.json new file mode 100644 index 0000000000..9b9a06bfbf --- /dev/null +++ b/packages/babel-plugin-syntax-export-extensions/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-export-extensions", + "version": "1.0.0", + "description": "Allow parsing of export extensions", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-export-extensions/src/index.js b/packages/babel-plugin-syntax-export-extensions/src/index.js new file mode 100644 index 0000000000..8bc33ab44d --- /dev/null +++ b/packages/babel-plugin-syntax-export-extensions/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("exportExtensions"); + } + }; +} diff --git a/packages/babel-plugin-syntax-flow/src/index.js b/packages/babel-plugin-syntax-flow/src/index.js index 499d12a023..ac230f4a25 100644 --- a/packages/babel-plugin-syntax-flow/src/index.js +++ b/packages/babel-plugin-syntax-flow/src/index.js @@ -1,11 +1,7 @@ export default function () { return { manipulateOptions(opts, parserOpts) { - var jsx = parserOpts.plugins.jsx; - delete parserOpts.plugins.jsx; - - parserOpts.plugins.flow = true; - if (jsx) parserOpts.plugins.jsx = true; + parserOpts.plugins.push("flow"); } }; } diff --git a/packages/babel-plugin-syntax-function-bind/.npmignore b/packages/babel-plugin-syntax-function-bind/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-function-bind/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-function-bind/README.md b/packages/babel-plugin-syntax-function-bind/README.md new file mode 100644 index 0000000000..aa133ea9e4 --- /dev/null +++ b/packages/babel-plugin-syntax-function-bind/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-function-bind + +Allow parsing of function bind. + +## Installation + +```sh +$ npm install babel-plugin-syntax-function-bind +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-function-bind"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-function-bind script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-function-bind"] +}); +``` diff --git a/packages/babel-plugin-syntax-function-bind/package.json b/packages/babel-plugin-syntax-function-bind/package.json new file mode 100644 index 0000000000..f71a332476 --- /dev/null +++ b/packages/babel-plugin-syntax-function-bind/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-function-bind", + "version": "1.0.0", + "description": "Allow parsing of function bind", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-function-bind/src/index.js b/packages/babel-plugin-syntax-function-bind/src/index.js new file mode 100644 index 0000000000..2fdf90ffb0 --- /dev/null +++ b/packages/babel-plugin-syntax-function-bind/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("functionBind"); + } + }; +} diff --git a/packages/babel-plugin-syntax-jsx/src/index.js b/packages/babel-plugin-syntax-jsx/src/index.js index 2c2767cdf9..44e80e966a 100644 --- a/packages/babel-plugin-syntax-jsx/src/index.js +++ b/packages/babel-plugin-syntax-jsx/src/index.js @@ -1,7 +1,7 @@ export default function () { return { manipulateOptions(opts, parserOpts) { - parserOpts.plugins.jsx = true; + parserOpts.plugins.push("jsx"); } }; } diff --git a/packages/babel-plugin-syntax-object-rest-spread/.npmignore b/packages/babel-plugin-syntax-object-rest-spread/.npmignore new file mode 100644 index 0000000000..cace0d6ddc --- /dev/null +++ b/packages/babel-plugin-syntax-object-rest-spread/.npmignore @@ -0,0 +1,3 @@ +node_modules +*.log +src diff --git a/packages/babel-plugin-syntax-object-rest-spread/README.md b/packages/babel-plugin-syntax-object-rest-spread/README.md new file mode 100644 index 0000000000..59392f71a4 --- /dev/null +++ b/packages/babel-plugin-syntax-object-rest-spread/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-object-rest-spread + +Allow parsing of object rest/spread. + +## Installation + +```sh +$ npm install babel-plugin-syntax-object-rest-spread +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-object-rest-spread"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-object-rest-spread script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-object-rest-spread"] +}); +``` diff --git a/packages/babel-plugin-syntax-object-rest-spread/package.json b/packages/babel-plugin-syntax-object-rest-spread/package.json new file mode 100644 index 0000000000..474bd23447 --- /dev/null +++ b/packages/babel-plugin-syntax-object-rest-spread/package.json @@ -0,0 +1,11 @@ +{ + "name": "babel-plugin-syntax-object-rest-spread", + "version": "1.0.0", + "description": "Allow parsing of object rest/spread", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-syntax-object-rest-spread/src/index.js b/packages/babel-plugin-syntax-object-rest-spread/src/index.js new file mode 100644 index 0000000000..7792d54dd6 --- /dev/null +++ b/packages/babel-plugin-syntax-object-rest-spread/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("objectRestSpread"); + } + }; +} diff --git a/packages/babel-plugin-syntax-trailing-function-commas/src/index.js b/packages/babel-plugin-syntax-trailing-function-commas/src/index.js index a22832bd31..d50ddd959c 100644 --- a/packages/babel-plugin-syntax-trailing-function-commas/src/index.js +++ b/packages/babel-plugin-syntax-trailing-function-commas/src/index.js @@ -1,7 +1,7 @@ export default function () { return { manipulateOptions(opts, parserOpts) { - parserOpts.features["es7.trailingFunctionCommas"] = true; + parserOpts.plugins.push("trailingFunctionCommas"); } }; } From 31e4d2e5157acb2de7d69769d34c6e0856eb0f9f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:38:53 +0100 Subject: [PATCH 131/174] remove CLI aliases --- packages/babel-cli/polyfill.js | 1 - packages/babel-cli/register-without-polyfill.js | 1 - packages/babel-cli/register.js | 1 - 3 files changed, 3 deletions(-) delete mode 100644 packages/babel-cli/polyfill.js delete mode 100644 packages/babel-cli/register-without-polyfill.js delete mode 100644 packages/babel-cli/register.js diff --git a/packages/babel-cli/polyfill.js b/packages/babel-cli/polyfill.js deleted file mode 100644 index 0e1a27b99c..0000000000 --- a/packages/babel-cli/polyfill.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("babel-core/polyfill"); diff --git a/packages/babel-cli/register-without-polyfill.js b/packages/babel-cli/register-without-polyfill.js deleted file mode 100644 index c9ca24585e..0000000000 --- a/packages/babel-cli/register-without-polyfill.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("babel-core/register-without-polyfill"); diff --git a/packages/babel-cli/register.js b/packages/babel-cli/register.js deleted file mode 100644 index 865d8ceb23..0000000000 --- a/packages/babel-cli/register.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("babel-core/register"); From 6568aaa17589bdef2c24d8864b5fb948086c8d21 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:39:16 +0100 Subject: [PATCH 132/174] add babel-polyfill to CLI --- packages/babel-cli/package.json | 1 + packages/babel-cli/src/_babel-node.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index be27502a25..d68633db4b 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -9,6 +9,7 @@ "preferGlobal": true, "dependencies": { "babel-core": "^5.6.21", + "babel-polyfill": "^5.0.0", "chokidar": "^1.0.0", "commander": "^2.6.0", "convert-source-map": "^1.1.0", diff --git a/packages/babel-cli/src/_babel-node.js b/packages/babel-cli/src/_babel-node.js index 8e89bf0e63..2f168b7f09 100644 --- a/packages/babel-cli/src/_babel-node.js +++ b/packages/babel-cli/src/_babel-node.js @@ -4,10 +4,12 @@ import Module from "module"; import { inspect } from "util"; import path from "path"; import repl from "repl"; +import register from "babel-core/register"; import { util } from "babel-core"; import * as babel from "babel-core"; import vm from "vm"; import _ from "lodash"; +import "babel-polyfill"; let program = new commander.Command("babel-node"); @@ -25,7 +27,7 @@ program.parse(process.argv); // -babel.register({ +register({ extensions: program.extensions, optional: program.optional, ignore: program.ignore, From 55976b63928b2449e1c3e6687feabef0fbc8ead4 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:40:18 +0100 Subject: [PATCH 133/174] remove redundant generator tests --- .../arguments-refers-to-parent-function.js | 57 ---------- .../empty-arrow-function.js | 2 - .../handles-nested-context-bindings.js | 12 -- ...rens-for-low-precedence-expression-body.js | 2 - .../object-literal-needs-parens.js | 2 - .../only-lexical-this-not-dynamic-this.js | 7 -- .../esnext/es6-arrow-functions/options.json | 3 - .../es6-arrow-functions/passed-to-function.js | 2 - .../single-param-does-not-need-parens.js | 2 - .../esnext/es6-classes/anonymous-class.js | 29 ----- .../esnext/es6-classes/call-super-function.js | 21 ---- .../esnext/es6-classes/class-expressions.js | 9 -- .../esnext/es6-classes/class-extend.js | 15 --- .../es6-classes/class-with-constructor.js | 14 --- .../class-with-method-declaration.js | 10 -- .../esnext/es6-classes/empty-named-class.js | 5 - .../fixtures/esnext/es6-classes/enumerable.js | 20 ---- .../explicit-super-in-constructor.js | 15 --- .../esnext/es6-classes/extends-null.js | 4 - .../esnext/es6-classes/getter-setter-super.js | 37 ------- .../esnext/es6-classes/getter-setter.js | 28 ----- .../method-declaration-with-arguments.js | 7 -- .../es6-classes/methods-are-writable.js | 12 -- .../es6-classes/methods-with-rest-params.js | 28 ----- .../esnext/es6-classes/static-getter.js | 12 -- .../esnext/es6-classes/static-method.js | 30 ----- .../esnext/es6-classes/static-setter.js | 7 -- .../esnext/es6-classes/super-change-proto.js | 21 ---- .../es6-computed-properties/accessor.js | 8 -- .../esnext/es6-computed-properties/method.js | 3 - .../esnext/es6-computed-properties/nested.js | 4 - .../es6-computed-properties/options.json | 3 - .../esnext/es6-computed-properties/simple.js | 3 - .../esnext/es6-default-parameters/arity.js | 3 - .../es6-default-parameters/arrow-function.js | 8 -- .../null-vs-undefined.js | 5 - .../esnext/es6-default-parameters/scope.js | 11 -- .../es6-default-parameters/simple-function.js | 4 - .../es6-object-concise/method-arguments.js | 7 -- .../es6-object-concise/method-context.js | 9 -- .../es6-object-concise/method-has-name.js | 7 -- .../method-is-not-in-scope-inside.js | 9 -- .../esnext/es6-object-concise/method.js | 7 -- .../esnext/es6-rest-parameters/arrow-fn.js | 5 - .../esnext/es6-rest-parameters/declaration.js | 5 - .../esnext/es6-rest-parameters/rest.js | 5 - .../esnext/es6-spread/arguments-as-array.js | 6 - .../esnext/es6-spread/array-literal.js | 3 - .../es6-spread/call-with-array-literal.js | 5 - .../es6-spread/inside-function-expression.js | 10 -- .../fixtures/esnext/es6-spread/iterator.js | 16 --- .../fixtures/esnext/es6-spread/new-object.js | 11 -- .../esnext/es6-spread/preserve-context.js | 35 ------ .../esnext/es6-spread/simple-function-call.js | 6 - .../esnext/es6-templates/multi-line.js | 4 - .../es6-templates/nested-interpolation.js | 4 - .../esnext/es6-templates/no-interpolation.js | 2 - .../esnext/es6-templates/options.json | 3 - .../raw-tagged-template-expression.js | 6 - .../es6-templates/simple-interpolation.js | 2 - .../tagged-template-expression.js | 26 ----- .../auto-indentation/hard-tab/actual.js | 6 - .../auto-indentation/hard-tab/expected.js | 6 - .../auto-indentation/soft-tab-2/actual.js | 6 - .../auto-indentation/soft-tab-2/expected.js | 6 - .../auto-indentation/soft-tab-4/actual.js | 6 - .../auto-indentation/soft-tab-4/expected.js | 6 - .../generation/auto-string/double/actual.js | 4 - .../generation/auto-string/double/expected.js | 4 - .../generation/auto-string/single/actual.js | 4 - .../generation/auto-string/single/expected.js | 4 - .../actual.js | 10 -- .../expected.js | 8 -- .../comments/2-space-multi-comment/actual.js | 6 - .../2-space-multi-comment/expected.js | 6 - .../actual.js | 4 - .../expected.js | 4 - .../options.json | 3 - .../comments/block-line-comment/actual.js | 4 - .../comments/block-line-comment/expected.js | 4 - .../comment-only-with-space/actual.js | 7 -- .../comment-only-with-space/expected.js | 7 -- .../comments/comment-only/actual.js | 4 - .../comments/comment-only/expected.js | 4 - .../actual.js | 5 - .../expected.js | 5 - .../options.json | 3 - .../computed-property-comments-2/actual.js | 10 -- .../computed-property-comments-2/expected.js | 11 -- .../computed-property-comments/actual.js | 28 ----- .../computed-property-comments/expected.js | 27 ----- .../comments/do-while-line-comment/actual.js | 3 - .../do-while-line-comment/expected.js | 2 - .../comments/empty-line-comment/actual.js | 4 - .../comments/empty-line-comment/expected.js | 4 - .../generation/comments/empty/actual.js | 1 - .../generation/comments/empty/expected.js | 1 - .../function-block-line-comment/actual.js | 6 - .../function-block-line-comment/expected.js | 6 - .../comments/if-block-line-comment/actual.js | 5 - .../if-block-line-comment/expected.js | 5 - .../comments/if-empty-line-comment/actual.js | 3 - .../if-empty-line-comment/expected.js | 3 - .../comments/if-line-comment/actual.js | 5 - .../comments/if-line-comment/expected.js | 7 -- .../comments/object_comments/actual.js | 12 -- .../comments/object_comments/expected.js | 12 -- .../comments/return-no-argument/actual.js | 3 - .../comments/return-no-argument/expected.js | 3 - .../simple-a-lot-of-line-comment/actual.js | 49 --------- .../simple-a-lot-of-line-comment/expected.js | 45 -------- .../simple-a-lot-of-multi-comment/actual.js | 51 --------- .../simple-a-lot-of-multi-comment/expected.js | 49 --------- .../comments/simple-line-comment/actual.js | 3 - .../comments/simple-line-comment/expected.js | 3 - .../comments/simple-multi-comment/actual.js | 22 ---- .../comments/simple-multi-comment/expected.js | 22 ---- .../simple-statement-comment/actual.js | 1 - .../simple-statement-comment/expected.js | 1 - .../comments/try-block-line-comment/actual.js | 12 -- .../try-block-line-comment/expected.js | 10 -- .../actual.js | 9 -- .../expected.js | 10 -- .../actual.js | 13 --- .../expected.js | 14 --- .../actual.js | 16 --- .../expected.js | 18 --- .../fixtures/generation/compact/options.json | 3 - .../compact/single-line-comment/actual.js | 2 - .../compact/single-line-comment/expected.js | 2 - .../edgecase/bitwise-precedence/actual.js | 3 - .../edgecase/bitwise-precedence/expected.js | 3 - .../edgecase/floating-point/actual.js | 2 - .../edgecase/floating-point/expected.js | 2 - .../edgecase/for-in-no-in/actual.js | 12 -- .../edgecase/for-in-no-in/expected.js | 12 -- .../edgecase/new-precedence/actual.js | 9 -- .../edgecase/new-precedence/expected.js | 9 -- .../actual.js | 3 - .../expected.js | 3 - .../actual.js | 6 - .../expected.js | 4 - .../options.json | 5 - .../return-with-retainlines-option/actual.js | 11 -- .../expected.js | 10 -- .../options.json | 3 - .../generation/edgecase/unary-op/actual.js | 5 - .../generation/edgecase/unary-op/expected.js | 5 - .../edgecase/variable-declaration/actual.js | 4 - .../edgecase/variable-declaration/expected.js | 4 - .../generation/flow/array-types/actual.js | 6 - .../generation/flow/array-types/expected.js | 6 - .../flow/boolean-literal-types/actual.js | 2 - .../flow/boolean-literal-types/expected.js | 2 - .../generation/flow/call-properties/actual.js | 5 - .../flow/call-properties/expected.js | 5 - .../generation/flow/declare-module/actual.js | 5 - .../flow/declare-module/expected.js | 11 -- .../flow/declare-statements/actual.js | 11 -- .../flow/declare-statements/expected.js | 11 -- .../interfaces-module-and-script/actual.js | 9 -- .../interfaces-module-and-script/expected.js | 9 -- .../flow/number-literal-types/actual.js | 5 - .../flow/number-literal-types/expected.js | 5 - .../flow/qualified-generic-type/actual.js | 4 - .../flow/qualified-generic-type/expected.js | 4 - .../flow/string-literal-types/actual.js | 2 - .../flow/string-literal-types/expected.js | 2 - .../fixtures/generation/flow/tuples/actual.js | 4 - .../generation/flow/tuples/expected.js | 4 - .../generation/flow/type-alias/actual.js | 3 - .../generation/flow/type-alias/expected.js | 3 - .../flow/type-annotations/actual.js | 100 ----------------- .../flow/type-annotations/expected.js | 104 ------------------ .../generation/flow/typecasts/actual.js | 4 - .../generation/flow/typecasts/expected.js | 4 - .../harmony-edgecase/arrow-function/actual.js | 11 -- .../arrow-function/expected.js | 10 -- .../class-declaration/actual.js | 56 ---------- .../class-declaration/expected.js | 38 ------- .../class-expression/actual.js | 55 --------- .../class-expression/expected.js | 39 ------- .../computed-property/actual.js | 14 --- .../computed-property/expected.js | 14 --- .../default-parameter/actual.js | 11 -- .../default-parameter/expected.js | 8 -- .../destructuring-assignment/actual.js | 18 --- .../destructuring-assignment/expected.js | 15 --- .../export-default-declaration/actual.js | 1 - .../export-default-declaration/expected.js | 1 - .../harmony-edgecase/exports/actual.js | 9 -- .../harmony-edgecase/exports/expected.js | 9 -- .../for-of-statement/actual.js | 7 -- .../for-of-statement/expected.js | 5 - .../import-with-default/actual.js | 7 -- .../import-with-default/expected.js | 3 - .../harmony-edgecase/imports/actual.js | 8 -- .../harmony-edgecase/imports/expected.js | 4 - .../harmony-edgecase/spread-element/actual.js | 5 - .../spread-element/expected.js | 4 - .../templates-escape/actual.js | 12 -- .../templates-escape/expected.js | 12 -- .../harmony-edgecase/templates/actual.js | 31 ------ .../harmony-edgecase/templates/expected.js | 31 ------ .../yield-precedence/actual.js | 7 -- .../yield-precedence/expected.js | 8 -- .../arrow-function-object-body/actual.js | 4 - .../arrow-function-object-body/expected.js | 4 - .../parentheses/terminator-break/actual.js | 12 -- .../parentheses/terminator-break/expected.js | 12 -- .../ArrayExpression-ArrayPattern/actual.js | 5 - .../ArrayExpression-ArrayPattern/expected.js | 5 - .../types/ArrowFunctionExpression/actual.js | 4 - .../types/ArrowFunctionExpression/expected.js | 4 - .../actual.js | 3 - .../expected.js | 3 - .../types/AwaitExpression/actual.js | 7 -- .../types/AwaitExpression/expected.js | 7 -- .../generation/types/BindExpression/actual.js | 5 - .../types/BindExpression/expected.js | 5 - .../generation/types/BlockStatement/actual.js | 5 - .../types/BlockStatement/expected.js | 5 - .../generation/types/BreakStatement/actual.js | 7 -- .../types/BreakStatement/expected.js | 7 -- .../generation/types/CallExpression/actual.js | 5 - .../types/CallExpression/expected.js | 5 - .../ClassBody-MethodDefinition/actual.js | 13 --- .../ClassBody-MethodDefinition/expected.js | 13 --- .../types/ClassDeclaration/actual.js | 2 - .../types/ClassDeclaration/expected.js | 2 - .../types/ClassExpression/actual.js | 2 - .../types/ClassExpression/expected.js | 2 - .../actual.js | 9 -- .../expected.js | 9 -- .../types/ConditionalExpression/actual.js | 1 - .../types/ConditionalExpression/expected.js | 1 - .../types/ContinueStatement/actual.js | 7 -- .../types/ContinueStatement/expected.js | 7 -- .../types/DebuggerStatement/actual.js | 1 - .../types/DebuggerStatement/expected.js | 1 - .../generation/types/Decorator/actual.js | 31 ------ .../generation/types/Decorator/expected.js | 31 ------ .../types/DoWhileStatement/actual.js | 5 - .../types/DoWhileStatement/expected.js | 5 - .../generation/types/EmptyStatement/actual.js | 1 - .../types/EmptyStatement/expected.js | 1 - .../actual.js | 31 ------ .../expected.js | 31 ------ .../generation/types/ForInStatement/actual.js | 5 - .../types/ForInStatement/expected.js | 5 - .../generation/types/ForOfStatement/actual.js | 5 - .../types/ForOfStatement/expected.js | 5 - .../generation/types/ForStatement/actual.js | 3 - .../generation/types/ForStatement/expected.js | 3 - .../actual.js | 23 ---- .../expected.js | 23 ---- .../generation/types/Identifier/actual.js | 2 - .../generation/types/Identifier/expected.js | 2 - .../generation/types/IfStatement/actual.js | 25 ----- .../generation/types/IfStatement/expected.js | 25 ----- .../actual.js | 9 -- .../expected.js | 9 -- .../types/LabeledStatement/actual.js | 1 - .../types/LabeledStatement/expected.js | 1 - .../generation/types/Literal/actual.js | 12 -- .../generation/types/Literal/expected.js | 12 -- .../types/MemberExpression/actual.js | 11 -- .../types/MemberExpression/expected.js | 11 -- .../generation/types/NewExpression/actual.js | 3 - .../types/NewExpression/expected.js | 3 - .../actual.js | 20 ---- .../expected.js | 20 ---- .../types/ReturnStatement/actual.js | 7 -- .../types/ReturnStatement/expected.js | 7 -- .../types/SequenceExpression/actual.js | 4 - .../types/SequenceExpression/expected.js | 3 - .../SpreadElement-SpreadProperty/actual.js | 3 - .../SpreadElement-SpreadProperty/expected.js | 3 - .../SwitchStatement-SwitchCase/actual.js | 39 ------- .../SwitchStatement-SwitchCase/expected.js | 42 ------- .../actual.js | 12 -- .../expected.js | 12 -- .../generation/types/ThisExpression/actual.js | 5 - .../types/ThisExpression/expected.js | 5 - .../generation/types/ThrowStatement/actual.js | 3 - .../types/ThrowStatement/expected.js | 3 - .../types/TryStatement-CatchClause/actual.js | 25 ----- .../TryStatement-CatchClause/expected.js | 25 ----- .../types/UnaryExpression/actual.js | 5 - .../types/UnaryExpression/expected.js | 5 - .../types/UpdateExpression/actual.js | 3 - .../types/UpdateExpression/expected.js | 3 - .../actual.js | 13 --- .../expected.js | 18 --- .../generation/types/WhileStatement/actual.js | 5 - .../types/WhileStatement/expected.js | 5 - .../generation/types/WithStatement/actual.js | 5 - .../types/WithStatement/expected.js | 5 - .../generation/types/XJSAttribute/actual.js | 7 -- .../generation/types/XJSAttribute/expected.js | 7 -- .../actual.js | 5 - .../expected.js | 5 - .../types/XJSEmptyExpression/actual.js | 1 - .../types/XJSEmptyExpression/expected.js | 1 - .../types/XJSExpressionContainer/actual.js | 1 - .../types/XJSExpressionContainer/expected.js | 1 - .../types/XJSMemberExpression/actual.js | 1 - .../types/XJSMemberExpression/expected.js | 1 - .../types/XJSNamespacedName/actual.js | 1 - .../types/XJSNamespacedName/expected.js | 1 - .../types/XJSSpreadAttribute/actual.js | 1 - .../types/XJSSpreadAttribute/expected.js | 1 - .../types/YieldExpression/actual.js | 7 -- .../types/YieldExpression/expected.js | 7 -- 314 files changed, 3079 deletions(-) delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/options.json delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js delete mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-string/double/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-string/double/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-string/single/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/auto-string/single/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json delete mode 100644 packages/babel-core/test/fixtures/generation/comments/block-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/block-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-only/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-only/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json delete mode 100644 packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/computed-property-comments/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/computed-property-comments/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/empty-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/empty-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/empty/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/empty/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/if-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/if-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/object_comments/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/object_comments/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/return-no-argument/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/return-no-argument/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/compact/options.json delete mode 100644 packages/babel-core/test/fixtures/generation/compact/single-line-comment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/compact/single-line-comment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/floating-point/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/floating-point/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/new-precedence/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/new-precedence/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/unary-op/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/unary-op/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/array-types/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/array-types/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/call-properties/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/call-properties/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/declare-module/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/declare-module/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/declare-statements/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/declare-statements/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/number-literal-types/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/number-literal-types/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/string-literal-types/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/string-literal-types/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/tuples/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/tuples/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/type-alias/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/type-alias/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/type-annotations/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/type-annotations/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/typecasts/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/flow/typecasts/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/parentheses/terminator-break/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/parentheses/terminator-break/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/AwaitExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/AwaitExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/BindExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/BindExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/BlockStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/BlockStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/BreakStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/BreakStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/CallExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/CallExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ClassDeclaration/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ClassDeclaration/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ClassExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ClassExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ConditionalExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ConditionalExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ContinueStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ContinueStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/DebuggerStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/DebuggerStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/Decorator/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/Decorator/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/DoWhileStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/DoWhileStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/EmptyStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/EmptyStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ForInStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ForInStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ForOfStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ForOfStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ForStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ForStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/Identifier/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/Identifier/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/IfStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/IfStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/LabeledStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/LabeledStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/Literal/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/Literal/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/MemberExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/MemberExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/NewExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/NewExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ReturnStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ReturnStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/SequenceExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/SequenceExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ThisExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ThisExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ThrowStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/ThrowStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/UnaryExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/UnaryExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/UpdateExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/UpdateExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/WhileStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/WhileStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/WithStatement/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/WithStatement/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSAttribute/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSAttribute/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/expected.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/YieldExpression/actual.js delete mode 100644 packages/babel-core/test/fixtures/generation/types/YieldExpression/expected.js diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js deleted file mode 100644 index d299fb5379..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js +++ /dev/null @@ -1,57 +0,0 @@ -function makeMultiplier() { - // `arguments` should refer to `makeMultiplier`'s arguments. - return (n) => [].slice.call(arguments).reduce((a, b) => a * b) * n; -} - -function toArray() { - // Intentionally nest arrow functions to ensure `arguments` is put inside - // `toArray`'s scope. - return (() => (arguments, (() => [].slice.call(arguments)).call())).call(); -} - -function returnDotArguments(object) { - // Ensure `arguments` is not treated as a reference to the magic value. - return (() => object.arguments).call(); -} - -function returnArgumentsObject() { - // Ensure `arguments` is not treated as a reference to the magic value. - return (() => ({arguments: 1})).call(); -} - -function makeArgumentsReturner() { - return (() => function() { - return [].slice.call(arguments); - }).call(); -} - -// i.e. 2 * 3 * 4 == 24, not 16 (4 * 4) -assert.equal( - makeMultiplier(2, 3)(4), - 24, - 'ensure `arguments` is hoisted out to the first non-arrow scope' -); - -assert.deepEqual( - toArray(1, 2, 3), - [1, 2, 3], - 'ensure `arguments` is hoisted out to the first non-arrow scope' -); - -assert.equal( - returnDotArguments({arguments: 1}), - 1, - 'member accesses with `arguments` property should not be replaced' -); - -assert.deepEqual( - returnArgumentsObject(), - {arguments: 1}, - 'object property keys named `arguments` should not be replaced' -); - -assert.deepEqual( - makeArgumentsReturner()(1, 2, 3), - [1, 2, 3], - 'arguments should not be hoisted from inside non-arrow functions' -); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js deleted file mode 100644 index 0b95435853..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js +++ /dev/null @@ -1,2 +0,0 @@ -var empty = () => {}; -assert.equal(empty(), undefined); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js deleted file mode 100644 index 03041f0297..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js +++ /dev/null @@ -1,12 +0,0 @@ -var obj = { - method: function() { - return () => (this, () => this); - }, - - method2: function() { - return () => () => this; - } -}; - -assert.strictEqual(obj.method()()(), obj); -assert.strictEqual(obj.method2()()(), obj); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js deleted file mode 100644 index 66fad996e5..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js +++ /dev/null @@ -1,2 +0,0 @@ -var square = x => x * x; -assert.equal(square(4), 16); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js deleted file mode 100644 index 3ec553b180..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js +++ /dev/null @@ -1,2 +0,0 @@ -var keyMaker = val => ({ key: val }); -assert.deepEqual(keyMaker(9), { key: 9 }); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js deleted file mode 100644 index 68f68c14dc..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js +++ /dev/null @@ -1,7 +0,0 @@ -var obj = { - method: function() { - return () => this; - } -}; - -assert.strictEqual(obj.method()(), obj); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json deleted file mode 100644 index fc3d742263..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["transform-es2015-arrow-functions"] -} diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js deleted file mode 100644 index 75fbefbacd..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js +++ /dev/null @@ -1,2 +0,0 @@ -var odds = [0, 2, 4].map(v => v + 1); -assert.deepEqual(odds, [1, 3, 5]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js deleted file mode 100644 index c2b56e7bbc..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js +++ /dev/null @@ -1,2 +0,0 @@ -var identity = x => x; -assert.equal(identity(1), 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js b/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js deleted file mode 100644 index 7349df95b6..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js +++ /dev/null @@ -1,29 +0,0 @@ -var Animal = class { - sayHi() { - return 'Hi, I am a '+this.type()+'.'; - } - - static getName() { - return 'Animal'; - } -}; - -var Dog = class extends Animal { - type() { return 'dog'; } - - sayHi() { - return super.sayHi() + ' WOOF!'; - } - - static getName() { - return super.getName() + '/Dog'; - } -}; - -assert.equal(new Dog().sayHi(), 'Hi, I am a dog. WOOF!'); -assert.equal(Dog.getName(), 'Animal/Dog'); - -var count = 0; -var Cat = class extends (function(){ count++; return Animal; })() {}; - -assert.equal(count, 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js b/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js deleted file mode 100644 index 5c7efe0dc6..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js +++ /dev/null @@ -1,21 +0,0 @@ -class Animal { - sayHi() { - return 'I am an animal.' - } - - sayOther() { - return 'WAT?!'; - } -} - -class Horse extends Animal { - sayHi() { - return super.sayOther(); - } - - sayOther() { - return 'I see dead objects.'; - } -} - -assert.equal(new Horse().sayHi(), 'WAT?!'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js deleted file mode 100644 index 1c2bb96a80..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js +++ /dev/null @@ -1,9 +0,0 @@ -var Person = (class Person {}); -assert.equal(typeof Person, 'function'); - -assert.equal( - (function(){ return (class Person {}); })().name, - 'Person' -); - -assert.equal(typeof (class {}), 'function'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js deleted file mode 100644 index 894e18022a..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js +++ /dev/null @@ -1,15 +0,0 @@ -class Animal { - sayHi() { - return 'Hi, I am a '+this.type()+'.'; - } -} - -class Dog extends Animal { - type() { return 'dog'; } - - sayHi() { - return super.sayHi() + ' WOOF!'; - } -} - -assert.equal(new Dog().sayHi(), 'Hi, I am a dog. WOOF!'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js deleted file mode 100644 index 4dcf3296f0..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js +++ /dev/null @@ -1,14 +0,0 @@ -class Multiplier { - constructor(n=1) { - this.n = n; - } - - multiply(n=1) { - return n * this.n; - } -} - -assert.equal(new Multiplier().n, 1); -assert.equal(new Multiplier(6).n, 6); -assert.equal(new Multiplier().multiply(), 1); -assert.equal(new Multiplier(2).multiply(3), 6); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js deleted file mode 100644 index f8d9d7a207..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js +++ /dev/null @@ -1,10 +0,0 @@ -class Person { - getName() { - return this.firstName + ' ' + this.lastName; - } -} - -var me = new Person(); -me.firstName = 'Brian'; -me.lastName = 'Donovan'; -assert.equal(me.getName(), 'Brian Donovan'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js b/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js deleted file mode 100644 index 602a6702d3..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js +++ /dev/null @@ -1,5 +0,0 @@ -class Foo { -} - -assert.equal(new Foo().constructor, Foo, 'Foo instances should have Foo as constructor'); -assert.ok(new Foo() instanceof Foo, 'Foo instances should be `instanceof` Foo'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js b/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js deleted file mode 100644 index fe5c02d113..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js +++ /dev/null @@ -1,20 +0,0 @@ -class Point { - constructor(x, y) { - this.x = x; - this.y = y; - } - - toString() { - return '(' + this.x + ', ' + this.y + ')'; - } -} - -var point = new Point(1, 2); -var keys = []; - -for (var key in point) { - keys.push(key); -} - -assert.equal(point.toString(), '(1, 2)'); -assert.deepEqual(keys.sort(), ['x', 'y']); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js b/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js deleted file mode 100644 index d30f21cba5..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js +++ /dev/null @@ -1,15 +0,0 @@ -class Point { - constructor(x, y) { - this.x = x; - this.y = y; - } -} - -class ZeroPoint extends Point { - constructor() { - super(0, 0); - } -} - -assert.equal(new ZeroPoint().x, 0); -assert.equal(new ZeroPoint().y, 0); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js b/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js deleted file mode 100644 index fa3821d8c7..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js +++ /dev/null @@ -1,4 +0,0 @@ -class Obj extends null {} - -assert.strictEqual(Obj.toString, Function.toString); -assert.strictEqual(new Obj().toString, undefined); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js deleted file mode 100644 index 218ccbd2fe..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js +++ /dev/null @@ -1,37 +0,0 @@ -class Base { - get sound() { - return 'I am a ' + this.type + '.'; - } - - get name() { - return this._name; - } - - set name(val) { - this._name = val; - } -} - -class Animal extends Base {} - -class Cat extends Animal { - get type() { return 'cat'; } - - get sound() { - return super.sound + ' MEOW!'; - } - - get name() { - return super.name; - } - - set name(val) { - super.name = val + ' Cat'; - } -} - -var cat = new Cat(); - -assert.equal(cat.sound, 'I am a cat. MEOW!'); -cat.name = 'Nyan'; -assert.equal(cat.name, 'Nyan Cat'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js deleted file mode 100644 index 155f09a150..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js +++ /dev/null @@ -1,28 +0,0 @@ -class Person { - constructor(firstName, lastName) { - this.firstName = firstName; - this.lastName = lastName; - } - - get name() { - return this.firstName + ' ' + this.lastName; - } - - set name(name) { - var parts = name.split(' '); - this.firstName = parts[0]; - this.lastName = parts[1]; - } -} - -var mazer = new Person('Mazer', 'Rackham'); -assert.equal(mazer.name, 'Mazer Rackham'); -mazer.name = 'Ender Wiggin'; -assert.equal(mazer.firstName, 'Ender'); -assert.equal(mazer.lastName, 'Wiggin'); - -var forLoopProperties = []; -for (var key in mazer) { - forLoopProperties.push(key); -} -assert.ok(forLoopProperties.indexOf('name') === -1, 'getters/setters should be unenumerable'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js b/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js deleted file mode 100644 index b70c56e68c..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js +++ /dev/null @@ -1,7 +0,0 @@ -class Tripler { - triple(n) { - return n * 3; - } -} - -assert.equal(new Tripler().triple(2), 6); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js deleted file mode 100644 index 19ffd5aa73..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js +++ /dev/null @@ -1,12 +0,0 @@ -var value; - -class Foo { - foo() { - value = 1; - } -} - -var foo = new Foo(); -foo.foo = function() { value = 2; }; -foo.foo(); -assert.equal(value, 2); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js deleted file mode 100644 index 77b7bb0774..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js +++ /dev/null @@ -1,28 +0,0 @@ -class Joiner { - constructor(string) { - this.string = string; - } - - join(...items) { - return items.join(this.string); - } - - static join(string, ...items) { - var joiner = new this(string); - // TODO: use spread params here - return joiner.join.apply(joiner, items); - } -} - -class ArrayLike { - constructor(...items) { - items.forEach(function(item, i) { - this[i] = item; - }.bind(this)); - this.length = items.length; - } -} - -var joiner = new Joiner(' & '); -assert.equal(joiner.join(4, 5, 6), '4 & 5 & 6'); -assert.equal(new ArrayLike('a', 'b')[1], 'b'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js deleted file mode 100644 index af9fe0afe6..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js +++ /dev/null @@ -1,12 +0,0 @@ -class Point { - constructor(x, y) { - this.x = x; - this.y = y; - } - - static get ORIGIN() { - return new this(0, 0); - } -} - -assert.deepEqual(Point.ORIGIN, new Point(0, 0)); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js deleted file mode 100644 index 42e6e6e170..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js +++ /dev/null @@ -1,30 +0,0 @@ -class Tripler { - static triple(n=1) { - return n * 3; - } - - static toString() { - return '3' + super.toString() + '3'; - } -} - -class MegaTripler extends Tripler { - static triple(n=1) { - return super.triple(n) * super.triple(n); - } -} - -var tripler = new Tripler(); - -assert.equal(Tripler.triple(), 3); -assert.equal(Tripler.triple(2), 6); -assert.equal(tripler.triple, undefined); - -assert.equal(Tripler.toString(), '3' + Object.toString.call(Tripler) + '3'); - -var mega = new MegaTripler(); - -assert.equal(MegaTripler.triple(2), 36); -assert.equal(mega.triple, undefined); - -assert.equal(MegaTripler.toString(), '3' + Object.toString.call(MegaTripler) + '3'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js deleted file mode 100644 index 08fae30af5..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js +++ /dev/null @@ -1,7 +0,0 @@ -class Person { - static set DB(value) { - assert.equal(value, 'mysql'); - } -} - -Person.DB = 'mysql'; diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js b/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js deleted file mode 100644 index 01058549c9..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js +++ /dev/null @@ -1,21 +0,0 @@ -var log = ''; - -class Base { - p() { log += '[Base]'; } -} - -class OtherBase { - p() { log += '[OtherBase]'; } -} - -class Derived extends Base { - p() { - log += '[Derived]'; - super.p(); - Derived.prototype.__proto__ = OtherBase.prototype; - super.p(); - } -} - -new Derived().p(); -assert.equal(log, '[Derived][Base][OtherBase]'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js deleted file mode 100644 index bedcb7785a..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js +++ /dev/null @@ -1,8 +0,0 @@ -var x = 'y'; - -var foo = { - get [x]() { return this._y; }, - set [x](v) { this._y = v; } -}; - -assert.equal((foo.y = 10, foo.y), 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js deleted file mode 100644 index e28e4d18d5..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js +++ /dev/null @@ -1,3 +0,0 @@ -var x = 'y'; -assert.equal({[x]: function() { return 10; }}.y(), 10); -assert.equal({[x + 'y']() { return 10; }}.yy(), 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js deleted file mode 100644 index ea11b2c6f6..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js +++ /dev/null @@ -1,4 +0,0 @@ -var x = 'y'; -var foo = {[x]: 10, z: {[x]: 10}}; -assert.equal(foo.y + foo.z.y, 20); -assert.equal({[x]: {[x]: {[x]: 10}}}.y.y.y, 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json deleted file mode 100644 index ed96b856f3..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["transform-es2015-computed-properties"] -} diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js deleted file mode 100644 index 21e56afe58..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js +++ /dev/null @@ -1,3 +0,0 @@ -var x = 'y'; -assert.equal({[x]: 10}.y, 10); -assert.equal({[x + 'y']: 10}.yy, 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js deleted file mode 100644 index 030f3e08ea..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js +++ /dev/null @@ -1,3 +0,0 @@ -assert.equal((function(a){}).length, 1); -assert.equal((function(a=5){}).length, 0); -assert.equal((function(a, b, c=5){}).length, 2); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js deleted file mode 100644 index 66c0068d94..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js +++ /dev/null @@ -1,8 +0,0 @@ -function makeMultiplier(x=1) { - return (y=1) => x * y; -} - -assert.equal(makeMultiplier()(), 1); -assert.equal(makeMultiplier(2)(3), 6); -assert.deepEqual([1, 2, 3].map(makeMultiplier(2)), [2, 4, 6]); -assert.deepEqual([undefined, null, 0].map(makeMultiplier(2)), [2, 0, 0]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js deleted file mode 100644 index b028ba3e09..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js +++ /dev/null @@ -1,5 +0,0 @@ -function foo(x=5, y=6) { - return [x, y]; -} - -assert.deepEqual(foo(undefined, null), [5, null]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js deleted file mode 100644 index 54848cd8f2..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js +++ /dev/null @@ -1,11 +0,0 @@ -function call(fn, context=this) { - return fn.call(context); -} - -var context = {a: 99}; - -// use the default parameter -assert.strictEqual(call.call(context, function(){ return this.a; }), 99); - -// explicitly provide the default parameter value -assert.strictEqual(call(function(){ return this.a; }, context), 99); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js deleted file mode 100644 index d7bf1bfa1c..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js +++ /dev/null @@ -1,4 +0,0 @@ -function foo(x=5) { - return x; -} -assert.equal(foo(), 5); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js deleted file mode 100644 index 392586fc9b..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js +++ /dev/null @@ -1,7 +0,0 @@ -var a = { - echo(c) { - return c; - } -}; - -assert.strictEqual(a.echo(1), 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js deleted file mode 100644 index 53c4bf3bc7..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js +++ /dev/null @@ -1,9 +0,0 @@ -var a = { - b() { - return this; - } -}; - -var context = {}; -assert.strictEqual(a.b(), a); -assert.strictEqual(a.b.call(context), context); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js deleted file mode 100644 index 320ec33b54..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js +++ /dev/null @@ -1,7 +0,0 @@ -var a = { - b() { - return 'c'; - } -}; - -assert.equal(a.b.name, 'b'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js deleted file mode 100644 index 4f58980df0..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js +++ /dev/null @@ -1,9 +0,0 @@ -var b = 1; - -var a = { - b() { - return b; - } -}; - -assert.equal(a.b(), 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js deleted file mode 100644 index 1707a7aebb..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js +++ /dev/null @@ -1,7 +0,0 @@ -var a = { - b() { - return 'c'; - } -}; - -assert.equal(a.b(), 'c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js deleted file mode 100644 index eb9d8ea8c5..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js +++ /dev/null @@ -1,5 +0,0 @@ -var join = (joinStr, ...items) => { - return items.join(joinStr); -}; - -assert.deepEqual(join(' ', 'a', 'b', 'c'), 'a b c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js deleted file mode 100644 index 2d3ca5d283..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js +++ /dev/null @@ -1,5 +0,0 @@ -function join(joinStr, ...items) { - return items.join(joinStr); -} - -assert.deepEqual(join(' ', 'a', 'b', 'c'), 'a b c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js deleted file mode 100644 index 769bf2d2a4..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js +++ /dev/null @@ -1,5 +0,0 @@ -var join = function(joinStr, ...items) { - return items.join(joinStr); -}; - -assert.deepEqual(join(' ', 'a', 'b', 'c'), 'a b c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js b/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js deleted file mode 100644 index d0957e35b4..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js +++ /dev/null @@ -1,6 +0,0 @@ -function arrayOf() { - return [...arguments]; -} - -assert.equal(Object.prototype.toString.call(arrayOf()), '[object Array]'); -assert.deepEqual(arrayOf(1, 2, 3), [1, 2, 3]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js b/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js deleted file mode 100644 index 3c1bea826f..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js +++ /dev/null @@ -1,3 +0,0 @@ -var names = ['Brian', 'Madeline']; -assert.deepEqual(['Thomas', ...names], ['Thomas', 'Brian', 'Madeline']); -assert.deepEqual([1, 2, ...[3, 4, 5]], [1, 2, 3, 4, 5]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js b/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js deleted file mode 100644 index 19cffabc6d..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js +++ /dev/null @@ -1,5 +0,0 @@ -function sum(...numbers) { - return numbers.reduce(function(sum, n) { return n + sum; }, 0); -} - -assert.equal(sum(4, 5, ...[10, 20, 30]), 69); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js b/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js deleted file mode 100644 index c2c06da399..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js +++ /dev/null @@ -1,10 +0,0 @@ -var object = { - list: [], - - append: function(...items) { - this.list.push(...items); - } -}; - -object.append(1, 2, ...[3, 4]); -assert.deepEqual(object.list, [1, 2, 3, 4]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js b/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js deleted file mode 100644 index 6e5ef15ba2..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js +++ /dev/null @@ -1,16 +0,0 @@ -var obj = { - [Symbol.iterator]: function() { - var ttl = 3; - return { - next: function() { - if (ttl === 0) { - return { done: true, value: null }; - } else { - return { done: false, value: ttl-- }; - } - } - }; - } -}; - -assert.deepEqual([3, 2, 1], [...obj]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js b/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js deleted file mode 100644 index 6e4af74279..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js +++ /dev/null @@ -1,11 +0,0 @@ -var callCount = 0; -function getArray() { - callCount++; - return Array; -} - -assert.deepEqual([1, 2, 3], new Array(...[1, 2, 3])); - -// Ensure the expression of the function being initialized is not copied. -assert.deepEqual([1, 2, 3], new (getArray())(...[1, 2, 3])); -assert.equal(callCount, 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js b/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js deleted file mode 100644 index e63f88e788..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js +++ /dev/null @@ -1,35 +0,0 @@ -var MATH = { - sum: function(...numbers) { - return numbers.reduce(this.add, 0); - }, - - add: function(a, b) { - return a + b; - } -}; - -assert.equal(MATH.sum(1, ...[2, 3]), 6); - -// Ensure that the below does not expand to this: -// -// obj.getSelf().call.apply(obj.getSelf(), []); -// - -var ops = []; -var obj = { - getSelf: function() { - ops.push('getSelf'); - return this; - }, - - doCall: function() { - ops.push('doCall', this); - } -}; - -obj.getSelf().doCall(...[]); -assert.deepEqual(ops, ['getSelf', 'doCall', obj]); - -ops = []; -obj['getSelf']().doCall(...[]); -assert.deepEqual(ops, ['getSelf', 'doCall', obj]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js b/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js deleted file mode 100644 index 106bfa55be..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js +++ /dev/null @@ -1,6 +0,0 @@ -function sum(...numbers) { - return numbers.reduce(function(sum, n) { return n + sum; }, 0); -} - -var numbers = [1, 2, 3]; -assert.equal(sum(...numbers), 6); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js b/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js deleted file mode 100644 index 6d1be1c2bc..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js +++ /dev/null @@ -1,4 +0,0 @@ -var s = `a - b - c`; -assert.equal(s, 'a\n b\n c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js deleted file mode 100644 index 83083e9fd0..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js +++ /dev/null @@ -1,4 +0,0 @@ -assert.strictEqual( - `a${1}b${`${1+1}c`}3`, - 'a1b2c3' -); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js deleted file mode 100644 index 1854b04ff5..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js +++ /dev/null @@ -1,2 +0,0 @@ -var s = `str`; -assert.equal(s, 'str'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/options.json b/packages/babel-core/test/fixtures/esnext/es6-templates/options.json deleted file mode 100644 index 341222f184..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["transform-es2015-template-literals"] -} diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js b/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js deleted file mode 100644 index 831ad050ab..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js +++ /dev/null @@ -1,6 +0,0 @@ -function r(strings) { - assert.equal(strings.raw[0], '\\n'); - return strings.raw.join(''); -} - -assert.equal(r `\n`, '\\n'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js deleted file mode 100644 index b96a02a543..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js +++ /dev/null @@ -1,2 +0,0 @@ -var s = `1 + 1 = ${1 + 1}`; -assert.equal(s, '1 + 1 = 2'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js b/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js deleted file mode 100644 index 5b894c55ac..0000000000 --- a/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js +++ /dev/null @@ -1,26 +0,0 @@ -function tag(strings) { - var values = [].slice.call(arguments, 1); - assert.equal(strings[0], 'a'); - assert.equal(strings[1], 'b'); - assert.equal(values[0], 42); - return 'whatever'; -} -assert.equal(tag `a${ 42 }b`, 'whatever'); - -function tagInterpolateFirst(strings) { - var values = [].slice.call(arguments, 1); - assert.equal(strings[0], ''); - assert.equal(strings[1], 'b'); - assert.equal(values[0], 42); - return 'whatever'; -} -assert.equal(tagInterpolateFirst `${ 42 }b`, 'whatever'); - -function tagInterpolateLast(strings) { - var values = [].slice.call(arguments, 1); - assert.equal(strings[0], 'a'); - assert.equal(strings[1], ''); - assert.equal(values[0], 42); - return 'whatever'; -} -assert.equal(tagInterpolateLast `a${ 42 }`, 'whatever'); diff --git a/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/actual.js b/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/actual.js deleted file mode 100644 index 2beaed5903..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo() { - bar(); - if (foo) { - bar(); - } -} diff --git a/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/expected.js b/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/expected.js deleted file mode 100644 index 2beaed5903..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-indentation/hard-tab/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo() { - bar(); - if (foo) { - bar(); - } -} diff --git a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js deleted file mode 100644 index 017db5a0f8..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo() { - bar(); - if (foo) { - bar(); - } -} diff --git a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js deleted file mode 100644 index 017db5a0f8..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-2/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo() { - bar(); - if (foo) { - bar(); - } -} diff --git a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js deleted file mode 100644 index 9f080a2650..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo() { - bar(); - if (foo) { - bar(); - } -} diff --git a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js b/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js deleted file mode 100644 index 9f080a2650..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-indentation/soft-tab-4/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo() { - bar(); - if (foo) { - bar(); - } -} diff --git a/packages/babel-core/test/fixtures/generation/auto-string/double/actual.js b/packages/babel-core/test/fixtures/generation/auto-string/double/actual.js deleted file mode 100644 index 5a8fcf7e29..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-string/double/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -foo("foo"); -foo("foo\nlol"); -foo("foo\n\"lol"); -foo("foo\n\"'lol"); diff --git a/packages/babel-core/test/fixtures/generation/auto-string/double/expected.js b/packages/babel-core/test/fixtures/generation/auto-string/double/expected.js deleted file mode 100644 index 5a8fcf7e29..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-string/double/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -foo("foo"); -foo("foo\nlol"); -foo("foo\n\"lol"); -foo("foo\n\"'lol"); diff --git a/packages/babel-core/test/fixtures/generation/auto-string/single/actual.js b/packages/babel-core/test/fixtures/generation/auto-string/single/actual.js deleted file mode 100644 index 1d8e7531c9..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-string/single/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -foo('foo'); -foo('foo\nlol'); -foo('foo\n"lol'); -foo('foo\n"\'lol'); diff --git a/packages/babel-core/test/fixtures/generation/auto-string/single/expected.js b/packages/babel-core/test/fixtures/generation/auto-string/single/expected.js deleted file mode 100644 index 1d8e7531c9..0000000000 --- a/packages/babel-core/test/fixtures/generation/auto-string/single/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -foo('foo'); -foo('foo\nlol'); -foo('foo\n"lol'); -foo('foo\n"\'lol'); diff --git a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js deleted file mode 100644 index aa61a9c8fe..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/actual.js +++ /dev/null @@ -1,10 +0,0 @@ -function test() { - - - /* - * this is comment - */ - - - var i = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js deleted file mode 100644 index 62aee76944..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment-with-space/expected.js +++ /dev/null @@ -1,8 +0,0 @@ -function test() { - - /* - * this is comment - */ - - var i = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/actual.js deleted file mode 100644 index 1cacd84afd..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -function test() { - /* - * this is comment - */ - var i = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/expected.js deleted file mode 100644 index 1cacd84afd..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/2-space-multi-comment/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -function test() { - /* - * this is comment - */ - var i = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js deleted file mode 100644 index 5c85ac0e06..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -{ - print("hello"); - // comment -} diff --git a/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js deleted file mode 100644 index 5c85ac0e06..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -{ - print("hello"); - // comment -} diff --git a/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json deleted file mode 100644 index 97925bbcb6..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/block-line-comment-with-retainlines-option/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "retainLines": true -} diff --git a/packages/babel-core/test/fixtures/generation/comments/block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment/actual.js deleted file mode 100644 index ddc9499b49..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/block-line-comment/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -// Leading to block -{ - print("hello"); -} diff --git a/packages/babel-core/test/fixtures/generation/comments/block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/block-line-comment/expected.js deleted file mode 100644 index ddc9499b49..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/block-line-comment/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -// Leading to block -{ - print("hello"); -} diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/actual.js b/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/actual.js deleted file mode 100644 index befcf38bfa..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/actual.js +++ /dev/null @@ -1,7 +0,0 @@ - -// from #23 - -/**/ - -/* -*/ diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/expected.js b/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/expected.js deleted file mode 100644 index befcf38bfa..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-only-with-space/expected.js +++ /dev/null @@ -1,7 +0,0 @@ - -// from #23 - -/**/ - -/* -*/ diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-only/actual.js b/packages/babel-core/test/fixtures/generation/comments/comment-only/actual.js deleted file mode 100644 index acfb1b9a7b..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-only/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -// from #23 -/**/ -/* -*/ diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-only/expected.js b/packages/babel-core/test/fixtures/generation/comments/comment-only/expected.js deleted file mode 100644 index acfb1b9a7b..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-only/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -// from #23 -/**/ -/* -*/ diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js deleted file mode 100644 index 7f2608b525..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -// comment -print("hello"); - -// comment2 -print("hello2"); diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js deleted file mode 100644 index 7f2608b525..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -// comment -print("hello"); - -// comment2 -print("hello2"); diff --git a/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json deleted file mode 100644 index 97925bbcb6..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/comment-statement-with-retainlines-option/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "retainLines": true -} diff --git a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/actual.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/actual.js deleted file mode 100644 index 0c0c0272a5..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/actual.js +++ /dev/null @@ -1,10 +0,0 @@ -var test = { - /** - * Before bracket init - */ - ["a"]:"1", - [/* - * Inside bracket init - */ - "b"]:"2" - }, ok = 42; diff --git a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/expected.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/expected.js deleted file mode 100644 index 1ad3a0f35f..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments-2/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -var test = { - /** - * Before bracket init - */ - ["a"]: "1", - [/* - * Inside bracket init - */ - "b"]: "2" -}, - ok = 42; diff --git a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/actual.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/actual.js deleted file mode 100644 index 0c7aae7d18..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/actual.js +++ /dev/null @@ -1,28 +0,0 @@ -var test = { - /** - * Before bracket init - */ - ["a"]:"1", - - [/* - * Inside bracket init - */ - "b"]:"2", - - ["c" - /* - * After bracket key - */]:"3", - - // Before bracket, line comment - [ - "d"]:"4", - - [ - // Inside bracket, line comment - "e"]:"5", - - ["f" - // After bracket, line comment - ]:"6" -}; diff --git a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/expected.js b/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/expected.js deleted file mode 100644 index c6ffd441f8..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/computed-property-comments/expected.js +++ /dev/null @@ -1,27 +0,0 @@ -var test = { - /** - * Before bracket init - */ - ["a"]: "1", - - [/* - * Inside bracket init - */ - "b"]: "2", - - ["c" - /* - * After bracket key - */]: "3", - - // Before bracket, line comment - ["d"]: "4", - - [ - // Inside bracket, line comment - "e"]: "5", - - ["f" - // After bracket, line comment - ]: "6" -}; diff --git a/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/actual.js deleted file mode 100644 index 760ae4934e..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -do { -} // LINE -while (true); diff --git a/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/expected.js deleted file mode 100644 index dbcec4152a..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/do-while-line-comment/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -do {} // LINE -while (true); diff --git a/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/actual.js deleted file mode 100644 index ea9f2a7244..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -function test() { -// Leading to EmptyStatement -; // Trailing to EmptyStatement -} diff --git a/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/expected.js deleted file mode 100644 index 118cbc17a2..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/empty-line-comment/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -function test() { - // Leading to EmptyStatement - ; // Trailing to EmptyStatement -} diff --git a/packages/babel-core/test/fixtures/generation/comments/empty/actual.js b/packages/babel-core/test/fixtures/generation/comments/empty/actual.js deleted file mode 100644 index 8b13789179..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/empty/actual.js +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/babel-core/test/fixtures/generation/comments/empty/expected.js b/packages/babel-core/test/fixtures/generation/comments/empty/expected.js deleted file mode 100644 index 8b13789179..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/empty/expected.js +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/actual.js deleted file mode 100644 index 105b25217c..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -!function(){}// -,42; -!{get 42(){}// -,foo:42}; -(function(){}// -) diff --git a/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/expected.js deleted file mode 100644 index d6802cba24..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/function-block-line-comment/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -!function () {}, // -42; -!{ get 42() {}, // - foo: 42 }; -(function () {}); -// diff --git a/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/actual.js deleted file mode 100644 index a17714740f..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -if (cond) - // Leading to if-block -{ - print("hello"); -} // Trailing to if-block diff --git a/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/expected.js deleted file mode 100644 index cc93b54438..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/if-block-line-comment/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -if (cond) - // Leading to if-block - { - print("hello"); - } // Trailing to if-block diff --git a/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/actual.js deleted file mode 100644 index 524b81aa7e..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -if (cond) -// Leading to EmptyStatement - ; // Trailing to EmptyStatement diff --git a/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/expected.js deleted file mode 100644 index bcb989f64f..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/if-empty-line-comment/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -if (cond) - // Leading to EmptyStatement - ; // Trailing to EmptyStatement diff --git a/packages/babel-core/test/fixtures/generation/comments/if-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/if-line-comment/actual.js deleted file mode 100644 index c6ce430feb..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/if-line-comment/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -function test() { -// Leading if statement - if (cond) {print("hello") } -// Trailing if-block statement -} diff --git a/packages/babel-core/test/fixtures/generation/comments/if-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/if-line-comment/expected.js deleted file mode 100644 index 065ba70e81..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/if-line-comment/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -function test() { - // Leading if statement - if (cond) { - print("hello"); - } - // Trailing if-block statement -} diff --git a/packages/babel-core/test/fixtures/generation/comments/object_comments/actual.js b/packages/babel-core/test/fixtures/generation/comments/object_comments/actual.js deleted file mode 100644 index ec76f88897..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/object_comments/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -var test = { - /** - * Test 2 - */ - a:"1", - /* - * Test 1 - */ - b:"2", - // Test 3 - c:"3" -}; diff --git a/packages/babel-core/test/fixtures/generation/comments/object_comments/expected.js b/packages/babel-core/test/fixtures/generation/comments/object_comments/expected.js deleted file mode 100644 index d835befd05..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/object_comments/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -var test = { - /** - * Test 2 - */ - a: "1", - /* - * Test 1 - */ - b: "2", - // Test 3 - c: "3" -}; diff --git a/packages/babel-core/test/fixtures/generation/comments/return-no-argument/actual.js b/packages/babel-core/test/fixtures/generation/comments/return-no-argument/actual.js deleted file mode 100644 index a43f15d232..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/return-no-argument/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() { - return; // comment -}()); diff --git a/packages/babel-core/test/fixtures/generation/comments/return-no-argument/expected.js b/packages/babel-core/test/fixtures/generation/comments/return-no-argument/expected.js deleted file mode 100644 index 0dc96b3a8c..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/return-no-argument/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -(function () { - return; // comment -})(); diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js deleted file mode 100644 index 4b9cd6df29..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/actual.js +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright (C) 2012 Yusuke Suzuki -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -function test() { -} - - - -// Copyright (C) 2012 Yusuke Suzuki -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js deleted file mode 100644 index 47869b2606..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-line-comment/expected.js +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright (C) 2012 Yusuke Suzuki -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -function test() {} - -// Copyright (C) 2012 Yusuke Suzuki -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY -// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js deleted file mode 100644 index 1076529e0b..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/actual.js +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2012 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -function test() { - -} - -/* - Copyright (C) 2012 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js deleted file mode 100644 index de284d6c01..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-a-lot-of-multi-comment/expected.js +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2012 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -function test() {} - -/* - Copyright (C) 2012 Yusuke Suzuki - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY - DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/actual.js deleted file mode 100644 index 780a9c2b4a..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -// Leading -var i = 20; -// Trailing diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/expected.js deleted file mode 100644 index 780a9c2b4a..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-line-comment/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -// Leading -var i = 20; -// Trailing diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/actual.js deleted file mode 100644 index e0ad4c2075..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/actual.js +++ /dev/null @@ -1,22 +0,0 @@ -function test() { - /* - * Leading comment - */ - - /* - * - * Leading comment 2 - * - */ - - var i = 20; - /* - * Trailing comment - */ - - /* - * - * Trailing comment 2 - * - */ -} diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/expected.js deleted file mode 100644 index e0ad4c2075..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-multi-comment/expected.js +++ /dev/null @@ -1,22 +0,0 @@ -function test() { - /* - * Leading comment - */ - - /* - * - * Leading comment 2 - * - */ - - var i = 20; - /* - * Trailing comment - */ - - /* - * - * Trailing comment 2 - * - */ -} diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/actual.js deleted file mode 100644 index 322d46769b..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/actual.js +++ /dev/null @@ -1 +0,0 @@ -; // Trailing diff --git a/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/expected.js deleted file mode 100644 index 733f7f0c6b..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/simple-statement-comment/expected.js +++ /dev/null @@ -1 +0,0 @@ -; // Trailing diff --git a/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/actual.js deleted file mode 100644 index 2ef66cdb71..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -try{}// -finally{} - -try{} -catch(e){}// -finally{} - -{ -try{} -catch(e){}// -finally{} -} diff --git a/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/expected.js deleted file mode 100644 index 034d32569f..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/try-block-line-comment/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -try {} // -finally {} - -try {} catch (e) {} // -finally {} - -{ - try {} catch (e) {} // - finally {} -} diff --git a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js deleted file mode 100644 index 5cc784bea2..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -function test() { - var - // Leading to VariableDeclarator - // Leading to VariableDeclarator - i = 20, - // Leading to VariableDeclarator - // Leading to VariableDeclarator - j = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js deleted file mode 100644 index a7c1703428..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-line-comment/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -function test() { - var - // Leading to VariableDeclarator - // Leading to VariableDeclarator - i = 20, - - // Leading to VariableDeclarator - // Leading to VariableDeclarator - j = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js deleted file mode 100644 index 41dcd3d3a9..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -function test() { - var - /* - * Leading to VariableDeclarator - * Leading to VariableDeclarator - */ - i = 20, - /* - * Leading to VariableDeclarator - * Leading to VariableDeclarator - */ - j = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js deleted file mode 100644 index 84354421c2..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-multi-comment/expected.js +++ /dev/null @@ -1,14 +0,0 @@ -function test() { - var - /* - * Leading to VariableDeclarator - * Leading to VariableDeclarator - */ - i = 20, - - /* - * Leading to VariableDeclarator - * Leading to VariableDeclarator - */ - j = 20; -} diff --git a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js deleted file mode 100644 index 4ae8f0b59d..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/actual.js +++ /dev/null @@ -1,16 +0,0 @@ -{ - var t = 20; /* - * This is trailing comment - */ -} - -{ - var tt = 20; /* - * This is trailing comment - */ -} -{{ - var t = 20; /* - * This is trailing comment - */ -}} diff --git a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js b/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js deleted file mode 100644 index 7819d36b16..0000000000 --- a/packages/babel-core/test/fixtures/generation/comments/variable-declarator-trailing-comment/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -{ - var t = 20; /* - * This is trailing comment - */ -} - -{ - var tt = 20; /* - * This is trailing comment - */ -} -{ - { - var t = 20; /* - * This is trailing comment - */ - } -} diff --git a/packages/babel-core/test/fixtures/generation/compact/options.json b/packages/babel-core/test/fixtures/generation/compact/options.json deleted file mode 100644 index eb4e948bfa..0000000000 --- a/packages/babel-core/test/fixtures/generation/compact/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "compact": true -} diff --git a/packages/babel-core/test/fixtures/generation/compact/single-line-comment/actual.js b/packages/babel-core/test/fixtures/generation/compact/single-line-comment/actual.js deleted file mode 100644 index e2589c7138..0000000000 --- a/packages/babel-core/test/fixtures/generation/compact/single-line-comment/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -// foo -bar(); diff --git a/packages/babel-core/test/fixtures/generation/compact/single-line-comment/expected.js b/packages/babel-core/test/fixtures/generation/compact/single-line-comment/expected.js deleted file mode 100644 index e2589c7138..0000000000 --- a/packages/babel-core/test/fixtures/generation/compact/single-line-comment/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -// foo -bar(); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/actual.js deleted file mode 100644 index 7c6969bfc8..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -x | y ^ z; -x | (y ^ z); -(x | y) ^ z; diff --git a/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/expected.js deleted file mode 100644 index ffcf91adde..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/bitwise-precedence/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -x | y ^ z; -x | y ^ z; -(x | y) ^ z; diff --git a/packages/babel-core/test/fixtures/generation/edgecase/floating-point/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/floating-point/actual.js deleted file mode 100644 index b38eebf513..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/floating-point/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -1.1.valueOf(); -(1e+300).valueOf(); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/floating-point/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/floating-point/expected.js deleted file mode 100644 index f0c3126dbe..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/floating-point/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -1.1.valueOf(); -1e+300.valueOf(); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/actual.js deleted file mode 100644 index f84b95ae6b..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -for (var i = (1 in []) in []); -for (var i = 1 in [] in []); -for (var i = (10 * 10 in []) in []); -for (var i = (10 + 10 in []) in []); -for (var i = 10 + (10 in []) in []); -for (var i = 10 + 10 in [] in []); -for (var i = (1 in []);;); -for ((1 in []);;); -for (1 * (1 in []);;); -for (1 * (1 + 1 in []);;); -for (1 * ((1 + 1) in []);;); -for (1 * (1 + (1 in []));;); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/expected.js deleted file mode 100644 index 029b11e515..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/for-in-no-in/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -for (var i = (1 in []) in []); -for (var i = 1 in ([] in [])); -for (var i = (10 * 10 in []) in []); -for (var i = (10 + 10 in []) in []); -for (var i = 10 + (10 in []) in []); -for (var i = 10 + 10 in ([] in [])); -for (var i = (1 in []);;); -for ((1 in []);;); -for (1 * (1 in []);;); -for (1 * (1 + 1 in []);;); -for (1 * (1 + 1 in []);;); -for (1 * (1 + (1 in []));;); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/actual.js deleted file mode 100644 index 7100c69c3d..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -new (a().b)(); -new a().b(); -new (a()).b(); -new (a())(); -new new a(a)(); -new (new a())(a); -(new a()).test; -(new a().test); -(new (a().test)()); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/expected.js deleted file mode 100644 index 646afe94da..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/new-precedence/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -new (a().b)(); -new a().b(); -new (a().b)(); -new (a())(); -new new a(a)(); -new new a()(a); -new a().test; -new a().test; -new (a().test)(); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js deleted file mode 100644 index cfbda48a0d..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -dejavu.Class.declare({ - method2: function () {} -}); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js deleted file mode 100644 index cfbda48a0d..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/one-property-with-line-terminator/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -dejavu.Class.declare({ - method2: function () {} -}); diff --git a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js deleted file mode 100644 index 2a0e91f010..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -function foo(l) { - return ( - // hi - l - ); -} diff --git a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js deleted file mode 100644 index 042f71356d..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -function foo(l){ -return ( - -l);} diff --git a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json deleted file mode 100644 index a3e2539639..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-and-compact-option/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "comments": false, - "retainLines": true, - "compact": true -} diff --git a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js deleted file mode 100644 index 3d4fdd63e3..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -function foo(l) { - return ( - l - ); -} - -function foo() { - return ( - 1 && 2 - ) || 3; -} diff --git a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js deleted file mode 100644 index cc911760dc..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -function foo(l) { - return ( - l);} - - - -function foo() { - return ( - 1 && 2 || - 3);} diff --git a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json b/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json deleted file mode 100644 index 97925bbcb6..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/return-with-retainlines-option/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "retainLines": true -} diff --git a/packages/babel-core/test/fixtures/generation/edgecase/unary-op/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/unary-op/actual.js deleted file mode 100644 index 9f318cdb1f..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/unary-op/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -delete delete i; -+ +i; -!!i; -+ ++i; -- --i; diff --git a/packages/babel-core/test/fixtures/generation/edgecase/unary-op/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/unary-op/expected.js deleted file mode 100644 index 9f318cdb1f..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/unary-op/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -delete delete i; -+ +i; -!!i; -+ ++i; -- --i; diff --git a/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/actual.js b/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/actual.js deleted file mode 100644 index 31fcb452eb..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -var fact5 = function fact(n){ - if (n <= 1) return 1 - return n * fact(n - 1) -}(5) diff --git a/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/expected.js b/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/expected.js deleted file mode 100644 index 0af0dd6ac0..0000000000 --- a/packages/babel-core/test/fixtures/generation/edgecase/variable-declaration/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var fact5 = (function fact(n) { - if (n <= 1) return 1; - return n * fact(n - 1); -})(5); diff --git a/packages/babel-core/test/fixtures/generation/flow/array-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/array-types/actual.js deleted file mode 100644 index 39f1c281a2..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/array-types/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -var a: number[]; -var a: ?number[]; -var a: (?number)[]; -var a: () => number[]; -var a: (() => number)[]; -var a: typeof A[]; diff --git a/packages/babel-core/test/fixtures/generation/flow/array-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/array-types/expected.js deleted file mode 100644 index 39f1c281a2..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/array-types/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -var a: number[]; -var a: ?number[]; -var a: (?number)[]; -var a: () => number[]; -var a: (() => number)[]; -var a: typeof A[]; diff --git a/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/actual.js deleted file mode 100644 index 8573e6b69e..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -var foo: true; -var bar: false; diff --git a/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/expected.js deleted file mode 100644 index 8573e6b69e..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/boolean-literal-types/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -var foo: true; -var bar: false; diff --git a/packages/babel-core/test/fixtures/generation/flow/call-properties/actual.js b/packages/babel-core/test/fixtures/generation/flow/call-properties/actual.js deleted file mode 100644 index 62f0a1b259..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/call-properties/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -var a: { (): number }; -var a: { (): number; }; -var a: { (): number; y: string; (x: string): string }; -var a: { (x: T): number; }; -interface A { (): number; }; diff --git a/packages/babel-core/test/fixtures/generation/flow/call-properties/expected.js b/packages/babel-core/test/fixtures/generation/flow/call-properties/expected.js deleted file mode 100644 index 11d4f2a107..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/call-properties/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -var a: { (): number }; -var a: { (): number }; -var a: { y: string; (): number; (x: string): string; }; -var a: { (x: T): number }; -interface A { (): number }; diff --git a/packages/babel-core/test/fixtures/generation/flow/declare-module/actual.js b/packages/babel-core/test/fixtures/generation/flow/declare-module/actual.js deleted file mode 100644 index 7612b7dc0d..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/declare-module/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -declare module A {} -declare module "./a/b.js" {} -declare module A { declare var x: number; } -declare module A { declare function foo(): number; } -declare module A { declare class B { foo(): number; } } diff --git a/packages/babel-core/test/fixtures/generation/flow/declare-module/expected.js b/packages/babel-core/test/fixtures/generation/flow/declare-module/expected.js deleted file mode 100644 index 0b6fbd09e0..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/declare-module/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -declare module A {} -declare module "./a/b.js" {} -declare module A { - declare var x: number; -} -declare module A { - declare function foo(): number; -} -declare module A { - declare class B { foo(): number } -} diff --git a/packages/babel-core/test/fixtures/generation/flow/declare-statements/actual.js b/packages/babel-core/test/fixtures/generation/flow/declare-statements/actual.js deleted file mode 100644 index 369f608fa2..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/declare-statements/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -declare var foo -declare var foo; -declare function foo(): void -declare function foo(): void; -declare function foo(): void; -declare function foo(x: number, y: string): void; -declare class A {} -declare class A extends B { x: number } -declare class A { static foo(): number; static x : string } -declare class A { static [ indexer: number]: string } -declare class A { static () : number } diff --git a/packages/babel-core/test/fixtures/generation/flow/declare-statements/expected.js b/packages/babel-core/test/fixtures/generation/flow/declare-statements/expected.js deleted file mode 100644 index 323cc86f70..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/declare-statements/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -declare var foo; -declare var foo; -declare function foo(): void; -declare function foo(): void; -declare function foo(): void; -declare function foo(x: number, y: string): void; -declare class A {} -declare class A extends B { x: number } -declare class A { static foo(): number; static x: string; } -declare class A { static [indexer: number]: string } -declare class A { static (): number } diff --git a/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/actual.js b/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/actual.js deleted file mode 100644 index f55148215c..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -interface A {}; -interface A extends B {}; -interface A extends B, C {}; -interface A { foo: () => number; }; -interface Dictionary { [index: string]: string; length: number; }; -class Foo implements Bar {} -class Foo extends Bar implements Bat, Man {} -class Foo extends class Bar implements Bat {} {} -class Foo extends class Bar implements Bat {} implements Man {} diff --git a/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/expected.js b/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/expected.js deleted file mode 100644 index 90aafb539e..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/interfaces-module-and-script/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -interface A {}; -interface A extends B {}; -interface A extends B, C {}; -interface A { foo(): number }; -interface Dictionary { length: number; [index: string]: string; }; -class Foo implements Bar {} -class Foo extends Bar implements Bat, Man {} -class Foo extends class Bar implements Bat {} {} -class Foo extends class Bar implements Bat {} implements Man {} diff --git a/packages/babel-core/test/fixtures/generation/flow/number-literal-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/number-literal-types/actual.js deleted file mode 100644 index 8aa0ffac4b..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/number-literal-types/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -var a: 123; -var a: 123.0; -var a: 0x7B; -var a: 0b1111011; -var a: 0o173; diff --git a/packages/babel-core/test/fixtures/generation/flow/number-literal-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/number-literal-types/expected.js deleted file mode 100644 index 8aa0ffac4b..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/number-literal-types/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -var a: 123; -var a: 123.0; -var a: 0x7B; -var a: 0b1111011; -var a: 0o173; diff --git a/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/actual.js b/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/actual.js deleted file mode 100644 index 040a63c165..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -var a: A.B; -var a: A.B.C; -var a: A.B; -var a: typeof A.B; diff --git a/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/expected.js b/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/expected.js deleted file mode 100644 index 040a63c165..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/qualified-generic-type/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var a: A.B; -var a: A.B.C; -var a: A.B; -var a: typeof A.B; diff --git a/packages/babel-core/test/fixtures/generation/flow/string-literal-types/actual.js b/packages/babel-core/test/fixtures/generation/flow/string-literal-types/actual.js deleted file mode 100644 index 6acd7f1342..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/string-literal-types/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -function createElement(tagName: "div"): HTMLDivElement {} -function createElement(tagName: 'div'): HTMLDivElement {} diff --git a/packages/babel-core/test/fixtures/generation/flow/string-literal-types/expected.js b/packages/babel-core/test/fixtures/generation/flow/string-literal-types/expected.js deleted file mode 100644 index 08c1053621..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/string-literal-types/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -function createElement(tagName: "div"): HTMLDivElement {} -function createElement(tagName: "div"): HTMLDivElement {} diff --git a/packages/babel-core/test/fixtures/generation/flow/tuples/actual.js b/packages/babel-core/test/fixtures/generation/flow/tuples/actual.js deleted file mode 100644 index 4c4291e8b2..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/tuples/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -var a: [] = []; -var a: [Foo] = [foo]; -var a: [number,] = [123,]; -var a: [number, string] = [123, "duck"]; diff --git a/packages/babel-core/test/fixtures/generation/flow/tuples/expected.js b/packages/babel-core/test/fixtures/generation/flow/tuples/expected.js deleted file mode 100644 index 2fb1a921e0..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/tuples/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var a: [] = []; -var a: [Foo] = [foo]; -var a: [number] = [123]; -var a: [number, string] = [123, "duck"]; diff --git a/packages/babel-core/test/fixtures/generation/flow/type-alias/actual.js b/packages/babel-core/test/fixtures/generation/flow/type-alias/actual.js deleted file mode 100644 index a56fa1a17b..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/type-alias/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -type FBID = number; -type Foo = Bar -export type Foo = number; diff --git a/packages/babel-core/test/fixtures/generation/flow/type-alias/expected.js b/packages/babel-core/test/fixtures/generation/flow/type-alias/expected.js deleted file mode 100644 index f0a50c1904..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/type-alias/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -type FBID = number; -type Foo = Bar; -export type Foo = number; diff --git a/packages/babel-core/test/fixtures/generation/flow/type-annotations/actual.js b/packages/babel-core/test/fixtures/generation/flow/type-annotations/actual.js deleted file mode 100644 index 2acac2f2d8..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/type-annotations/actual.js +++ /dev/null @@ -1,100 +0,0 @@ -function foo(numVal: any) {} -function foo(numVal: number) {} -function foo(numVal: number, strVal: string) {} -function foo(numVal: number, untypedVal) {} -function foo(untypedVal, numVal: number) {} -function foo(nullableNum: ?number) {} -function foo(callback: () => void) {} -function foo(callback: () => number) {} -function foo(callback: (_: bool) => number) {} -function foo(callback: (_1: bool, _2: string) => number) {} -function foo(callback: (_1: bool, ...foo: Array) => number) {} -function foo(): number{} -function foo():() => void {} -function foo():(_:bool) => number{} -function foo():(_?:bool) => number{} -function foo(): {} {} -function foo() {} -function foo() {} -function foo() {} -a = function() {}; -a = { set fooProp(value: number) {} }; -a = { set fooProp(value: number): void {} }; -a = { get fooProp():number{} }; -a = { id(x: T): T {} }; -a = { *id(x: T): T {} }; -a = { async id(x: T): T {} }; -a = { 123(x: T): T {} }; -class Foo { - set fooProp(value: number) {} -} -class Foo { - set fooProp(value: number): void {} -} -class Foo { - get fooProp(): number {} -} -var numVal: number; -var numVal: number = otherNumVal; -var a: { numVal: number }; -var a: { numVal: number; }; -var a: { numVal: number; [indexer: string]: number }; -var a: ?{ numVal: number }; -var a: { numVal: number; strVal: string } -var a: { subObj: {strVal: string} } -var a: { subObj: ?{strVal: string} } -var a: { param1: number; param2: string } -var a: { param1: number; param2?: string } -var a: { [a: number]: string; [b: number]: string; }; -var a: { add(x: number, ...y: Array): void }; -var a: { id(x: T): T; }; -var a:Array = [1, 2, 3] -a = class Foo {} -a = class Foo extends Bar {} -class Foo {} -class Foo extends Bar {} -class Foo extends mixin(Bar) {} -class Foo { - bar():number { return 42; } -} -class Foo { - "bar"() {} -} -function foo(requiredParam, optParam?) {} -class Foo { - prop1: string; - prop2: number; -} -class Foo { - static prop1: string; - prop2: number; -} -var x: number | string = 4; -class Array { concat(items:number | string) {}; } -var x: () => number | () => string = fn; -var x: typeof Y = Y; -var x: typeof Y | number = Y; -var {x}: {x: string; } = { x: "hello" }; -var {x}: {x: string } = { x: "hello" }; -var [x]: Array = [ "hello" ]; -function foo({x}: { x: string; }) {} -function foo([x]: Array) {} -function foo(...rest: Array) {} -(function (...rest: Array) {}); -((...rest: Array) => rest); -var a: Map > -var a: Map> -var a: number[] -var a: ?string[] -var a: Promise[] -var a:(...rest:Array) => number -var identity: (x: T) => T -var identity: (x: T, ...y:T[]) => T -import type foo from "bar"; -import type { foo, bar } from "baz"; -import type { foo as bar } from "baz"; -import type from "foo"; -import type, { foo } from "bar"; -import type * as namespace from "bar"; -export type { foo }; -export type { foo } from "bar"; diff --git a/packages/babel-core/test/fixtures/generation/flow/type-annotations/expected.js b/packages/babel-core/test/fixtures/generation/flow/type-annotations/expected.js deleted file mode 100644 index f263cf9bd5..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/type-annotations/expected.js +++ /dev/null @@ -1,104 +0,0 @@ -function foo(numVal: any) {} -function foo(numVal: number) {} -function foo(numVal: number, strVal: string) {} -function foo(numVal: number, untypedVal) {} -function foo(untypedVal, numVal: number) {} -function foo(nullableNum: ?number) {} -function foo(callback: () => void) {} -function foo(callback: () => number) {} -function foo(callback: (_: bool) => number) {} -function foo(callback: (_1: bool, _2: string) => number) {} -function foo(callback: (_1: bool, ...foo: Array) => number) {} -function foo(): number {} -function foo(): () => void {} -function foo(): (_: bool) => number {} -function foo(): (_?: bool) => number {} -function foo(): {} {} -function foo() {} -function foo() {} -function foo() {} -a = function () {}; -a = { set fooProp(value: number) {} }; -a = { set fooProp(value: number): void {} }; -a = { get fooProp(): number {} }; -a = { id(x: T): T {} }; -a = { *id(x: T): T {} }; -a = { async id(x: T): T {} }; -a = { 123(x: T): T {} }; -class Foo { - set fooProp(value: number) {} -} -class Foo { - set fooProp(value: number): void {} -} -class Foo { - get fooProp(): number {} -} -var numVal: number; -var numVal: number = otherNumVal; -var a: { numVal: number }; -var a: { numVal: number }; -var a: { numVal: number; [indexer: string]: number; }; -var a: ?{ numVal: number }; -var a: { numVal: number; strVal: string; }; -var a: { subObj: { strVal: string } }; -var a: { subObj: ?{ strVal: string } }; -var a: { param1: number; param2: string; }; -var a: { param1: number; param2?: string; }; -var a: { [a: number]: string; [b: number]: string; }; -var a: { add(x: number, ...y: Array): void }; -var a: { id(x: T): T }; -var a: Array = [1, 2, 3]; -a = class Foo {}; -a = class Foo extends Bar {}; -class Foo {} -class Foo extends Bar {} -class Foo extends mixin(Bar) {} -class Foo { - bar(): number { - return 42; - } -} -class Foo { - "bar"() {} -} -function foo(requiredParam, optParam?) {} -class Foo { - prop1: string; - prop2: number; -} -class Foo { - static prop1: string; - prop2: number; -} -var x: number | string = 4; -class Array { - concat(items: number | string) {} -} -var x: () => number | () => string = fn; -var x: typeof Y = Y; -var x: typeof Y | number = Y; -var { x }: { x: string } = { x: "hello" }; -var { x }: { x: string } = { x: "hello" }; -var [x]: Array = ["hello"]; -function foo({ x }: { x: string }) {} -function foo([x]: Array) {} -function foo(...rest: Array) {} -(function (...rest: Array) {}); -(...rest: Array) => rest; -var a: Map>; -var a: Map>; -var a: number[]; -var a: ?string[]; -var a: Promise[]; -var a: (...rest: Array) => number; -var identity: (x: T) => T; -var identity: (x: T, ...y: T[]) => T; -import type foo from "bar"; -import type { foo, bar } from "baz"; -import type { foo as bar } from "baz"; -import type from "foo"; -import type, { foo } from "bar"; -import type * as namespace from "bar"; -export type { foo }; -export type { foo } from "bar"; diff --git a/packages/babel-core/test/fixtures/generation/flow/typecasts/actual.js b/packages/babel-core/test/fixtures/generation/flow/typecasts/actual.js deleted file mode 100644 index aa691e87d2..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/typecasts/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -(xxx: number); -({ xxx: 0, yyy: "hey" }: { xxx: number; yyy: string }); -(xxx => xxx + 1: (xxx: number) => number); -((xxx: number), (yyy: string)); diff --git a/packages/babel-core/test/fixtures/generation/flow/typecasts/expected.js b/packages/babel-core/test/fixtures/generation/flow/typecasts/expected.js deleted file mode 100644 index 69c9dc4b93..0000000000 --- a/packages/babel-core/test/fixtures/generation/flow/typecasts/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -(xxx: number); -({ xxx: 0, yyy: "hey" }: { xxx: number; yyy: string; }); -(xxx => xxx + 1: (xxx: number) => number); -(xxx: number), (yyy: string); diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js deleted file mode 100644 index 21333a47b5..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -e => { - print("hello world"); -}; -(e1, e2, e3) => { - print("hello world"); -}; -e => e; -(e1, e2, e3) => e; -(e) => { -}; -e => 20 + 20 diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js deleted file mode 100644 index 665c99a5cb..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/arrow-function/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -e => { - print("hello world"); -}; -(e1, e2, e3) => { - print("hello world"); -}; -e => e; -(e1, e2, e3) => e; -e => {}; -e => 20 + 20; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js deleted file mode 100644 index 46e3476c79..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/actual.js +++ /dev/null @@ -1,56 +0,0 @@ -class Test { -} -class Derived extends Super { -} -class StaticMethods { - static n1() { - } - - static get get1() { - } - - static set set1(value) { - } - - static *gen1() { - } -} -class Methods { - n2() { - } - - get get2() { - } - - set set2(value) { - } - - *gen1() { - } -} -class ComputedStaticMethods { - static [n1]() { - } - - static get [get1]() { - } - - static set [set1](value) { - } - - static *[gen1]() { - } -} -class ComputedMethods { - [n2]() { - } - - get [get2]() { - } - - set [set2](value) { - } - - *[gen1]() { - } -} diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js deleted file mode 100644 index ee25d48aa9..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-declaration/expected.js +++ /dev/null @@ -1,38 +0,0 @@ -class Test {} -class Derived extends Super {} -class StaticMethods { - static n1() {} - - static get get1() {} - - static set set1(value) {} - - static *gen1() {} -} -class Methods { - n2() {} - - get get2() {} - - set set2(value) {} - - *gen1() {} -} -class ComputedStaticMethods { - static [n1]() {} - - static get [get1]() {} - - static set [set1](value) {} - - static *[gen1]() {} -} -class ComputedMethods { - [n2]() {} - - get [get2]() {} - - set [set2](value) {} - - *[gen1]() {} -} diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/actual.js deleted file mode 100644 index 209eada40b..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/actual.js +++ /dev/null @@ -1,55 +0,0 @@ -(class Test { }); -(class Derived extends Super { }); -(class StaticMethods { - static n1() { - } - - static get get1() { - } - - static set set1(value) { - } - - static *gen1() { - } -}); -(class Methods { - n2() { - } - - get get2() { - } - - set set2(value) { - } - - *gen1() { - } -}); -(class ComputedStaticMethods { - static [n1]() { - } - - static get [get1]() { - } - - static set [set1](value) { - } - - static *[gen1]() { - } -}); -(class ComputedMethods { - [n2]() { - } - - get [get2]() { - } - - set [set2](value) { - } - - *[gen1]() { - } -}); -(class { }); diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/expected.js deleted file mode 100644 index d49bc099bc..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/class-expression/expected.js +++ /dev/null @@ -1,39 +0,0 @@ -(class Test {}); -(class Derived extends Super {}); -(class StaticMethods { - static n1() {} - - static get get1() {} - - static set set1(value) {} - - static *gen1() {} -}); -(class Methods { - n2() {} - - get get2() {} - - set set2(value) {} - - *gen1() {} -}); -(class ComputedStaticMethods { - static [n1]() {} - - static get [get1]() {} - - static set [set1](value) {} - - static *[gen1]() {} -}); -(class ComputedMethods { - [n2]() {} - - get [get2]() {} - - set [set2](value) {} - - *[gen1]() {} -}); -(class {}); diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/actual.js deleted file mode 100644 index e5db5ac150..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/actual.js +++ /dev/null @@ -1,14 +0,0 @@ -var object1 = { - get [Symbol.create]() { }, - set [set()](value) { } -}; -var object2 = { - *[generator()]() { } -}; -var object3 = { - *[generator()]() { } -}; -var object4 = { - [Symbol.xxx]: "hello", - [ok()]: 42 -}; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/expected.js deleted file mode 100644 index f691ac68dc..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/computed-property/expected.js +++ /dev/null @@ -1,14 +0,0 @@ -var object1 = { - get [Symbol.create]() {}, - set [set()](value) {} -}; -var object2 = { - *[generator()]() {} -}; -var object3 = { - *[generator()]() {} -}; -var object4 = { - [Symbol.xxx]: "hello", - [ok()]: 42 -}; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js deleted file mode 100644 index aa61f5ec66..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -function a(p=20) { -} - -function b(p, q=30) { -} - -function c(p, q=30, ...r) { -} - -(p = 20) => { }; -(p = 20, ...q) => { }; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js deleted file mode 100644 index bc5604fa1b..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/default-parameter/expected.js +++ /dev/null @@ -1,8 +0,0 @@ -function a(p = 20) {} - -function b(p, q = 30) {} - -function c(p, q = 30, ...r) {} - -(p = 20) => {}; -(p = 20, ...q) => {}; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js deleted file mode 100644 index b9325bbae1..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/actual.js +++ /dev/null @@ -1,18 +0,0 @@ -function t1({responseText: responseText}) { -} -function t2({responseText}) { -} -function t3([a, b]) { -} -var [i, j, k] = array; -var { - i, - j, - k -} = obj; -let {i, j, k} = obj; -const {i, j, k} = obj; -var { value } = obj; -var { - value -} = obj; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js deleted file mode 100644 index d32b4e5bae..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/destructuring-assignment/expected.js +++ /dev/null @@ -1,15 +0,0 @@ -function t1({ responseText: responseText }) {} -function t2({ responseText }) {} -function t3([a, b]) {} -var [i, j, k] = array; -var { - i, - j, - k -} = obj; -let { i, j, k } = obj; -const { i, j, k } = obj; -var { value } = obj; -var { - value -} = obj; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js deleted file mode 100644 index 3d8267c6c7..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/actual.js +++ /dev/null @@ -1 +0,0 @@ -export default function a () { } diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js deleted file mode 100644 index c33f5633d7..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/export-default-declaration/expected.js +++ /dev/null @@ -1 +0,0 @@ -export default function a() {} diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/actual.js deleted file mode 100644 index d76fe5a8ad..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -export * from "OK" -export { name } from "OK" -export { a as b, c as d } from "hello" -export { a as b, c as d } -export { } -export default i = 20 -export function test() { } -export var i = 20 -export let i = 42 diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/expected.js deleted file mode 100644 index 269678f691..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/exports/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -export * from "OK"; -export { name } from "OK"; -export { a as b, c as d } from "hello"; -export { a as b, c as d }; -export {}; -export default i = 20; -export function test() {} -export var i = 20; -export let i = 42; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js deleted file mode 100644 index 0cffaf8dc1..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -function test() { - for (var i of array) { - } - - for (let i of array) { - } -} diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js deleted file mode 100644 index be22a40333..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/for-of-statement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -function test() { - for (var i of array) {} - - for (let i of array) {} -} diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js deleted file mode 100644 index 7fb048846d..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -import foo from "foo"; -import * as foo from "foo"; -import ok, { - foo as bar, - test as testing, - logging -} from "foo"; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js deleted file mode 100644 index 530a0ce14b..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/import-with-default/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -import foo from "foo"; -import * as foo from "foo"; -import ok, { foo as bar, test as testing, logging } from "foo"; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/actual.js deleted file mode 100644 index 98bbc6bbcb..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/actual.js +++ /dev/null @@ -1,8 +0,0 @@ -import "foo"; -import {foo} from "foo"; -import {foo as bar} from "foo"; -import { - foo as bar, - test as testing, - logging -} from "foo"; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/expected.js deleted file mode 100644 index d4d486ece9..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/imports/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -import "foo"; -import { foo } from "foo"; -import { foo as bar } from "foo"; -import { foo as bar, test as testing, logging } from "foo"; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/actual.js deleted file mode 100644 index c4cd936913..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -var [a, b, ...rest] = array; -const [a, b, ...rest] = array; -function a([a, b, ...rest]) { -} -([a, b, ...rest]) => { }; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/expected.js deleted file mode 100644 index bdad6cc5aa..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/spread-element/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var [a, b, ...rest] = array; -const [a, b, ...rest] = array; -function a([a, b, ...rest]) {} -([a, b, ...rest]) => {}; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js deleted file mode 100644 index 5d8a96d54f..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -var escaped = ` -\u2028 -\u2029 -`; - -var escaped = ` -\v -\b -\t -\n -\r -`; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js deleted file mode 100644 index 5d8a96d54f..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates-escape/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -var escaped = ` -\u2028 -\u2029 -`; - -var escaped = ` -\v -\b -\t -\n -\r -`; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/actual.js deleted file mode 100644 index 153f90d596..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/actual.js +++ /dev/null @@ -1,31 +0,0 @@ -var hello = `hello`; - -var hello = ` -line -terminators`; - -var tagged = tagged`hello`; -var tagged = member.call`hello`; -var tagged = new call`hello`; -var tagged = new (call`hello`()); -var tageed = member[call`hello`]; - -var middles = ` -Is the order a rabbit? -`; - -var middles = ` -Is the order ${ order }? -`; - -var middles = ` -Is the order ${ order }? -`; - -var middles = ` -1. ${ cocoa } -2. ${ chino } -3. ${ rize } -4. ${ syaro } -5. ${ chiya } -`; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/expected.js deleted file mode 100644 index 93ff1e3ebb..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/templates/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -var hello = `hello`; - -var hello = ` -line -terminators`; - -var tagged = tagged`hello`; -var tagged = member.call`hello`; -var tagged = new call`hello`(); -var tagged = new (call`hello`())(); -var tageed = member[call`hello`]; - -var middles = ` -Is the order a rabbit? -`; - -var middles = ` -Is the order ${ order }? -`; - -var middles = ` -Is the order ${ order }? -`; - -var middles = ` -1. ${ cocoa } -2. ${ chino } -3. ${ rize } -4. ${ syaro } -5. ${ chiya } -`; diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js deleted file mode 100644 index c5cd08ca3a..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -function *foo () { - var a = yield wat(), b = 2; - var c = yield a = b; - yield a, yield b; - yield a = b; - return (yield 1) || (yield 2); -} diff --git a/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js b/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js deleted file mode 100644 index 302ffe6c55..0000000000 --- a/packages/babel-core/test/fixtures/generation/harmony-edgecase/yield-precedence/expected.js +++ /dev/null @@ -1,8 +0,0 @@ -function* foo() { - var a = yield wat(), - b = 2; - var c = yield a = b; - yield a, yield b; - yield a = b; - return (yield 1) || (yield 2); -} diff --git a/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js b/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js deleted file mode 100644 index d9187763fe..0000000000 --- a/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -var foo = arr.map(v => ({ - x: v.bar, - y: v.bar*2 -})); diff --git a/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js b/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js deleted file mode 100644 index 18f4fa7da5..0000000000 --- a/packages/babel-core/test/fixtures/generation/parentheses/arrow-function-object-body/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var foo = arr.map(v => ({ - x: v.bar, - y: v.bar * 2 -})); diff --git a/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/actual.js b/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/actual.js deleted file mode 100644 index ad3ad2eecf..0000000000 --- a/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -function foo() { - return ( // foobar - "bar" - ); -} - -function foo() { - return ( - // foobar - "bar" - ); -} diff --git a/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/expected.js b/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/expected.js deleted file mode 100644 index e6604a1cf0..0000000000 --- a/packages/babel-core/test/fixtures/generation/parentheses/terminator-break/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -function foo() { - return (// foobar - "bar" - ); -} - -function foo() { - return( - // foobar - "bar" - ); -} diff --git a/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js b/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js deleted file mode 100644 index 20076ec145..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -[a, b, c]; -[[], [b, c], []]; -[a,, b,]; -[a,,,, b]; -[a, b,, c]; diff --git a/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js b/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js deleted file mode 100644 index 472dd398ba..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ArrayExpression-ArrayPattern/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -[a, b, c]; -[[], [b, c], []]; -[a,, b]; -[a,,,, b]; -[a, b,, c]; diff --git a/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/actual.js deleted file mode 100644 index 359ef770df..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -var foo = x => x * x; -var foo = (a, b) => a * b; -var foo = async x => x * x; -var foo = async (a, b) => a * b; diff --git a/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/expected.js deleted file mode 100644 index 359ef770df..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ArrowFunctionExpression/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var foo = x => x * x; -var foo = (a, b) => a * b; -var foo = async x => x * x; -var foo = async (a, b) => a * b; diff --git a/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js deleted file mode 100644 index 5cdce74d9b..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -foo === bar; -foo + bar; -foo = bar; diff --git a/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js deleted file mode 100644 index 5cdce74d9b..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/AssignmentExpression-BinaryExpression-LogicalExpression/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -foo === bar; -foo + bar; -foo = bar; diff --git a/packages/babel-core/test/fixtures/generation/types/AwaitExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/AwaitExpression/actual.js deleted file mode 100644 index 17bd494915..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/AwaitExpression/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -async function foo() { - await bar(); -} - -async function bar() { - await* foo(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/AwaitExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/AwaitExpression/expected.js deleted file mode 100644 index 17bd494915..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/AwaitExpression/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -async function foo() { - await bar(); -} - -async function bar() { - await* foo(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/BindExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/BindExpression/actual.js deleted file mode 100644 index c78d72da44..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/BindExpression/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -::foo.bar.foo; -::foo.bar["foo"]; - -ctx::foo.bar.foo; -ctx::foo.bar["foo"]; diff --git a/packages/babel-core/test/fixtures/generation/types/BindExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/BindExpression/expected.js deleted file mode 100644 index c78d72da44..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/BindExpression/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -::foo.bar.foo; -::foo.bar["foo"]; - -ctx::foo.bar.foo; -ctx::foo.bar["foo"]; diff --git a/packages/babel-core/test/fixtures/generation/types/BlockStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/BlockStatement/actual.js deleted file mode 100644 index f9ce0d4e58..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/BlockStatement/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -{} - -{ - foo(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/BlockStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/BlockStatement/expected.js deleted file mode 100644 index f9ce0d4e58..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/BlockStatement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -{} - -{ - foo(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/BreakStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/BreakStatement/actual.js deleted file mode 100644 index 21e486a7df..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/BreakStatement/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -for (var i in foo) { - break; -} - -foo: for (var i in foo) { - break foo; -} diff --git a/packages/babel-core/test/fixtures/generation/types/BreakStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/BreakStatement/expected.js deleted file mode 100644 index 21e486a7df..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/BreakStatement/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -for (var i in foo) { - break; -} - -foo: for (var i in foo) { - break foo; -} diff --git a/packages/babel-core/test/fixtures/generation/types/CallExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/CallExpression/actual.js deleted file mode 100644 index 356fa149e2..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/CallExpression/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -foo(); -foo("foo"); -foo("foo", "bar"); -foo(bar()); -foo(bar("test")); diff --git a/packages/babel-core/test/fixtures/generation/types/CallExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/CallExpression/expected.js deleted file mode 100644 index 356fa149e2..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/CallExpression/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -foo(); -foo("foo"); -foo("foo", "bar"); -foo(bar()); -foo(bar("test")); diff --git a/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js b/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js deleted file mode 100644 index 1e431aa75b..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -class Foo { - async foo() {} - foo() {} - ["foo"]() {} - get foo() {} - set foo(bar) {} - - static async foo() {} - static foo() {} - static ["foo"]() {} - static get foo() {} - static set foo(bar) {} -} diff --git a/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js b/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js deleted file mode 100644 index 1e431aa75b..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ClassBody-MethodDefinition/expected.js +++ /dev/null @@ -1,13 +0,0 @@ -class Foo { - async foo() {} - foo() {} - ["foo"]() {} - get foo() {} - set foo(bar) {} - - static async foo() {} - static foo() {} - static ["foo"]() {} - static get foo() {} - static set foo(bar) {} -} diff --git a/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/actual.js b/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/actual.js deleted file mode 100644 index 072c7c10e6..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -var foo = class Foo {}; -var foo = class Foo extends Bar {}; diff --git a/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/expected.js b/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/expected.js deleted file mode 100644 index 072c7c10e6..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ClassDeclaration/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -var foo = class Foo {}; -var foo = class Foo extends Bar {}; diff --git a/packages/babel-core/test/fixtures/generation/types/ClassExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ClassExpression/actual.js deleted file mode 100644 index 1931f1faea..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ClassExpression/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -class Foo {} -class Foo extends Bar {} diff --git a/packages/babel-core/test/fixtures/generation/types/ClassExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ClassExpression/expected.js deleted file mode 100644 index 1931f1faea..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ClassExpression/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -class Foo {} -class Foo extends Bar {} diff --git a/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js deleted file mode 100644 index 141423da4a..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -[for (x of nums) x * x]; -[for (x of nums) if (x > 2) x * x]; -[for (nums of nums2) for (x of nums) x * x]; -[for (nums of nums2) for (x of nums) if (x > 2) x * x]; - -(for (x of nums) x * x); -(for (x of nums) if (x > 2) x * x); -(for (nums of nums2) for (x of nums) x * x); -(for (nums of nums2) for (x of nums) if (x > 2) x * x); diff --git a/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js deleted file mode 100644 index 141423da4a..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ComprehensionBlock-ComprehensionExpression/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -[for (x of nums) x * x]; -[for (x of nums) if (x > 2) x * x]; -[for (nums of nums2) for (x of nums) x * x]; -[for (nums of nums2) for (x of nums) if (x > 2) x * x]; - -(for (x of nums) x * x); -(for (x of nums) if (x > 2) x * x); -(for (nums of nums2) for (x of nums) x * x); -(for (nums of nums2) for (x of nums) if (x > 2) x * x); diff --git a/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/actual.js deleted file mode 100644 index 58ab924af4..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/actual.js +++ /dev/null @@ -1 +0,0 @@ -foo ? foo : bar; diff --git a/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/expected.js deleted file mode 100644 index 58ab924af4..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ConditionalExpression/expected.js +++ /dev/null @@ -1 +0,0 @@ -foo ? foo : bar; diff --git a/packages/babel-core/test/fixtures/generation/types/ContinueStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ContinueStatement/actual.js deleted file mode 100644 index 593fe2c367..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ContinueStatement/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -for (var i in foo) { - continue; -} - -foo: for (var i in foo) { - continue foo; -} diff --git a/packages/babel-core/test/fixtures/generation/types/ContinueStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ContinueStatement/expected.js deleted file mode 100644 index 593fe2c367..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ContinueStatement/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -for (var i in foo) { - continue; -} - -foo: for (var i in foo) { - continue foo; -} diff --git a/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/actual.js deleted file mode 100644 index eab7469213..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/actual.js +++ /dev/null @@ -1 +0,0 @@ -debugger; diff --git a/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/expected.js deleted file mode 100644 index eab7469213..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/DebuggerStatement/expected.js +++ /dev/null @@ -1 +0,0 @@ -debugger; diff --git a/packages/babel-core/test/fixtures/generation/types/Decorator/actual.js b/packages/babel-core/test/fixtures/generation/types/Decorator/actual.js deleted file mode 100644 index d0b6d43621..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/Decorator/actual.js +++ /dev/null @@ -1,31 +0,0 @@ -var obj = { - @foo - @bar - foo: "bar", - - @foo - @bar - foo() {}, - - @foo - get foo() {}, - - @bar - set bar(foo) {} -}; - -class Foo { - @foo - @bar - foo() {} - - @foo - @bar - foo() {} - - @foo - get foo() {} - - @bar - set bar(foo) {} -} diff --git a/packages/babel-core/test/fixtures/generation/types/Decorator/expected.js b/packages/babel-core/test/fixtures/generation/types/Decorator/expected.js deleted file mode 100644 index d0b6d43621..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/Decorator/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -var obj = { - @foo - @bar - foo: "bar", - - @foo - @bar - foo() {}, - - @foo - get foo() {}, - - @bar - set bar(foo) {} -}; - -class Foo { - @foo - @bar - foo() {} - - @foo - @bar - foo() {} - - @foo - get foo() {} - - @bar - set bar(foo) {} -} diff --git a/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/actual.js deleted file mode 100644 index c567c9b0c5..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -do { - test(); -} while (true); - -do {} while (true); diff --git a/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/expected.js deleted file mode 100644 index c567c9b0c5..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/DoWhileStatement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -do { - test(); -} while (true); - -do {} while (true); diff --git a/packages/babel-core/test/fixtures/generation/types/EmptyStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/EmptyStatement/actual.js deleted file mode 100644 index 092bc2b041..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/EmptyStatement/actual.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/EmptyStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/EmptyStatement/expected.js deleted file mode 100644 index 092bc2b041..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/EmptyStatement/expected.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js b/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js deleted file mode 100644 index 288b335663..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/actual.js +++ /dev/null @@ -1,31 +0,0 @@ -export default 42; -export default {}; -export default []; -export default foo; -export default function () {} -export default class {} -export default function foo() {} -export default class Foo {} -export * from "foo"; -export * as foo from "foo"; -export foo from "foo"; -export * as foo, { bar } from "foo"; -export foo, { bar } from "foo"; -export { foo } from "foo"; -export { foo, bar } from "foo"; -export { foo as bar } from "foo"; -export { foo as default } from "foo"; -export { foo as default, bar } from "foo"; -export { foo }; -export { foo, bar }; -export { foo as bar }; -export { foo as default }; -export { foo as default, bar }; -export var foo = 1; -export var foo2 = function () {}; -export var foo3; -export let foo4 = 2; -export let foo5; -export const foo6 = 3; -export function foo7() {} -export class foo8 {} diff --git a/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js b/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js deleted file mode 100644 index 288b335663..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ExportDefaultDeclaration-ExportSpecifier-ExportNamedDeclaration/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -export default 42; -export default {}; -export default []; -export default foo; -export default function () {} -export default class {} -export default function foo() {} -export default class Foo {} -export * from "foo"; -export * as foo from "foo"; -export foo from "foo"; -export * as foo, { bar } from "foo"; -export foo, { bar } from "foo"; -export { foo } from "foo"; -export { foo, bar } from "foo"; -export { foo as bar } from "foo"; -export { foo as default } from "foo"; -export { foo as default, bar } from "foo"; -export { foo }; -export { foo, bar }; -export { foo as bar }; -export { foo as default }; -export { foo as default, bar }; -export var foo = 1; -export var foo2 = function () {}; -export var foo3; -export let foo4 = 2; -export let foo5; -export const foo6 = 3; -export function foo7() {} -export class foo8 {} diff --git a/packages/babel-core/test/fixtures/generation/types/ForInStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ForInStatement/actual.js deleted file mode 100644 index f767fe3b0f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ForInStatement/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -for (var i in nums) {} - -for (var i in nums) { - nums[i] = nums[i] * nums[i]; -} diff --git a/packages/babel-core/test/fixtures/generation/types/ForInStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ForInStatement/expected.js deleted file mode 100644 index f767fe3b0f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ForInStatement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -for (var i in nums) {} - -for (var i in nums) { - nums[i] = nums[i] * nums[i]; -} diff --git a/packages/babel-core/test/fixtures/generation/types/ForOfStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ForOfStatement/actual.js deleted file mode 100644 index 190da9ebfa..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ForOfStatement/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -for (var x of nums) {} - -for (var x of nums) { - console.log(x * x); -} diff --git a/packages/babel-core/test/fixtures/generation/types/ForOfStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ForOfStatement/expected.js deleted file mode 100644 index 190da9ebfa..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ForOfStatement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -for (var x of nums) {} - -for (var x of nums) { - console.log(x * x); -} diff --git a/packages/babel-core/test/fixtures/generation/types/ForStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ForStatement/actual.js deleted file mode 100644 index 1f82486abe..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ForStatement/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -for (var i = 0;;) {} -for (var i = 0; i < 5;) {} -for (var i = 0; i < 5; i++) {} diff --git a/packages/babel-core/test/fixtures/generation/types/ForStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ForStatement/expected.js deleted file mode 100644 index 1f82486abe..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ForStatement/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -for (var i = 0;;) {} -for (var i = 0; i < 5;) {} -for (var i = 0; i < 5; i++) {} diff --git a/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js deleted file mode 100644 index 3b31e93eb7..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/actual.js +++ /dev/null @@ -1,23 +0,0 @@ -function foo(bar = "bar") {} - -function foo(bar = "bar", ...items) {} - -function foo(...items) {} - -function* foo() {} - -function foo() {} - -async function foo() {} - -var foo = function* foo() {}; - -var foo = function foo() {}; - -var foo = async function foo() {}; - -var foo = function* () {}; - -var foo = function () {}; - -var foo = async function () {}; diff --git a/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js deleted file mode 100644 index 3b31e93eb7..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/FunctionDeclaration-FunctionExpression/expected.js +++ /dev/null @@ -1,23 +0,0 @@ -function foo(bar = "bar") {} - -function foo(bar = "bar", ...items) {} - -function foo(...items) {} - -function* foo() {} - -function foo() {} - -async function foo() {} - -var foo = function* foo() {}; - -var foo = function foo() {}; - -var foo = async function foo() {}; - -var foo = function* () {}; - -var foo = function () {}; - -var foo = async function () {}; diff --git a/packages/babel-core/test/fixtures/generation/types/Identifier/actual.js b/packages/babel-core/test/fixtures/generation/types/Identifier/actual.js deleted file mode 100644 index ef20d940c5..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/Identifier/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -foo; -undefined; diff --git a/packages/babel-core/test/fixtures/generation/types/Identifier/expected.js b/packages/babel-core/test/fixtures/generation/types/Identifier/expected.js deleted file mode 100644 index ef20d940c5..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/Identifier/expected.js +++ /dev/null @@ -1,2 +0,0 @@ -foo; -undefined; diff --git a/packages/babel-core/test/fixtures/generation/types/IfStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/IfStatement/actual.js deleted file mode 100644 index 4631d3503f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/IfStatement/actual.js +++ /dev/null @@ -1,25 +0,0 @@ -if (foo) foobar(); - -if (foo) { - foobar(); -} - -if (foo) {} - -if (foo) { - foo(); -} else bar(); - -if (foo) { - foo(); -} else { - bar(); -} - -if (foo) { - foo(); -} else if (bar) { - foobar(); -} else { - bar(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/IfStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/IfStatement/expected.js deleted file mode 100644 index 4631d3503f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/IfStatement/expected.js +++ /dev/null @@ -1,25 +0,0 @@ -if (foo) foobar(); - -if (foo) { - foobar(); -} - -if (foo) {} - -if (foo) { - foo(); -} else bar(); - -if (foo) { - foo(); -} else { - bar(); -} - -if (foo) { - foo(); -} else if (bar) { - foobar(); -} else { - bar(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js b/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js deleted file mode 100644 index b7a4a4b9fd..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -import "foo"; -import foo from "foo"; -import { default as foo } from "foo"; -import * as foo from "foo"; -import foo, { baz as xyz } from "foo"; -import { bar } from "foo"; -import { bar, baz } from "foo"; -import { bar as baz } from "foo"; -import { bar as baz, xyz } from "foo"; diff --git a/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js b/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js deleted file mode 100644 index b7a4a4b9fd..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ImportDeclaration-ImportSpecifier-ImportNamespaceSpecifier/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -import "foo"; -import foo from "foo"; -import { default as foo } from "foo"; -import * as foo from "foo"; -import foo, { baz as xyz } from "foo"; -import { bar } from "foo"; -import { bar, baz } from "foo"; -import { bar as baz } from "foo"; -import { bar as baz, xyz } from "foo"; diff --git a/packages/babel-core/test/fixtures/generation/types/LabeledStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/LabeledStatement/actual.js deleted file mode 100644 index 2846749406..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/LabeledStatement/actual.js +++ /dev/null @@ -1 +0,0 @@ -label: for (var i in test) {} diff --git a/packages/babel-core/test/fixtures/generation/types/LabeledStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/LabeledStatement/expected.js deleted file mode 100644 index 2846749406..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/LabeledStatement/expected.js +++ /dev/null @@ -1 +0,0 @@ -label: for (var i in test) {} diff --git a/packages/babel-core/test/fixtures/generation/types/Literal/actual.js b/packages/babel-core/test/fixtures/generation/types/Literal/actual.js deleted file mode 100644 index 6bd9f84a96..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/Literal/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -5; -5.0; -"foobar"; -"\n\r\u2028\u2029"; -/foobar/g; -null; -true; -false; -5.; -0b10; -0o70; -0X1F; diff --git a/packages/babel-core/test/fixtures/generation/types/Literal/expected.js b/packages/babel-core/test/fixtures/generation/types/Literal/expected.js deleted file mode 100644 index 6bd9f84a96..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/Literal/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -5; -5.0; -"foobar"; -"\n\r\u2028\u2029"; -/foobar/g; -null; -true; -false; -5.; -0b10; -0o70; -0X1F; diff --git a/packages/babel-core/test/fixtures/generation/types/MemberExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/MemberExpression/actual.js deleted file mode 100644 index b1b488aa12..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/MemberExpression/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -foo["bar"]; -foo.bar; - -foo.bar.foo; -foo.bar["foo"]; - -foo["foo"]["bar"]; -foo[test()][bar()]; - -0..toString(); -0.5.toString(); diff --git a/packages/babel-core/test/fixtures/generation/types/MemberExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/MemberExpression/expected.js deleted file mode 100644 index b1b488aa12..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/MemberExpression/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -foo["bar"]; -foo.bar; - -foo.bar.foo; -foo.bar["foo"]; - -foo["foo"]["bar"]; -foo[test()][bar()]; - -0..toString(); -0.5.toString(); diff --git a/packages/babel-core/test/fixtures/generation/types/NewExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/NewExpression/actual.js deleted file mode 100644 index 2e4ccdb39d..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/NewExpression/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -new Foo; -new Foo(); -new Foo(bar); diff --git a/packages/babel-core/test/fixtures/generation/types/NewExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/NewExpression/expected.js deleted file mode 100644 index 962d55bf72..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/NewExpression/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -new Foo(); -new Foo(); -new Foo(bar); diff --git a/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js b/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js deleted file mode 100644 index 5dff240f1e..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/actual.js +++ /dev/null @@ -1,20 +0,0 @@ -var foo = {}; - -var foo = { x, y }; - -var foo = { x: x, y: y }; - -var foo = { - x: x, - y: y -}; - -var foo = { - ["bar"]: "foo", - ["foo"]() {}, - foo() {}, - async foo() {}, - *foo() {}, - get foo() {}, - set foo(foo) {} -}; diff --git a/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js b/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js deleted file mode 100644 index 5dff240f1e..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ObjectExpression-ObjectPattern-Property/expected.js +++ /dev/null @@ -1,20 +0,0 @@ -var foo = {}; - -var foo = { x, y }; - -var foo = { x: x, y: y }; - -var foo = { - x: x, - y: y -}; - -var foo = { - ["bar"]: "foo", - ["foo"]() {}, - foo() {}, - async foo() {}, - *foo() {}, - get foo() {}, - set foo(foo) {} -}; diff --git a/packages/babel-core/test/fixtures/generation/types/ReturnStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ReturnStatement/actual.js deleted file mode 100644 index 404a7c2e64..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ReturnStatement/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -function foo() { - return; -} - -function bar() { - return "foo"; -} diff --git a/packages/babel-core/test/fixtures/generation/types/ReturnStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ReturnStatement/expected.js deleted file mode 100644 index 404a7c2e64..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ReturnStatement/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -function foo() { - return; -} - -function bar() { - return "foo"; -} diff --git a/packages/babel-core/test/fixtures/generation/types/SequenceExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/SequenceExpression/actual.js deleted file mode 100644 index df1a8bc422..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/SequenceExpression/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -foo, bar; - -foo, -bar; diff --git a/packages/babel-core/test/fixtures/generation/types/SequenceExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/SequenceExpression/expected.js deleted file mode 100644 index 8a6b86f823..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/SequenceExpression/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -foo, bar; - -foo, bar; diff --git a/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js b/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js deleted file mode 100644 index 7a9e438858..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -[...foo]; -foo(bar, ...items); -new Foo(...foo); diff --git a/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js b/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js deleted file mode 100644 index 7a9e438858..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/SpreadElement-SpreadProperty/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -[...foo]; -foo(bar, ...items); -new Foo(...foo); diff --git a/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js b/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js deleted file mode 100644 index dbfef765fe..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/actual.js +++ /dev/null @@ -1,39 +0,0 @@ -switch (foo) {} - -switch (foo) { - case "foo": -} - -switch (foo) { - default: -} - -switch (foo) { - case "foo": - default: -} - -switch (foo) { - case "foo": - case "bar": - default: -} - -switch (foo) { - case "foo": - foo(); - break; - - case "bar": - bar(); - break; - - default: - yay(); -} - -switch (foo) { - case "foo": foo(); - case "bar": bar(); - default: yay(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js b/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js deleted file mode 100644 index 3fee51a4d2..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/SwitchStatement-SwitchCase/expected.js +++ /dev/null @@ -1,42 +0,0 @@ -switch (foo) {} - -switch (foo) { - case "foo": -} - -switch (foo) { - default: -} - -switch (foo) { - case "foo": - default: -} - -switch (foo) { - case "foo": - case "bar": - default: -} - -switch (foo) { - case "foo": - foo(); - break; - - case "bar": - bar(); - break; - - default: - yay(); -} - -switch (foo) { - case "foo": - foo(); - case "bar": - bar(); - default: - yay(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js b/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js deleted file mode 100644 index 455ed642b5..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -html``; - -`multi - lines`; - -`test ${ interpolation } test`; - -`foob - - asdf -awer - erqer`; diff --git a/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js b/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js deleted file mode 100644 index 455ed642b5..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/TemplateLiteral-TaggedTemplateExpression-TemplateElement/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -html``; - -`multi - lines`; - -`test ${ interpolation } test`; - -`foob - - asdf -awer - erqer`; diff --git a/packages/babel-core/test/fixtures/generation/types/ThisExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/ThisExpression/actual.js deleted file mode 100644 index 0ce825c42a..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ThisExpression/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -this; -this.foo; -this["foo"]; -this.foo(); -this["foo"](); diff --git a/packages/babel-core/test/fixtures/generation/types/ThisExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/ThisExpression/expected.js deleted file mode 100644 index 0ce825c42a..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ThisExpression/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -this; -this.foo; -this["foo"]; -this.foo(); -this["foo"](); diff --git a/packages/babel-core/test/fixtures/generation/types/ThrowStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/ThrowStatement/actual.js deleted file mode 100644 index 15dd4fc7b2..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ThrowStatement/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -throw err; -throw Error("foobar"); -throw new Error("foobar"); diff --git a/packages/babel-core/test/fixtures/generation/types/ThrowStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/ThrowStatement/expected.js deleted file mode 100644 index 15dd4fc7b2..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/ThrowStatement/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -throw err; -throw Error("foobar"); -throw new Error("foobar"); diff --git a/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/actual.js b/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/actual.js deleted file mode 100644 index 95717a83b6..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/actual.js +++ /dev/null @@ -1,25 +0,0 @@ -try {} catch (err) {} - -try { - bar; -} catch (err) {} - -try { - bar; -} catch (err) { - foo(); -} - -try { - bar; -} catch (err) { - foo(); -} finally { - yay(); -} - -try { - bar; -} catch (err) { - foo(); -} finally {} diff --git a/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/expected.js b/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/expected.js deleted file mode 100644 index 95717a83b6..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/TryStatement-CatchClause/expected.js +++ /dev/null @@ -1,25 +0,0 @@ -try {} catch (err) {} - -try { - bar; -} catch (err) {} - -try { - bar; -} catch (err) { - foo(); -} - -try { - bar; -} catch (err) { - foo(); -} finally { - yay(); -} - -try { - bar; -} catch (err) { - foo(); -} finally {} diff --git a/packages/babel-core/test/fixtures/generation/types/UnaryExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/UnaryExpression/actual.js deleted file mode 100644 index 9f318cdb1f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/UnaryExpression/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -delete delete i; -+ +i; -!!i; -+ ++i; -- --i; diff --git a/packages/babel-core/test/fixtures/generation/types/UnaryExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/UnaryExpression/expected.js deleted file mode 100644 index 9f318cdb1f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/UnaryExpression/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -delete delete i; -+ +i; -!!i; -+ ++i; -- --i; diff --git a/packages/babel-core/test/fixtures/generation/types/UpdateExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/UpdateExpression/actual.js deleted file mode 100644 index 0aba7be1a0..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/UpdateExpression/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -++i; -i++; -(foo++).test(); diff --git a/packages/babel-core/test/fixtures/generation/types/UpdateExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/UpdateExpression/expected.js deleted file mode 100644 index 0aba7be1a0..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/UpdateExpression/expected.js +++ /dev/null @@ -1,3 +0,0 @@ -++i; -i++; -(foo++).test(); diff --git a/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js b/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js deleted file mode 100644 index ede42c53ec..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -let foo; -var foo; - -let foo = "foo"; -var foo = "bar"; -const foo = "foo"; - -let foo, bar = "bar"; -var foo, bar = "bar"; - -let foo = "foo", bar = "bar"; -var foo = "foo", bar = "bar"; -const foo = "foo", bar = "bar"; diff --git a/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js b/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js deleted file mode 100644 index 487fff2ae2..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/VariableDeclaration-VariableDeclarator/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -let foo; -var foo; - -let foo = "foo"; -var foo = "bar"; -const foo = "foo"; - -let foo, - bar = "bar"; -var foo, - bar = "bar"; - -let foo = "foo", - bar = "bar"; -var foo = "foo", - bar = "bar"; -const foo = "foo", - bar = "bar"; diff --git a/packages/babel-core/test/fixtures/generation/types/WhileStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/WhileStatement/actual.js deleted file mode 100644 index 616c1dcd45..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/WhileStatement/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -while (foo) {} - -while (foo) { - bar(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/WhileStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/WhileStatement/expected.js deleted file mode 100644 index 616c1dcd45..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/WhileStatement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -while (foo) {} - -while (foo) { - bar(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/WithStatement/actual.js b/packages/babel-core/test/fixtures/generation/types/WithStatement/actual.js deleted file mode 100644 index eb30b5f541..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/WithStatement/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -with (foo) {} - -with (foo) { - bar(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/WithStatement/expected.js b/packages/babel-core/test/fixtures/generation/types/WithStatement/expected.js deleted file mode 100644 index eb30b5f541..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/WithStatement/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -with (foo) {} - -with (foo) { - bar(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/XJSAttribute/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSAttribute/actual.js deleted file mode 100644 index ff8711dc2f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSAttribute/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -
; - -
text
; - -
; - -
text
; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSAttribute/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSAttribute/expected.js deleted file mode 100644 index ff8711dc2f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSAttribute/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -
; - -
text
; - -
; - -
text
; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js deleted file mode 100644 index 4ef54fa621..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -
; - -
; - -
text
; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js deleted file mode 100644 index 4ef54fa621..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSElement-XJSOpeningElement-XJSClosingElement-XJSIdentifier/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -
; - -
; - -
text
; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/actual.js deleted file mode 100644 index a7a4a7e533..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/actual.js +++ /dev/null @@ -1 +0,0 @@ -{}; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/expected.js deleted file mode 100644 index a7a4a7e533..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSEmptyExpression/expected.js +++ /dev/null @@ -1 +0,0 @@ -{}; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/actual.js deleted file mode 100644 index b7c8a18a62..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/actual.js +++ /dev/null @@ -1 +0,0 @@ -
{this.props.children}
; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/expected.js deleted file mode 100644 index b7c8a18a62..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSExpressionContainer/expected.js +++ /dev/null @@ -1 +0,0 @@ -
{this.props.children}
; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/actual.js deleted file mode 100644 index 875ffe4f32..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/actual.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/expected.js deleted file mode 100644 index 875ffe4f32..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSMemberExpression/expected.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/actual.js deleted file mode 100644 index 33efe268cf..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/actual.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/expected.js deleted file mode 100644 index 33efe268cf..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSNamespacedName/expected.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/actual.js b/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/actual.js deleted file mode 100644 index 82aa5eb72d..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/actual.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/expected.js b/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/expected.js deleted file mode 100644 index 82aa5eb72d..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/XJSSpreadAttribute/expected.js +++ /dev/null @@ -1 +0,0 @@ -; diff --git a/packages/babel-core/test/fixtures/generation/types/YieldExpression/actual.js b/packages/babel-core/test/fixtures/generation/types/YieldExpression/actual.js deleted file mode 100644 index b37159854f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/YieldExpression/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -function* foo() { - yield bar; -} - -function* bar() { - yield* foo(); -} diff --git a/packages/babel-core/test/fixtures/generation/types/YieldExpression/expected.js b/packages/babel-core/test/fixtures/generation/types/YieldExpression/expected.js deleted file mode 100644 index b37159854f..0000000000 --- a/packages/babel-core/test/fixtures/generation/types/YieldExpression/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -function* foo() { - yield bar; -} - -function* bar() { - yield* foo(); -} From 3a89ee84efb3e9724daebe7c696bd5e6ff9f794f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:40:43 +0100 Subject: [PATCH 134/174] update babylon tests --- .../block-trailing-comment/expected.json | 18 +- .../comment-within-condition/expected.json | 30 +- .../expected.json | 32 +- .../surrounding-call-comments/expected.json | 30 +- .../expected.json | 30 +- .../surrounding-return-comments/expected.json | 30 +- .../surrounding-throw-comments/expected.json | 36 +- .../expected.json | 39 +- .../expected.json | 48 +-- .../switch-fallthrough-comment/expected.json | 45 +-- .../expected.json | 34 +- .../expected.json | 45 +-- .../switch-no-default-comment/expected.json | 23 +- .../regex-after-block/expected.json | 14 +- .../core/uncategorised/10/expected.json | 11 +- .../core/uncategorised/100/expected.json | 17 +- .../core/uncategorised/101/expected.json | 17 +- .../core/uncategorised/102/expected.json | 7 +- .../core/uncategorised/103/expected.json | 7 +- .../core/uncategorised/104/expected.json | 7 +- .../core/uncategorised/105/expected.json | 7 +- .../core/uncategorised/106/expected.json | 7 +- .../core/uncategorised/107/expected.json | 7 +- .../core/uncategorised/108/expected.json | 7 +- .../core/uncategorised/11/expected.json | 11 +- .../core/uncategorised/116/expected.json | 7 +- .../core/uncategorised/118/expected.json | 7 +- .../core/uncategorised/12/expected.json | 27 +- .../core/uncategorised/124/expected.json | 11 +- .../core/uncategorised/125/expected.json | 11 +- .../core/uncategorised/126/expected.json | 35 +- .../core/uncategorised/127/expected.json | 11 +- .../core/uncategorised/13/expected.json | 27 +- .../core/uncategorised/197/expected.json | 19 +- .../core/uncategorised/198/expected.json | 19 +- .../core/uncategorised/199/expected.json | 11 +- .../core/uncategorised/200/expected.json | 11 +- .../core/uncategorised/201/expected.json | 11 +- .../core/uncategorised/202/expected.json | 11 +- .../core/uncategorised/203/expected.json | 11 +- .../core/uncategorised/204/expected.json | 11 +- .../core/uncategorised/205/expected.json | 11 +- .../core/uncategorised/206/expected.json | 11 +- .../core/uncategorised/207/expected.json | 11 +- .../core/uncategorised/208/expected.json | 11 +- .../core/uncategorised/209/expected.json | 11 +- .../core/uncategorised/210/expected.json | 11 +- .../core/uncategorised/211/expected.json | 11 +- .../core/uncategorised/212/expected.json | 11 +- .../core/uncategorised/218/expected.json | 11 +- .../core/uncategorised/219/expected.json | 19 +- .../core/uncategorised/22/expected.json | 11 +- .../core/uncategorised/220/expected.json | 27 +- .../core/uncategorised/229/expected.json | 10 +- .../core/uncategorised/23/expected.json | 11 +- .../core/uncategorised/230/expected.json | 11 +- .../core/uncategorised/232/expected.json | 7 +- .../core/uncategorised/233/expected.json | 7 +- .../core/uncategorised/234/expected.json | 14 +- .../core/uncategorised/235/expected.json | 17 +- .../core/uncategorised/236/expected.json | 7 +- .../core/uncategorised/237/expected.json | 14 +- .../core/uncategorised/24/expected.json | 11 +- .../core/uncategorised/240/expected.json | 11 +- .../core/uncategorised/241/expected.json | 11 +- .../core/uncategorised/242/expected.json | 19 +- .../core/uncategorised/243/expected.json | 19 +- .../core/uncategorised/244/expected.json | 19 +- .../core/uncategorised/245/expected.json | 19 +- .../core/uncategorised/25/expected.json | 11 +- .../core/uncategorised/250/expected.json | 10 +- .../core/uncategorised/251/expected.json | 10 +- .../core/uncategorised/252/expected.json | 10 +- .../core/uncategorised/253/expected.json | 10 +- .../core/uncategorised/254/expected.json | 10 +- .../core/uncategorised/255/expected.json | 10 +- .../core/uncategorised/256/expected.json | 10 +- .../core/uncategorised/259/expected.json | 10 +- .../core/uncategorised/26/expected.json | 11 +- .../core/uncategorised/260/expected.json | 10 +- .../core/uncategorised/261/expected.json | 10 +- .../core/uncategorised/262/expected.json | 10 +- .../core/uncategorised/269/expected.json | 11 +- .../core/uncategorised/27/expected.json | 19 +- .../core/uncategorised/270/expected.json | 11 +- .../core/uncategorised/272/expected.json | 7 +- .../core/uncategorised/275/expected.json | 11 +- .../core/uncategorised/28/expected.json | 19 +- .../core/uncategorised/288/expected.json | 10 +- .../core/uncategorised/289/expected.json | 21 +- .../core/uncategorised/299/expected.json | 10 +- .../core/uncategorised/3/expected.json | 11 +- .../core/uncategorised/302/expected.json | 29 +- .../core/uncategorised/303/expected.json | 22 +- .../core/uncategorised/304/expected.json | 10 +- .../core/uncategorised/305/expected.json | 28 +- .../core/uncategorised/306/expected.json | 28 +- .../core/uncategorised/307/expected.json | 10 +- .../core/uncategorised/308/expected.json | 28 +- .../core/uncategorised/309/expected.json | 28 +- .../core/uncategorised/310/expected.json | 10 +- .../core/uncategorised/311/expected.json | 42 +- .../core/uncategorised/312/expected.json | 42 +- .../core/uncategorised/314/expected.json | 38 +- .../core/uncategorised/315/expected.json | 38 +- .../core/uncategorised/317/expected.json | 7 +- .../core/uncategorised/318/expected.json | 34 +- .../core/uncategorised/319/expected.json | 19 +- .../core/uncategorised/320/expected.json | 19 +- .../core/uncategorised/322/expected.json | 17 +- .../core/uncategorised/323/expected.json | 19 +- .../core/uncategorised/324/expected.json | 15 +- .../core/uncategorised/341/expected.json | 10 +- .../core/uncategorised/342/expected.json | 35 +- .../core/uncategorised/343/expected.json | 23 +- .../core/uncategorised/344/expected.json | 70 ++-- .../core/uncategorised/35/expected.json | 14 +- .../core/uncategorised/36/expected.json | 14 +- .../core/uncategorised/4/expected.json | 7 +- .../core/uncategorised/42/expected.json | 14 +- .../core/uncategorised/43/expected.json | 14 +- .../core/uncategorised/44/expected.json | 11 +- .../core/uncategorised/45/expected.json | 11 +- .../core/uncategorised/46/expected.json | 21 +- .../core/uncategorised/466/expected.json | 186 +++++++++ .../core/uncategorised/467/expected.json | 184 +++++++++ .../core/uncategorised/468/expected.json | 186 +++++++++ .../core/uncategorised/469/expected.json | 186 +++++++++ .../core/uncategorised/47/expected.json | 33 +- .../core/uncategorised/470/expected.json | 201 ++++++++++ .../core/uncategorised/471/expected.json | 201 ++++++++++ .../core/uncategorised/472/expected.json | 184 +++++++++ .../core/uncategorised/473/expected.json | 184 +++++++++ .../core/uncategorised/474/expected.json | 167 ++++++++ .../core/uncategorised/475/expected.json | 167 ++++++++ .../core/uncategorised/476/expected.json | 167 ++++++++ .../core/uncategorised/477/expected.json | 167 ++++++++ .../core/uncategorised/478/expected.json | 167 ++++++++ .../core/uncategorised/479/expected.json | 167 ++++++++ .../core/uncategorised/48/expected.json | 33 +- .../core/uncategorised/480/expected.json | 167 ++++++++ .../core/uncategorised/481/expected.json | 167 ++++++++ .../core/uncategorised/482/expected.json | 170 ++++++++ .../core/uncategorised/483/expected.json | 170 ++++++++ .../core/uncategorised/486/expected.json | 204 ++++++++++ .../core/uncategorised/487/expected.json | 204 ++++++++++ .../core/uncategorised/49/expected.json | 21 +- .../core/uncategorised/490/expected.json | 240 +++++++++++ .../core/uncategorised/492/expected.json | 295 ++++++++++++++ .../core/uncategorised/493/expected.json | 242 +++++++++++ .../core/uncategorised/494/expected.json | 257 ++++++++++++ .../uncategorised/497}/expected.json | 184 ++++----- .../core/uncategorised/498/expected.json | 187 +++++++++ .../core/uncategorised/499/expected.json | 150 +++++++ .../core/uncategorised/5/expected.json | 7 +- .../core/uncategorised/50/expected.json | 21 +- .../core/uncategorised/500/expected.json | 152 +++++++ .../core/uncategorised/501/expected.json | 209 ++++++++++ .../core/uncategorised/502/expected.json | 209 ++++++++++ .../core/uncategorised/503/expected.json | 203 ++++++++++ .../core/uncategorised/504/expected.json | 169 ++++++++ .../core/uncategorised/505/expected.json | 169 ++++++++ .../core/uncategorised/506/expected.json | 169 ++++++++ .../core/uncategorised/507/expected.json | 169 ++++++++ .../core/uncategorised/508/expected.json | 169 ++++++++ .../core/uncategorised/509/expected.json | 169 ++++++++ .../core/uncategorised/51/expected.json | 21 +- .../core/uncategorised/510/expected.json | 169 ++++++++ .../core/uncategorised/513/expected.json | 118 ++++++ .../core/uncategorised/514/expected.json | 151 +++++++ .../core/uncategorised/517/expected.json | 218 ++++++++++ .../core/uncategorised/518/expected.json | 169 ++++++++ .../core/uncategorised/519/expected.json | 221 ++++++++++ .../core/uncategorised/52/expected.json | 21 +- .../core/uncategorised/522/expected.json | 270 +++++++++++++ .../core/uncategorised/527/expected.json | 11 +- .../core/uncategorised/528/expected.json | 19 +- .../core/uncategorised/529/expected.json | 27 +- .../core/uncategorised/53/expected.json | 21 +- .../core/uncategorised/530/expected.json | 11 +- .../core/uncategorised/531/expected.json | 19 +- .../core/uncategorised/533/expected.json | 11 +- .../core/uncategorised/534/expected.json | 19 +- .../core/uncategorised/535/expected.json | 27 +- .../core/uncategorised/537/expected.json | 11 +- .../core/uncategorised/538/expected.json | 29 +- .../core/uncategorised/54/expected.json | 21 +- .../core/uncategorised/540/expected.json | 18 +- .../core/uncategorised/541/expected.json | 10 +- .../core/uncategorised/55/expected.json | 21 +- .../core/uncategorised/56/expected.json | 21 +- .../core/uncategorised/57/expected.json | 27 +- .../core/uncategorised/58/expected.json | 27 +- .../core/uncategorised/59/expected.json | 21 +- .../core/uncategorised/6/expected.json | 31 +- .../core/uncategorised/60/expected.json | 27 +- .../core/uncategorised/61/expected.json | 27 +- .../core/uncategorised/62/expected.json | 21 +- .../core/uncategorised/63/expected.json | 33 +- .../core/uncategorised/64/expected.json | 32 +- .../core/uncategorised/65/expected.json | 23 +- .../core/uncategorised/66/expected.json | 11 +- .../core/uncategorised/67/expected.json | 11 +- .../core/uncategorised/68/expected.json | 11 +- .../core/uncategorised/69/expected.json | 11 +- .../core/uncategorised/70/expected.json | 11 +- .../core/uncategorised/71/expected.json | 11 +- .../core/uncategorised/72/expected.json | 11 +- .../core/uncategorised/73/expected.json | 11 +- .../core/uncategorised/74/expected.json | 11 +- .../core/uncategorised/75/expected.json | 11 +- .../core/uncategorised/76/expected.json | 11 +- .../core/uncategorised/77/expected.json | 11 +- .../core/uncategorised/78/expected.json | 11 +- .../core/uncategorised/79/expected.json | 11 +- .../core/uncategorised/80/expected.json | 11 +- .../core/uncategorised/81/expected.json | 11 +- .../core/uncategorised/82/expected.json | 11 +- .../core/uncategorised/83/expected.json | 11 +- .../core/uncategorised/84/expected.json | 11 +- .../core/uncategorised/85/expected.json | 15 +- .../core/uncategorised/86/expected.json | 17 +- .../core/uncategorised/87/expected.json | 17 +- .../core/uncategorised/88/expected.json | 17 +- .../core/uncategorised/89/expected.json | 17 +- .../core/uncategorised/9/expected.json | 11 +- .../core/uncategorised/90/expected.json | 17 +- .../core/uncategorised/91/expected.json | 17 +- .../core/uncategorised/92/expected.json | 17 +- .../core/uncategorised/93/expected.json | 17 +- .../core/uncategorised/94/expected.json | 17 +- .../core/uncategorised/95/expected.json | 17 +- .../core/uncategorised/96/expected.json | 17 +- .../core/uncategorised/97/expected.json | 17 +- .../core/uncategorised/98/expected.json | 17 +- .../core/uncategorised/99/expected.json | 17 +- .../migrated_0002/expected.json | 15 +- .../migrated_0003/expected.json | 22 +- .../migrated_0004/expected.json | 10 +- .../migrated_0005/expected.json | 28 +- .../migrated_0006/expected.json | 28 +- .../migrated_0007/expected.json | 10 +- .../migrated_0008/expected.json | 28 +- .../migrated_0009/expected.json | 28 +- .../migrated_0010/expected.json | 10 +- .../migrated_0011/expected.json | 28 +- .../migrated_0012/expected.json | 28 +- .../migrated_0014/expected.json | 24 +- .../migrated_0015/expected.json | 24 +- .../migrated_0000/expected.json | 11 +- .../migrated_0001/expected.json | 14 +- .../migrated_0002/expected.json | 30 +- .../dupe-param/expected.json | 151 +++++++ .../empty-param/expected.json | 18 +- .../migrated_0004/expected.json | 10 +- .../migrated_0005/expected.json | 21 +- .../migrated_0012/expected.json | 10 +- .../migrated_0014/expected.json | 22 +- .../migrated_0002/expected.json | 14 +- .../migrated_0003/expected.json | 30 +- .../migrated_0000/expected.json | 77 ++-- .../migrated_0001/expected.json | 77 ++-- .../array-binding-pattern-01/expected.json | 11 +- .../array-binding-pattern-02/expected.json | 11 +- .../array-binding-pattern-03/expected.json | 11 +- .../array-binding-pattern-empty/expected.json | 11 +- .../elision/expected.json | 11 +- .../dupe-param-1/expected.json | 168 ++++++++ .../dupe-param-2/expected.json | 183 +++++++++ .../dupe-param-3/expected.json | 235 +++++++++++ .../elision/expected.json | 11 +- .../empty-pattern-var/expected.json | 11 +- .../es2015-array-pattern/hole/expected.json | 11 +- .../nested-pattern/expected.json | 11 +- .../patterned-catch/expected.json | 25 +- .../es2015-array-pattern/rest/expected.json | 11 +- .../tailing-hold/expected.json | 11 +- .../with-default-catch-param/expected.json | 17 +- .../with-default-fn/expected.json | 14 +- .../with-object-pattern/expected.json | 11 +- .../expected.json | 11 +- .../arrow-with-only-rest/expected.json | 11 +- .../options.json | 2 +- .../migrated_0000/expected.json | 11 +- .../migrated_0001/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../migrated_0003/expected.json | 11 +- .../migrated_0004/expected.json | 14 +- .../migrated_0005/expected.json | 15 +- .../migrated_0006/expected.json | 14 +- .../migrated_0007/expected.json | 14 +- .../migrated_0008/expected.json | 11 +- .../migrated_0009/expected.json | 11 +- .../migrated_0010/expected.json | 11 +- .../migrated_0011/expected.json | 11 +- .../migrated_0012/expected.json | 11 +- .../migrated_0013/expected.json | 19 +- .../migrated_0014/expected.json | 19 +- .../migrated_0015/expected.json | 7 +- .../migrated_0016/expected.json | 11 +- .../migrated_0017/expected.json | 11 +- .../migrated_0000/expected.json | 11 +- .../migrated_0001/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../migrated_0003/expected.json | 11 +- .../migrated_0004/expected.json | 11 +- .../migrated_0005/expected.json | 11 +- .../es2015-class/migrated_0001/expected.json | 11 +- .../es2015-class/migrated_0016/expected.json | 11 +- .../es2015-class/migrated_0019/expected.json | 25 +- .../es2015-class/migrated_0021/expected.json | 14 +- .../es2015-class/migrated_0022/expected.json | 7 +- .../es2015-class/migrated_0023/expected.json | 7 +- .../es2015-class/migrated_0024/expected.json | 15 +- .../es2015-class/migrated_0025/expected.json | 15 +- .../migrated_0000/expected.json | 14 +- .../migrated_0001/expected.json | 14 +- .../migrated_0002/expected.json | 14 +- .../dup-assignment/expected.json | 11 +- .../elision/expected.json | 11 +- .../member-expr-in-rest/expected.json | 19 +- .../nested-assignment/expected.json | 27 +- .../nested-cover-grammar/expected.json | 11 +- .../simple-assignment/expected.json | 11 +- .../expected.json | 15 +- .../nested-cover-grammar/expected.json | 19 +- .../object-pattern-assignment/expected.json | 15 +- .../export-const-number/expected.json | 11 +- .../export-default-class/expected.json | 5 +- .../export-default-expression/expected.json | 23 +- .../export-default-function/expected.json | 8 +- .../export-default-number/expected.json | 11 +- .../export-default-object/expected.json | 11 +- .../export-from-batch/expected.json | 11 +- .../export-from-default/expected.json | 11 +- .../expected.json | 11 +- .../expected.json | 11 +- .../expected.json | 11 +- .../export-from-specifier/expected.json | 11 +- .../export-from-specifiers/expected.json | 11 +- .../export-function-declaration/expected.json | 10 +- .../export-let-number/expected.json | 11 +- .../export-var-number/expected.json | 11 +- .../expected.json | 14 +- .../expected.json | 14 +- .../expected.json | 10 +- .../expected.json | 10 +- .../expected.json | 10 +- .../expected.json | 18 +- .../generator-expression/expected.json | 10 +- .../expected.json | 10 +- .../expected.json | 18 +- .../expected.json | 18 +- .../expected.json | 18 +- .../generator-method-with-yield/expected.json | 10 +- .../generator-method/expected.json | 10 +- .../module_await/expected.json | 11 +- .../valid_await/expected.json | 7 +- .../expected.json | 11 +- .../expected.json | 11 +- .../import-default-as/expected.json | 11 +- .../import-default/expected.json | 11 +- .../import-jquery/expected.json | 11 +- .../import-module/expected.json | 11 +- .../import-named-as-specifier/expected.json | 11 +- .../import-named-as-specifiers/expected.json | 11 +- .../import-named-empty/expected.json | 11 +- .../import-named-specifier/expected.json | 11 +- .../expected.json | 11 +- .../import-named-specifiers/expected.json | 11 +- .../import-namespace-specifier/expected.json | 11 +- .../import-null-as-nil/expected.json | 11 +- .../migrated_0000/expected.json | 19 +- .../migrated_0002/expected.json | 14 +- .../options.json | 4 +- .../options.json | 4 +- .../options.json | 4 +- .../options.json | 4 +- .../invalid-proto-shorthands/options.json | 4 +- .../expected.json | 13 +- .../proto-identifier-getter/expected.json | 10 +- .../proto-identifier-method/expected.json | 10 +- .../proto-identifier-setter/expected.json | 10 +- .../proto-literal-getter-setter/expected.json | 21 +- .../proto-literal-getter/expected.json | 18 +- .../proto-literal-method/expected.json | 18 +- .../proto-literal-setter/expected.json | 18 +- .../elision/expected.json | 11 +- .../empty-for-lex/expected.json | 11 +- .../empty-lexical/expected.json | 11 +- .../empty-var/expected.json | 11 +- .../nested/expected.json | 11 +- .../properties/expected.json | 27 +- .../migrated_0000/expected.json | 11 +- .../migrated_0001/expected.json | 11 +- .../migrated_0002/expected.json | 81 ++-- .../migrated_0003/expected.json | 11 +- .../migrated_0004/expected.json | 11 +- .../migrated_0005/expected.json | 11 +- .../migrated_0006/expected.json | 81 ++-- .../call-spread-number/expected.json | 11 +- .../new-spread-number/expected.json | 11 +- .../super_computed/expected.json | 14 +- .../escape-sequences/expected.json | 11 +- .../line-terminators/expected.json | 11 +- .../literal-escape-sequences/expected.json | 11 +- .../migrated_0000/expected.json | 11 +- .../migrated_0001/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../expected.json | 150 +++++++ .../expected.json | 136 +++++++ .../expected.json | 184 +++++++++ .../expected.json | 149 +++++++ .../expected.json | 135 +++++++ .../expected.json | 134 +++++++ .../expected.json | 150 +++++++ .../expected.json | 117 ++++++ .../yield-array-pattern/expected.json | 7 +- .../yield-arrow-parameter-name/expected.json | 11 +- .../expected.json | 10 +- .../yield-function-expression/expected.json | 10 +- .../yield-generator-method/expected.json | 10 +- .../yield-lexical-declaration/expected.json | 11 +- .../es2015-yield/yield-method/expected.json | 10 +- .../expected.json | 70 ++-- .../yield-strict-method/expected.json | 77 ++-- .../migrated_0002/expected.json | 19 +- .../migrated_0000/expected.json | 11 +- .../migrated_0001/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../migrated_0003/expected.json | 11 +- .../migrated_0004/expected.json | 11 +- .../migrated_0005/expected.json | 11 +- .../migrated_0006/expected.json | 11 +- .../migrated_0007/expected.json | 11 +- .../migrated_0008/expected.json | 11 +- .../migrated_0009/expected.json | 11 +- .../migrated_0010/expected.json | 11 +- .../migrated_0011/expected.json | 11 +- .../migrated_0012/expected.json | 11 +- .../migrated_0013/expected.json | 11 +- .../migrated_0000/expected.json | 19 +- .../migrated_0001/expected.json | 19 +- .../migrated_0002/expected.json | 29 +- .../migrated_0000/expected.json | 31 +- .../migrated_0001/expected.json | 29 +- .../migrated_0007/expected.json | 7 +- .../migrated_0009/expected.json | 7 +- .../migrated_0015/expected.json | 11 +- .../migrated_0016/expected.json | 11 +- .../migrated_0017/expected.json | 35 +- .../migrated_0018/expected.json | 11 +- .../migrated_0087}/expected.json | 196 +++++---- .../migrated_0088/expected.json | 136 +++++++ .../migrated_0089/expected.json | 136 +++++++ .../migrated_0090/expected.json | 152 +++++++ .../migrated_0091/expected.json | 152 +++++++ .../migrated_0094/expected.json | 136 +++++++ .../migrated_0100/expected.json | 136 +++++++ .../migrated_0183/expected.json | 186 +++++++++ .../migrated_0184/expected.json | 184 +++++++++ .../migrated_0185/expected.json | 186 +++++++++ .../migrated_0186/expected.json | 186 +++++++++ .../migrated_0187/expected.json | 201 ++++++++++ .../migrated_0188/expected.json | 201 ++++++++++ .../migrated_0189/expected.json | 184 +++++++++ .../migrated_0190/expected.json | 184 +++++++++ .../migrated_0191/expected.json | 167 ++++++++ .../migrated_0192/expected.json | 167 ++++++++ .../migrated_0193/expected.json | 167 ++++++++ .../migrated_0194/expected.json | 167 ++++++++ .../migrated_0195/expected.json | 167 ++++++++ .../migrated_0196/expected.json | 167 ++++++++ .../migrated_0197/expected.json | 167 ++++++++ .../migrated_0198/expected.json | 167 ++++++++ .../migrated_0199/expected.json | 170 ++++++++ .../migrated_0200/expected.json | 170 ++++++++ .../migrated_0203/expected.json | 204 ++++++++++ .../migrated_0204/expected.json | 204 ++++++++++ .../migrated_0207/expected.json | 240 +++++++++++ .../migrated_0209/expected.json | 295 ++++++++++++++ .../migrated_0210/expected.json | 242 +++++++++++ .../migrated_0211/expected.json | 257 ++++++++++++ .../migrated_0214/expected.json | 187 +++++++++ .../migrated_0215/expected.json | 187 +++++++++ .../invalid-syntax/migrated_0216/options.json | 4 +- .../migrated_0217/expected.json | 150 +++++++ .../migrated_0218/expected.json | 152 +++++++ .../migrated_0219/expected.json | 209 ++++++++++ .../migrated_0220/expected.json | 209 ++++++++++ .../invalid-syntax/migrated_0221/options.json | 4 +- .../invalid-syntax/migrated_0222/options.json | 4 +- .../migrated_0223/expected.json | 203 ++++++++++ .../migrated_0224/expected.json | 169 ++++++++ .../migrated_0225/expected.json | 169 ++++++++ .../migrated_0226/expected.json | 169 ++++++++ .../migrated_0227/expected.json | 169 ++++++++ .../migrated_0228/expected.json | 169 ++++++++ .../migrated_0229/expected.json | 169 ++++++++ .../migrated_0230/expected.json | 169 ++++++++ .../migrated_0231/expected.json | 169 ++++++++ .../migrated_0239/expected.json | 118 ++++++ .../migrated_0240/expected.json | 151 +++++++ .../migrated_0243/expected.json | 218 ++++++++++ .../migrated_0244/expected.json | 169 ++++++++ .../migrated_0245/expected.json | 221 ++++++++++ .../migrated_0249/expected.json | 151 +++++++ .../invalid-syntax/migrated_0270/options.json | 4 +- .../invalid-syntax/migrated_0271/options.json | 4 +- .../invalid-syntax/migrated_0278/options.json | 4 +- .../migrated_0000/expected.json | 10 +- .../migrated_0001/expected.json | 10 +- .../migrated_0002/expected.json | 10 +- .../migrated_0003/expected.json | 10 +- .../migrated_0000/expected.json | 10 +- .../migrated_0001/expected.json | 10 +- .../migrated_0002/expected.json | 10 +- .../migrated_0003/expected.json | 10 +- .../migrated_0004/expected.json | 10 +- .../migrated_0002/expected.json | 11 +- .../migrated_0003/expected.json | 11 +- .../migrated_0004/expected.json | 11 +- .../migrated_0005/expected.json | 11 +- .../statement-if/migrated_0001/expected.json | 10 +- .../statement-if/migrated_0002/expected.json | 11 +- .../statement-if/migrated_0005/expected.json | 7 +- .../statement-if/migrated_0006/expected.json | 7 +- .../migrated_0000/expected.json | 7 +- .../migrated_0001/expected.json | 7 +- .../migrated_0002/expected.json | 14 +- .../migrated_0003/expected.json | 17 +- .../migrated_0004/expected.json | 7 +- .../migrated_0005/expected.json | 7 +- .../migrated_0006/expected.json | 7 +- .../migrated_0007/expected.json | 14 +- .../migrated_0010/expected.json | 11 +- .../migrated_0011/expected.json | 11 +- .../migrated_0012/expected.json | 11 +- .../migrated_0013/expected.json | 19 +- .../migrated_0014/expected.json | 19 +- .../migrated_0015/expected.json | 19 +- .../migrated_0016/expected.json | 19 +- .../migrated_0019/actual.js | 1 - .../migrated_0022/actual.js | 1 - .../migrated_0022/expected.json | 241 ----------- .../migrated_0023/actual.js | 1 - .../migrated_0023/expected.json | 278 ------------- .../migrated_0025/expected.json | 11 +- .../migrated_0001/expected.json | 7 +- .../migrated_0000/expected.json | 10 +- .../migrated_0001/expected.json | 10 +- .../migrated_0002/expected.json | 10 +- .../migrated_0003/expected.json | 10 +- .../migrated_0001/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../migrated_0002/expected.json | 11 +- .../migrated_0003/expected.json | 19 +- .../migrated_0004/expected.json | 27 +- .../experimental/async-functions/options.json | 4 +- .../async-functions/pattern/expected.json | 11 +- .../uncategorised/10/expected.json | 5 +- .../uncategorised/10/options.json | 4 +- .../uncategorised/11/expected.json | 12 +- .../uncategorised/11/options.json | 4 +- .../uncategorised/12/options.json | 4 +- .../uncategorised/13/options.json | 4 +- .../uncategorised/14/expected.json | 7 +- .../uncategorised/14/options.json | 4 +- .../uncategorised/15/options.json | 4 +- .../uncategorised/16/options.json | 4 +- .../uncategorised/17/expected.json | 7 +- .../uncategorised/17/options.json | 4 +- .../uncategorised/18/options.json | 4 +- .../uncategorised/19/expected.json | 13 +- .../uncategorised/19/options.json | 4 +- .../uncategorised/20/options.json | 4 +- .../uncategorised/21/expected.json | 14 +- .../uncategorised/21/options.json | 4 +- .../uncategorised/22/options.json | 4 +- .../uncategorised/23/options.json | 4 +- .../uncategorised/24/options.json | 4 +- .../uncategorised/25/options.json | 4 +- .../uncategorised/26/expected.json | 19 +- .../uncategorised/26/options.json | 4 +- .../uncategorised/27/options.json | 4 +- .../uncategorised/28/expected.json | 19 +- .../uncategorised/28/options.json | 4 +- .../uncategorised/29/expected.json | 7 +- .../uncategorised/29/options.json | 4 +- .../uncategorised/3/expected.json | 11 +- .../experimental/uncategorised/3/options.json | 4 +- .../uncategorised/30/expected.json | 11 +- .../uncategorised/30/options.json | 4 +- .../uncategorised/31/expected.json | 6 +- .../uncategorised/31/options.json | 4 +- .../uncategorised/32/options.json | 4 +- .../uncategorised/33/options.json | 4 +- .../uncategorised/34/options.json | 4 +- .../uncategorised/35/options.json | 4 +- .../uncategorised/36/options.json | 4 +- .../uncategorised/37/options.json | 4 +- .../uncategorised/38/options.json | 4 +- .../uncategorised/39/expected.json | 11 +- .../uncategorised/39/options.json | 4 +- .../uncategorised/4/expected.json | 19 +- .../experimental/uncategorised/4/options.json | 4 +- .../uncategorised/40/options.json | 4 +- .../uncategorised/41/options.json | 4 +- .../uncategorised/42/options.json | 4 +- .../uncategorised/43/expected.json | 11 +- .../uncategorised/43/options.json | 4 +- .../uncategorised/44/options.json | 4 +- .../uncategorised/45/options.json | 4 +- .../uncategorised/46/expected.json | 11 +- .../uncategorised/46/options.json | 4 +- .../uncategorised/47/expected.json | 11 +- .../uncategorised/47/options.json | 8 +- .../uncategorised/48/expected.json | 11 +- .../uncategorised/48/options.json | 8 +- .../uncategorised/49/expected.json | 11 +- .../uncategorised/49/options.json | 4 +- .../uncategorised/5/expected.json | 31 +- .../experimental/uncategorised/5/options.json | 4 +- .../uncategorised/50/expected.json | 11 +- .../uncategorised/50/options.json | 4 +- .../uncategorised/51/expected.json | 11 +- .../uncategorised/51/options.json | 4 +- .../uncategorised/52/expected.json | 11 +- .../uncategorised/52/options.json | 4 +- .../uncategorised/53/expected.json | 11 +- .../uncategorised/53/options.json | 4 +- .../uncategorised/54/expected.json | 11 +- .../uncategorised/54/options.json | 4 +- .../uncategorised/55/expected.json | 19 +- .../uncategorised/55/options.json | 4 +- .../uncategorised/56/options.json | 4 +- .../uncategorised/57/options.json | 4 +- .../uncategorised/58/expected.json | 11 +- .../uncategorised/58/options.json | 4 +- .../uncategorised/59/options.json | 4 +- .../uncategorised/6/expected.json | 27 +- .../experimental/uncategorised/6/options.json | 4 +- .../uncategorised/60/options.json | 4 +- .../uncategorised/61/options.json | 4 +- .../uncategorised/62/options.json | 4 +- .../uncategorised/7/expected.json | 31 +- .../experimental/uncategorised/7/options.json | 4 +- .../uncategorised/8/expected.json | 27 +- .../experimental/uncategorised/8/options.json | 4 +- .../uncategorised/9/expected.json | 5 +- .../experimental/uncategorised/9/options.json | 4 +- .../flow/bounded-polymorphism/2/expected.json | 10 +- .../flow/declare-module/2/expected.json | 11 +- .../literal-types/number-binary/expected.json | 12 +- .../literal-types/number-float/expected.json | 12 +- .../number-integer/expected.json | 12 +- .../number-octal-2/expected.json | 12 +- .../literal-types/number-octal/expected.json | 12 +- .../literal-types/string-double/expected.json | 16 +- .../literal-types/string-single/expected.json | 16 +- .../babylon/test/fixtures/flow/options.json | 3 +- .../flow/regression/issue-2083/expected.json | 35 +- .../test/fixtures/flow/tuples/3/expected.json | 11 +- .../test/fixtures/flow/tuples/4/expected.json | 19 +- .../flow/type-annotations/1/expected.json | 10 +- .../flow/type-annotations/10/expected.json | 10 +- .../flow/type-annotations/11/expected.json | 10 +- .../flow/type-annotations/12/expected.json | 10 +- .../flow/type-annotations/13/expected.json | 10 +- .../flow/type-annotations/14/expected.json | 10 +- .../flow/type-annotations/15/expected.json | 10 +- .../flow/type-annotations/16/expected.json | 10 +- .../flow/type-annotations/17/expected.json | 10 +- .../flow/type-annotations/18/expected.json | 10 +- .../flow/type-annotations/19/expected.json | 10 +- .../flow/type-annotations/2/expected.json | 10 +- .../flow/type-annotations/20/expected.json | 10 +- .../flow/type-annotations/21/expected.json | 10 +- .../flow/type-annotations/22/expected.json | 10 +- .../flow/type-annotations/23/expected.json | 10 +- .../flow/type-annotations/24/expected.json | 10 +- .../flow/type-annotations/26/expected.json | 15 +- .../flow/type-annotations/27/expected.json | 10 +- .../flow/type-annotations/28/expected.json | 10 +- .../flow/type-annotations/29/expected.json | 10 +- .../flow/type-annotations/3/expected.json | 10 +- .../flow/type-annotations/4/expected.json | 10 +- .../flow/type-annotations/44/expected.json | 27 +- .../flow/type-annotations/5/expected.json | 10 +- .../flow/type-annotations/50/expected.json | 15 +- .../flow/type-annotations/51/expected.json | 15 +- .../flow/type-annotations/52/expected.json | 10 +- .../flow/type-annotations/55/expected.json | 11 +- .../flow/type-annotations/56/expected.json | 10 +- .../flow/type-annotations/6/expected.json | 10 +- .../flow/type-annotations/60/expected.json | 11 +- .../flow/type-annotations/61/expected.json | 11 +- .../flow/type-annotations/62/expected.json | 11 +- .../flow/type-annotations/63/expected.json | 10 +- .../flow/type-annotations/64/expected.json | 10 +- .../flow/type-annotations/65/expected.json | 10 +- .../flow/type-annotations/66/expected.json | 14 +- .../flow/type-annotations/67/expected.json | 7 +- .../flow/type-annotations/68/expected.json | 11 +- .../flow/type-annotations/7/expected.json | 10 +- .../flow/type-annotations/72/expected.json | 11 +- .../flow/type-annotations/73/expected.json | 15 +- .../flow/type-annotations/74/expected.json | 19 +- .../flow/type-annotations/78/expected.json | 10 +- .../flow/type-annotations/79/expected.json | 14 +- .../flow/type-annotations/8/expected.json | 10 +- .../flow/type-annotations/80/expected.json | 11 +- .../flow/type-annotations/89/expected.json | 11 +- .../flow/type-annotations/9/expected.json | 10 +- .../flow/type-annotations/90/expected.json | 11 +- .../flow/type-annotations/91/expected.json | 11 +- .../flow/type-annotations/92/expected.json | 11 +- .../flow/type-annotations/93/expected.json | 11 +- .../flow/type-annotations/94/expected.json | 11 +- .../flow/type-annotations/95/expected.json | 11 +- .../flow/type-annotations/96/expected.json | 11 +- .../flow/type-annotations/97/expected.json | 11 +- .../type-exports/specifier-from/expected.json | 11 +- .../fixtures/flow/typecasts/1/expected.json | 10 +- .../fixtures/flow/typecasts/2/expected.json | 23 +- .../fixtures/flow/typecasts/3/expected.json | 16 +- .../fixtures/flow/typecasts/4/expected.json | 18 +- .../call-expression/expected.json | 11 +- .../expected.json | 12 +- .../expected.json | 10 +- .../harmony/uncategorised/1/expected.json | 17 +- .../harmony/uncategorised/10/expected.json | 11 +- .../harmony/uncategorised/100/expected.json | 13 +- .../harmony/uncategorised/101/expected.json | 13 +- .../harmony/uncategorised/106/expected.json | 18 +- .../harmony/uncategorised/109/options.json | 3 + .../harmony/uncategorised/11/expected.json | 11 +- .../harmony/uncategorised/12/expected.json | 11 +- .../harmony/uncategorised/123/expected.json | 77 ++-- .../harmony/uncategorised/124/expected.json | 14 +- .../harmony/uncategorised/13/expected.json | 11 +- .../harmony/uncategorised/130/expected.json | 77 ++-- .../harmony/uncategorised/14/expected.json | 11 +- .../harmony/uncategorised/141/expected.json | 15 +- .../harmony/uncategorised/142/expected.json | 31 +- .../harmony/uncategorised/143/expected.json | 13 +- .../harmony/uncategorised/144/expected.json | 23 +- .../harmony/uncategorised/145/expected.json | 16 +- .../harmony/uncategorised/146/expected.json | 13 +- .../harmony/uncategorised/15/expected.json | 11 +- .../harmony/uncategorised/152/expected.json | 14 +- .../harmony/uncategorised/153/expected.json | 14 +- .../harmony/uncategorised/154/expected.json | 14 +- .../harmony/uncategorised/155/expected.json | 18 +- .../harmony/uncategorised/156/expected.json | 18 +- .../harmony/uncategorised/157/expected.json | 18 +- .../harmony/uncategorised/158/expected.json | 18 +- .../harmony/uncategorised/159/expected.json | 14 +- .../harmony/uncategorised/16/expected.json | 11 +- .../harmony/uncategorised/160/expected.json | 14 +- .../harmony/uncategorised/161/expected.json | 14 +- .../harmony/uncategorised/162/expected.json | 14 +- .../harmony/uncategorised/167/options.json | 3 + .../harmony/uncategorised/168/options.json | 3 + .../harmony/uncategorised/169/expected.json | 13 +- .../harmony/uncategorised/17/expected.json | 11 +- .../harmony/uncategorised/170/expected.json | 13 +- .../harmony/uncategorised/171/options.json | 3 + .../harmony/uncategorised/172/options.json | 3 + .../harmony/uncategorised/173/expected.json | 13 +- .../harmony/uncategorised/174/options.json | 3 + .../harmony/uncategorised/175/options.json | 3 + .../harmony/uncategorised/180/options.json | 3 + .../harmony/uncategorised/181/options.json | 3 + .../harmony/uncategorised/195/expected.json | 7 +- .../harmony/uncategorised/196/expected.json | 7 +- .../harmony/uncategorised/197/expected.json | 10 +- .../harmony/uncategorised/2/expected.json | 17 +- .../harmony/uncategorised/227/expected.json | 295 ++++++++++++++ .../harmony/uncategorised/228/expected.json | 258 ++++++++++++ .../harmony/uncategorised/242/expected.json | 169 ++++++++ .../harmony/uncategorised/243/expected.json | 136 +++++++ .../harmony/uncategorised/244/expected.json | 136 +++++++ .../harmony/uncategorised/245/expected.json | 152 +++++++ .../harmony/uncategorised/246/expected.json | 152 +++++++ .../harmony/uncategorised/247/expected.json | 185 +++++++++ .../harmony/uncategorised/249/expected.json | 136 +++++++ .../harmony/uncategorised/256/expected.json | 11 +- .../harmony/uncategorised/257/expected.json | 11 +- .../harmony/uncategorised/259/expected.json | 18 +- .../harmony/uncategorised/26/expected.json | 22 +- .../harmony/uncategorised/269/actual.js | 1 - .../harmony/uncategorised/269/options.json | 6 - .../harmony/uncategorised/27/expected.json | 19 +- .../harmony/uncategorised/270/actual.js | 1 - .../harmony/uncategorised/270/options.json | 6 - .../harmony/uncategorised/271/actual.js | 1 - .../harmony/uncategorised/271/options.json | 6 - .../harmony/uncategorised/272/actual.js | 1 - .../harmony/uncategorised/272/options.json | 6 - .../harmony/uncategorised/274/actual.js | 1 - .../harmony/uncategorised/274/options.json | 6 - .../harmony/uncategorised/28/expected.json | 11 +- .../harmony/uncategorised/280/expected.json | 203 ++++++++++ .../harmony/uncategorised/281/expected.json | 376 ++++++++++++++++++ .../harmony/uncategorised/282/actual.js | 1 - .../harmony/uncategorised/282/options.json | 3 - .../harmony/uncategorised/286/options.json | 4 +- .../harmony/uncategorised/29/expected.json | 11 +- .../harmony/uncategorised/296/expected.json | 136 +++++++ .../harmony/uncategorised/3/expected.json | 11 +- .../harmony/uncategorised/30/expected.json | 11 +- .../harmony/uncategorised/300/expected.json | 14 +- .../harmony/uncategorised/301/expected.json | 11 +- .../harmony/uncategorised/307/expected.json | 15 +- .../harmony/uncategorised/308/expected.json | 11 +- .../harmony/uncategorised/309/expected.json | 11 +- .../harmony/uncategorised/31/expected.json | 11 +- .../harmony/uncategorised/310/expected.json | 11 +- .../harmony/uncategorised/317/expected.json | 23 +- .../harmony/uncategorised/318/expected.json | 11 +- .../harmony/uncategorised/319/expected.json | 11 +- .../harmony/uncategorised/32/expected.json | 14 +- .../harmony/uncategorised/320/expected.json | 11 +- .../harmony/uncategorised/322/expected.json | 11 +- .../harmony/uncategorised/33/expected.json | 15 +- .../harmony/uncategorised/332/expected.json | 162 ++++++++ .../harmony/uncategorised/333/expected.json | 216 ++++++++++ .../harmony/uncategorised/338/expected.json | 10 +- .../harmony/uncategorised/34/expected.json | 14 +- .../harmony/uncategorised/35/expected.json | 14 +- .../harmony/uncategorised/353/options.json | 3 + .../harmony/uncategorised/36/expected.json | 11 +- .../harmony/uncategorised/39/expected.json | 11 +- .../harmony/uncategorised/4/expected.json | 11 +- .../harmony/uncategorised/40/expected.json | 11 +- .../harmony/uncategorised/41/expected.json | 11 +- .../harmony/uncategorised/42/expected.json | 11 +- .../harmony/uncategorised/43/expected.json | 11 +- .../harmony/uncategorised/44/expected.json | 19 +- .../harmony/uncategorised/45/expected.json | 19 +- .../harmony/uncategorised/46/expected.json | 10 +- .../harmony/uncategorised/47/expected.json | 11 +- .../harmony/uncategorised/48/expected.json | 14 +- .../harmony/uncategorised/5/expected.json | 81 ++-- .../harmony/uncategorised/54/expected.json | 14 +- .../harmony/uncategorised/57/actual.js | 1 - .../harmony/uncategorised/57/options.json | 5 - .../harmony/uncategorised/58/actual.js | 1 - .../harmony/uncategorised/58/expected.json | 225 ----------- .../harmony/uncategorised/58/options.json | 5 - .../harmony/uncategorised/59/actual.js | 1 - .../harmony/uncategorised/59/expected.json | 225 ----------- .../harmony/uncategorised/59/options.json | 5 - .../harmony/uncategorised/6/expected.json | 11 +- .../harmony/uncategorised/60/actual.js | 1 - .../harmony/uncategorised/60/expected.json | 363 ----------------- .../harmony/uncategorised/60/options.json | 5 - .../harmony/uncategorised/7/expected.json | 11 +- .../harmony/uncategorised/79/expected.json | 11 +- .../harmony/uncategorised/8/expected.json | 11 +- .../harmony/uncategorised/80/expected.json | 11 +- .../harmony/uncategorised/82/expected.json | 8 +- .../harmony/uncategorised/85/expected.json | 11 +- .../harmony/uncategorised/9/expected.json | 81 ++-- .../harmony/uncategorised/90/expected.json | 11 +- .../harmony/uncategorised/91/expected.json | 11 +- .../harmony/uncategorised/92/expected.json | 11 +- .../harmony/uncategorised/93/expected.json | 11 +- .../harmony/uncategorised/94/expected.json | 11 +- .../harmony/uncategorised/95/expected.json | 11 +- .../harmony/uncategorised/97/expected.json | 11 +- .../harmony/uncategorised/98/expected.json | 11 +- .../harmony/uncategorised/99/expected.json | 13 +- .../test/fixtures/jsx/basic/10/expected.json | 21 +- .../test/fixtures/jsx/basic/11/expected.json | 8 +- .../test/fixtures/jsx/basic/12/expected.json | 8 +- .../test/fixtures/jsx/basic/13/expected.json | 12 +- .../test/fixtures/jsx/basic/16/expected.json | 10 +- .../test/fixtures/jsx/basic/18/expected.json | 8 +- .../test/fixtures/jsx/basic/19/expected.json | 13 +- .../test/fixtures/jsx/basic/3/expected.json | 18 +- .../test/fixtures/jsx/basic/4/expected.json | 26 +- .../test/fixtures/jsx/basic/7/expected.json | 13 +- .../babylon/test/fixtures/jsx/options.json | 2 +- .../fixtures/jsx/regression/1/expected.json | 23 +- .../fixtures/jsx/regression/4/expected.json | 8 +- .../fixtures/jsx/regression/6/expected.json | 8 +- .../fixtures/jsx/regression/7/expected.json | 8 +- .../jsx/regression/issue-2083/expected.json | 11 +- .../jsx/regression/issue-2114/expected.json | 8 +- 892 files changed, 28000 insertions(+), 5962 deletions(-) create mode 100644 packages/babylon/test/fixtures/core/uncategorised/466/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/467/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/468/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/469/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/470/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/471/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/472/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/473/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/474/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/475/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/476/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/477/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/478/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/479/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/480/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/481/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/482/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/483/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/486/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/487/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/490/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/492/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/493/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/494/expected.json rename packages/babylon/test/fixtures/{esprima/statement-iteration/migrated_0019 => core/uncategorised/497}/expected.json (50%) create mode 100644 packages/babylon/test/fixtures/core/uncategorised/498/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/499/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/500/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/501/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/502/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/503/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/504/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/505/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/506/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/507/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/508/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/509/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/510/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/513/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/514/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/517/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/518/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/519/expected.json create mode 100644 packages/babylon/test/fixtures/core/uncategorised/522/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/expected.json rename packages/babylon/test/fixtures/{harmony/uncategorised/57 => esprima/invalid-syntax/migrated_0087}/expected.json (50%) create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/expected.json create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/expected.json delete mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js delete mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js delete mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json delete mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js delete mode 100644 packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/109/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/167/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/168/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/171/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/172/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/174/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/175/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/180/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/181/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/227/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/228/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/242/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/243/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/244/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/245/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/246/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/247/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/249/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/269/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/269/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/270/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/270/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/271/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/271/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/272/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/272/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/274/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/274/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/280/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/281/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/282/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/282/options.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/296/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/332/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/333/expected.json create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/353/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/57/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/57/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/58/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/58/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/58/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/59/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/59/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/59/options.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/60/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/60/expected.json delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/60/options.json diff --git a/packages/babylon/test/fixtures/comments/basic/block-trailing-comment/expected.json b/packages/babylon/test/fixtures/comments/basic/block-trailing-comment/expected.json index e6e6b73fc4..f8f5e28599 100755 --- a/packages/babylon/test/fixtures/comments/basic/block-trailing-comment/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/block-trailing-comment/expected.json @@ -104,17 +104,15 @@ "line": 3, "column": 13 } - }, - "range": [ - 15, - 24 - ] + } } ] } - ] + ], + "directives": [] } - ] + ], + "directives": [] }, "comments": [ { @@ -131,11 +129,7 @@ "line": 3, "column": 13 } - }, - "range": [ - 15, - 24 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/comment-within-condition/expected.json b/packages/babylon/test/fixtures/comments/basic/comment-within-condition/expected.json index 3affb6e924..695fa34b10 100755 --- a/packages/babylon/test/fixtures/comments/basic/comment-within-condition/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/comment-within-condition/expected.json @@ -72,11 +72,7 @@ "line": 2, "column": 13 } - }, - "range": [ - 14, - 23 - ] + } } ] }, @@ -94,7 +90,8 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] }, "alternate": null, "leadingComments": [ @@ -112,15 +109,12 @@ "line": 1, "column": 9 } - }, - "range": [ - 0, - 9 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -137,11 +131,7 @@ "line": 1, "column": 9 } - }, - "range": [ - 0, - 9 - ] + } }, { "type": "CommentBlock", @@ -157,11 +147,7 @@ "line": 2, "column": 13 } - }, - "range": [ - 14, - 23 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json b/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json index fc2086aeee..3599105db1 100755 --- a/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "ClassExpression", + "type": "ClassDeclaration", "start": 51, "end": 121, "loc": { @@ -139,7 +139,8 @@ "column": 5 } }, - "body": [] + "body": [], + "directives": [] } }, "leadingComments": [ @@ -157,11 +158,7 @@ "line": 7, "column": 7 } - }, - "range": [ - 63, - 98 - ] + } } ] } @@ -185,15 +182,12 @@ "line": 3, "column": 3 } - }, - "range": [ - 0, - 35 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -210,11 +204,7 @@ "line": 3, "column": 3 } - }, - "range": [ - 0, - 35 - ] + } }, { "type": "CommentBlock", @@ -230,11 +220,7 @@ "line": 7, "column": 7 } - }, - "range": [ - 63, - 98 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-call-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-call-comments/expected.json index 2b2736473b..1b90fb89f0 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-call-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-call-comments/expected.json @@ -139,11 +139,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } } ], "trailingComments": [ @@ -161,18 +157,16 @@ "line": 4, "column": 15 } - }, - "range": [ - 47, - 58 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -189,11 +183,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } }, { "type": "CommentBlock", @@ -209,11 +199,7 @@ "line": 4, "column": 15 } - }, - "range": [ - 47, - 58 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-debugger-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-debugger-comments/expected.json index 8eb698f9f3..76143585ee 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-debugger-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-debugger-comments/expected.json @@ -105,11 +105,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } } ], "trailingComments": [ @@ -127,18 +123,16 @@ "line": 4, "column": 15 } - }, - "range": [ - 50, - 61 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -155,11 +149,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } }, { "type": "CommentBlock", @@ -175,11 +165,7 @@ "line": 4, "column": 15 } - }, - "range": [ - 50, - 61 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-return-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-return-comments/expected.json index 48dbc2e395..5ce003f2c5 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-return-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-return-comments/expected.json @@ -106,11 +106,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } } ], "trailingComments": [ @@ -128,18 +124,16 @@ "line": 4, "column": 15 } - }, - "range": [ - 48, - 59 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -156,11 +150,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } }, { "type": "CommentBlock", @@ -176,11 +166,7 @@ "line": 4, "column": 15 } - }, - "range": [ - 48, - 59 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json index 41527785fb..30e63041bc 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-throw-comments/expected.json @@ -104,9 +104,11 @@ "column": 12 } }, + "extra": { + "rawValue": 55, + "raw": "55" + }, "value": 55, - "rawValue": 55, - "raw": "55", "leadingComments": null }, "leadingComments": [ @@ -124,11 +126,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } } ], "trailingComments": [ @@ -146,18 +144,16 @@ "line": 4, "column": 15 } - }, - "range": [ - 50, - 61 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -174,11 +170,7 @@ "line": 2, "column": 16 } - }, - "range": [ - 19, - 31 - ] + } }, { "type": "CommentBlock", @@ -194,11 +186,7 @@ "line": 4, "column": 15 } - }, - "range": [ - 50, - 61 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json b/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json index 9d9f17495b..d2805cc6ab 100755 --- a/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/surrounding-while-loop-comments/expected.json @@ -105,8 +105,6 @@ } }, "value": true, - "rawValue": true, - "raw": "true", "leadingComments": null }, "body": { @@ -124,6 +122,7 @@ } }, "body": [], + "directives": [], "leadingComments": null, "trailingComments": null }, @@ -142,11 +141,7 @@ "line": 1, "column": 29 } - }, - "range": [ - 15, - 29 - ] + } } ], "trailingComments": [ @@ -164,11 +159,7 @@ "line": 1, "column": 56 } - }, - "range": [ - 47, - 56 - ] + } } ] }, @@ -238,18 +229,16 @@ "line": 1, "column": 56 } - }, - "range": [ - 47, - 56 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -266,11 +255,7 @@ "line": 1, "column": 29 } - }, - "range": [ - 15, - 29 - ] + } }, { "type": "CommentBlock", @@ -286,11 +271,7 @@ "line": 1, "column": 56 } - }, - "range": [ - 47, - 56 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json index 1258711857..579ef06c90 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment-in-function/expected.json @@ -153,9 +153,11 @@ "column": 14 } }, + "extra": { + "rawValue": 1, + "raw": "1" + }, "value": 1, - "rawValue": 1, - "raw": "1", "leadingComments": null }, "leadingComments": [ @@ -173,11 +175,7 @@ "line": 3, "column": 14 } - }, - "range": [ - 46, - 52 - ] + } } ], "trailingComments": [ @@ -195,11 +193,7 @@ "line": 5, "column": 28 } - }, - "range": [ - 81, - 97 - ] + } } ] }, @@ -280,9 +274,11 @@ "column": 14 } }, + "extra": { + "rawValue": 2, + "raw": "2" + }, "value": 2, - "rawValue": 2, - "raw": "2", "leadingComments": null }, "leadingComments": [ @@ -300,20 +296,18 @@ "line": 5, "column": 28 } - }, - "range": [ - 81, - 97 - ] + } } ] } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -330,11 +324,7 @@ "line": 3, "column": 14 } - }, - "range": [ - 46, - 52 - ] + } }, { "type": "CommentLine", @@ -350,11 +340,7 @@ "line": 5, "column": 28 } - }, - "range": [ - 81, - 97 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json index 73e33512ba..444961e833 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-fallthrough-comment/expected.json @@ -88,9 +88,11 @@ "column": 10 } }, + "extra": { + "rawValue": 1, + "raw": "1" + }, "value": 1, - "rawValue": 1, - "raw": "1", "leadingComments": null }, "leadingComments": [ @@ -108,11 +110,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 18, - 24 - ] + } } ], "trailingComments": [ @@ -130,11 +128,7 @@ "line": 4, "column": 24 } - }, - "range": [ - 45, - 61 - ] + } } ] }, @@ -215,9 +209,11 @@ "column": 10 } }, + "extra": { + "rawValue": 2, + "raw": "2" + }, "value": 2, - "rawValue": 2, - "raw": "2", "leadingComments": null }, "leadingComments": [ @@ -235,17 +231,14 @@ "line": 4, "column": 24 } - }, - "range": [ - 45, - 61 - ] + } } ] } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -262,11 +255,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 18, - 24 - ] + } }, { "type": "CommentLine", @@ -282,11 +271,7 @@ "line": 4, "column": 24 } - }, - "range": [ - 45, - 61 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json index 24a358f0e2..09580d701c 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-function/expected.json @@ -170,9 +170,11 @@ "column": 14 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } }, { @@ -223,9 +225,11 @@ "column": 14 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "trailingComments": [ { @@ -242,20 +246,18 @@ "line": 7, "column": 20 } - }, - "range": [ - 113, - 125 - ] + } } ] } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -272,11 +274,7 @@ "line": 7, "column": 20 } - }, - "range": [ - 113, - 125 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json index c3f7926916..2b830fd901 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment-in-nested-functions/expected.json @@ -514,9 +514,11 @@ "column": 78 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } }, "computed": true @@ -540,9 +542,11 @@ "column": 37 } }, - "value": "SequenceExpression", - "rawValue": "SequenceExpression", - "raw": "\"SequenceExpression\"" + "extra": { + "rawValue": "SequenceExpression", + "raw": "\"SequenceExpression\"" + }, + "value": "SequenceExpression" }, "trailingComments": [ { @@ -559,11 +563,7 @@ "line": 7, "column": 25 } - }, - "range": [ - 232, - 245 - ] + } } ] } @@ -598,8 +598,6 @@ } }, "value": false, - "rawValue": false, - "raw": "false", "leadingComments": null }, "leadingComments": [ @@ -617,23 +615,22 @@ "line": 7, "column": 25 } - }, - "range": [ - 232, - 245 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } } } - ] + ], + "directives": [] }, "comments": [ { @@ -650,11 +647,7 @@ "line": 7, "column": 25 } - }, - "range": [ - 232, - 245 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json index 79727f2aa4..0a65969bf1 100755 --- a/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/switch-no-default-comment/expected.json @@ -107,9 +107,11 @@ "column": 10 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "trailingComments": [ { @@ -126,17 +128,14 @@ "line": 4, "column": 16 } - }, - "range": [ - 44, - 56 - ] + } } ] } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -153,11 +152,7 @@ "line": 4, "column": 16 } - }, - "range": [ - 44, - 56 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json b/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json index 9abc79800a..545b21ce2e 100644 --- a/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json +++ b/packages/babylon/test/fixtures/core/categorized/regex-after-block/expected.json @@ -56,9 +56,7 @@ "column": 8 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "consequent": { "type": "BlockStatement", @@ -74,7 +72,8 @@ "column": 1 } }, - "body": [] + "body": [], + "directives": [] }, "alternate": null }, @@ -106,11 +105,14 @@ "column": 5 } }, - "raw": "/foo/", + "extra": { + "raw": "/foo/" + }, "pattern": "foo", "flags": "" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/10/expected.json b/packages/babylon/test/fixtures/core/uncategorised/10/expected.json index da404948f1..d10391f23b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/10/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/10/expected.json @@ -102,14 +102,17 @@ "column": 8 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/100/expected.json b/packages/babylon/test/fixtures/core/uncategorised/100/expected.json index 4b7d0df83e..4b1cc3a85b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/100/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/100/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 14, "loc": { @@ -42,8 +43,8 @@ "column": 6 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 14, "loc": { @@ -56,9 +57,11 @@ "column": 6 } }, - "value": "Helloworld", - "rawValue": "Helloworld", - "raw": "\"Hello\\\nworld\"" + "value": "Hello\\\nworld", + "extra": { + "raw": "\"Hello\\\nworld\"", + "rawValue": "Hello\\\nworld" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/101/expected.json b/packages/babylon/test/fixtures/core/uncategorised/101/expected.json index 5255b7b53d..aade1ae44b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/101/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/101/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 14, "loc": { @@ -42,8 +43,8 @@ "column": 14 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 14, "loc": { @@ -56,9 +57,11 @@ "column": 14 } }, - "value": "Hello\u0001World", - "rawValue": "Hello\u0001World", - "raw": "\"Hello\\1World\"" + "value": "Hello\\1World", + "extra": { + "raw": "\"Hello\\1World\"", + "rawValue": "Hello\\1World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/102/expected.json b/packages/babylon/test/fixtures/core/uncategorised/102/expected.json index 6146d006c2..46f8894ef5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/102/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/102/expected.json @@ -87,7 +87,9 @@ "column": 16 } }, - "raw": "/[a-z]/i", + "extra": { + "raw": "/[a-z]/i" + }, "pattern": "[a-z]", "flags": "i" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/103/expected.json b/packages/babylon/test/fixtures/core/uncategorised/103/expected.json index e5403147fe..c44951e7c8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/103/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/103/expected.json @@ -87,7 +87,9 @@ "column": 16 } }, - "raw": "/[x-z]/i", + "extra": { + "raw": "/[x-z]/i" + }, "pattern": "[x-z]", "flags": "i" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/104/expected.json b/packages/babylon/test/fixtures/core/uncategorised/104/expected.json index f998864e01..08a395e815 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/104/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/104/expected.json @@ -87,7 +87,9 @@ "column": 16 } }, - "raw": "/[a-c]/i", + "extra": { + "raw": "/[a-c]/i" + }, "pattern": "[a-c]", "flags": "i" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/105/expected.json b/packages/babylon/test/fixtures/core/uncategorised/105/expected.json index 4119341722..45afd2c5db 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/105/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/105/expected.json @@ -87,7 +87,9 @@ "column": 17 } }, - "raw": "/[P QR]/i", + "extra": { + "raw": "/[P QR]/i" + }, "pattern": "[P QR]", "flags": "i" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/106/expected.json b/packages/babylon/test/fixtures/core/uncategorised/106/expected.json index 323385e36b..80c40e93c1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/106/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/106/expected.json @@ -87,7 +87,9 @@ "column": 18 } }, - "raw": "/foo\\/bar/", + "extra": { + "raw": "/foo\\/bar/" + }, "pattern": "foo\\/bar", "flags": "" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/107/expected.json b/packages/babylon/test/fixtures/core/uncategorised/107/expected.json index b973814034..c2c4cdcbb1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/107/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/107/expected.json @@ -87,7 +87,9 @@ "column": 21 } }, - "raw": "/=([^=\\s])+/g", + "extra": { + "raw": "/=([^=\\s])+/g" + }, "pattern": "=([^=\\s])+", "flags": "g" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/108/expected.json b/packages/babylon/test/fixtures/core/uncategorised/108/expected.json index 533ad1b064..726e72aa5b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/108/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/108/expected.json @@ -87,7 +87,9 @@ "column": 22 } }, - "raw": "/[P QR]/\\u0067", + "extra": { + "raw": "/[P QR]/\\u0067" + }, "pattern": "[P QR]", "flags": "g" } @@ -95,6 +97,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/11/expected.json b/packages/babylon/test/fixtures/core/uncategorised/11/expected.json index e011780af1..4c7a7a3493 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/11/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/11/expected.json @@ -104,14 +104,17 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/116/expected.json b/packages/babylon/test/fixtures/core/uncategorised/116/expected.json index b353ef2c83..5e0c9c3c30 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/116/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/116/expected.json @@ -101,7 +101,9 @@ "name": "foo" }, "arguments": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "property": { "type": "Identifier", @@ -124,6 +126,7 @@ "arguments": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/118/expected.json b/packages/babylon/test/fixtures/core/uncategorised/118/expected.json index 6105d2841a..2a92530d73 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/118/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/118/expected.json @@ -71,11 +71,14 @@ } }, "name": "foo", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "arguments": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/12/expected.json b/packages/babylon/test/fixtures/core/uncategorised/12/expected.json index 90a2413a90..5405d8164c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/12/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/12/expected.json @@ -102,9 +102,11 @@ "column": 7 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, { "type": "NumberLiteral", @@ -120,9 +122,11 @@ "column": 10 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, { "type": "NumberLiteral", @@ -138,14 +142,17 @@ "column": 13 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/124/expected.json b/packages/babylon/test/fixtures/core/uncategorised/124/expected.json index f26ab8b935..ec68a20ef6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/124/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/124/expected.json @@ -100,9 +100,11 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "computed": true }, @@ -125,6 +127,7 @@ "computed": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/125/expected.json b/packages/babylon/test/fixtures/core/uncategorised/125/expected.json index 624c7b81b9..a7a9ccf384 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/125/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/125/expected.json @@ -101,9 +101,11 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] }, @@ -126,6 +128,7 @@ "computed": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/126/expected.json b/packages/babylon/test/fixtures/core/uncategorised/126/expected.json index 23d090fedc..c94c04107e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/126/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/126/expected.json @@ -129,9 +129,11 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] }, @@ -168,9 +170,11 @@ "column": 24 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 }, { "type": "NumberLiteral", @@ -186,9 +190,11 @@ "column": 27 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 }, { "type": "NumberLiteral", @@ -204,9 +210,11 @@ "column": 31 } }, - "value": 77, - "rawValue": 77, - "raw": "77" + "extra": { + "rawValue": 77, + "raw": "77" + }, + "value": 77 } ] }, @@ -229,6 +237,7 @@ "computed": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/127/expected.json b/packages/babylon/test/fixtures/core/uncategorised/127/expected.json index 080068549b..b7649d92f8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/127/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/127/expected.json @@ -183,13 +183,16 @@ "column": 44 } }, - "value": 2014, - "rawValue": 2014, - "raw": "2014" + "extra": { + "rawValue": 2014, + "raw": "2014" + }, + "value": 2014 } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/13/expected.json b/packages/babylon/test/fixtures/core/uncategorised/13/expected.json index 9bc040d735..f8e8558451 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/13/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/13/expected.json @@ -102,9 +102,11 @@ "column": 7 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, { "type": "NumberLiteral", @@ -120,9 +122,11 @@ "column": 10 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, null, { @@ -139,14 +143,17 @@ "column": 14 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/197/expected.json b/packages/babylon/test/fixtures/core/uncategorised/197/expected.json index 9252297ac7..0ae6562f5f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/197/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/197/expected.json @@ -86,9 +86,11 @@ "column": 5 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "alternate": { "type": "NumberLiteral", @@ -104,12 +106,15 @@ "column": 9 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/198/expected.json b/packages/babylon/test/fixtures/core/uncategorised/198/expected.json index 6d0cf5e9ff..5f5e161e69 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/198/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/198/expected.json @@ -118,9 +118,11 @@ "column": 10 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "alternate": { "type": "NumberLiteral", @@ -136,12 +138,15 @@ "column": 14 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/199/expected.json b/packages/babylon/test/fixtures/core/uncategorised/199/expected.json index 886a4c91ba..c55cb13771 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/199/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/199/expected.json @@ -87,12 +87,15 @@ "column": 6 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/200/expected.json b/packages/babylon/test/fixtures/core/uncategorised/200/expected.json index 087953e749..ccef73317a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/200/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/200/expected.json @@ -87,12 +87,15 @@ "column": 9 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/201/expected.json b/packages/babylon/test/fixtures/core/uncategorised/201/expected.json index c40cefe77a..90279da775 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/201/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/201/expected.json @@ -87,12 +87,15 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/202/expected.json b/packages/babylon/test/fixtures/core/uncategorised/202/expected.json index 77c0b3f6fd..8c50cdf2f0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/202/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/202/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/203/expected.json b/packages/babylon/test/fixtures/core/uncategorised/203/expected.json index 3ea5616140..6c210fd1b6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/203/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/203/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/204/expected.json b/packages/babylon/test/fixtures/core/uncategorised/204/expected.json index 3bb965131c..2c333b70e1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/204/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/204/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/205/expected.json b/packages/babylon/test/fixtures/core/uncategorised/205/expected.json index 623bec2d65..53c21fe4d6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/205/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/205/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/206/expected.json b/packages/babylon/test/fixtures/core/uncategorised/206/expected.json index 169b55b357..abc4cb0406 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/206/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/206/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/207/expected.json b/packages/babylon/test/fixtures/core/uncategorised/207/expected.json index 395bbc5959..3c8c2893e8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/207/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/207/expected.json @@ -87,12 +87,15 @@ "column": 8 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/208/expected.json b/packages/babylon/test/fixtures/core/uncategorised/208/expected.json index f2baaf2d7c..cfa8f98dfa 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/208/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/208/expected.json @@ -87,12 +87,15 @@ "column": 8 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/209/expected.json b/packages/babylon/test/fixtures/core/uncategorised/209/expected.json index 63767ff44b..ff6f9db71d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/209/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/209/expected.json @@ -87,12 +87,15 @@ "column": 9 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/210/expected.json b/packages/babylon/test/fixtures/core/uncategorised/210/expected.json index 22bf53cf58..3719a7fafe 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/210/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/210/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/211/expected.json b/packages/babylon/test/fixtures/core/uncategorised/211/expected.json index 52cfe31685..84a3e7d56e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/211/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/211/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/212/expected.json b/packages/babylon/test/fixtures/core/uncategorised/212/expected.json index 0cb0e23497..456765cc37 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/212/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/212/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/218/expected.json b/packages/babylon/test/fixtures/core/uncategorised/218/expected.json index 746c634e18..1050401744 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/218/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/218/expected.json @@ -87,14 +87,17 @@ "column": 10 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/219/expected.json b/packages/babylon/test/fixtures/core/uncategorised/219/expected.json index e88bd0e0af..a1ed3e4b37 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/219/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/219/expected.json @@ -87,9 +87,11 @@ "column": 13 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, { @@ -136,14 +138,17 @@ "column": 29 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/22/expected.json b/packages/babylon/test/fixtures/core/uncategorised/22/expected.json index 6798856802..0ea258d194 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/22/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/22/expected.json @@ -135,9 +135,11 @@ "column": 16 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/220/expected.json b/packages/babylon/test/fixtures/core/uncategorised/220/expected.json index f0f1cc157c..db6e0fba4c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/220/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/220/expected.json @@ -87,9 +87,11 @@ "column": 10 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -136,9 +138,11 @@ "column": 17 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } }, { @@ -185,14 +189,17 @@ "column": 27 } }, - "value": 1977, - "rawValue": 1977, - "raw": "1977" + "extra": { + "rawValue": 1977, + "raw": "1977" + }, + "value": 1977 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/229/expected.json b/packages/babylon/test/fixtures/core/uncategorised/229/expected.json index 97e2c0b335..640c5691c2 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/229/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/229/expected.json @@ -104,13 +104,17 @@ "column": 26 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } }, "alternate": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/23/expected.json b/packages/babylon/test/fixtures/core/uncategorised/23/expected.json index 7d1d29919f..6000da8339 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/23/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/23/expected.json @@ -135,9 +135,11 @@ "column": 12 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/230/expected.json b/packages/babylon/test/fixtures/core/uncategorised/230/expected.json index 086e802703..02fd006838 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/230/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/230/expected.json @@ -117,9 +117,11 @@ "column": 22 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ }, "alternate": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/232/expected.json b/packages/babylon/test/fixtures/core/uncategorised/232/expected.json index 298c6ed2b8..52f64a4d6b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/232/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/232/expected.json @@ -103,11 +103,10 @@ "column": 22 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/233/expected.json b/packages/babylon/test/fixtures/core/uncategorised/233/expected.json index cf9db0e4fd..04998adb58 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/233/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/233/expected.json @@ -103,11 +103,10 @@ "column": 22 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/234/expected.json b/packages/babylon/test/fixtures/core/uncategorised/234/expected.json index 3bd687b08d..8e9ac0c09e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/234/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/234/expected.json @@ -153,7 +153,8 @@ } } } - ] + ], + "directives": [] }, "test": { "type": "BinaryExpression", @@ -200,12 +201,15 @@ "column": 30 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/235/expected.json b/packages/babylon/test/fixtures/core/uncategorised/235/expected.json index 5f92a264ce..e012c017fe 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/235/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/235/expected.json @@ -71,7 +71,8 @@ "column": 8 } }, - "body": [] + "body": [], + "directives": [] }, "test": { "type": "BooleanLiteral", @@ -87,9 +88,7 @@ "column": 21 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } }, { @@ -120,13 +119,13 @@ "column": 28 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/236/expected.json b/packages/babylon/test/fixtures/core/uncategorised/236/expected.json index b68c4e6106..b154f386f7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/236/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/236/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "ExpressionStatement", @@ -108,6 +106,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/237/expected.json b/packages/babylon/test/fixtures/core/uncategorised/237/expected.json index c7381370ab..0ca7f0f400 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/237/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/237/expected.json @@ -87,9 +87,11 @@ "column": 13 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } }, "body": { @@ -203,9 +205,11 @@ } } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/24/expected.json b/packages/babylon/test/fixtures/core/uncategorised/24/expected.json index 80a4774e20..a958d6780e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/24/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/24/expected.json @@ -135,9 +135,11 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/240/expected.json b/packages/babylon/test/fixtures/core/uncategorised/240/expected.json index f45ca7088d..3b790cdecf 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/240/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/240/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": null, @@ -110,6 +112,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/241/expected.json b/packages/babylon/test/fixtures/core/uncategorised/241/expected.json index 6640f73295..e7c1db4ec7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/241/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/241/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/242/expected.json b/packages/babylon/test/fixtures/core/uncategorised/242/expected.json index 61391fdd9f..eacbe24384 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/242/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/242/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, { @@ -150,9 +152,11 @@ "column": 20 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -176,6 +180,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/243/expected.json b/packages/babylon/test/fixtures/core/uncategorised/243/expected.json index fb76721dce..7f485aaf19 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/243/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/243/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": { @@ -137,9 +139,11 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "update": null, @@ -159,6 +163,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/244/expected.json b/packages/babylon/test/fixtures/core/uncategorised/244/expected.json index f826f885de..0c6bf2a092 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/244/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/244/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": { @@ -137,9 +139,11 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "update": { @@ -191,6 +195,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/245/expected.json b/packages/babylon/test/fixtures/core/uncategorised/245/expected.json index 16f684a226..586cbf67f5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/245/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/245/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": { @@ -137,9 +139,11 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "update": { @@ -240,6 +244,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/25/expected.json b/packages/babylon/test/fixtures/core/uncategorised/25/expected.json index a6a31f5362..d4911b1226 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/25/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/25/expected.json @@ -135,9 +135,11 @@ "column": 15 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/250/expected.json b/packages/babylon/test/fixtures/core/uncategorised/250/expected.json index 40763456b0..16edee2512 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/250/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/250/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -91,9 +89,11 @@ }, "label": null } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/251/expected.json b/packages/babylon/test/fixtures/core/uncategorised/251/expected.json index bfea074cf1..d58d0ffa9a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/251/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/251/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -91,9 +89,11 @@ }, "label": null } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/252/expected.json b/packages/babylon/test/fixtures/core/uncategorised/252/expected.json index f43031468c..3d3611769c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/252/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/252/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/253/expected.json b/packages/babylon/test/fixtures/core/uncategorised/253/expected.json index 3b684f46cb..e2eede95cf 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/253/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/253/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/254/expected.json b/packages/babylon/test/fixtures/core/uncategorised/254/expected.json index 15042df691..e27a473406 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/254/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/254/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -91,9 +89,11 @@ }, "label": null } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/255/expected.json b/packages/babylon/test/fixtures/core/uncategorised/255/expected.json index be48009734..930203bdfe 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/255/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/255/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/256/expected.json b/packages/babylon/test/fixtures/core/uncategorised/256/expected.json index 6c31c586d6..207d4cf4c5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/256/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/256/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/259/expected.json b/packages/babylon/test/fixtures/core/uncategorised/259/expected.json index 3f86692dc7..3811851cf2 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/259/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/259/expected.json @@ -91,11 +91,15 @@ }, "argument": null } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/26/expected.json b/packages/babylon/test/fixtures/core/uncategorised/26/expected.json index e516e972e9..61e13ba2b5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/26/expected.json @@ -135,9 +135,11 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/260/expected.json b/packages/babylon/test/fixtures/core/uncategorised/260/expected.json index f66370e4d6..cfc30f8e34 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/260/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/260/expected.json @@ -91,11 +91,15 @@ }, "argument": null } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/261/expected.json b/packages/babylon/test/fixtures/core/uncategorised/261/expected.json index 864565296e..7e253235fc 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/261/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/261/expected.json @@ -106,11 +106,15 @@ "name": "x" } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/262/expected.json b/packages/babylon/test/fixtures/core/uncategorised/262/expected.json index 9c0041eb71..d4f71c39ad 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/262/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/262/expected.json @@ -138,11 +138,15 @@ } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/269/expected.json b/packages/babylon/test/fixtures/core/uncategorised/269/expected.json index 9758d61707..6251d143ae 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/269/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/269/expected.json @@ -152,13 +152,16 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/27/expected.json b/packages/babylon/test/fixtures/core/uncategorised/27/expected.json index 96a8fd0d09..e7f3c00497 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/27/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/27/expected.json @@ -119,9 +119,11 @@ "column": 14 } }, - "value": "answer", - "rawValue": "answer", - "raw": "\"answer\"" + "extra": { + "rawValue": "answer", + "raw": "\"answer\"" + }, + "value": "answer" }, "value": { "type": "NumberLiteral", @@ -137,9 +139,11 @@ "column": 18 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -147,6 +151,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/270/expected.json b/packages/babylon/test/fixtures/core/uncategorised/270/expected.json index 7400509d5f..96908f65a6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/270/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/270/expected.json @@ -152,9 +152,11 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, { @@ -193,6 +195,7 @@ } ] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/272/expected.json b/packages/babylon/test/fixtures/core/uncategorised/272/expected.json index c4f9e0e386..5157602658 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/272/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/272/expected.json @@ -70,9 +70,7 @@ "column": 18 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BreakStatement", @@ -123,6 +121,7 @@ "name": "start" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/275/expected.json b/packages/babylon/test/fixtures/core/uncategorised/275/expected.json index dc9afaed76..0ddcce0c63 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/275/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/275/expected.json @@ -104,15 +104,18 @@ "column": 24 } }, - "value": "Error", - "rawValue": "Error", - "raw": "\"Error\"" + "extra": { + "rawValue": "Error", + "raw": "\"Error\"" + }, + "value": "Error" }, "kind": "init" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/28/expected.json b/packages/babylon/test/fixtures/core/uncategorised/28/expected.json index d754d81e2b..d7de811e96 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/28/expected.json @@ -135,9 +135,11 @@ "column": 10 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "kind": "init" }, @@ -188,9 +190,11 @@ "column": 16 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, "kind": "init" } @@ -198,6 +202,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/288/expected.json b/packages/babylon/test/fixtures/core/uncategorised/288/expected.json index 246b6b5a20..a9c517251e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/288/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/288/expected.json @@ -122,11 +122,15 @@ "column": 24 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/289/expected.json b/packages/babylon/test/fixtures/core/uncategorised/289/expected.json index f5013969f2..5924cefb02 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/289/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/289/expected.json @@ -123,9 +123,10 @@ "column": 51 } }, - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 37, "end": 49, "loc": { @@ -138,8 +139,8 @@ "column": 49 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 37, "end": 49, "loc": { @@ -153,16 +154,20 @@ } }, "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/299/expected.json b/packages/babylon/test/fixtures/core/uncategorised/299/expected.json index 4841a07e51..fac0f4b32c 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/299/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/299/expected.json @@ -74,11 +74,15 @@ "column": 13 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/3/expected.json b/packages/babylon/test/fixtures/core/uncategorised/3/expected.json index 778ef2fe98..1c7de0b706 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/3/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/3/expected.json @@ -56,11 +56,14 @@ "column": 6 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/302/expected.json b/packages/babylon/test/fixtures/core/uncategorised/302/expected.json index 668b5a1ccc..b80d317427 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/302/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/302/expected.json @@ -91,17 +91,32 @@ "line": 1, "column": 19 } - }, - "range": [ - 6, - 19 - ] + } } ] } ], "kind": "var" } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " comment ", + "start": 6, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 19 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/303/expected.json b/packages/babylon/test/fixtures/core/uncategorised/303/expected.json index b3c4b6a133..607612e873 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/303/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/303/expected.json @@ -102,9 +102,11 @@ "column": 12 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -151,9 +153,11 @@ "column": 19 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } ], @@ -190,8 +194,10 @@ "name": "z" } } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/304/expected.json b/packages/babylon/test/fixtures/core/uncategorised/304/expected.json index 253be28d97..1c02f6ef66 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/304/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/304/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -122,9 +120,11 @@ "name": "there" } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/305/expected.json b/packages/babylon/test/fixtures/core/uncategorised/305/expected.json index 567f02ad8f..675fe056a3 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/305/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/305/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 1, "column": 34 } - }, - "range": [ - 24, - 34 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 1, "column": 34 } - }, - "range": [ - 24, - 34 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 1, "column": 34 } - }, - "range": [ - 24, - 34 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/306/expected.json b/packages/babylon/test/fixtures/core/uncategorised/306/expected.json index b094efe11f..dfef6b5c50 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/306/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/306/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 24, - 47 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 2, "column": 10 } - }, - "range": [ - 24, - 47 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 24, - 47 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/307/expected.json b/packages/babylon/test/fixtures/core/uncategorised/307/expected.json index be91d94441..2b8d9fef9f 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/307/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/307/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -122,9 +120,11 @@ "name": "there" } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/308/expected.json b/packages/babylon/test/fixtures/core/uncategorised/308/expected.json index 2fc3f311ee..21c911cbbc 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/308/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/308/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 1, "column": 31 } - }, - "range": [ - 21, - 31 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 1, "column": 31 } - }, - "range": [ - 21, - 31 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 1, "column": 31 } - }, - "range": [ - 21, - 31 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/309/expected.json b/packages/babylon/test/fixtures/core/uncategorised/309/expected.json index 6720b43723..55ac6a29a8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/309/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/309/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 21, - 44 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 2, "column": 10 } - }, - "range": [ - 21, - 44 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 21, - 44 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/310/expected.json b/packages/babylon/test/fixtures/core/uncategorised/310/expected.json index 9098864a2b..7d4c8d5bb6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/310/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/310/expected.json @@ -122,11 +122,15 @@ "name": "x" } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/311/expected.json b/packages/babylon/test/fixtures/core/uncategorised/311/expected.json index f9a8a99635..f0cf8a4b53 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/311/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/311/expected.json @@ -106,11 +106,7 @@ "line": 1, "column": 30 } - }, - "range": [ - 20, - 30 - ] + } } ] }, @@ -160,19 +156,37 @@ "line": 1, "column": 30 } - }, - "range": [ - 20, - 30 - ] + } } ] } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 20, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 30 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/312/expected.json b/packages/babylon/test/fixtures/core/uncategorised/312/expected.json index 217daeda72..975bfdf605 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/312/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/312/expected.json @@ -106,11 +106,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 19, - 42 - ] + } } ] }, @@ -160,19 +156,37 @@ "line": 2, "column": 10 } - }, - "range": [ - 19, - 42 - ] + } } ] } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 19, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 2, + "column": 10 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/314/expected.json b/packages/babylon/test/fixtures/core/uncategorised/314/expected.json index d0361e267d..1340d70360 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/314/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/314/expected.json @@ -90,11 +90,7 @@ "line": 1, "column": 23 } - }, - "range": [ - 13, - 23 - ] + } } ] }, @@ -144,16 +140,32 @@ "line": 1, "column": 23 } - }, - "range": [ - 13, - 23 - ] + } } ] } - ] + ], + "directives": [] } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Comment", + "start": 13, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 23 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/315/expected.json b/packages/babylon/test/fixtures/core/uncategorised/315/expected.json index 51f1550026..fcf481f414 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/315/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/315/expected.json @@ -90,11 +90,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 13, - 36 - ] + } } ] }, @@ -144,16 +140,32 @@ "line": 2, "column": 10 } - }, - "range": [ - 13, - 36 - ] + } } ] } - ] + ], + "directives": [] } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentBlock", + "value": " Multiline\nComment ", + "start": 13, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 2, + "column": 10 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/317/expected.json b/packages/babylon/test/fixtures/core/uncategorised/317/expected.json index 77f0623dd0..96b5884573 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/317/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/317/expected.json @@ -70,9 +70,7 @@ "column": 13 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "consequent": { "type": "BreakStatement", @@ -124,6 +122,7 @@ "name": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/318/expected.json b/packages/babylon/test/fixtures/core/uncategorised/318/expected.json index a9f877830b..1fda36e9a7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/318/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/318/expected.json @@ -88,9 +88,10 @@ "column": 1 } }, - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 16, "end": 29, "loc": { @@ -103,8 +104,8 @@ "column": 14 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 16, "end": 28, "loc": { @@ -118,12 +119,14 @@ } }, "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } } }, { - "type": "ExpressionStatement", + "type": "Directive", "start": 31, "end": 35, "loc": { @@ -136,8 +139,8 @@ "column": 5 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 31, "end": 34, "loc": { @@ -151,17 +154,22 @@ } }, "value": "\u0000", - "rawValue": "\u0000", - "raw": "'\u0000'" + "extra": { + "raw": "'\u0000'", + "rawValue": "\u0000" + } } } ] } }, "arguments": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/319/expected.json b/packages/babylon/test/fixtures/core/uncategorised/319/expected.json index c8465306e7..61133f8ac6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/319/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/319/expected.json @@ -84,9 +84,11 @@ "column": 4 } }, - "value": 123, - "rawValue": 123, - "raw": "123." + "extra": { + "rawValue": 123, + "raw": "123." + }, + "value": 123 }, "property": { "type": "Identifier", @@ -121,13 +123,16 @@ "column": 16 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/320/expected.json b/packages/babylon/test/fixtures/core/uncategorised/320/expected.json index dfcf159a6b..da052c6d87 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/320/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/320/expected.json @@ -70,9 +70,11 @@ "column": 4 } }, - "value": 123, - "rawValue": 123, - "raw": "123." + "extra": { + "rawValue": 123, + "raw": "123." + }, + "value": 123 }, "operator": "+", "right": { @@ -89,12 +91,15 @@ "column": 6 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/322/expected.json b/packages/babylon/test/fixtures/core/uncategorised/322/expected.json index 312ab26090..16ba69aff9 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/322/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/322/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 10, "loc": { @@ -42,8 +43,8 @@ "column": 10 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 10, "loc": { @@ -56,9 +57,11 @@ "column": 10 } }, - "value": "a&b", - "rawValue": "a&b", - "raw": "'a\\u0026b'" + "value": "a\\u0026b", + "extra": { + "raw": "'a\\u0026b'", + "rawValue": "a\\u0026b" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/323/expected.json b/packages/babylon/test/fixtures/core/uncategorised/323/expected.json index a3669a1658..583c34687b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/323/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/323/expected.json @@ -70,9 +70,11 @@ "column": 7 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } }, "label": { @@ -134,9 +136,11 @@ "column": 16 } }, - "value": 20, - "rawValue": 20, - "raw": "20" + "extra": { + "rawValue": 20, + "raw": "20" + }, + "value": 20 } }, "label": { @@ -156,6 +160,7 @@ "name": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/324/expected.json b/packages/babylon/test/fixtures/core/uncategorised/324/expected.json index 5409838244..41b1dcbac8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/324/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/324/expected.json @@ -56,9 +56,11 @@ "column": 4 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "consequent": { "type": "ExpressionStatement", @@ -88,13 +90,16 @@ "column": 12 } }, - "raw": "/ foo/", + "extra": { + "raw": "/ foo/" + }, "pattern": " foo", "flags": "" } }, "alternate": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/341/expected.json b/packages/babylon/test/fixtures/core/uncategorised/341/expected.json index 599c268bdf..487553a051 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/341/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/341/expected.json @@ -42,7 +42,8 @@ "column": 2 } }, - "body": [] + "body": [], + "directives": [] }, { "type": "ExpressionStatement", @@ -72,11 +73,14 @@ "column": 5 } }, - "raw": "/=/", + "extra": { + "raw": "/=/" + }, "pattern": "=", "flags": "" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/342/expected.json b/packages/babylon/test/fixtures/core/uncategorised/342/expected.json index 4e26603533..418f936ff6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/342/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/342/expected.json @@ -87,11 +87,7 @@ "line": 1, "column": 11 } - }, - "range": [ - 4, - 11 - ] + } } ] }, @@ -126,16 +122,31 @@ "line": 1, "column": 11 } - }, - "range": [ - 4, - 11 - ] + } } ] } } } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": "bar", + "start": 4, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 11 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/343/expected.json b/packages/babylon/test/fixtures/core/uncategorised/343/expected.json index 16ef7df684..d2ed65cb86 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/343/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/343/expected.json @@ -135,9 +135,11 @@ "column": 10 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } }, @@ -156,15 +158,12 @@ "line": 2, "column": 12 } - }, - "range": [ - 13, - 24 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -181,11 +180,7 @@ "line": 2, "column": 12 } - }, - "range": [ - 13, - 24 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/344/expected.json b/packages/babylon/test/fixtures/core/uncategorised/344/expected.json index c8acee55d3..827aebf2db 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/344/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/344/expected.json @@ -28,39 +28,6 @@ }, "sourceType": "script", "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "expression": { - "type": "StringLiteral", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" - } - }, { "type": "ExpressionStatement", "start": 14, @@ -140,6 +107,43 @@ "arguments": [] } } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } + } + } ] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/35/expected.json b/packages/babylon/test/fixtures/core/uncategorised/35/expected.json index 929aaebf51..da3ec9be77 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/35/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/35/expected.json @@ -119,9 +119,11 @@ "column": 17 } }, - "value": "undef", - "rawValue": "undef", - "raw": "\"undef\"" + "extra": { + "rawValue": "undef", + "raw": "\"undef\"" + }, + "value": "undef" }, "kind": "get", "value": { @@ -156,7 +158,8 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -164,6 +167,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/36/expected.json b/packages/babylon/test/fixtures/core/uncategorised/36/expected.json index 2249562b63..a7cfe82d4d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/36/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/36/expected.json @@ -119,9 +119,11 @@ "column": 12 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "get", "value": { @@ -156,7 +158,8 @@ "column": 17 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -164,6 +167,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/4/expected.json b/packages/babylon/test/fixtures/core/uncategorised/4/expected.json index cfa64792cf..850ccec0d7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/4/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/4/expected.json @@ -56,11 +56,14 @@ "column": 8 } }, - "raw": "/foobar/", + "extra": { + "raw": "/foobar/" + }, "pattern": "foobar", "flags": "" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/42/expected.json b/packages/babylon/test/fixtures/core/uncategorised/42/expected.json index e1c3ca9d7e..359994f749 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/42/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/42/expected.json @@ -119,9 +119,11 @@ "column": 16 } }, - "value": "null", - "rawValue": "null", - "raw": "\"null\"" + "extra": { + "rawValue": "null", + "raw": "\"null\"" + }, + "value": "null" }, "kind": "set", "value": { @@ -237,7 +239,8 @@ } } } - ] + ], + "directives": [] } } } @@ -245,6 +248,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/43/expected.json b/packages/babylon/test/fixtures/core/uncategorised/43/expected.json index 831c152d07..40439f6021 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/43/expected.json @@ -119,9 +119,11 @@ "column": 12 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "set", "value": { @@ -237,7 +239,8 @@ } } } - ] + ], + "directives": [] } } } @@ -245,6 +248,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/44/expected.json b/packages/babylon/test/fixtures/core/uncategorised/44/expected.json index 22361a57aa..717aa6f7e7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/44/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/44/expected.json @@ -135,9 +135,11 @@ "column": 13 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/45/expected.json b/packages/babylon/test/fixtures/core/uncategorised/45/expected.json index 96f2955db3..01d280ce5b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/45/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/45/expected.json @@ -135,9 +135,11 @@ "column": 13 } }, - "value": 43, - "rawValue": 43, - "raw": "43" + "extra": { + "rawValue": 43, + "raw": "43" + }, + "value": 43 }, "kind": "init" } @@ -145,6 +147,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/46/expected.json b/packages/babylon/test/fixtures/core/uncategorised/46/expected.json index dd2e0291b4..777ab9a74e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/46/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/46/expected.json @@ -56,9 +56,11 @@ "column": 22 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 1, "column": 19 } - }, - "range": [ - 0, - 19 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 1, "column": 19 } - }, - "range": [ - 0, - 19 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/466/expected.json b/packages/babylon/test/fixtures/core/uncategorised/466/expected.json new file mode 100644 index 0000000000..4888c9e77c --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/466/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 29, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 29, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "operator": "delete", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 36, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "i" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/467/expected.json b/packages/babylon/test/fixtures/core/uncategorised/467/expected.json new file mode 100644 index 0000000000..b5c7e063e3 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/467/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [ + { + "type": "WithStatement", + "start": 29, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "object": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "i" + }, + "body": { + "type": "EmptyStatement", + "start": 37, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 38 + } + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/468/expected.json b/packages/babylon/test/fixtures/core/uncategorised/468/expected.json new file mode 100644 index 0000000000..c791058a75 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/468/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 32, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 36, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "id": { + "type": "Identifier", + "start": 36, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "eval" + }, + "init": { + "type": "NumberLiteral", + "start": 43, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/469/expected.json b/packages/babylon/test/fixtures/core/uncategorised/469/expected.json new file mode 100644 index 0000000000..d516032ff0 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/469/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 32, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 36, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 36, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "arguments" + }, + "init": { + "type": "NumberLiteral", + "start": 48, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/47/expected.json b/packages/babylon/test/fixtures/core/uncategorised/47/expected.json index 850a6eaa47..0955aa94d2 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/47/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/47/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null, "trailingComments": null }, @@ -77,11 +79,7 @@ "line": 1, "column": 10 } - }, - "range": [ - 3, - 10 - ] + } }, { "type": "CommentBlock", @@ -97,15 +95,12 @@ "line": 1, "column": 21 } - }, - "range": [ - 11, - 21 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -122,11 +117,7 @@ "line": 1, "column": 10 } - }, - "range": [ - 3, - 10 - ] + } }, { "type": "CommentBlock", @@ -142,11 +133,7 @@ "line": 1, "column": 21 } - }, - "range": [ - 11, - 21 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/470/expected.json b/packages/babylon/test/fixtures/core/uncategorised/470/expected.json new file mode 100644 index 0000000000..25732f3422 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/470/expected.json @@ -0,0 +1,201 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ + { + "type": "TryStatement", + "start": 32, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "block": { + "type": "BlockStatement", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start": 40, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "param": { + "type": "Identifier", + "start": 47, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "eval" + }, + "body": { + "type": "BlockStatement", + "start": 53, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [], + "directives": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/471/expected.json b/packages/babylon/test/fixtures/core/uncategorised/471/expected.json new file mode 100644 index 0000000000..14e6af099e --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/471/expected.json @@ -0,0 +1,201 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "TryStatement", + "start": 32, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "block": { + "type": "BlockStatement", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start": 40, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "param": { + "type": "Identifier", + "start": 47, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "name": "arguments" + }, + "body": { + "type": "BlockStatement", + "start": 58, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 58 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "body": [], + "directives": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/472/expected.json b/packages/babylon/test/fixtures/core/uncategorised/472/expected.json new file mode 100644 index 0000000000..5df2fc7306 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/472/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 32, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "eval" + }, + "right": { + "type": "NumberLiteral", + "start": 39, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/473/expected.json b/packages/babylon/test/fixtures/core/uncategorised/473/expected.json new file mode 100644 index 0000000000..936555ec42 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/473/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 32, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "arguments" + }, + "right": { + "type": "NumberLiteral", + "start": 44, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/474/expected.json b/packages/babylon/test/fixtures/core/uncategorised/474/expected.json new file mode 100644 index 0000000000..4a54d8d316 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/474/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/475/expected.json b/packages/babylon/test/fixtures/core/uncategorised/475/expected.json new file mode 100644 index 0000000000..0be9956ee7 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/475/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/476/expected.json b/packages/babylon/test/fixtures/core/uncategorised/476/expected.json new file mode 100644 index 0000000000..3d5a3384b2 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/476/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/477/expected.json b/packages/babylon/test/fixtures/core/uncategorised/477/expected.json new file mode 100644 index 0000000000..a129e39f7e --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/477/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/478/expected.json b/packages/babylon/test/fixtures/core/uncategorised/478/expected.json new file mode 100644 index 0000000000..7c98807107 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/478/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/479/expected.json b/packages/babylon/test/fixtures/core/uncategorised/479/expected.json new file mode 100644 index 0000000000..7db69736d2 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/479/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/48/expected.json b/packages/babylon/test/fixtures/core/uncategorised/48/expected.json index 128dc0844c..df6c839351 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/48/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/48/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null, "trailingComments": null }, @@ -77,11 +79,7 @@ "line": 1, "column": 10 } - }, - "range": [ - 3, - 10 - ] + } }, { "type": "CommentBlock", @@ -97,15 +95,12 @@ "line": 1, "column": 21 } - }, - "range": [ - 11, - 21 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -122,11 +117,7 @@ "line": 1, "column": 10 } - }, - "range": [ - 3, - 10 - ] + } }, { "type": "CommentBlock", @@ -142,11 +133,7 @@ "line": 1, "column": 21 } - }, - "range": [ - 11, - 21 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/480/expected.json b/packages/babylon/test/fixtures/core/uncategorised/480/expected.json new file mode 100644 index 0000000000..029e95d4fd --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/480/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/481/expected.json b/packages/babylon/test/fixtures/core/uncategorised/481/expected.json new file mode 100644 index 0000000000..fc9fb9e66f --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/481/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/482/expected.json b/packages/babylon/test/fixtures/core/uncategorised/482/expected.json new file mode 100644 index 0000000000..416268fca0 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/482/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 32, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "id": { + "type": "Identifier", + "start": 41, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 48, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/483/expected.json b/packages/babylon/test/fixtures/core/uncategorised/483/expected.json new file mode 100644 index 0000000000..aeae082c8b --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/483/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 32, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": { + "type": "Identifier", + "start": 41, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 53, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/486/expected.json b/packages/babylon/test/fixtures/core/uncategorised/486/expected.json new file mode 100644 index 0000000000..ae9e78153d --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/486/expected.json @@ -0,0 +1,204 @@ +{ + "type": "File", + "start": 0, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "expression": { + "type": "CallExpression", + "start": 33, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 33, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 49, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "body": [], + "directives": [] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/487/expected.json b/packages/babylon/test/fixtures/core/uncategorised/487/expected.json new file mode 100644 index 0000000000..dc709c3172 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/487/expected.json @@ -0,0 +1,204 @@ +{ + "type": "File", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "expression": { + "type": "CallExpression", + "start": 33, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 33, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [], + "directives": [] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/49/expected.json b/packages/babylon/test/fixtures/core/uncategorised/49/expected.json index f60e121523..e9267064e8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/49/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/49/expected.json @@ -56,9 +56,11 @@ "column": 13 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 5, "column": 10 } - }, - "range": [ - 0, - 41 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 5, "column": 10 } - }, - "range": [ - 0, - 41 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/490/expected.json b/packages/babylon/test/fixtures/core/uncategorised/490/expected.json new file mode 100644 index 0000000000..f6abe3ed03 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/490/expected.json @@ -0,0 +1,240 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "s" + }, + "value": { + "type": "FunctionExpression", + "start": 38, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": { + "type": "Identifier", + "start": 47, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [], + "directives": [] + } + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/492/expected.json b/packages/babylon/test/fixtures/core/uncategorised/492/expected.json new file mode 100644 index 0000000000..c888aaf947 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/492/expected.json @@ -0,0 +1,295 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "i" + }, + "value": { + "type": "NumberLiteral", + "start": 38, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 42, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 46, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 46 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "s" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 47, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [], + "directives": [] + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/493/expected.json b/packages/babylon/test/fixtures/core/uncategorised/493/expected.json new file mode 100644 index 0000000000..bebdcad342 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/493/expected.json @@ -0,0 +1,242 @@ +{ + "type": "File", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "s" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 40, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 41, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 47, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [], + "directives": [] + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/494/expected.json b/packages/babylon/test/fixtures/core/uncategorised/494/expected.json new file mode 100644 index 0000000000..d098c6d058 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/494/expected.json @@ -0,0 +1,257 @@ +{ + "type": "File", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "s" + }, + "value": { + "type": "FunctionExpression", + "start": 38, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 47, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "name": "s" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 49, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 55, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 55 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [], + "directives": [] + } + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json b/packages/babylon/test/fixtures/core/uncategorised/497/expected.json similarity index 50% rename from packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json rename to packages/babylon/test/fixtures/core/uncategorised/497/expected.json index 7b65e7a6c3..8425a41fb7 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/497/expected.json @@ -1,7 +1,7 @@ { "type": "File", "start": 0, - "end": 36, + "end": 58, "loc": { "start": { "line": 1, @@ -9,13 +9,13 @@ }, "end": { "line": 1, - "column": 36 + "column": 58 } }, "program": { "type": "Program", "start": 0, - "end": 36, + "end": 58, "loc": { "start": { "line": 1, @@ -23,15 +23,15 @@ }, "end": { "line": 1, - "column": 36 + "column": 58 } }, "sourceType": "script", "body": [ { - "type": "ForInStatement", + "type": "FunctionDeclaration", "start": 0, - "end": 36, + "end": 58, "loc": { "start": { "line": 1, @@ -39,157 +39,149 @@ }, "end": { "line": 1, - "column": 36 + "column": 58 } }, - "left": { - "type": "VariableDeclaration", - "start": 5, - "end": 15, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, "loc": { "start": { "line": 1, - "column": 5 + "column": 9 }, "end": { "line": 1, - "column": 15 + "column": 14 } }, - "declarations": [ + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ { - "type": "VariableDeclarator", - "start": 9, - "end": 15, + "type": "FunctionDeclaration", + "start": 33, + "end": 56, "loc": { "start": { "line": 1, - "column": 9 + "column": 33 }, "end": { "line": 1, - "column": 15 + "column": 56 } }, "id": { "type": "Identifier", - "start": 9, - "end": 10, + "start": 42, + "end": 47, "loc": { "start": { "line": 1, - "column": 9 + "column": 42 }, "end": { "line": 1, - "column": 10 + "column": 47 } }, - "name": "x" + "name": "inner" }, - "init": { - "type": "Literal", - "start": 13, - "end": 15, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 56, "loc": { "start": { "line": 1, - "column": 13 + "column": 54 }, "end": { "line": 1, - "column": 15 + "column": 56 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "body": [], + "directives": [] } } ], - "kind": "var" - }, - "right": { - "type": "Identifier", - "start": 19, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "name": "list" - }, - "body": { - "type": "ExpressionStatement", - "start": 25, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "expression": { - "type": "CallExpression", - "start": 25, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "callee": { - "type": "Identifier", - "start": 25, + "directives": [ + { + "type": "Directive", + "start": 19, "end": 32, "loc": { "start": { "line": 1, - "column": 25 + "column": 19 }, "end": { "line": 1, "column": 32 } }, - "name": "process" - }, - "arguments": [ - { - "type": "Identifier", - "start": 33, - "end": 34, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, "loc": { "start": { "line": 1, - "column": 33 + "column": 19 }, "end": { "line": 1, - "column": 34 + "column": 31 } }, - "name": "x" + "raw": "'use strict'", + "value": "use strict" } - ] - } + } + ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/498/expected.json b/packages/babylon/test/fixtures/core/uncategorised/498/expected.json new file mode 100644 index 0000000000..bab5d19160 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/498/expected.json @@ -0,0 +1,187 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 33, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "inner" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "BlockStatement", + "start": 59, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 59 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/499/expected.json b/packages/babylon/test/fixtures/core/uncategorised/499/expected.json new file mode 100644 index 0000000000..53489fbf1c --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/499/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + }, + { + "type": "Directive", + "start": 33, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "raw": "\"\\1\"", + "value": "\\1" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/5/expected.json b/packages/babylon/test/fixtures/core/uncategorised/5/expected.json index 00b6bbab99..9311593726 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/5/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/5/expected.json @@ -56,11 +56,14 @@ "column": 8 } }, - "raw": "/[a-z]/g", + "extra": { + "raw": "/[a-z]/g" + }, "pattern": "[a-z]", "flags": "g" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/50/expected.json b/packages/babylon/test/fixtures/core/uncategorised/50/expected.json index 1941345514..1bead36e26 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/50/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/50/expected.json @@ -56,9 +56,11 @@ "column": 6 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/500/expected.json b/packages/babylon/test/fixtures/core/uncategorised/500/expected.json new file mode 100644 index 0000000000..29875fff43 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/500/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expression": { + "type": "NumberLiteral", + "start": 33, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "value": 17, + "rawValue": 17, + "raw": "021" + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/501/expected.json b/packages/babylon/test/fixtures/core/uncategorised/501/expected.json new file mode 100644 index 0000000000..4e77a05f78 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/501/expected.json @@ -0,0 +1,209 @@ +{ + "type": "File", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 33, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 34, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "properties": [ + { + "type": "Property", + "start": 36, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 36, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "value": "\u0001", + "rawValue": "\u0001", + "raw": "\"\\1\"" + }, + "value": { + "type": "NumberLiteral", + "start": 42, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/502/expected.json b/packages/babylon/test/fixtures/core/uncategorised/502/expected.json new file mode 100644 index 0000000000..346e059e5f --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/502/expected.json @@ -0,0 +1,209 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 33, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 34, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "properties": [ + { + "type": "Property", + "start": 36, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "NumberLiteral", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "value": 17, + "rawValue": 17, + "raw": "021" + }, + "value": { + "type": "NumberLiteral", + "start": 41, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/503/expected.json b/packages/babylon/test/fixtures/core/uncategorised/503/expected.json new file mode 100644 index 0000000000..9f10388176 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/503/expected.json @@ -0,0 +1,203 @@ +{ + "type": "File", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 33, + "end": 74, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 74 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "inner" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 50, + "end": 74, + "loc": { + "start": { + "line": 1, + "column": 50 + }, + "end": { + "line": 1, + "column": 74 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 52, + "end": 72, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 72 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 52, + "end": 71, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 71 + } + }, + "raw": "\"octal directive\\1\"", + "value": "octal directive\\1" + } + } + ] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/504/expected.json b/packages/babylon/test/fixtures/core/uncategorised/504/expected.json new file mode 100644 index 0000000000..9e81efccd6 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/504/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "implements" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/505/expected.json b/packages/babylon/test/fixtures/core/uncategorised/505/expected.json new file mode 100644 index 0000000000..09c95282b4 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/505/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "interface" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/506/expected.json b/packages/babylon/test/fixtures/core/uncategorised/506/expected.json new file mode 100644 index 0000000000..b5b1bf5fba --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/506/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "package" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/507/expected.json b/packages/babylon/test/fixtures/core/uncategorised/507/expected.json new file mode 100644 index 0000000000..bb397becf0 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/507/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "private" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/508/expected.json b/packages/babylon/test/fixtures/core/uncategorised/508/expected.json new file mode 100644 index 0000000000..14ef8d4896 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/508/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "protected" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/509/expected.json b/packages/babylon/test/fixtures/core/uncategorised/509/expected.json new file mode 100644 index 0000000000..e6e08fbf57 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/509/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "public" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/51/expected.json b/packages/babylon/test/fixtures/core/uncategorised/51/expected.json index a6794f44ff..4ea801a13a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/51/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/51/expected.json @@ -56,9 +56,11 @@ "column": 6 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/510/expected.json b/packages/babylon/test/fixtures/core/uncategorised/510/expected.json new file mode 100644 index 0000000000..a8f07d2a1b --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/510/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "static" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/513/expected.json b/packages/babylon/test/fixtures/core/uncategorised/513/expected.json new file mode 100644 index 0000000000..e019755823 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/513/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "static" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 32, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/514/expected.json b/packages/babylon/test/fixtures/core/uncategorised/514/expected.json new file mode 100644 index 0000000000..51085f798f --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/514/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/517/expected.json b/packages/babylon/test/fixtures/core/uncategorised/517/expected.json new file mode 100644 index 0000000000..97c6620ab1 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/517/expected.json @@ -0,0 +1,218 @@ +{ + "type": "File", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 29, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 38, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "name": "b" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 40, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 43, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 46, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 46 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [], + "directives": [] + } + }, + { + "type": "EmptyStatement", + "start": 49, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 50 + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/518/expected.json b/packages/babylon/test/fixtures/core/uncategorised/518/expected.json new file mode 100644 index 0000000000..6b5bcf5c66 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/518/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + }, + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/519/expected.json b/packages/babylon/test/fixtures/core/uncategorised/519/expected.json new file mode 100644 index 0000000000..636e4bc049 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/519/expected.json @@ -0,0 +1,221 @@ +{ + "type": "File", + "start": 0, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 29, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 30, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "b" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 41, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 44, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 47, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [], + "directives": [] + }, + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/52/expected.json b/packages/babylon/test/fixtures/core/uncategorised/52/expected.json index 1941345514..1bead36e26 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/52/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/52/expected.json @@ -56,9 +56,11 @@ "column": 6 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/522/expected.json b/packages/babylon/test/fixtures/core/uncategorised/522/expected.json new file mode 100644 index 0000000000..45739cd1a5 --- /dev/null +++ b/packages/babylon/test/fixtures/core/uncategorised/522/expected.json @@ -0,0 +1,270 @@ +{ + "type": "File", + "start": 0, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 69 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 69 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 13, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "id": { + "type": "Identifier", + "start": 22, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "foo" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 28, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 28, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + }, + { + "type": "FunctionDeclaration", + "start": 42, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 69 + } + }, + "id": { + "type": "Identifier", + "start": 51, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 51 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "name": "bar" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 56, + "end": 69, + "loc": { + "start": { + "line": 1, + "column": 56 + }, + "end": { + "line": 1, + "column": 69 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 57, + "end": 68, + "loc": { + "start": { + "line": 1, + "column": 57 + }, + "end": { + "line": 1, + "column": 68 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 61, + "end": 68, + "loc": { + "start": { + "line": 1, + "column": 61 + }, + "end": { + "line": 1, + "column": 68 + } + }, + "id": { + "type": "Identifier", + "start": 61, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 61 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "name": "v" + }, + "init": { + "type": "NumberLiteral", + "start": 65, + "end": 68, + "loc": { + "start": { + "line": 1, + "column": 65 + }, + "end": { + "line": 1, + "column": 68 + } + }, + "value": 13, + "rawValue": 13, + "raw": "015" + } + } + ], + "kind": "var" + } + ], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/527/expected.json b/packages/babylon/test/fixtures/core/uncategorised/527/expected.json index 966e0d2d6f..719450f6db 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/527/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/527/expected.json @@ -87,14 +87,17 @@ "column": 10 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/528/expected.json b/packages/babylon/test/fixtures/core/uncategorised/528/expected.json index fc6d35a712..d67d0ff9c0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/528/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/528/expected.json @@ -87,9 +87,11 @@ "column": 13 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, { @@ -136,14 +138,17 @@ "column": 29 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/529/expected.json b/packages/babylon/test/fixtures/core/uncategorised/529/expected.json index bd5767e5df..97407a93a7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/529/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/529/expected.json @@ -87,9 +87,11 @@ "column": 10 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -136,9 +138,11 @@ "column": 17 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } }, { @@ -185,14 +189,17 @@ "column": 27 } }, - "value": 1977, - "rawValue": 1977, - "raw": "1977" + "extra": { + "rawValue": 1977, + "raw": "1977" + }, + "value": 1977 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/53/expected.json b/packages/babylon/test/fixtures/core/uncategorised/53/expected.json index 3b798c3d36..5ae353a2f6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/53/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/53/expected.json @@ -56,9 +56,11 @@ "column": 6 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 2, "column": 3 } - }, - "range": [ - 0, - 7 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/530/expected.json b/packages/babylon/test/fixtures/core/uncategorised/530/expected.json index e10d00d731..c6da62d7c5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/530/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/530/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/531/expected.json b/packages/babylon/test/fixtures/core/uncategorised/531/expected.json index 3d38c67b22..161b25fb1e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/531/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/531/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, { @@ -150,9 +152,11 @@ "column": 20 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -176,6 +180,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/533/expected.json b/packages/babylon/test/fixtures/core/uncategorised/533/expected.json index dcf8a26650..4069780390 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/533/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/533/expected.json @@ -87,14 +87,17 @@ "column": 12 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "const" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/534/expected.json b/packages/babylon/test/fixtures/core/uncategorised/534/expected.json index 3a6addea10..a000184562 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/534/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/534/expected.json @@ -87,9 +87,11 @@ "column": 15 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, { @@ -136,14 +138,17 @@ "column": 31 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "const" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/535/expected.json b/packages/babylon/test/fixtures/core/uncategorised/535/expected.json index 15ba33cd4d..a40092b09d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/535/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/535/expected.json @@ -87,9 +87,11 @@ "column": 12 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -136,9 +138,11 @@ "column": 19 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } }, { @@ -185,14 +189,17 @@ "column": 29 } }, - "value": 1977, - "rawValue": 1977, - "raw": "1977" + "extra": { + "rawValue": 1977, + "raw": "1977" + }, + "value": 1977 } } ], "kind": "const" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/537/expected.json b/packages/babylon/test/fixtures/core/uncategorised/537/expected.json index 50fd4d6345..7ffb7b7416 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/537/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/537/expected.json @@ -101,9 +101,11 @@ "column": 15 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/538/expected.json b/packages/babylon/test/fixtures/core/uncategorised/538/expected.json index d17094a6c6..5ba1ffd3fa 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/538/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/538/expected.json @@ -57,14 +57,29 @@ "line": 1, "column": 4 } - }, - "range": [ - 0, - 4 - ] + } } ] } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": "", + "start": 0, + "end": 4, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 4 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/54/expected.json b/packages/babylon/test/fixtures/core/uncategorised/54/expected.json index 526710b150..b94af6a6f3 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/54/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 1, "column": 15 } - }, - "range": [ - 0, - 15 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 1, "column": 15 } - }, - "range": [ - 0, - 15 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/540/expected.json b/packages/babylon/test/fixtures/core/uncategorised/540/expected.json index 3b9f0e4448..5b46bc550d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/540/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/540/expected.json @@ -88,7 +88,8 @@ "column": 15 } }, - "body": [] + "body": [], + "directives": [] } }, "operator": "/", @@ -106,13 +107,18 @@ "column": 19 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/541/expected.json b/packages/babylon/test/fixtures/core/uncategorised/541/expected.json index 93d8cd375b..f73e4e6988 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/541/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/541/expected.json @@ -75,7 +75,8 @@ "column": 15 } }, - "body": [] + "body": [], + "directives": [] } }, { @@ -106,11 +107,14 @@ "column": 21 } }, - "raw": "/ 1 /", + "extra": { + "raw": "/ 1 /" + }, "pattern": " 1 ", "flags": "" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/55/expected.json b/packages/babylon/test/fixtures/core/uncategorised/55/expected.json index b400dbe706..e8663de8a9 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/55/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/55/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null, "trailingComments": null }, @@ -77,15 +79,12 @@ "line": 1, "column": 18 } - }, - "range": [ - 3, - 18 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -102,11 +101,7 @@ "line": 1, "column": 18 } - }, - "range": [ - 3, - 18 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/56/expected.json b/packages/babylon/test/fixtures/core/uncategorised/56/expected.json index 337ed51862..8ba4e0ec1b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/56/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/56/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 1, "column": 16 } - }, - "range": [ - 0, - 16 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 1, "column": 16 } - }, - "range": [ - 0, - 16 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/57/expected.json b/packages/babylon/test/fixtures/core/uncategorised/57/expected.json index 0966e60e5c..df3b3c2419 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/57/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/57/expected.json @@ -28,6 +28,7 @@ }, "sourceType": "script", "body": [], + "directives": [], "leadingComments": null, "innerComments": [ { @@ -44,12 +45,26 @@ "line": 1, "column": 16 } - }, - "range": [ - 0, - 16 - ] + } } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " Hello, world!", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/58/expected.json b/packages/babylon/test/fixtures/core/uncategorised/58/expected.json index fe87c3c143..b932885f57 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/58/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/58/expected.json @@ -28,6 +28,7 @@ }, "sourceType": "script", "body": [], + "directives": [], "leadingComments": null, "innerComments": [ { @@ -44,12 +45,26 @@ "line": 1, "column": 16 } - }, - "range": [ - 0, - 16 - ] + } } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": " Hallo, world!", + "start": 0, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 16 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/59/expected.json b/packages/babylon/test/fixtures/core/uncategorised/59/expected.json index 4ab335adab..87f7fb03ef 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/59/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/59/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 1, "column": 2 } - }, - "range": [ - 0, - 2 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 1, "column": 2 } - }, - "range": [ - 0, - 2 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/6/expected.json b/packages/babylon/test/fixtures/core/uncategorised/6/expected.json index deaf7c1729..44268abd43 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/6/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/6/expected.json @@ -84,9 +84,11 @@ "column": 2 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "operator": "+", "right": { @@ -103,11 +105,15 @@ "column": 6 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "operator": "*", "right": { @@ -124,12 +130,15 @@ "column": 12 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/60/expected.json b/packages/babylon/test/fixtures/core/uncategorised/60/expected.json index 665ffa4700..b58673ec8e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/60/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/60/expected.json @@ -28,6 +28,7 @@ }, "sourceType": "script", "body": [], + "directives": [], "leadingComments": null, "innerComments": [ { @@ -44,12 +45,26 @@ "line": 1, "column": 2 } - }, - "range": [ - 0, - 2 - ] + } } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": "", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/61/expected.json b/packages/babylon/test/fixtures/core/uncategorised/61/expected.json index 665ffa4700..b58673ec8e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/61/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/61/expected.json @@ -28,6 +28,7 @@ }, "sourceType": "script", "body": [], + "directives": [], "leadingComments": null, "innerComments": [ { @@ -44,12 +45,26 @@ "line": 1, "column": 2 } - }, - "range": [ - 0, - 2 - ] + } } ] - } + }, + "comments": [ + { + "type": "CommentLine", + "value": "", + "start": 0, + "end": 2, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 2 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/62/expected.json b/packages/babylon/test/fixtures/core/uncategorised/62/expected.json index 3b0389e5d0..2cf6359c5d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/62/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/62/expected.json @@ -56,9 +56,11 @@ "column": 6 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,15 +78,12 @@ "line": 1, "column": 4 } - }, - "range": [ - 0, - 4 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -101,11 +100,7 @@ "line": 1, "column": 4 } - }, - "range": [ - 0, - 4 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/63/expected.json b/packages/babylon/test/fixtures/core/uncategorised/63/expected.json index 291f749462..ddafd34d4b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/63/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/63/expected.json @@ -56,9 +56,11 @@ "column": 2 } }, + "extra": { + "rawValue": 42, + "raw": "42" + }, "value": 42, - "rawValue": 42, - "raw": "42", "leadingComments": null }, "leadingComments": [ @@ -76,11 +78,7 @@ "line": 1, "column": 16 } - }, - "range": [ - 0, - 16 - ] + } }, { "type": "CommentLine", @@ -96,15 +94,12 @@ "line": 3, "column": 18 } - }, - "range": [ - 18, - 36 - ] + } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -121,11 +116,7 @@ "line": 1, "column": 16 } - }, - "range": [ - 0, - 16 - ] + } }, { "type": "CommentLine", @@ -141,11 +132,7 @@ "line": 3, "column": 18 } - }, - "range": [ - 18, - 36 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/64/expected.json b/packages/babylon/test/fixtures/core/uncategorised/64/expected.json index 4b8b974f5f..417e718ef6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/64/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/64/expected.json @@ -136,18 +136,34 @@ "line": 1, "column": 24 } - }, - "range": [ - 9, - 24 - ] + } } ] } - ] + ], + "directives": [] }, "alternate": null } - ] - } + ], + "directives": [] + }, + "comments": [ + { + "type": "CommentLine", + "value": " Some comment", + "start": 9, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 24 + } + } + } + ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/65/expected.json b/packages/babylon/test/fixtures/core/uncategorised/65/expected.json index 2d16fc17b9..346b21d465 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/65/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/65/expected.json @@ -137,11 +137,7 @@ "line": 1, "column": 40 } - }, - "range": [ - 27, - 40 - ] + } } ] } @@ -160,14 +156,17 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ] } - ] + ], + "directives": [] }, "comments": [ { @@ -184,11 +183,7 @@ "line": 1, "column": 40 } - }, - "range": [ - 27, - 40 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/66/expected.json b/packages/babylon/test/fixtures/core/uncategorised/66/expected.json index ee7c3c8a44..d50639ea1d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/66/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/66/expected.json @@ -56,11 +56,14 @@ "column": 1 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/67/expected.json b/packages/babylon/test/fixtures/core/uncategorised/67/expected.json index 4e90f25295..7bbd5d6e04 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/67/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/67/expected.json @@ -56,11 +56,14 @@ "column": 1 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/68/expected.json b/packages/babylon/test/fixtures/core/uncategorised/68/expected.json index 5c479ec64e..31f49f4d54 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/68/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/68/expected.json @@ -56,11 +56,14 @@ "column": 1 } }, - "value": 5, - "rawValue": 5, - "raw": "5" + "extra": { + "rawValue": 5, + "raw": "5" + }, + "value": 5 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/69/expected.json b/packages/babylon/test/fixtures/core/uncategorised/69/expected.json index 674c028642..d507dabac4 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/69/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/69/expected.json @@ -56,11 +56,14 @@ "column": 2 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/70/expected.json b/packages/babylon/test/fixtures/core/uncategorised/70/expected.json index d8fd4c0959..bc9495e7c4 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/70/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/70/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0.14, - "rawValue": 0.14, - "raw": ".14" + "extra": { + "rawValue": 0.14, + "raw": ".14" + }, + "value": 0.14 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/71/expected.json b/packages/babylon/test/fixtures/core/uncategorised/71/expected.json index c65f80bc71..f0d5e69680 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/71/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/71/expected.json @@ -56,11 +56,14 @@ "column": 7 } }, - "value": 3.14159, - "rawValue": 3.14159, - "raw": "3.14159" + "extra": { + "rawValue": 3.14159, + "raw": "3.14159" + }, + "value": 3.14159 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/72/expected.json b/packages/babylon/test/fixtures/core/uncategorised/72/expected.json index 6c9bd55f71..c60b1b41f8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/72/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/72/expected.json @@ -56,11 +56,14 @@ "column": 14 } }, - "value": 6.02214179e+23, - "rawValue": 6.02214179e+23, - "raw": "6.02214179e+23" + "extra": { + "rawValue": 6.02214179e+23, + "raw": "6.02214179e+23" + }, + "value": 6.02214179e+23 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/73/expected.json b/packages/babylon/test/fixtures/core/uncategorised/73/expected.json index 8aa93e63cc..3c13fede57 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/73/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/73/expected.json @@ -56,11 +56,14 @@ "column": 15 } }, - "value": 1.49241783e-10, - "rawValue": 1.49241783e-10, - "raw": "1.492417830e-10" + "extra": { + "rawValue": 1.49241783e-10, + "raw": "1.492417830e-10" + }, + "value": 1.49241783e-10 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/74/expected.json b/packages/babylon/test/fixtures/core/uncategorised/74/expected.json index 532733a4dd..89c0277df0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/74/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/74/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0x0" + "extra": { + "rawValue": 0, + "raw": "0x0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/75/expected.json b/packages/babylon/test/fixtures/core/uncategorised/75/expected.json index 58b2f24c7a..ff1823f7ed 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/75/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/75/expected.json @@ -56,11 +56,14 @@ "column": 6 } }, - "value": 0, - "rawValue": 0, - "raw": "0e+100" + "extra": { + "rawValue": 0, + "raw": "0e+100" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/76/expected.json b/packages/babylon/test/fixtures/core/uncategorised/76/expected.json index ceaa8c3a17..6c610fe45d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/76/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/76/expected.json @@ -56,11 +56,14 @@ "column": 5 } }, - "value": 2748, - "rawValue": 2748, - "raw": "0xabc" + "extra": { + "rawValue": 2748, + "raw": "0xabc" + }, + "value": 2748 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/77/expected.json b/packages/babylon/test/fixtures/core/uncategorised/77/expected.json index f80d7c9cd5..925c9bd4b5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/77/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/77/expected.json @@ -56,11 +56,14 @@ "column": 5 } }, - "value": 3567, - "rawValue": 3567, - "raw": "0xdef" + "extra": { + "rawValue": 3567, + "raw": "0xdef" + }, + "value": 3567 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/78/expected.json b/packages/babylon/test/fixtures/core/uncategorised/78/expected.json index 75950798ba..b22782d94a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/78/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/78/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 26, - "rawValue": 26, - "raw": "0X1A" + "extra": { + "rawValue": 26, + "raw": "0X1A" + }, + "value": 26 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/79/expected.json b/packages/babylon/test/fixtures/core/uncategorised/79/expected.json index 3ec2521ed5..f5b4ed8462 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/79/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/79/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 16, - "rawValue": 16, - "raw": "0x10" + "extra": { + "rawValue": 16, + "raw": "0x10" + }, + "value": 16 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/80/expected.json b/packages/babylon/test/fixtures/core/uncategorised/80/expected.json index c9510f36fa..f677a72fed 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/80/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/80/expected.json @@ -56,11 +56,14 @@ "column": 5 } }, - "value": 256, - "rawValue": 256, - "raw": "0x100" + "extra": { + "rawValue": 256, + "raw": "0x100" + }, + "value": 256 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/81/expected.json b/packages/babylon/test/fixtures/core/uncategorised/81/expected.json index dd38ee8475..0ad2ff57eb 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/81/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/81/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 4, - "rawValue": 4, - "raw": "0X04" + "extra": { + "rawValue": 4, + "raw": "0X04" + }, + "value": 4 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/82/expected.json b/packages/babylon/test/fixtures/core/uncategorised/82/expected.json index e4985f2b1e..eb09e24858 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/82/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/82/expected.json @@ -56,11 +56,14 @@ "column": 2 } }, - "value": 2, - "rawValue": 2, - "raw": "02" + "extra": { + "rawValue": 2, + "raw": "02" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/83/expected.json b/packages/babylon/test/fixtures/core/uncategorised/83/expected.json index 8bb1dbdaf8..00009bf130 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/83/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/83/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 10, - "rawValue": 10, - "raw": "012" + "extra": { + "rawValue": 10, + "raw": "012" + }, + "value": 10 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/84/expected.json b/packages/babylon/test/fixtures/core/uncategorised/84/expected.json index 74b4910c7c..febf934ba3 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/84/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/84/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 10, - "rawValue": 10, - "raw": "0012" + "extra": { + "rawValue": 10, + "raw": "0012" + }, + "value": 10 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/85/expected.json b/packages/babylon/test/fixtures/core/uncategorised/85/expected.json index 75243c6d6a..22a0530be4 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/85/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/85/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 7, "loc": { @@ -42,8 +43,8 @@ "column": 7 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 7, "loc": { @@ -57,8 +58,10 @@ } }, "value": "Hello", - "rawValue": "Hello", - "raw": "\"Hello\"" + "extra": { + "raw": "\"Hello\"", + "rawValue": "Hello" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/86/expected.json b/packages/babylon/test/fixtures/core/uncategorised/86/expected.json index db9d18218f..787fa60c46 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/86/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/86/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 22, "loc": { @@ -42,8 +43,8 @@ "column": 22 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 22, "loc": { @@ -56,9 +57,11 @@ "column": 22 } }, - "value": "\n\r\t\u000b\b\f\\'\"\u0000", - "rawValue": "\n\r\t\u000b\b\f\\'\"\u0000", - "raw": "\"\\n\\r\\t\\v\\b\\f\\\\\\'\\\"\\0\"" + "value": "\\n\\r\\t\\v\\b\\f\\\\\\'\\\"\\0", + "extra": { + "raw": "\"\\n\\r\\t\\v\\b\\f\\\\\\'\\\"\\0\"", + "rawValue": "\\n\\r\\t\\v\\b\\f\\\\\\'\\\"\\0" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/87/expected.json b/packages/babylon/test/fixtures/core/uncategorised/87/expected.json index 21ac4d0633..34b6834ba8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/87/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/87/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 8, "loc": { @@ -42,8 +43,8 @@ "column": 8 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 8, "loc": { @@ -56,9 +57,11 @@ "column": 8 } }, - "value": "a", - "rawValue": "a", - "raw": "\"\\u0061\"" + "value": "\\u0061", + "extra": { + "raw": "\"\\u0061\"", + "rawValue": "\\u0061" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/88/expected.json b/packages/babylon/test/fixtures/core/uncategorised/88/expected.json index d98bbbf345..969ab3928a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/88/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/88/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 6, "loc": { @@ -42,8 +43,8 @@ "column": 6 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 6, "loc": { @@ -56,9 +57,11 @@ "column": 6 } }, - "value": "a", - "rawValue": "a", - "raw": "\"\\x61\"" + "value": "\\x61", + "extra": { + "raw": "\"\\x61\"", + "rawValue": "\\x61" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/89/expected.json b/packages/babylon/test/fixtures/core/uncategorised/89/expected.json index fb56f80c47..e805ca1d52 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/89/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/89/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 14, "loc": { @@ -42,8 +43,8 @@ "column": 14 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 14, "loc": { @@ -56,9 +57,11 @@ "column": 14 } }, - "value": "Hello\nworld", - "rawValue": "Hello\nworld", - "raw": "\"Hello\\nworld\"" + "value": "Hello\\nworld", + "extra": { + "raw": "\"Hello\\nworld\"", + "rawValue": "Hello\\nworld" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/9/expected.json b/packages/babylon/test/fixtures/core/uncategorised/9/expected.json index bd8886934c..be72c57c4e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/9/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/9/expected.json @@ -102,14 +102,17 @@ "column": 8 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/90/expected.json b/packages/babylon/test/fixtures/core/uncategorised/90/expected.json index 4b7d0df83e..4b1cc3a85b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/90/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/90/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 14, "loc": { @@ -42,8 +43,8 @@ "column": 6 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 14, "loc": { @@ -56,9 +57,11 @@ "column": 6 } }, - "value": "Helloworld", - "rawValue": "Helloworld", - "raw": "\"Hello\\\nworld\"" + "value": "Hello\\\nworld", + "extra": { + "raw": "\"Hello\\\nworld\"", + "rawValue": "Hello\\\nworld" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/91/expected.json b/packages/babylon/test/fixtures/core/uncategorised/91/expected.json index 7f2af71438..dd074ebc9d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/91/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/91/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 15, "loc": { @@ -42,8 +43,8 @@ "column": 15 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 15, "loc": { @@ -56,9 +57,11 @@ "column": 15 } }, - "value": "Hello\u0002World", - "rawValue": "Hello\u0002World", - "raw": "\"Hello\\02World\"" + "value": "Hello\\02World", + "extra": { + "raw": "\"Hello\\02World\"", + "rawValue": "Hello\\02World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/92/expected.json b/packages/babylon/test/fixtures/core/uncategorised/92/expected.json index 36c8089dfa..48febf1933 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/92/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/92/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 16, "loc": { @@ -42,8 +43,8 @@ "column": 16 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 16, "loc": { @@ -56,9 +57,11 @@ "column": 16 } }, - "value": "Hello\nWorld", - "rawValue": "Hello\nWorld", - "raw": "\"Hello\\012World\"" + "value": "Hello\\012World", + "extra": { + "raw": "\"Hello\\012World\"", + "rawValue": "Hello\\012World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/93/expected.json b/packages/babylon/test/fixtures/core/uncategorised/93/expected.json index 73355963c0..62ede0ff69 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/93/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/93/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 16, "loc": { @@ -42,8 +43,8 @@ "column": 16 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 16, "loc": { @@ -56,9 +57,11 @@ "column": 16 } }, - "value": "HelloRWorld", - "rawValue": "HelloRWorld", - "raw": "\"Hello\\122World\"" + "value": "Hello\\122World", + "extra": { + "raw": "\"Hello\\122World\"", + "rawValue": "Hello\\122World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/94/expected.json b/packages/babylon/test/fixtures/core/uncategorised/94/expected.json index 7fa2454d0e..2b85f61032 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/94/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/94/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 17, "loc": { @@ -42,8 +43,8 @@ "column": 17 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 17, "loc": { @@ -56,9 +57,11 @@ "column": 17 } }, - "value": "Hello\n2World", - "rawValue": "Hello\n2World", - "raw": "\"Hello\\0122World\"" + "value": "Hello\\0122World", + "extra": { + "raw": "\"Hello\\0122World\"", + "rawValue": "Hello\\0122World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/95/expected.json b/packages/babylon/test/fixtures/core/uncategorised/95/expected.json index f76c3f06ba..0766d1fb0a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/95/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/95/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 16, "loc": { @@ -42,8 +43,8 @@ "column": 16 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 16, "loc": { @@ -56,9 +57,11 @@ "column": 16 } }, - "value": "HelloÊWorld", - "rawValue": "HelloÊWorld", - "raw": "\"Hello\\312World\"" + "value": "Hello\\312World", + "extra": { + "raw": "\"Hello\\312World\"", + "rawValue": "Hello\\312World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/96/expected.json b/packages/babylon/test/fixtures/core/uncategorised/96/expected.json index e3c5d34073..1642f0daa1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/96/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/96/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 16, "loc": { @@ -42,8 +43,8 @@ "column": 16 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 16, "loc": { @@ -56,9 +57,11 @@ "column": 16 } }, - "value": "Hello!2World", - "rawValue": "Hello!2World", - "raw": "\"Hello\\412World\"" + "value": "Hello\\412World", + "extra": { + "raw": "\"Hello\\412World\"", + "rawValue": "Hello\\412World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/97/expected.json b/packages/babylon/test/fixtures/core/uncategorised/97/expected.json index 313e3477d2..6d7ce11c6a 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/97/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/97/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 16, "loc": { @@ -42,8 +43,8 @@ "column": 16 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 16, "loc": { @@ -56,9 +57,11 @@ "column": 16 } }, - "value": "Hello812World", - "rawValue": "Hello812World", - "raw": "\"Hello\\812World\"" + "value": "Hello\\812World", + "extra": { + "raw": "\"Hello\\812World\"", + "rawValue": "Hello\\812World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/98/expected.json b/packages/babylon/test/fixtures/core/uncategorised/98/expected.json index ec00b5c923..f68c0082fd 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/98/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/98/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 16, "loc": { @@ -42,8 +43,8 @@ "column": 16 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 16, "loc": { @@ -56,9 +57,11 @@ "column": 16 } }, - "value": "Hello92World", - "rawValue": "Hello92World", - "raw": "\"Hello\\712World\"" + "value": "Hello\\712World", + "extra": { + "raw": "\"Hello\\712World\"", + "rawValue": "Hello\\712World" + } } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/99/expected.json b/packages/babylon/test/fixtures/core/uncategorised/99/expected.json index bdb5012bd7..a93ba04dd0 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/99/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/99/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 14, "loc": { @@ -42,8 +43,8 @@ "column": 14 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 14, "loc": { @@ -56,9 +57,11 @@ "column": 14 } }, - "value": "Hello\u0000World", - "rawValue": "Hello\u0000World", - "raw": "\"Hello\\0World\"" + "value": "Hello\\0World", + "extra": { + "raw": "\"Hello\\0World\"", + "rawValue": "Hello\\0World" + } } } ] diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json index bfca2ac2a5..b80d317427 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0002/expected.json @@ -91,18 +91,15 @@ "line": 1, "column": 19 } - }, - "range": [ - 6, - 19 - ] + } } ] } ], "kind": "var" } - ] + ], + "directives": [] }, "comments": [ { @@ -119,11 +116,7 @@ "line": 1, "column": 19 } - }, - "range": [ - 6, - 19 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json index b3c4b6a133..607612e873 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0003/expected.json @@ -102,9 +102,11 @@ "column": 12 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -151,9 +153,11 @@ "column": 19 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } ], @@ -190,8 +194,10 @@ "name": "z" } } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json index 253be28d97..1c02f6ef66 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0004/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -122,9 +120,11 @@ "name": "there" } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json index 567f02ad8f..675fe056a3 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0005/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 1, "column": 34 } - }, - "range": [ - 24, - 34 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 1, "column": 34 } - }, - "range": [ - 24, - 34 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 1, "column": 34 } - }, - "range": [ - 24, - 34 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json index b094efe11f..dfef6b5c50 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0006/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 24, - 47 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 2, "column": 10 } - }, - "range": [ - 24, - 47 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 24, - 47 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json index be91d94441..2b8d9fef9f 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0007/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -122,9 +120,11 @@ "name": "there" } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json index 2fc3f311ee..21c911cbbc 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0008/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 1, "column": 31 } - }, - "range": [ - 21, - 31 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 1, "column": 31 } - }, - "range": [ - 21, - 31 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 1, "column": 31 } - }, - "range": [ - 21, - 31 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json index 6720b43723..55ac6a29a8 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0009/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -106,11 +104,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 21, - 44 - ] + } } ] }, @@ -160,18 +154,16 @@ "line": 2, "column": 10 } - }, - "range": [ - 21, - 44 - ] + } } ] } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, "comments": [ { @@ -188,11 +180,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 21, - 44 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json index 9098864a2b..7d4c8d5bb6 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0010/expected.json @@ -122,11 +122,15 @@ "name": "x" } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json index 8c387c91d1..f0cf8a4b53 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0011/expected.json @@ -106,11 +106,7 @@ "line": 1, "column": 30 } - }, - "range": [ - 20, - 30 - ] + } } ] }, @@ -160,20 +156,20 @@ "line": 1, "column": 30 } - }, - "range": [ - 20, - 30 - ] + } } ] } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] }, "comments": [ { @@ -190,11 +186,7 @@ "line": 1, "column": 30 } - }, - "range": [ - 20, - 30 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json index 2eb4083a3c..975bfdf605 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0012/expected.json @@ -106,11 +106,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 19, - 42 - ] + } } ] }, @@ -160,20 +156,20 @@ "line": 2, "column": 10 } - }, - "range": [ - 19, - 42 - ] + } } ] } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] }, "comments": [ { @@ -190,11 +186,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 19, - 42 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json index 59760cfccf..1340d70360 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0014/expected.json @@ -90,11 +90,7 @@ "line": 1, "column": 23 } - }, - "range": [ - 13, - 23 - ] + } } ] }, @@ -144,17 +140,15 @@ "line": 1, "column": 23 } - }, - "range": [ - 13, - 23 - ] + } } ] } - ] + ], + "directives": [] } - ] + ], + "directives": [] }, "comments": [ { @@ -171,11 +165,7 @@ "line": 1, "column": 23 } - }, - "range": [ - 13, - 23 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json index 316c90a92c..fcf481f414 100644 --- a/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/automatic-semicolon-insertion/migrated_0015/expected.json @@ -90,11 +90,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 13, - 36 - ] + } } ] }, @@ -144,17 +140,15 @@ "line": 2, "column": 10 } - }, - "range": [ - 13, - 36 - ] + } } ] } - ] + ], + "directives": [] } - ] + ], + "directives": [] }, "comments": [ { @@ -171,11 +165,7 @@ "line": 2, "column": 10 } - }, - "range": [ - 13, - 36 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json index dcf8a26650..4069780390 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0000/expected.json @@ -87,14 +87,17 @@ "column": 12 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "const" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json index 8b63e6bb33..b6f5990bca 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0001/expected.json @@ -102,16 +102,20 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "const" } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json index 55718cfc43..4618734fda 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-const/migrated_0002/expected.json @@ -102,9 +102,11 @@ "column": 14 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -151,9 +153,11 @@ "column": 21 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } }, { @@ -200,16 +204,20 @@ "column": 31 } }, - "value": 1977, - "rawValue": 1977, - "raw": "1977" + "extra": { + "rawValue": 1977, + "raw": "1977" + }, + "value": 1977 } } ], "kind": "const" } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/expected.json new file mode 100644 index 0000000000..80306b8cba --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/declaration-function/dupe-param/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json index 959d6454f7..554eee01b4 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/empty-param/expected.json @@ -108,9 +108,10 @@ "column": 34 } }, - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 20, "end": 33, "loc": { @@ -123,8 +124,8 @@ "column": 33 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 20, "end": 32, "loc": { @@ -138,13 +139,16 @@ } }, "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json index 246b6b5a20..a9c517251e 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0004/expected.json @@ -122,11 +122,15 @@ "column": 24 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json index f5013969f2..5924cefb02 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0005/expected.json @@ -123,9 +123,10 @@ "column": 51 } }, - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 37, "end": 49, "loc": { @@ -138,8 +139,8 @@ "column": 49 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 37, "end": 49, "loc": { @@ -153,16 +154,20 @@ } }, "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json index 4841a07e51..fac0f4b32c 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0012/expected.json @@ -74,11 +74,15 @@ "column": 13 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json index 13d9c39d33..b4d8d83676 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-function/migrated_0014/expected.json @@ -118,9 +118,11 @@ "column": 30 } }, - "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" + "extra": { + "rawValue": "use strict", + "raw": "\"use strict\"" + }, + "value": "use strict" }, "operator": "+", "right": { @@ -137,15 +139,19 @@ "column": 35 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json index d6c387f1cf..8e0f3eda0b 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0002/expected.json @@ -102,16 +102,20 @@ "column": 12 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "let" } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json index 4159969a48..a64ced02ce 100644 --- a/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/declaration-let/migrated_0003/expected.json @@ -102,9 +102,11 @@ "column": 12 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -151,9 +153,11 @@ "column": 19 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } }, { @@ -200,16 +204,20 @@ "column": 29 } }, - "value": 1977, - "rawValue": 1977, - "raw": "1977" + "extra": { + "rawValue": 1977, + "raw": "1977" + }, + "value": 1977 } } ], "kind": "let" } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json index c18fa769b5..c6d4b5de2b 100644 --- a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0000/expected.json @@ -89,39 +89,6 @@ } }, "body": [ - { - "type": "ExpressionStatement", - "start": 15, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 31 - } - }, - "expression": { - "type": "StringLiteral", - "start": 15, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "'use\\x20strict'" - } - }, { "type": "WithStatement", "start": 32, @@ -168,13 +135,53 @@ } } } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": "use\\x20strict", + "extra": { + "raw": "'use\\x20strict'", + "rawValue": "use\\x20strict" + } + } + } ] } }, "arguments": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json index 32deb8d4e2..1acd32f8f8 100644 --- a/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/directive-prolog/migrated_0001/expected.json @@ -89,39 +89,6 @@ } }, "body": [ - { - "type": "ExpressionStatement", - "start": 15, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "expression": { - "type": "StringLiteral", - "start": 15, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "value": "use\nstrict", - "rawValue": "use\nstrict", - "raw": "'use\\nstrict'" - } - }, { "type": "WithStatement", "start": 30, @@ -168,13 +135,53 @@ } } } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": "use\\nstrict", + "extra": { + "raw": "'use\\nstrict'", + "rawValue": "use\\nstrict" + } + } + } ] } }, "arguments": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json index a37dc71384..55e7cb964b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-01/expected.json @@ -123,14 +123,17 @@ "column": 11 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json index 3952075405..1162212f88 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-02/expected.json @@ -124,12 +124,15 @@ "column": 10 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json index c80e27a7c8..c7416244d2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-03/expected.json @@ -139,12 +139,15 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json index 11686156c6..bd5854bcd0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/array-binding-pattern-empty/expected.json @@ -91,12 +91,15 @@ "column": 7 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json index 3f3f6aa64d..6eba052f46 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-binding-pattern/elision/expected.json @@ -94,12 +94,15 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/expected.json new file mode 100644 index 0000000000..65f0476c0e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-1/expected.json @@ -0,0 +1,168 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 25, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 16 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 28, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 14 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "name": "a" + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 31, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 17 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/expected.json new file mode 100644 index 0000000000..3497e91ca6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-2/expected.json @@ -0,0 +1,183 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 25, + "end": 33, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 19 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 13 + } + }, + "name": "a" + }, + { + "type": "RestElement", + "start": 28, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 14 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "argument": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 2, + "column": 17 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "name": "a" + } + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 34, + "end": 37, + "loc": { + "start": { + "line": 2, + "column": 20 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/expected.json new file mode 100644 index 0000000000..89963bdc09 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/dupe-param-3/expected.json @@ -0,0 +1,235 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 39, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 2, + "column": 9 + }, + "end": { + "line": 2, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 25, + "end": 35, + "loc": { + "start": { + "line": 2, + "column": 11 + }, + "end": { + "line": 2, + "column": 21 + } + }, + "elements": [ + { + "type": "ObjectPattern", + "start": 26, + "end": 29, + "loc": { + "start": { + "line": 2, + "column": 12 + }, + "end": { + "line": 2, + "column": 15 + } + }, + "properties": [ + { + "type": "Property", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 2, + "column": 13 + }, + "end": { + "line": 2, + "column": 14 + } + }, + "name": "a" + } + } + ] + }, + { + "type": "RestElement", + "start": 30, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 16 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "argument": { + "type": "Identifier", + "start": 33, + "end": 34, + "loc": { + "start": { + "line": 2, + "column": 19 + }, + "end": { + "line": 2, + "column": 20 + } + }, + "name": "a" + } + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 2, + "column": 22 + }, + "end": { + "line": 2, + "column": 25 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json index 13bbbbceac..f426e72528 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/elision/expected.json @@ -104,14 +104,17 @@ "column": 12 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json index 2c1b12478e..821296cbdb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/empty-pattern-var/expected.json @@ -87,14 +87,17 @@ "column": 10 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json index 8dfe71997b..e267a31f66 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/hole/expected.json @@ -121,14 +121,17 @@ "column": 12 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json index d06abc7113..59b556c0f5 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/nested-pattern/expected.json @@ -104,14 +104,17 @@ "column": 10 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json index df31ae2fcd..16876bb02e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json @@ -56,7 +56,8 @@ "column": 6 } }, - "body": [] + "body": [], + "directives": [] }, "handler": { "type": "CatchClause", @@ -262,9 +263,11 @@ "column": 29 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "kind": "init" @@ -346,9 +349,11 @@ "column": 38 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "kind": "init" @@ -453,12 +458,14 @@ "column": 49 } }, - "body": [] + "body": [], + "directives": [] } }, "guardedHandlers": [], "finalizer": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json index cb533f681d..18936fbfdf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/rest/expected.json @@ -119,14 +119,17 @@ "column": 14 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json index c2fa502238..ef275391a1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/tailing-hold/expected.json @@ -105,14 +105,17 @@ "column": 11 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json index 2726675278..acbfab9cf7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-catch-param/expected.json @@ -56,7 +56,8 @@ "column": 7 } }, - "body": [] + "body": [], + "directives": [] }, "handler": { "type": "CatchClause", @@ -131,9 +132,11 @@ "column": 21 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ] @@ -152,12 +155,14 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } }, "guardedHandlers": [], "finalizer": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json index 48546eeb6c..75d5b40cd2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-default-fn/expected.json @@ -120,9 +120,11 @@ "column": 15 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ] @@ -142,9 +144,11 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json index 982603fb4d..2d14e8848e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json @@ -156,14 +156,17 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json index 6e488ff2b1..64ca19741f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-multiple-arg-and-rest/expected.json @@ -138,12 +138,15 @@ "column": 15 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json index 79abe75001..fa50513676 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/arrow-with-only-rest/expected.json @@ -106,12 +106,15 @@ "column": 11 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json index 4ebe77e8fc..158f0af7b4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/complex-rest-in-arrow-not-allowed/options.json @@ -1,3 +1,3 @@ { - "throws": "Argument name clash in strict mode (1:7)" + "throws": "Unexpected token (1:6)" } diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json index ed4c1605fe..6b22652418 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0000/expected.json @@ -74,12 +74,15 @@ "column": 12 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json index c3e068731d..070478ffa3 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0001/expected.json @@ -91,12 +91,15 @@ "column": 11 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json index dc38971fa7..71885e218e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0002/expected.json @@ -91,12 +91,15 @@ "column": 13 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json index 4bdd74c258..57366e881f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0003/expected.json @@ -107,12 +107,15 @@ "column": 16 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json index ebd04a794b..a6acfabee4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0004/expected.json @@ -120,15 +120,19 @@ "column": 9 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json index 7a3afe8bd4..fbd87bd0c4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json @@ -139,17 +139,22 @@ "column": 20 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json index 287f532194..fe17cfad68 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0006/expected.json @@ -134,9 +134,11 @@ "column": 16 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "label": { @@ -156,10 +158,12 @@ "name": "label" } } - ] + ], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json index 9a918edee0..59f0dbf100 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0007/expected.json @@ -136,15 +136,19 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json index 8b3e1161d1..1d3eb7338f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0008/expected.json @@ -104,9 +104,11 @@ "column": 4 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -160,6 +162,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json index 3351297bbe..b4e861da61 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0009/expected.json @@ -91,12 +91,15 @@ "column": 10 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json index cdb3afb5bc..f3bbc75306 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0010/expected.json @@ -91,12 +91,15 @@ "column": 15 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json index c40f9bbb31..98652468ab 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0011/expected.json @@ -91,12 +91,15 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "00" + "extra": { + "rawValue": 0, + "raw": "00" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json index 95224d5129..d4be8b7577 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0012/expected.json @@ -107,12 +107,15 @@ "column": 15 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json index 645860e175..8a08def13e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0013/expected.json @@ -104,9 +104,11 @@ "column": 10 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], @@ -124,12 +126,15 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json index fd39c13ced..b782563eff 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0014/expected.json @@ -120,9 +120,11 @@ "column": 13 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], @@ -140,12 +142,15 @@ "column": 20 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json index e81c37fc89..b565e367ee 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0015/expected.json @@ -93,9 +93,12 @@ }, "name": "x" }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json index 8368737c3f..3fc7b625b7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0016/expected.json @@ -126,13 +126,16 @@ "column": 12 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json index 8a2ef02d21..7d5558cdaf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0017/expected.json @@ -192,12 +192,17 @@ "name": "z" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json index 607cd3e194..8e5a64d7e3 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0000/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0b0" + "extra": { + "rawValue": 0, + "raw": "0b0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json index 23356e76be..869a4573f6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0001/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 1, - "rawValue": 1, - "raw": "0b1" + "extra": { + "rawValue": 1, + "raw": "0b1" + }, + "value": 1 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json index be3c47afa8..946f9be4db 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0002/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 2, - "rawValue": 2, - "raw": "0b10" + "extra": { + "rawValue": 2, + "raw": "0b10" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json index ae57cab25c..50c71c2d94 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0003/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0B0" + "extra": { + "rawValue": 0, + "raw": "0B0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json index 4937dfc854..94253b3ff7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0004/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 1, - "rawValue": 1, - "raw": "0B1" + "extra": { + "rawValue": 1, + "raw": "0B1" + }, + "value": 1 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json index e6cfe9f05a..5a539443cf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-binary-integer-literal/migrated_0005/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 2, - "rawValue": 2, - "raw": "0B10" + "extra": { + "rawValue": 2, + "raw": "0B10" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json index 0f5ada00b1..de6307983c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0001/expected.json @@ -72,9 +72,11 @@ "column": 17 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "body": { "type": "ClassBody", @@ -93,6 +95,7 @@ "body": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json index 0048caa7d4..0ba4da86df 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0016/expected.json @@ -117,9 +117,11 @@ "column": 25 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "body": { "type": "ClassBody", @@ -142,6 +144,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json index c7f6cadc22..d991009313 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json @@ -103,9 +103,11 @@ "column": 22 } }, - "value": "constructor", - "rawValue": "constructor", - "raw": "\"constructor\"" + "extra": { + "rawValue": "constructor", + "raw": "\"constructor\"" + }, + "value": "constructor" }, "static": false, "kind": "constructor", @@ -141,7 +143,8 @@ "column": 26 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -174,9 +177,11 @@ "column": 41 } }, - "value": "constructor", - "rawValue": "constructor", - "raw": "\"constructor\"" + "extra": { + "rawValue": "constructor", + "raw": "\"constructor\"" + }, + "value": "constructor" }, "static": false, "kind": "method", @@ -212,13 +217,15 @@ "column": 46 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json index 90ed6197ca..21d43a0b9f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json @@ -103,9 +103,11 @@ "column": 28 } }, - "value": "prototype", - "rawValue": "prototype", - "raw": "\"prototype\"" + "extra": { + "rawValue": "prototype", + "raw": "\"prototype\"" + }, + "value": "prototype" }, "static": true, "kind": "method", @@ -141,13 +143,15 @@ "column": 33 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json index 5a08887ae2..0df98d2cb5 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0022/expected.json @@ -74,9 +74,12 @@ }, "body": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json index daf97fa8cc..f639d9d497 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0023/expected.json @@ -89,9 +89,12 @@ }, "body": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json index 0805cc723d..e85fb517b8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0024/expected.json @@ -71,9 +71,11 @@ "column": 16 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "body": { "type": "ClassBody", @@ -91,9 +93,12 @@ }, "body": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json index 6b475a1756..cf178864e7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0025/expected.json @@ -86,9 +86,11 @@ "column": 18 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "body": { "type": "ClassBody", @@ -106,9 +108,12 @@ }, "body": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json index 8f7d2304f4..3799c4ee35 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0000/expected.json @@ -135,9 +135,11 @@ "column": 18 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -155,11 +157,13 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json index beb32095e0..b922dc9f54 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0001/expected.json @@ -105,9 +105,11 @@ "column": 16 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -125,9 +127,11 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json index 133d3320bc..0fdbc8a52e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json @@ -183,9 +183,11 @@ "column": 21 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -203,7 +205,8 @@ "column": 25 } }, - "body": [] + "body": [], + "directives": [] } }, "kind": "init" @@ -212,6 +215,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json index dcc67edb83..6079a74348 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/dup-assignment/expected.json @@ -152,12 +152,15 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json index 734b745fab..b4dad85bbf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/elision/expected.json @@ -90,12 +90,15 @@ "column": 6 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json index efd854b233..95e743cb0f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/member-expr-in-rest/expected.json @@ -130,9 +130,11 @@ "column": 7 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "computed": true } @@ -153,12 +155,15 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json index 63881f8131..a3b62d0ec1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-assignment/expected.json @@ -132,9 +132,11 @@ "column": 6 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, { @@ -240,9 +242,11 @@ "column": 16 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "computed": true } @@ -282,12 +286,15 @@ "column": 24 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json index 72f41b4fa2..70b18e9e2e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json @@ -185,14 +185,17 @@ "column": 8 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json index 17e17c57fe..5d3cc3bc51 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/simple-assignment/expected.json @@ -104,12 +104,15 @@ "column": 7 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json index 100e7a3484..0b11316d47 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/empty-object-pattern-assignment/expected.json @@ -87,13 +87,18 @@ "column": 7 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json index a140649c5e..e4d7cfd018 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json @@ -480,9 +480,11 @@ "column": 26 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "computed": true } @@ -544,12 +546,15 @@ "column": 50 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json index 17e21344b3..4521c6e3bf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json @@ -556,13 +556,18 @@ "column": 5 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json index 49034362d5..4449de5650 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-const-number/expected.json @@ -103,15 +103,18 @@ "column": 20 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], "kind": "const" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json index 0d4410ae2e..c6453bfd9c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-class/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "ClassExpression", + "type": "ClassDeclaration", "start": 15, "end": 23, "loc": { @@ -76,6 +76,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json index 79dccfed7b..e881a423f0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-expression/expected.json @@ -70,9 +70,11 @@ "column": 17 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "operator": "+", "right": { @@ -89,13 +91,18 @@ "column": 21 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json index be8795503e..364e85431c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-function/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "FunctionExpression", + "type": "FunctionDeclaration", "start": 15, "end": 29, "loc": { @@ -74,10 +74,12 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json index 440498ffc2..4758b655ec 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-number/expected.json @@ -56,11 +56,14 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json index 44f93db202..5d9a5f6369 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json @@ -104,15 +104,18 @@ "column": 23 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "kind": "init" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json index 5c1b86ad08..e3e870a7bf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-batch/expected.json @@ -56,11 +56,14 @@ "column": 19 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json index d87b9e3ad0..0a6a723e7b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-default/expected.json @@ -106,11 +106,14 @@ "column": 27 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json index db67cc7139..466e385f0b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-default/expected.json @@ -106,11 +106,14 @@ "column": 34 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json index 2cf90b4252..7ae9c17b81 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifier/expected.json @@ -106,11 +106,14 @@ "column": 30 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json index dace6e4467..65c0fa29ea 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-named-as-specifiers/expected.json @@ -153,11 +153,14 @@ "column": 39 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json index a8b61d3f41..396665ef21 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifier/expected.json @@ -106,11 +106,14 @@ "column": 23 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json index 71f75f58fb..09fc23f85e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-from-specifiers/expected.json @@ -153,11 +153,14 @@ "column": 28 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json index c6b1bd5169..d9b4d3f5a5 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-function-declaration/expected.json @@ -91,7 +91,8 @@ "column": 25 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -123,11 +124,10 @@ "column": 31 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json index 5801f4b21d..b4302c2d1b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-let-number/expected.json @@ -103,15 +103,18 @@ "column": 18 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], "kind": "let" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json index 9ebf178806..bca842d905 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-var-number/expected.json @@ -103,15 +103,18 @@ "column": 18 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], "kind": "var" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json index f038000230..b1904263e7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield-delegate/expected.json @@ -119,15 +119,19 @@ "column": 26 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json index 3dc0ce6afb..586f8e1856 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-declaration-with-yield/expected.json @@ -119,15 +119,19 @@ "column": 25 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json index cc24e31b58..edd55ba2ea 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-rest-param/expected.json @@ -106,11 +106,15 @@ "column": 19 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json index 0f53a4fd9c..dcddd48350 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-params/expected.json @@ -123,11 +123,15 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json index 4b28752a8f..15d56c524b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield-delegate/expected.json @@ -171,11 +171,15 @@ } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json index 273c61ba5e..6bc100acb2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression-with-yield/expected.json @@ -118,17 +118,23 @@ "column": 22 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json index ab58afaeee..9cb0b17ba1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-expression/expected.json @@ -74,11 +74,15 @@ "column": 15 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json index d54bbc11a2..7c3e3bcb37 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json @@ -172,14 +172,18 @@ "column": 19 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json index 4085e3da1c..8b5ee65941 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json @@ -167,20 +167,26 @@ "column": 20 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json index 1696922399..14d2a18a84 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json @@ -167,20 +167,26 @@ "column": 19 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json index a207539d69..110cc9c9cb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json @@ -184,19 +184,25 @@ "column": 3 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } - ] + ], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json index dd439657fc..c749a9dbaf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json @@ -156,14 +156,18 @@ "argument": null } } - ] + ], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json index ce2bcad3ea..a5bb9c44cb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json @@ -123,14 +123,18 @@ "column": 12 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json index eff37004fc..73b2c92bcd 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/module_await/expected.json @@ -87,12 +87,15 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json index 480b8d531d..26afe27079 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-identifier/valid_await/expected.json @@ -107,9 +107,12 @@ } }, "name": "await", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json index fd674134a4..918d5dc76f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-named-specifiers/expected.json @@ -136,11 +136,14 @@ "column": 28 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json index c83ff40f18..1481257a6e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-and-namespace-specifiers/expected.json @@ -120,11 +120,14 @@ "column": 31 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json index 073f43503c..90e760b5d0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default-as/expected.json @@ -105,11 +105,14 @@ "column": 34 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json index 691a530e45..68eab4b614 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-default/expected.json @@ -89,11 +89,14 @@ "column": 21 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json index 45b87643fb..d1465085b3 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-jquery/expected.json @@ -89,11 +89,14 @@ "column": 22 } }, - "value": "jquery", - "rawValue": "jquery", - "raw": "\"jquery\"" + "extra": { + "rawValue": "jquery", + "raw": "\"jquery\"" + }, + "value": "jquery" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json index 652a62b72a..1d1c75f23e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-module/expected.json @@ -57,11 +57,14 @@ "column": 12 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json index 4198564920..158d42da07 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifier/expected.json @@ -105,11 +105,14 @@ "column": 30 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json index 197fd882b6..a3c950ab9c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-as-specifiers/expected.json @@ -152,11 +152,14 @@ "column": 35 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json index 45f291208c..92681f683c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-empty/expected.json @@ -57,11 +57,14 @@ "column": 20 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json index 5c0b3036c9..d328366be5 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifier/expected.json @@ -105,11 +105,14 @@ "column": 23 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json index 1dd153305f..fa924672aa 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers-comma/expected.json @@ -152,11 +152,14 @@ "column": 29 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json index afcf5e6751..4cffe066fd 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-named-specifiers/expected.json @@ -152,11 +152,14 @@ "column": 28 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json index 7a3783c90d..cdb990cbdc 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-namespace-specifier/expected.json @@ -89,11 +89,14 @@ "column": 26 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json index 166aaf0ed8..378e45b83b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-import-declaration/import-null-as-nil/expected.json @@ -105,11 +105,14 @@ "column": 33 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json index e61945111a..2d90f27140 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-lexical-declaration/migrated_0000/expected.json @@ -133,9 +133,11 @@ "column": 37 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], @@ -172,13 +174,16 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json index 29fd63476c..e964b38846 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json @@ -119,9 +119,11 @@ "column": 14 } }, - "value": "method", - "rawValue": "method", - "raw": "'method'" + "extra": { + "rawValue": "method", + "raw": "'method'" + }, + "value": "method" }, "kind": "init", "value": { @@ -156,7 +158,8 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -164,6 +167,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json index 7b7329bb7e..5c966843f4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:30)" -} \ No newline at end of file + "throws": "Redefinition of __proto__ property (1:20)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json index cbc444ce90..e19950ad14 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:32)" -} \ No newline at end of file + "throws": "Redefinition of __proto__ property (1:22)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json index 0c5f4deed6..a8b5ad2f5b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:24)" -} \ No newline at end of file + "throws": "Redefinition of __proto__ property (1:14)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json index 00b62a33f8..a8b5ad2f5b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:26)" -} \ No newline at end of file + "throws": "Redefinition of __proto__ property (1:14)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json index 0c5f4deed6..a8b5ad2f5b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:24)" -} \ No newline at end of file + "throws": "Redefinition of __proto__ property (1:14)" +} diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json index e61c4bc6c6..370894461a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json @@ -173,7 +173,8 @@ "column": 37 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -260,14 +261,18 @@ "column": 57 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json index 10aa2e429a..987143a14c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json @@ -173,14 +173,18 @@ "column": 37 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json index fb0485d90d..63dc917941 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json @@ -173,14 +173,18 @@ "column": 33 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json index b112cc6b98..70085edf6a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json @@ -190,14 +190,18 @@ "column": 38 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json index 3a347ec1c3..48f265cc99 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json @@ -88,9 +88,11 @@ "column": 14 } }, - "value": "__proto__", - "rawValue": "__proto__", - "raw": "\"__proto__\"" + "extra": { + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": "__proto__" }, "value": { "type": "NullLiteral", @@ -175,7 +177,8 @@ "column": 39 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -262,14 +265,18 @@ "column": 59 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json index ec071f8f38..c6bdefacea 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json @@ -88,9 +88,11 @@ "column": 14 } }, - "value": "__proto__", - "rawValue": "__proto__", - "raw": "\"__proto__\"" + "extra": { + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": "__proto__" }, "value": { "type": "NullLiteral", @@ -175,14 +177,18 @@ "column": 39 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json index a37ebb0e39..f414d0c2e1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json @@ -88,9 +88,11 @@ "column": 14 } }, - "value": "__proto__", - "rawValue": "__proto__", - "raw": "\"__proto__\"" + "extra": { + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": "__proto__" }, "value": { "type": "NullLiteral", @@ -175,14 +177,18 @@ "column": 35 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json index 5300afd3aa..501fa19f68 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json @@ -88,9 +88,11 @@ "column": 14 } }, - "value": "__proto__", - "rawValue": "__proto__", - "raw": "\"__proto__\"" + "extra": { + "rawValue": "__proto__", + "raw": "\"__proto__\"" + }, + "value": "__proto__" }, "value": { "type": "NullLiteral", @@ -192,14 +194,18 @@ "column": 40 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json index 28f02d871c..6b892f7870 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json @@ -139,14 +139,17 @@ "column": 12 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json index dd2b8aee4b..25c24eb32b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-for-lex/expected.json @@ -106,9 +106,11 @@ "column": 16 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "body": { "type": "EmptyStatement", @@ -126,6 +128,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json index 194a2277c7..82ed2b843a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-lexical/expected.json @@ -87,14 +87,17 @@ "column": 10 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json index cf2b1a4c73..c910a2d773 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/empty-var/expected.json @@ -87,14 +87,17 @@ "column": 10 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json index bcf6c6414e..2b2774d691 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json @@ -139,14 +139,17 @@ "column": 14 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json index e35d04f735..a7861a314f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json @@ -201,9 +201,11 @@ "column": 10 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } }, @@ -335,9 +337,11 @@ "column": 20 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "kind": "init" @@ -426,14 +430,17 @@ "column": 31 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json index 1e3d179cd6..bcf619d9dd 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0000/expected.json @@ -56,11 +56,14 @@ "column": 2 } }, - "value": 0, - "rawValue": 0, - "raw": "00" + "extra": { + "rawValue": 0, + "raw": "00" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json index ccdde2fe5f..8a021344bb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0001/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0o0" + "extra": { + "rawValue": 0, + "raw": "0o0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json index b8fdcdd6b2..aa7e6a2f80 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0002/expected.json @@ -76,39 +76,6 @@ } }, "body": [ - { - "type": "ExpressionStatement", - "start": 17, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "expression": { - "type": "StringLiteral", - "start": 17, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" - } - }, { "type": "ExpressionStatement", "start": 31, @@ -137,14 +104,54 @@ "column": 34 } }, - "value": 0, - "rawValue": 0, - "raw": "0o0" + "extra": { + "rawValue": 0, + "raw": "0o0" + }, + "value": 0 + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json index 58c5a75980..118b2f32c6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0003/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 2, - "rawValue": 2, - "raw": "0o2" + "extra": { + "rawValue": 2, + "raw": "0o2" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json index fc506965ec..5636575a62 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0004/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 10, - "rawValue": 10, - "raw": "0o12" + "extra": { + "rawValue": 10, + "raw": "0o12" + }, + "value": 10 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json index 0e4a704196..7c2c994467 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0005/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0O0" + "extra": { + "rawValue": 0, + "raw": "0O0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json index ed92c39059..306190058c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-octal-integer-literal/migrated_0006/expected.json @@ -76,39 +76,6 @@ } }, "body": [ - { - "type": "ExpressionStatement", - "start": 17, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "expression": { - "type": "StringLiteral", - "start": 17, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" - } - }, { "type": "ExpressionStatement", "start": 31, @@ -137,14 +104,54 @@ "column": 34 } }, - "value": 0, - "rawValue": 0, - "raw": "0O0" + "extra": { + "rawValue": 0, + "raw": "0O0" + }, + "value": 0 + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json index 7c3f550db9..0ec4f48337 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/call-spread-number/expected.json @@ -101,14 +101,17 @@ "column": 7 } }, - "value": 0.5, - "rawValue": 0.5, - "raw": ".5" + "extra": { + "rawValue": 0.5, + "raw": ".5" + }, + "value": 0.5 } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json index 0e3260dc1b..5022e9d8b6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-spread-element/new-spread-number/expected.json @@ -101,14 +101,17 @@ "column": 11 } }, - "value": 0.5, - "rawValue": 0.5, - "raw": ".5" + "extra": { + "rawValue": 0.5, + "raw": ".5" + }, + "value": 0.5 } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json index d70c83f48b..fc8eabf3ce 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json @@ -212,20 +212,24 @@ "column": 22 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "computed": true } } - ] + ], + "directives": [] } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json index 6257eab282..3afaacea6e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/escape-sequences/expected.json @@ -87,14 +87,17 @@ "column": 45 } }, - "value": "`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`", - "rawValue": "`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`", - "raw": "'`\\\\n\\\\r\\\\b\\\\v\\\\t\\\\f\\\\\\n\\\\\\r\\n`'" + "extra": { + "rawValue": "`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`", + "raw": "'`\\\\n\\\\r\\\\b\\\\v\\\\t\\\\f\\\\\\n\\\\\\r\\n`'" + }, + "value": "`\\n\\r\\b\\v\\t\\f\\\n\\\r\n`" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json index 8119243646..836d521625 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/line-terminators/expected.json @@ -87,14 +87,17 @@ "column": 23 } }, - "value": "`\n\r\n`", - "rawValue": "`\n\r\n`", - "raw": "'`\\n\\r\\n`'" + "extra": { + "rawValue": "`\n\r\n`", + "raw": "'`\\n\\r\\n`'" + }, + "value": "`\n\r\n`" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json index 84b416c9b8..1a1ed2bb2a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-template-literals/literal-escape-sequences/expected.json @@ -87,14 +87,17 @@ "column": 50 } }, - "value": "`\\u{000042}\\u0042\\x42\\u0\\A\\0`", - "rawValue": "`\\u{000042}\\u0042\\x42\\u0\\A\\0`", - "raw": "'`\\\\u{000042}\\\\u0042\\\\x42\\\\u0\\\\A\\\\0`'" + "extra": { + "rawValue": "`\\u{000042}\\u0042\\x42\\u0\\A\\0`", + "raw": "'`\\\\u{000042}\\\\u0042\\\\x42\\\\u0\\\\A\\\\0`'" + }, + "value": "`\\u{000042}\\u0042\\x42\\u0\\A\\0`" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json index 0ac274c801..c6f9f2ce0e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0000/expected.json @@ -87,14 +87,17 @@ "column": 35 } }, - "value": "\"\\u{714E}\\u{8336}\"", - "rawValue": "\"\\u{714E}\\u{8336}\"", - "raw": "'\"\\\\u{714E}\\\\u{8336}\"'" + "extra": { + "rawValue": "\"\\u{714E}\\u{8336}\"", + "raw": "'\"\\\\u{714E}\\\\u{8336}\"'" + }, + "value": "\"\\u{714E}\\u{8336}\"" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json index 319843f197..5c97440415 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0001/expected.json @@ -87,14 +87,17 @@ "column": 45 } }, - "value": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"", - "rawValue": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"", - "raw": "'\"\\\\u{20BB7}\\\\u{91CE}\\\\u{5BB6}\"'" + "extra": { + "rawValue": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"", + "raw": "'\"\\\\u{20BB7}\\\\u{91CE}\\\\u{5BB6}\"'" + }, + "value": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json index e2ea996f44..05e4851182 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-unicode-code-point-escape-sequence/migrated_0002/expected.json @@ -87,14 +87,17 @@ "column": 33 } }, - "value": "\"\\u{00000000034}\"", - "rawValue": "\"\\u{00000000034}\"", - "raw": "'\"\\\\u{00000000034}\"'" + "extra": { + "rawValue": "\"\\u{00000000034}\"", + "raw": "'\"\\\\u{00000000034}\"'" + }, + "value": "\"\\u{00000000034}\"" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/expected.json new file mode 100644 index 0000000000..9f91e65aeb --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 15, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 16, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "yield" + } + ] + }, + "right": { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "x" + }, + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/expected.json new file mode 100644 index 0000000000..3a47f7de3a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "yield" + } + ], + "body": { + "type": "NumberLiteral", + "start": 25, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/expected.json new file mode 100644 index 0000000000..e95af9ede1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-binding-element/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 14, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 18, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "ObjectPattern", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "properties": [ + { + "type": "Property", + "start": 20, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "name": "x" + }, + "value": { + "type": "Identifier", + "start": 23, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "yield" + }, + "kind": "init" + } + ] + }, + "init": { + "type": "Identifier", + "start": 33, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "foo" + } + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/expected.json new file mode 100644 index 0000000000..6dc10fb160 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-catch-parameter/expected.json @@ -0,0 +1,149 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "TryStatement", + "start": 14, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "block": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start": 21, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "param": { + "type": "Identifier", + "start": 28, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "yield" + }, + "body": { + "type": "BlockStatement", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [], + "directives": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/expected.json new file mode 100644 index 0000000000..376968b605 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-formal-parameter/expected.json @@ -0,0 +1,135 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 25, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "name": "yield" + } + ], + "body": { + "type": "BlockStatement", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/expected.json new file mode 100644 index 0000000000..9d4ab39950 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-lexical-declaration/expected.json @@ -0,0 +1,134 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 18, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "id": { + "type": "Identifier", + "start": 18, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "yield" + }, + "init": { + "type": "NumberLiteral", + "start": 26, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + ], + "kind": "let" + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/expected.json new file mode 100644 index 0000000000..61833fb65c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-rest-parameter/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "f" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "RestElement", + "start": 25, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "argument": { + "type": "Identifier", + "start": 28, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "yield" + } + } + ], + "body": { + "type": "BlockStatement", + "start": 35, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/expected.json new file mode 100644 index 0000000000..d34ac72f7a --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-variable-declaration/expected.json @@ -0,0 +1,117 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "VariableDeclaration", + "start": 14, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 18, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 18, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "yield" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json index 5a8f717350..7a4fbd86f6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-array-pattern/expected.json @@ -106,9 +106,12 @@ }, "name": "x" }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json index c1d8db8a5f..9c2f1fefbe 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-arrow-parameter-name/expected.json @@ -91,12 +91,15 @@ "column": 13 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json index be34ece5b3..72a06d9cce 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression-parameter/expected.json @@ -91,11 +91,15 @@ "column": 19 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json index 03c3926cb0..a2138f73ef 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-function-expression/expected.json @@ -89,11 +89,15 @@ "column": 19 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json index 9260f06278..dbe92db430 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json @@ -123,14 +123,18 @@ "column": 14 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json index 950f430f09..1b530aaaf0 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-lexical-declaration/expected.json @@ -87,14 +87,17 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json index 7a4f9cbf39..7ef2282cd6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json @@ -123,14 +123,18 @@ "column": 13 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json index b3a07a17aa..c48e078e6b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json @@ -28,39 +28,6 @@ }, "sourceType": "script", "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "expression": { - "type": "StringLiteral", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" - } - }, { "type": "VariableDeclaration", "start": 14, @@ -178,6 +145,43 @@ ], "kind": "var" } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } + } + } ] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json index dc762096f1..2773f3f558 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json @@ -28,39 +28,6 @@ }, "sourceType": "script", "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "expression": { - "type": "StringLiteral", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" - } - }, { "type": "ExpressionStatement", "start": 14, @@ -156,12 +123,52 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } } } ] diff --git a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json index 8adc9b67d6..e1846ee7d4 100644 --- a/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-additive/migrated_0002/expected.json @@ -70,9 +70,11 @@ "column": 12 } }, - "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" + "extra": { + "rawValue": "use strict", + "raw": "\"use strict\"" + }, + "value": "use strict" }, "operator": "+", "right": { @@ -89,12 +91,15 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json index 886a4c91ba..c55cb13771 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0000/expected.json @@ -87,12 +87,15 @@ "column": 6 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json index 087953e749..ccef73317a 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0001/expected.json @@ -87,12 +87,15 @@ "column": 9 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json index c40cefe77a..90279da775 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0002/expected.json @@ -87,12 +87,15 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json index 77c0b3f6fd..8c50cdf2f0 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0003/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json index 3ea5616140..6c210fd1b6 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0004/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json index 3bb965131c..2c333b70e1 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0005/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json index 623bec2d65..53c21fe4d6 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0006/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json index 169b55b357..abc4cb0406 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0007/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json index 395bbc5959..3c8c2893e8 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0008/expected.json @@ -87,12 +87,15 @@ "column": 8 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json index f2baaf2d7c..cfa8f98dfa 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0009/expected.json @@ -87,12 +87,15 @@ "column": 8 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json index 63767ff44b..ff6f9db71d 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0010/expected.json @@ -87,12 +87,15 @@ "column": 9 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json index 22bf53cf58..3719a7fafe 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0011/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json index 52cfe31685..84a3e7d56e 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0012/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json index 0cb0e23497..456765cc37 100644 --- a/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-assignment/migrated_0013/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json index 9252297ac7..0ae6562f5f 100644 --- a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0000/expected.json @@ -86,9 +86,11 @@ "column": 5 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "alternate": { "type": "NumberLiteral", @@ -104,12 +106,15 @@ "column": 9 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json index 6d0cf5e9ff..5f5e161e69 100644 --- a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0001/expected.json @@ -118,9 +118,11 @@ "column": 10 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "alternate": { "type": "NumberLiteral", @@ -136,12 +138,15 @@ "column": 14 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json index 9d2c4afc3f..bee8292533 100644 --- a/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-conditional/migrated_0002/expected.json @@ -101,10 +101,12 @@ "column": 6 } }, - "value": 0, - "rawValue": 0, - "raw": "0", - "parenthesizedExpression": true + "extra": { + "rawValue": 0, + "raw": "0", + "parenthesized": true + }, + "value": 0 }, "consequent": { "type": "NumberLiteral", @@ -120,9 +122,11 @@ "column": 11 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "alternate": { "type": "NumberLiteral", @@ -138,13 +142,16 @@ "column": 15 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json index a926bd6ac4..030722007d 100644 --- a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0000/expected.json @@ -84,10 +84,12 @@ "column": 2 } }, - "value": 1, - "rawValue": 1, - "raw": "1", - "parenthesizedExpression": true + "extra": { + "rawValue": 1, + "raw": "1", + "parenthesized": true + }, + "value": 1 }, "operator": "+", "right": { @@ -104,10 +106,12 @@ "column": 8 } }, - "value": 2, - "rawValue": 2, - "raw": "2", - "parenthesizedExpression": true + "extra": { + "rawValue": 2, + "raw": "2", + "parenthesized": true + }, + "value": 2 } }, "operator": "+", @@ -125,12 +129,15 @@ "column": 15 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json index efa51994a8..dfcea13c9a 100644 --- a/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-grouping/migrated_0001/expected.json @@ -84,9 +84,11 @@ "column": 1 } }, - "value": 4, - "rawValue": 4, - "raw": "4" + "extra": { + "rawValue": 4, + "raw": "4" + }, + "value": 4 }, "operator": "+", "right": { @@ -103,9 +105,11 @@ "column": 5 } }, - "value": 5, - "rawValue": 5, - "raw": "5" + "extra": { + "rawValue": 5, + "raw": "5" + }, + "value": 5 } }, "operator": "<<", @@ -123,13 +127,16 @@ "column": 11 } }, - "value": 6, - "rawValue": 6, - "raw": "6", - "parenthesizedExpression": true + "extra": { + "rawValue": 6, + "raw": "6", + "parenthesized": true + }, + "value": 6 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json index b353ef2c83..5e0c9c3c30 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0007/expected.json @@ -101,7 +101,9 @@ "name": "foo" }, "arguments": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "property": { "type": "Identifier", @@ -124,6 +126,7 @@ "arguments": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json index 6105d2841a..2a92530d73 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0009/expected.json @@ -71,11 +71,14 @@ } }, "name": "foo", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "arguments": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json index f26ab8b935..ec68a20ef6 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0015/expected.json @@ -100,9 +100,11 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "computed": true }, @@ -125,6 +127,7 @@ "computed": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json index 624c7b81b9..a7a9ccf384 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0016/expected.json @@ -101,9 +101,11 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] }, @@ -126,6 +128,7 @@ "computed": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json index 23d090fedc..c94c04107e 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0017/expected.json @@ -129,9 +129,11 @@ "column": 11 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } ] }, @@ -168,9 +170,11 @@ "column": 24 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 }, { "type": "NumberLiteral", @@ -186,9 +190,11 @@ "column": 27 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 }, { "type": "NumberLiteral", @@ -204,9 +210,11 @@ "column": 31 } }, - "value": 77, - "rawValue": 77, - "raw": "77" + "extra": { + "rawValue": 77, + "raw": "77" + }, + "value": 77 } ] }, @@ -229,6 +237,7 @@ "computed": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json index 080068549b..b7649d92f8 100644 --- a/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json +++ b/packages/babylon/test/fixtures/esprima/expression-left-hand-side/migrated_0018/expected.json @@ -183,13 +183,16 @@ "column": 44 } }, - "value": 2014, - "rawValue": 2014, - "raw": "2014" + "extra": { + "rawValue": 2014, + "raw": "2014" + }, + "value": 2014 } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/57/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/expected.json similarity index 50% rename from packages/babylon/test/fixtures/harmony/uncategorised/57/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/expected.json index 8dd4aace6c..49f6398459 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/57/expected.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0087/expected.json @@ -1,7 +1,7 @@ { "type": "File", "start": 0, - "end": 20, + "end": 31, "loc": { "start": { "line": 1, @@ -9,13 +9,13 @@ }, "end": { "line": 1, - "column": 20 + "column": 31 } }, "program": { "type": "Program", "start": 0, - "end": 20, + "end": 31, "loc": { "start": { "line": 1, @@ -23,15 +23,119 @@ }, "end": { "line": 1, - "column": 20 + "column": 31 } }, "sourceType": "script", "body": [ { "type": "ExpressionStatement", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "AssignmentPattern", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "left": { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + }, + "right": { + "type": "NumberLiteral", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "body": { + "type": "NumberLiteral", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", "start": 0, - "end": 20, + "end": 13, "loc": { "start": { "line": 1, @@ -39,13 +143,13 @@ }, "end": { "line": 1, - "column": 20 + "column": 13 } }, - "expression": { - "type": "ComprehensionExpression", + "value": { + "type": "DirectiveLiteral", "start": 0, - "end": 20, + "end": 12, "loc": { "start": { "line": 1, @@ -53,79 +157,13 @@ }, "end": { "line": 1, - "column": 20 + "column": 12 } }, - "blocks": [ - { - "type": "ComprehensionBlock", - "start": 1, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 1 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "left": { - "type": "Identifier", - "start": 6, - "end": 7, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 7 - } - }, - "name": "x" - }, - "right": { - "type": "Identifier", - "start": 11, - "end": 16, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 16 - } - }, - "name": "array" - } - } - ], - "filter": null, - "body": { - "type": "Identifier", - "start": 18, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "name": "x" - }, - "generator": false + "raw": "\"use strict\"", + "value": "use strict" } } ] - }, - "comments": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/expected.json new file mode 100644 index 0000000000..56900a141d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0088/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "eval" + } + ], + "body": { + "type": "NumberLiteral", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/expected.json new file mode 100644 index 0000000000..3382211829 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0089/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "NumberLiteral", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/expected.json new file mode 100644 index 0000000000..c06f39c9f0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0090/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + }, + { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "a" + } + ], + "body": { + "type": "NumberLiteral", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/expected.json new file mode 100644 index 0000000000..39df05159f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0091/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "arguments" + }, + { + "type": "Identifier", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "a" + } + ], + "body": { + "type": "NumberLiteral", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/expected.json new file mode 100644 index 0000000000..154fb56eab --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0094/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "a" + } + ], + "body": { + "type": "NumberLiteral", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": 0, + "rawValue": 0, + "raw": "00" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/expected.json new file mode 100644 index 0000000000..c444d65091 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0100/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + } + ], + "body": { + "type": "NumberLiteral", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/expected.json new file mode 100644 index 0000000000..4888c9e77c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0183/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 29, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "expression": { + "type": "UnaryExpression", + "start": 29, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "operator": "delete", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 36, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "i" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/expected.json new file mode 100644 index 0000000000..b5c7e063e3 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0184/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "expression": { + "type": "CallExpression", + "start": 1, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 1, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [ + { + "type": "WithStatement", + "start": 29, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "object": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "i" + }, + "body": { + "type": "EmptyStatement", + "start": 37, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 38 + } + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/expected.json new file mode 100644 index 0000000000..c791058a75 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0185/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 32, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 36, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "id": { + "type": "Identifier", + "start": 36, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "eval" + }, + "init": { + "type": "NumberLiteral", + "start": 43, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/expected.json new file mode 100644 index 0000000000..d516032ff0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0186/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 32, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 36, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 36, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "arguments" + }, + "init": { + "type": "NumberLiteral", + "start": 48, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/expected.json new file mode 100644 index 0000000000..25732f3422 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0187/expected.json @@ -0,0 +1,201 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ + { + "type": "TryStatement", + "start": 32, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "block": { + "type": "BlockStatement", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start": 40, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "param": { + "type": "Identifier", + "start": 47, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "eval" + }, + "body": { + "type": "BlockStatement", + "start": 53, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [], + "directives": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/expected.json new file mode 100644 index 0000000000..14e6af099e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0188/expected.json @@ -0,0 +1,201 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "TryStatement", + "start": 32, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "block": { + "type": "BlockStatement", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [], + "directives": [] + }, + "handler": { + "type": "CatchClause", + "start": 40, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "param": { + "type": "Identifier", + "start": 47, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "name": "arguments" + }, + "body": { + "type": "BlockStatement", + "start": 58, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 58 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "body": [], + "directives": [] + } + }, + "guardedHandlers": [], + "finalizer": null + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/expected.json new file mode 100644 index 0000000000..5df2fc7306 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0189/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 32, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "eval" + }, + "right": { + "type": "NumberLiteral", + "start": 39, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/expected.json new file mode 100644 index 0000000000..936555ec42 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0190/expected.json @@ -0,0 +1,184 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 32, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "arguments" + }, + "right": { + "type": "NumberLiteral", + "start": 44, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/expected.json new file mode 100644 index 0000000000..4a54d8d316 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0191/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/expected.json new file mode 100644 index 0000000000..0be9956ee7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0192/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/expected.json new file mode 100644 index 0000000000..3d5a3384b2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0193/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "++", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/expected.json new file mode 100644 index 0000000000..a129e39f7e --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0194/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "--", + "prefix": true, + "argument": { + "type": "Identifier", + "start": 34, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/expected.json new file mode 100644 index 0000000000..7c98807107 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0195/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/expected.json new file mode 100644 index 0000000000..7db69736d2 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0196/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "eval" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/expected.json new file mode 100644 index 0000000000..029e95d4fd --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0197/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "++", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/expected.json new file mode 100644 index 0000000000..fc9fb9e66f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0198/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "expression": { + "type": "UpdateExpression", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "operator": "--", + "prefix": false, + "argument": { + "type": "Identifier", + "start": 32, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "arguments" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/expected.json new file mode 100644 index 0000000000..416268fca0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0199/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 32, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "id": { + "type": "Identifier", + "start": 41, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 48, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/expected.json new file mode 100644 index 0000000000..aeae082c8b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0200/expected.json @@ -0,0 +1,170 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 32, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": { + "type": "Identifier", + "start": 41, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 53, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/expected.json new file mode 100644 index 0000000000..ae9e78153d --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0203/expected.json @@ -0,0 +1,204 @@ +{ + "type": "File", + "start": 0, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "expression": { + "type": "CallExpression", + "start": 33, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 33, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 49, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "body": [], + "directives": [] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/expected.json new file mode 100644 index 0000000000..dc709c3172 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0204/expected.json @@ -0,0 +1,204 @@ +{ + "type": "File", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "expression": { + "type": "CallExpression", + "start": 33, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "callee": { + "type": "FunctionExpression", + "start": 33, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "arguments" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [], + "directives": [] + } + }, + "arguments": [], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/expected.json new file mode 100644 index 0000000000..f6abe3ed03 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0207/expected.json @@ -0,0 +1,240 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "s" + }, + "value": { + "type": "FunctionExpression", + "start": 38, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": { + "type": "Identifier", + "start": 47, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 51 + } + }, + "name": "eval" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [], + "directives": [] + } + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/expected.json new file mode 100644 index 0000000000..c888aaf947 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0209/expected.json @@ -0,0 +1,295 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "i" + }, + "value": { + "type": "NumberLiteral", + "start": 38, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 42, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 46, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 46 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "s" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 47, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "body": [], + "directives": [] + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/expected.json new file mode 100644 index 0000000000..bebdcad342 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0210/expected.json @@ -0,0 +1,242 @@ +{ + "type": "File", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "s" + }, + "kind": "set", + "value": { + "type": "FunctionExpression", + "start": 40, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 41, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 47, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [], + "directives": [] + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/expected.json new file mode 100644 index 0000000000..d098c6d058 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0211/expected.json @@ -0,0 +1,257 @@ +{ + "type": "File", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 64, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 64 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 62, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 62 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 60, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 60 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "s" + }, + "value": { + "type": "FunctionExpression", + "start": 38, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 47, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "name": "s" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 49, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 55, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 55 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [], + "directives": [] + } + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/expected.json new file mode 100644 index 0000000000..8425a41fb7 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0214/expected.json @@ -0,0 +1,187 @@ +{ + "type": "File", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 58, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 58 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 33, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "inner" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/expected.json new file mode 100644 index 0000000000..bab5d19160 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0215/expected.json @@ -0,0 +1,187 @@ +{ + "type": "File", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 63, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 63 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 33, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "inner" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 48, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 48 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "BlockStatement", + "start": 59, + "end": 61, + "loc": { + "start": { + "line": 1, + "column": 59 + }, + "end": { + "line": 1, + "column": 61 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json index e68fbb6aec..91bbdfe83f 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0216/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:2)" -} \ No newline at end of file + "throws": "Octal literal in strict mode (1:1)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/expected.json new file mode 100644 index 0000000000..53489fbf1c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0217/expected.json @@ -0,0 +1,150 @@ +{ + "type": "File", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + }, + { + "type": "Directive", + "start": 33, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "raw": "\"\\1\"", + "value": "\\1" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/expected.json new file mode 100644 index 0000000000..29875fff43 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0218/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 33, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "expression": { + "type": "NumberLiteral", + "start": 33, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "value": 17, + "rawValue": 17, + "raw": "021" + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/expected.json new file mode 100644 index 0000000000..4e77a05f78 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0219/expected.json @@ -0,0 +1,209 @@ +{ + "type": "File", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 33, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 34, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "properties": [ + { + "type": "Property", + "start": 36, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "StringLiteral", + "start": 36, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "value": "\u0001", + "rawValue": "\u0001", + "raw": "\"\\1\"" + }, + "value": { + "type": "NumberLiteral", + "start": 42, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/expected.json new file mode 100644 index 0000000000..346e059e5f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0220/expected.json @@ -0,0 +1,209 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 33, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 34, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "properties": [ + { + "type": "Property", + "start": 36, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "NumberLiteral", + "start": 36, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "value": 17, + "rawValue": 17, + "raw": "021" + }, + "value": { + "type": "NumberLiteral", + "start": 41, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + }, + "kind": "init" + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json index aca079ee39..ae2bfab55c 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0221/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:20)" -} \ No newline at end of file + "throws": "Octal literal in strict mode (1:35)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json index aca079ee39..ae2bfab55c 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0222/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:20)" -} \ No newline at end of file + "throws": "Octal literal in strict mode (1:35)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/expected.json new file mode 100644 index 0000000000..9f10388176 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0223/expected.json @@ -0,0 +1,203 @@ +{ + "type": "File", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 76, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 76 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 33, + "end": 74, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 74 + } + }, + "id": { + "type": "Identifier", + "start": 42, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "inner" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 50, + "end": 74, + "loc": { + "start": { + "line": 1, + "column": 50 + }, + "end": { + "line": 1, + "column": 74 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 52, + "end": 72, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 72 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 52, + "end": 71, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 71 + } + }, + "raw": "\"octal directive\\1\"", + "value": "octal directive\\1" + } + } + ] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/expected.json new file mode 100644 index 0000000000..9e81efccd6 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0224/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "name": "implements" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/expected.json new file mode 100644 index 0000000000..09c95282b4 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0225/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "interface" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/expected.json new file mode 100644 index 0000000000..b5b1bf5fba --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0226/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "package" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/expected.json new file mode 100644 index 0000000000..bb397becf0 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0227/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "private" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/expected.json new file mode 100644 index 0000000000..14ef8d4896 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0228/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "protected" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/expected.json new file mode 100644 index 0000000000..e6e08fbf57 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0229/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "public" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/expected.json new file mode 100644 index 0000000000..a8f07d2a1b --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0230/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "static" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/expected.json new file mode 100644 index 0000000000..cbac229e7c --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0231/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "body": [ + { + "type": "VariableDeclaration", + "start": 33, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "declarations": [ + { + "type": "VariableDeclarator", + "start": 37, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "id": { + "type": "Identifier", + "start": 37, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "name": "yield" + }, + "init": null + } + ], + "kind": "var" + } + ], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/expected.json new file mode 100644 index 0000000000..e019755823 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0239/expected.json @@ -0,0 +1,118 @@ +{ + "type": "File", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "static" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 32, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/expected.json new file mode 100644 index 0000000000..51085f798f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0240/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 19, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 19, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/expected.json new file mode 100644 index 0000000000..97c6620ab1 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0243/expected.json @@ -0,0 +1,218 @@ +{ + "type": "File", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "body": [ + { + "type": "FunctionDeclaration", + "start": 29, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 38, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "name": "b" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 40, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 43, + "end": 44, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 44 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 46, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 46 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [], + "directives": [] + } + }, + { + "type": "EmptyStatement", + "start": 49, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 49 + }, + "end": { + "line": 1, + "column": 50 + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/expected.json new file mode 100644 index 0000000000..6b5bcf5c66 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0244/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 1, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "id": { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [], + "directives": [ + { + "type": "Directive", + "start": 20, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 20, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + }, + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/expected.json new file mode 100644 index 0000000000..636e4bc049 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0245/expected.json @@ -0,0 +1,221 @@ +{ + "type": "File", + "start": 0, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 29, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "expression": { + "type": "FunctionExpression", + "start": 30, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 39, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "name": "b" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 41, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 44, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 47, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [], + "directives": [] + }, + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/expected.json new file mode 100644 index 0000000000..fc69d156ec --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0249/expected.json @@ -0,0 +1,151 @@ +{ + "type": "File", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "t" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 25, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "name": "__proto__" + }, + { + "type": "Identifier", + "start": 36, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "name": "__proto__" + } + ], + "body": { + "type": "BlockStatement", + "start": 47, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json index 8bb9a5f99b..8df109cb3c 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:17)" -} \ No newline at end of file + "throws": "Classes may not have static property named prototype (1:16)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json index 8bb9a5f99b..8df109cb3c 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:17)" -} \ No newline at end of file + "throws": "Classes may not have static property named prototype (1:16)" +} diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json index 2a73699bc2..8a55b8365f 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:18)" -} \ No newline at end of file + "throws": "The keyword 'static' is reserved (1:17)" +} diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json index 15042df691..e27a473406 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0000/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -91,9 +89,11 @@ }, "label": null } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json index be48009734..930203bdfe 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0001/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json index 6c31c586d6..207d4cf4c5 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0002/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json index 650a39cbce..694def79b2 100644 --- a/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-break/migrated_0003/expected.json @@ -70,9 +70,7 @@ "column": 22 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "__proto__" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "__proto__" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json index 40763456b0..16edee2512 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0000/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -91,9 +89,11 @@ }, "label": null } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json index bfea074cf1..d58d0ffa9a 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0001/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -91,9 +89,11 @@ }, "label": null } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json index f43031468c..3d3611769c 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0002/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json index 3b684f46cb..e2eede95cf 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0003/expected.json @@ -70,9 +70,7 @@ "column": 17 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "done" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "done" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json index 6c809ee4ec..076d4478b5 100644 --- a/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-continue/migrated_0004/expected.json @@ -70,9 +70,7 @@ "column": 22 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BlockStatement", @@ -120,7 +118,8 @@ "name": "__proto__" } } - ] + ], + "directives": [] } }, "label": { @@ -140,6 +139,7 @@ "name": "__proto__" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json index 5456f44f4a..03f4a58cb3 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0002/expected.json @@ -87,14 +87,17 @@ "column": 22 } }, - "value": "\\u0061", - "rawValue": "\\u0061", - "raw": "'\\\\u0061'" + "extra": { + "rawValue": "\\u0061", + "raw": "'\\\\u0061'" + }, + "value": "\\u0061" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json index 93af56eb06..d292e2317d 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0003/expected.json @@ -87,14 +87,17 @@ "column": 23 } }, - "value": "a\\u0061", - "rawValue": "a\\u0061", - "raw": "'a\\\\u0061'" + "extra": { + "rawValue": "a\\u0061", + "raw": "'a\\\\u0061'" + }, + "value": "a\\u0061" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json index ddf30e2b43..58b1ca21f8 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0004/expected.json @@ -87,14 +87,17 @@ "column": 23 } }, - "value": "\\u0061a", - "rawValue": "\\u0061a", - "raw": "'\\\\u0061a'" + "extra": { + "rawValue": "\\u0061a", + "raw": "'\\\\u0061a'" + }, + "value": "\\u0061a" } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json index eee513b5d0..b9ab7766f2 100644 --- a/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-expression/migrated_0005/expected.json @@ -87,14 +87,17 @@ "column": 24 } }, - "value": "\\u0061a ", - "rawValue": "\\u0061a ", - "raw": "'\\\\u0061a '" + "extra": { + "rawValue": "\\u0061a ", + "raw": "'\\\\u0061a '" + }, + "value": "\\u0061a " } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json index 97e2c0b335..640c5691c2 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0001/expected.json @@ -104,13 +104,17 @@ "column": 26 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } }, "alternate": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json index 086e802703..02fd006838 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0002/expected.json @@ -117,9 +117,11 @@ "column": 22 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ }, "alternate": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json index 07468bf95b..baa36356a5 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0005/expected.json @@ -56,9 +56,7 @@ "column": 8 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "consequent": { "type": "ExpressionStatement", @@ -123,6 +121,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json index 828179ffc2..2f9b5c6964 100644 --- a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-if/migrated_0006/expected.json @@ -56,9 +56,7 @@ "column": 8 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "consequent": { "type": "ExpressionStatement", @@ -123,6 +121,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json index 298c6ed2b8..52f64a4d6b 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0000/expected.json @@ -103,11 +103,10 @@ "column": 22 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json index cf9db0e4fd..04998adb58 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0001/expected.json @@ -103,11 +103,10 @@ "column": 22 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json index 3bd687b08d..8e9ac0c09e 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0002/expected.json @@ -153,7 +153,8 @@ } } } - ] + ], + "directives": [] }, "test": { "type": "BinaryExpression", @@ -200,12 +201,15 @@ "column": 30 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json index 7666f67d1b..d9bf919d8c 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0003/expected.json @@ -71,7 +71,8 @@ "column": 8 } }, - "body": [] + "body": [], + "directives": [] }, "test": { "type": "BooleanLiteral", @@ -87,9 +88,7 @@ "column": 21 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } }, { @@ -120,13 +119,13 @@ "column": 28 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } } - ] + ], + "directives": [] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json index 033f8a99dd..746642c0a5 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0004/expected.json @@ -103,11 +103,10 @@ "column": 21 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json index ff791459e4..5019d62edd 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0005/expected.json @@ -103,11 +103,10 @@ "column": 12 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json index b68c4e6106..b154f386f7 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0006/expected.json @@ -56,9 +56,7 @@ "column": 11 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "ExpressionStatement", @@ -108,6 +106,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json index c7381370ab..0ca7f0f400 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0007/expected.json @@ -87,9 +87,11 @@ "column": 13 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } }, "body": { @@ -203,9 +205,11 @@ } } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json index f45ca7088d..3b790cdecf 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0010/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": null, @@ -110,6 +112,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json index 6640f73295..e7c1db4ec7 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0011/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json index e10d00d731..c6da62d7c5 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0012/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } ], @@ -127,6 +129,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json index 61391fdd9f..eacbe24384 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0013/expected.json @@ -101,9 +101,11 @@ "column": 13 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, { @@ -150,9 +152,11 @@ "column": 20 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -176,6 +180,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json index fb76721dce..7f485aaf19 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0014/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": { @@ -137,9 +139,11 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "update": null, @@ -159,6 +163,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json index f826f885de..0c6bf2a092 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0015/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": { @@ -137,9 +139,11 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "update": { @@ -191,6 +195,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json index 16f684a226..586cbf67f5 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0016/expected.json @@ -87,9 +87,11 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } }, "test": { @@ -137,9 +139,11 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "update": { @@ -240,6 +244,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js deleted file mode 100644 index 406a3a3c22..0000000000 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0019/actual.js +++ /dev/null @@ -1 +0,0 @@ -for (var x = 42 in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js deleted file mode 100644 index e10579bece..0000000000 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/actual.js +++ /dev/null @@ -1 +0,0 @@ -for (var a = b = c = (d in e) in z); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json deleted file mode 100644 index f08be47cf5..0000000000 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0022/expected.json +++ /dev/null @@ -1,241 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ForInStatement", - "start": 0, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "left": { - "type": "VariableDeclaration", - "start": 5, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "declarations": [ - { - "type": "VariableDeclarator", - "start": 9, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "id": { - "type": "Identifier", - "start": 9, - "end": 10, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 10 - } - }, - "name": "a" - }, - "init": { - "type": "AssignmentExpression", - "start": 13, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 13, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "name": "b" - }, - "right": { - "type": "AssignmentExpression", - "start": 17, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 17, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "name": "c" - }, - "right": { - "type": "BinaryExpression", - "start": 22, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "left": { - "type": "Identifier", - "start": 22, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "name": "d" - }, - "operator": "in", - "right": { - "type": "Identifier", - "start": 27, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "name": "e" - }, - "parenthesizedExpression": true - } - } - } - } - ], - "kind": "var" - }, - "right": { - "type": "Identifier", - "start": 33, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "name": "z" - }, - "body": { - "type": "EmptyStatement", - "start": 35, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 35 - }, - "end": { - "line": 1, - "column": 36 - } - } - } - } - ] - } -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js deleted file mode 100644 index dbbe45041a..0000000000 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/actual.js +++ /dev/null @@ -1 +0,0 @@ -for (var i = function() { return 10 in [] } in list) process(x); diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json deleted file mode 100644 index b0f5f0232d..0000000000 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0023/expected.json +++ /dev/null @@ -1,278 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ForInStatement", - "start": 0, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "left": { - "type": "VariableDeclaration", - "start": 5, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "declarations": [ - { - "type": "VariableDeclarator", - "start": 9, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "id": { - "type": "Identifier", - "start": 9, - "end": 10, - "loc": { - "start": { - "line": 1, - "column": 9 - }, - "end": { - "line": 1, - "column": 10 - } - }, - "name": "i" - }, - "init": { - "type": "FunctionExpression", - "start": 13, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 24, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "body": [ - { - "type": "ReturnStatement", - "start": 26, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 26 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "argument": { - "type": "BinaryExpression", - "start": 33, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "left": { - "type": "Literal", - "start": 33, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "value": 10, - "rawValue": 10, - "raw": "10" - }, - "operator": "in", - "right": { - "type": "ArrayExpression", - "start": 39, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 39 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "elements": [] - } - } - } - ] - } - } - } - ], - "kind": "var" - }, - "right": { - "type": "Identifier", - "start": 47, - "end": 51, - "loc": { - "start": { - "line": 1, - "column": 47 - }, - "end": { - "line": 1, - "column": 51 - } - }, - "name": "list" - }, - "body": { - "type": "ExpressionStatement", - "start": 53, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "expression": { - "type": "CallExpression", - "start": 53, - "end": 63, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 63 - } - }, - "callee": { - "type": "Identifier", - "start": 53, - "end": 60, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 60 - } - }, - "name": "process" - }, - "arguments": [ - { - "type": "Identifier", - "start": 61, - "end": 62, - "loc": { - "start": { - "line": 1, - "column": 61 - }, - "end": { - "line": 1, - "column": 62 - } - }, - "name": "x" - } - ] - } - } - } - ] - } -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json index f06c613c23..1f99f8deed 100644 --- a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0025/expected.json @@ -151,9 +151,11 @@ "column": 16 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "computed": true }, @@ -189,6 +191,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json index c4f9e0e386..5157602658 100644 --- a/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-labelled/migrated_0001/expected.json @@ -70,9 +70,7 @@ "column": 18 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "body": { "type": "BreakStatement", @@ -123,6 +121,7 @@ "name": "start" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json index 3f86692dc7..3811851cf2 100644 --- a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0000/expected.json @@ -91,11 +91,15 @@ }, "argument": null } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json index f66370e4d6..cfc30f8e34 100644 --- a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0001/expected.json @@ -91,11 +91,15 @@ }, "argument": null } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json index 864565296e..7e253235fc 100644 --- a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0002/expected.json @@ -106,11 +106,15 @@ "name": "x" } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json index 9c0041eb71..d4f71c39ad 100644 --- a/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-return/migrated_0003/expected.json @@ -138,11 +138,15 @@ } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json index 9758d61707..6251d143ae 100644 --- a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0001/expected.json @@ -152,13 +152,16 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json index 7400509d5f..96908f65a6 100644 --- a/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-switch/migrated_0002/expected.json @@ -152,9 +152,11 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, { @@ -193,6 +195,7 @@ } ] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json index dc9afaed76..0ddcce0c63 100644 --- a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json @@ -104,15 +104,18 @@ "column": 24 } }, - "value": "Error", - "rawValue": "Error", - "raw": "\"Error\"" + "extra": { + "rawValue": "Error", + "raw": "\"Error\"" + }, + "value": "Error" }, "kind": "init" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json index 746c634e18..1050401744 100644 --- a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0002/expected.json @@ -87,14 +87,17 @@ "column": 10 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json index e88bd0e0af..a1ed3e4b37 100644 --- a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0003/expected.json @@ -87,9 +87,11 @@ "column": 13 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, { @@ -136,14 +138,17 @@ "column": 29 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json index f0f1cc157c..db6e0fba4c 100644 --- a/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-variable/migrated_0004/expected.json @@ -87,9 +87,11 @@ "column": 10 } }, - "value": 14, - "rawValue": 14, - "raw": "14" + "extra": { + "rawValue": 14, + "raw": "14" + }, + "value": 14 } }, { @@ -136,9 +138,11 @@ "column": 17 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } }, { @@ -185,14 +189,17 @@ "column": 27 } }, - "value": 1977, - "rawValue": 1977, - "raw": "1977" + "extra": { + "rawValue": 1977, + "raw": "1977" + }, + "value": 1977 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/async-functions/options.json b/packages/babylon/test/fixtures/experimental/async-functions/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/async-functions/options.json +++ b/packages/babylon/test/fixtures/experimental/async-functions/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json b/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json index 1793ef0b6f..26dffdc586 100644 --- a/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json +++ b/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json @@ -170,9 +170,11 @@ "column": 38 } }, - "value": "../lang/task", - "rawValue": "../lang/task", - "raw": "'../lang/task'" + "extra": { + "rawValue": "../lang/task", + "raw": "'../lang/task'" + }, + "value": "../lang/task" } ] } @@ -180,6 +182,7 @@ ], "kind": "const" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json index 306cf66aef..a9e67765ef 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json @@ -124,7 +124,7 @@ } }, { - "type": "SpreadProperty", + "type": "RestProperty", "start": 8, "end": 12, "loc": { @@ -176,6 +176,7 @@ ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json index 7fd805ebbe..4de042a697 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/10/options.json @@ -1,5 +1,3 @@ { - "features": { - "objectRestSpread": true - } + "plugins": ["objectRestSpread"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json index 4507ca2447..5da577c081 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json @@ -127,7 +127,7 @@ } }, { - "type": "SpreadProperty", + "type": "RestProperty", "start": 14, "end": 18, "loc": { @@ -174,11 +174,15 @@ "column": 24 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json index 7fd805ebbe..4de042a697 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/11/options.json @@ -1,5 +1,3 @@ { - "features": { - "objectRestSpread": true - } + "plugins": ["objectRestSpread"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json index 7fd805ebbe..4de042a697 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/12/options.json @@ -1,5 +1,3 @@ { - "features": { - "objectRestSpread": true - } + "plugins": ["objectRestSpread"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json index 7fd805ebbe..4de042a697 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/13/options.json @@ -1,5 +1,3 @@ { - "features": { - "objectRestSpread": true - } + "plugins": ["objectRestSpread"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json index 1002fb1e60..de5cd3bace 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json @@ -273,9 +273,12 @@ } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json index 7fd805ebbe..4de042a697 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/14/options.json @@ -1,5 +1,3 @@ { - "features": { - "objectRestSpread": true - } + "plugins": ["objectRestSpread"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json index 2ba4efc5eb..080411a1bd 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/15/options.json @@ -1,6 +1,4 @@ { - "features": { - "asyncFunctions": true - }, + "plugins": ["asyncFunctions"], "throws": "Unexpected token (1:30)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json index 60befbb037..ebda253376 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/16/options.json @@ -1,6 +1,4 @@ { - "features": { - "asyncFunctions": true - }, + "plugins": ["asyncFunctions"], "throws": "Unexpected token (2:4)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/17/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/17/expected.json index 4a9da1d79e..519910a604 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/17/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/17/expected.json @@ -91,7 +91,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [], "body": { "type": "BlockStatement", @@ -107,9 +106,11 @@ "column": 17 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/17/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/18/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json index 954665acdb..eb899c91ea 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/19/expected.json @@ -189,14 +189,19 @@ } } } - ] + ], + "directives": [] } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/19/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/20/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json index 99ba85f172..d6700e7b80 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json @@ -135,9 +135,11 @@ "column": 14 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "kind": "init" }, @@ -273,7 +275,8 @@ } } } - ] + ], + "directives": [] } } } @@ -283,6 +286,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/21/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/22/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/23/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/25/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json index 8ee2fcb4e1..c39596f9e3 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/26/expected.json @@ -134,9 +134,11 @@ "column": 12 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, { "type": "NumberLiteral", @@ -152,9 +154,11 @@ "column": 15 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } ] }, @@ -177,6 +181,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/26/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/27/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json index 882187725b..19adb39a8e 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/28/expected.json @@ -59,7 +59,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "body": { "type": "BlockStatement", @@ -185,17 +184,23 @@ "column": 35 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/28/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json index 8b5de05d88..169869cbf6 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json @@ -124,7 +124,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "body": { "type": "BlockStatement", @@ -140,13 +139,15 @@ "column": 23 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/29/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json index b292c27d73..d6362bdbed 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/3/expected.json @@ -87,12 +87,15 @@ "column": 7 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json index 41c7f66605..d01676b6ba 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/3/options.json @@ -1,5 +1,3 @@ { - "features": { - "exponentiationOperator": true - } + "plugins": ["exponentiationOperator"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json index 3f7882d5fb..60fc936189 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json @@ -134,9 +134,11 @@ "column": 25 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" }, "kind": "init" } @@ -146,6 +148,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/30/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json index a05229ee4e..55dbd1960c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json @@ -154,7 +154,8 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -164,6 +165,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json index 01e1b60e6b..7bbe8c30f5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/31/options.json @@ -1,5 +1,3 @@ { - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json index 8958d766f8..87a4cd6baf 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/32/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "features": { - "asyncFunctions": true - } + "plugins": ["asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/33/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/34/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/35/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/36/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/37/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/38/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json index 10b9a29f22..da6ab2aeb4 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json @@ -183,9 +183,11 @@ "column": 22 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" }, "kind": "init" } @@ -260,6 +262,7 @@ "body": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/39/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json index 3487223172..43b7675cb2 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/4/expected.json @@ -101,9 +101,11 @@ "column": 15 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, "operator": "**", "right": { @@ -120,15 +122,18 @@ "column": 20 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json index 41c7f66605..d01676b6ba 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/4/options.json @@ -1,5 +1,3 @@ { - "features": { - "exponentiationOperator": true - } + "plugins": ["exponentiationOperator"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/40/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json index b433f712de..935ac72894 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/41/options.json @@ -1,6 +1,4 @@ { - "features": { - "decorators": true - }, + "plugins": ["decorators"], "throws": "Leading decorators must be attached to a class declaration (1:5)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json index 821f4be393..ec1974dcf0 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/42/options.json @@ -1,6 +1,4 @@ { - "features": { - "decorators": true - }, + "plugins": ["decorators"], "throws": "You have trailing decorators with no method (1:18)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json index fdf472db55..f1956ad133 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/43/expected.json @@ -120,14 +120,17 @@ "column": 23 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json index bbe898f093..9c27576d4a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/43/options.json @@ -1,5 +1,3 @@ { - "features": { - "classProperties": true - } + "plugins": ["classProperties"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json index bbe898f093..9c27576d4a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/44/options.json @@ -1,5 +1,3 @@ { - "features": { - "classProperties": true - } + "plugins": ["classProperties"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json index bbe898f093..9c27576d4a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/45/options.json @@ -1,5 +1,3 @@ { - "features": { - "classProperties": true - } + "plugins": ["classProperties"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json index 9035cd541b..ade2f517c1 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/46/expected.json @@ -120,14 +120,17 @@ "column": 30 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json index bbe898f093..9c27576d4a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/46/options.json @@ -1,5 +1,3 @@ { - "features": { - "classProperties": true - } + "plugins": ["classProperties"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json index 529bbb3a16..e13785eb68 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/47/expected.json @@ -153,14 +153,17 @@ "column": 28 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json index 860a7f5c18..4d015e4fbf 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/47/options.json @@ -1,6 +1,6 @@ { - "features": { - "classProperties": true, - "decorators": true - } + "plugins": [ + "classProperties", + "decorators" + ] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json index 0a295b8d9b..9f756cd6cb 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/48/expected.json @@ -153,14 +153,17 @@ "column": 35 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json index 860a7f5c18..4d015e4fbf 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/48/options.json @@ -1,6 +1,6 @@ { - "features": { - "classProperties": true, - "decorators": true - } + "plugins": [ + "classProperties", + "decorators" + ] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json index 1017436d55..0ca312dba2 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json @@ -168,9 +168,11 @@ "column": 27 } }, - "value": "wow", - "rawValue": "wow", - "raw": "'wow'" + "extra": { + "rawValue": "wow", + "raw": "'wow'" + }, + "value": "wow" }, "kind": "init" } @@ -180,6 +182,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/49/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json index 8a1368ec93..a90eceb9de 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/5/expected.json @@ -70,9 +70,11 @@ "column": 1 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, "operator": "**", "right": { @@ -103,9 +105,11 @@ "column": 7 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 }, "operator": "**", "right": { @@ -122,14 +126,19 @@ "column": 12 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json index 41c7f66605..d01676b6ba 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/5/options.json @@ -1,5 +1,3 @@ { - "features": { - "exponentiationOperator": true - } + "plugins": ["exponentiationOperator"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json index 982de0b582..c901163da6 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/50/expected.json @@ -136,11 +136,14 @@ "column": 30 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json index 0f9c04fc1c..9ca434c7ad 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/50/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "features": { - "exportExtensions": true - } + "plugins": ["exportExtensions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json index 6c2099d8f6..cf777d23e3 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/51/expected.json @@ -136,11 +136,14 @@ "column": 35 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json index 0f9c04fc1c..9ca434c7ad 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/51/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "features": { - "exportExtensions": true - } + "plugins": ["exportExtensions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json index c0646aafb4..56f6998476 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/52/expected.json @@ -89,11 +89,14 @@ "column": 21 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json index 0f9c04fc1c..9ca434c7ad 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/52/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "features": { - "exportExtensions": true - } + "plugins": ["exportExtensions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json index 1b94aadbe9..8e1fc31aea 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/53/expected.json @@ -89,11 +89,14 @@ "column": 25 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json index 0f9c04fc1c..9ca434c7ad 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/53/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "features": { - "exportExtensions": true - } + "plugins": ["exportExtensions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json index e7128ee647..90607f31ac 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/54/expected.json @@ -89,11 +89,14 @@ "column": 26 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json index 0f9c04fc1c..9ca434c7ad 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/54/options.json @@ -1,6 +1,4 @@ { "sourceType": "module", - "features": { - "exportExtensions": true - } + "plugins": ["exportExtensions"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json index 4935b2fec0..1616be3690 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/55/expected.json @@ -103,9 +103,11 @@ "column": 10 } }, - "value": "=", - "rawValue": "=", - "raw": "'='" + "extra": { + "rawValue": "=", + "raw": "'='" + }, + "value": "=" }, { "type": "NumberLiteral", @@ -121,13 +123,16 @@ "column": 13 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json index 5e058ad445..f0d10aef27 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/55/options.json @@ -1,5 +1,3 @@ { - "features": { - "trailingFunctionCommas": true - } + "plugins": ["trailingFunctionCommas"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json index 5e058ad445..f0d10aef27 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/56/options.json @@ -1,5 +1,3 @@ { - "features": { - "trailingFunctionCommas": true - } + "plugins": ["trailingFunctionCommas"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json index 5e058ad445..f0d10aef27 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/57/options.json @@ -1,5 +1,3 @@ { - "features": { - "trailingFunctionCommas": true - } + "plugins": ["trailingFunctionCommas"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json index 9cf1dfe1ed..e6a73fb255 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/58/expected.json @@ -107,12 +107,15 @@ "column": 13 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json index 5e058ad445..f0d10aef27 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/58/options.json @@ -1,5 +1,3 @@ { - "features": { - "trailingFunctionCommas": true - } + "plugins": ["trailingFunctionCommas"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json index 62be2d0a68..3c571eea7a 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/59/options.json @@ -1,6 +1,4 @@ { - "features": { - "trailingFunctionCommas": true - }, + "plugins": ["trailingFunctionCommas"], "throws": "Unexpected token (1:4)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json index c0f4e3fb97..755abf8daa 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/6/expected.json @@ -70,9 +70,11 @@ "column": 1 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, "operator": "**", "right": { @@ -103,9 +105,11 @@ "column": 6 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 }, "operator": "**", "right": { @@ -122,13 +126,16 @@ "column": 11 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json index 41c7f66605..d01676b6ba 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/6/options.json @@ -1,5 +1,3 @@ { - "features": { - "exponentiationOperator": true - } + "plugins": ["exponentiationOperator"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json index 01d373f173..8615cfcc03 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/60/options.json @@ -1,6 +1,4 @@ { - "features": { - "trailingFunctionCommas": true - }, + "plugins": ["trailingFunctionCommas"], "throws": "Unexpected token (1:13)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json index 26872c0003..7c23acbd30 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/61/options.json @@ -1,6 +1,4 @@ { - "features": { - "trailingFunctionCommas": true - }, + "plugins": ["trailingFunctionCommas"], "throws": "Unexpected token (1:7)" } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json index 2a3b127804..d760b0afda 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/62/options.json @@ -1,5 +1,3 @@ { - "features": { - "decorators": true - } + "plugins": ["decorators"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json index a2a7cb100c..b07c383c1c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/7/expected.json @@ -84,9 +84,11 @@ "column": 2 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, "operator": "**", "right": { @@ -119,12 +121,16 @@ "column": 8 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "operator": "*", "right": { @@ -141,12 +147,15 @@ "column": 13 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json index 41c7f66605..d01676b6ba 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/7/options.json @@ -1,5 +1,3 @@ { - "features": { - "exponentiationOperator": true - } + "plugins": ["exponentiationOperator"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json index adb1668c02..71d29e12cf 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/8/expected.json @@ -84,9 +84,11 @@ "column": 1 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, "operator": "**", "right": { @@ -119,9 +121,11 @@ "column": 7 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } }, @@ -140,12 +144,15 @@ "column": 11 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json index 41c7f66605..d01676b6ba 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/8/options.json @@ -1,5 +1,3 @@ { - "features": { - "exponentiationOperator": true - } + "plugins": ["exponentiationOperator"] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/9/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/9/expected.json index f1dfa90a4f..5ee0540170 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/9/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/9/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "SpreadProperty", + "type": "RestProperty", "start": 5, "end": 9, "loc": { @@ -125,6 +125,7 @@ ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json index 7fd805ebbe..4de042a697 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/9/options.json @@ -1,5 +1,3 @@ { - "features": { - "objectRestSpread": true - } + "plugins": ["objectRestSpread"] } diff --git a/packages/babylon/test/fixtures/flow/bounded-polymorphism/2/expected.json b/packages/babylon/test/fixtures/flow/bounded-polymorphism/2/expected.json index 8231ece78f..78dc7a10ed 100644 --- a/packages/babylon/test/fixtures/flow/bounded-polymorphism/2/expected.json +++ b/packages/babylon/test/fixtures/flow/bounded-polymorphism/2/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 12, @@ -154,10 +153,11 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/declare-module/2/expected.json b/packages/babylon/test/fixtures/flow/declare-module/2/expected.json index 4b8d16c85b..887e105b6e 100644 --- a/packages/babylon/test/fixtures/flow/declare-module/2/expected.json +++ b/packages/babylon/test/fixtures/flow/declare-module/2/expected.json @@ -56,9 +56,11 @@ "column": 25 } }, - "value": "./a/b.js", - "rawValue": "./a/b.js", - "raw": "\"./a/b.js\"" + "extra": { + "rawValue": "./a/b.js", + "raw": "\"./a/b.js\"" + }, + "value": "./a/b.js" }, "body": { "type": "BlockStatement", @@ -77,6 +79,7 @@ "body": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/number-binary/expected.json b/packages/babylon/test/fixtures/flow/literal-types/number-binary/expected.json index 2f19c09446..2f0fde7e23 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/number-binary/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/number-binary/expected.json @@ -101,8 +101,10 @@ } }, "value": 123, - "rawValue": 123, - "raw": "0b1111011" + "extra": { + "rawValue": 123, + "raw": "0b1111011" + } } } }, @@ -111,7 +113,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/number-float/expected.json b/packages/babylon/test/fixtures/flow/literal-types/number-float/expected.json index 6724acbc50..3b07b2d152 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/number-float/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/number-float/expected.json @@ -101,8 +101,10 @@ } }, "value": 123, - "rawValue": 123, - "raw": "123.0" + "extra": { + "rawValue": 123, + "raw": "123.0" + } } } }, @@ -111,7 +113,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/number-integer/expected.json b/packages/babylon/test/fixtures/flow/literal-types/number-integer/expected.json index cda39f4468..dd2263c75e 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/number-integer/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/number-integer/expected.json @@ -101,8 +101,10 @@ } }, "value": 123, - "rawValue": 123, - "raw": "123" + "extra": { + "rawValue": 123, + "raw": "123" + } } } }, @@ -111,7 +113,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/number-octal-2/expected.json b/packages/babylon/test/fixtures/flow/literal-types/number-octal-2/expected.json index 87d29f96e7..f57f036c6e 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/number-octal-2/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/number-octal-2/expected.json @@ -101,8 +101,10 @@ } }, "value": 123, - "rawValue": 123, - "raw": "0o173" + "extra": { + "rawValue": 123, + "raw": "0o173" + } } } }, @@ -111,7 +113,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/number-octal/expected.json b/packages/babylon/test/fixtures/flow/literal-types/number-octal/expected.json index 43a7969885..bd69b4d140 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/number-octal/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/number-octal/expected.json @@ -101,8 +101,10 @@ } }, "value": 123, - "rawValue": 123, - "raw": "0x7B" + "extra": { + "rawValue": 123, + "raw": "0x7B" + } } } }, @@ -111,7 +113,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/string-double/expected.json b/packages/babylon/test/fixtures/flow/literal-types/string-double/expected.json index 45f4f80820..75c50aa13a 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/string-double/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/string-double/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -106,8 +105,10 @@ } }, "value": "div", - "rawValue": "div", - "raw": "\"div\"" + "extra": { + "rawValue": "div", + "raw": "\"div\"" + } } } } @@ -173,10 +174,11 @@ "column": 57 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/literal-types/string-single/expected.json b/packages/babylon/test/fixtures/flow/literal-types/string-single/expected.json index c231dace04..e168fb2f91 100644 --- a/packages/babylon/test/fixtures/flow/literal-types/string-single/expected.json +++ b/packages/babylon/test/fixtures/flow/literal-types/string-single/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -106,8 +105,10 @@ } }, "value": "div", - "rawValue": "div", - "raw": "'div'" + "extra": { + "rawValue": "div", + "raw": "'div'" + } } } } @@ -173,10 +174,11 @@ "column": 57 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/options.json b/packages/babylon/test/fixtures/flow/options.json index 05a90ee573..1844b1df3c 100644 --- a/packages/babylon/test/fixtures/flow/options.json +++ b/packages/babylon/test/fixtures/flow/options.json @@ -1,5 +1,4 @@ { "sourceType": "module", - "plugins": { "jsx": true, "flow": true }, - "features": { "asyncFunctions": true } + "plugins": ["jsx", "flow", "asyncFunctions"] } diff --git a/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json b/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json index b6f6514238..f56868b0ee 100644 --- a/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json +++ b/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json @@ -124,7 +124,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "body": { "type": "BlockStatement", @@ -169,9 +168,11 @@ "column": 13 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, "cases": [ { @@ -300,12 +301,15 @@ }, "computed": false }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } ] } - ] + ], + "directives": [] } } }, @@ -359,7 +363,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "body": { "type": "BlockStatement", @@ -449,11 +452,15 @@ "column": 23 } }, - "value": 4, - "rawValue": 4, - "raw": "4" + "extra": { + "rawValue": 4, + "raw": "4" + }, + "value": 4 }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "operator": "|", "right": { @@ -475,13 +482,15 @@ }, "cases": [] } - ] + ], + "directives": [] } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/tuples/3/expected.json b/packages/babylon/test/fixtures/flow/tuples/3/expected.json index 21c02d7040..0febab6ded 100644 --- a/packages/babylon/test/fixtures/flow/tuples/3/expected.json +++ b/packages/babylon/test/fixtures/flow/tuples/3/expected.json @@ -149,9 +149,11 @@ "column": 24 } }, - "value": 123, - "rawValue": 123, - "raw": "123" + "extra": { + "rawValue": 123, + "raw": "123" + }, + "value": 123 } ] } @@ -159,6 +161,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/tuples/4/expected.json b/packages/babylon/test/fixtures/flow/tuples/4/expected.json index 17eb3accf4..4834619f1a 100644 --- a/packages/babylon/test/fixtures/flow/tuples/4/expected.json +++ b/packages/babylon/test/fixtures/flow/tuples/4/expected.json @@ -164,9 +164,11 @@ "column": 31 } }, - "value": 123, - "rawValue": 123, - "raw": "123" + "extra": { + "rawValue": 123, + "raw": "123" + }, + "value": 123 }, { "type": "StringLiteral", @@ -182,9 +184,11 @@ "column": 39 } }, - "value": "duck", - "rawValue": "duck", - "raw": "\"duck\"" + "extra": { + "rawValue": "duck", + "raw": "\"duck\"" + }, + "value": "duck" } ] } @@ -192,6 +196,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/1/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/1/expected.json index a2eead1323..4d022b66ad 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/1/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/1/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -169,10 +168,11 @@ "column": 44 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/10/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/10/expected.json index a9c9b078b2..6aae036622 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/10/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/10/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -236,10 +235,11 @@ "column": 56 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/11/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/11/expected.json index 9e64b8c0cd..5de62117eb 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/11/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/11/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -283,10 +282,11 @@ "column": 67 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/12/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/12/expected.json index 5f22620819..fddf075029 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/12/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/12/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -106,10 +105,11 @@ "column": 23 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/13/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/13/expected.json index 85d1d32dff..1070cfbe37 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/13/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/13/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -124,10 +123,11 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/14/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/14/expected.json index 1cdbf9b15e..96fb6480b2 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/14/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/14/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -172,10 +171,11 @@ "column": 35 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/15/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/15/expected.json index 08e4a71f0d..310bd0ca0c 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/15/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/15/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -172,10 +171,11 @@ "column": 36 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/16/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/16/expected.json index c4db0ece72..392f618655 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/16/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/16/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -109,10 +108,11 @@ "column": 21 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/17/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/17/expected.json index 944df2b6b8..0e9b768068 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/17/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/17/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 12, @@ -109,10 +108,11 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/18/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/18/expected.json index 3aa1cbb4f3..65eab403cc 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/18/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/18/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 12, @@ -125,10 +124,11 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/19/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/19/expected.json index 1e7c605330..6102f7fad4 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/19/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/19/expected.json @@ -90,7 +90,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 10, @@ -155,12 +154,13 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/2/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/2/expected.json index a70a9f9ec3..9f0c84fa45 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/2/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/2/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -123,10 +122,11 @@ "column": 30 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json index 9e80067a0b..455aaeaa26 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json @@ -139,7 +139,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -202,7 +201,8 @@ "column": 30 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -210,7 +210,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json index f9913f979f..3360af33e4 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json @@ -139,7 +139,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -232,7 +231,8 @@ "column": 35 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -240,7 +240,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json index 6f3faa4034..2d660b9f77 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json @@ -139,7 +139,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -185,7 +184,8 @@ "column": 25 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -193,7 +193,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json index d2ecdea08f..75457f8544 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json @@ -139,7 +139,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -266,7 +265,8 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] }, "typeParameters": { "type": "TypeParameterDeclaration", @@ -307,7 +307,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json index 499369a52f..9990d3f183 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json @@ -139,7 +139,6 @@ "id": null, "generator": true, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -266,7 +265,8 @@ "column": 21 } }, - "body": [] + "body": [], + "directives": [] }, "typeParameters": { "type": "TypeParameterDeclaration", @@ -307,7 +307,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json index 1b09f8300e..c59c5c0979 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json @@ -119,9 +119,11 @@ "column": 6 } }, - "value": 123, - "rawValue": 123, - "raw": "123" + "extra": { + "rawValue": 123, + "raw": "123" + }, + "value": 123 }, "kind": "init", "value": { @@ -141,7 +143,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -268,7 +269,8 @@ "column": 21 } }, - "body": [] + "body": [], + "directives": [] }, "typeParameters": { "type": "TypeParameterDeclaration", @@ -309,6 +311,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json index 626bfacfe8..7e23e4be3b 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json @@ -124,7 +124,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -187,14 +186,15 @@ "column": 38 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json index fc7065e4ba..23a7b26c0b 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json @@ -124,7 +124,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -217,14 +216,15 @@ "column": 43 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json index c778376a2e..69dab292da 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json @@ -124,7 +124,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -170,14 +169,15 @@ "column": 33 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/3/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/3/expected.json index 0bd51ba5a6..6c069ca9dd 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/3/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/3/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -169,10 +168,11 @@ "column": 46 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/4/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/4/expected.json index 5af1d4df75..c888bafd92 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/4/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/4/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -139,10 +138,11 @@ "column": 42 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json index a13ad52d6e..ef5ec6c1fb 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/44/expected.json @@ -180,9 +180,11 @@ "column": 24 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 }, { "type": "NumberLiteral", @@ -198,9 +200,11 @@ "column": 27 } }, - "value": 2, - "rawValue": 2, - "raw": "2" + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 }, { "type": "NumberLiteral", @@ -216,9 +220,11 @@ "column": 30 } }, - "value": 3, - "rawValue": 3, - "raw": "3" + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } ] } @@ -226,6 +232,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/5/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/5/expected.json index 7eb48ca8f1..f68cf9d341 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/5/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/5/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -139,10 +138,11 @@ "column": 42 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json index d251f51520..84759bfbc6 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json @@ -157,7 +157,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "returnType": { "type": "TypeAnnotation", @@ -232,12 +231,15 @@ "column": 42 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] }, "typeParameters": { "type": "TypeParameterDeclaration", @@ -277,6 +279,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json index 1168baaca8..be9240f72e 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json @@ -103,9 +103,11 @@ "column": 17 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" }, "static": false, "kind": "method", @@ -126,7 +128,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [], "body": { "type": "BlockStatement", @@ -142,7 +143,8 @@ "column": 26 } }, - "body": [] + "body": [], + "directives": [] }, "typeParameters": { "type": "TypeParameterDeclaration", @@ -182,6 +184,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/52/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/52/expected.json index 5f58317a00..6a7b1c6f37 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/52/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/52/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -110,10 +109,11 @@ "column": 41 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json index 7b5fe45e43..739d25f879 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/55/expected.json @@ -149,14 +149,17 @@ "column": 27 } }, - "value": 4, - "rawValue": 4, - "raw": "4" + "extra": { + "rawValue": 4, + "raw": "4" + }, + "value": 4 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json index cb00fe285f..ac710d4778 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json @@ -124,7 +124,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -219,14 +218,15 @@ "column": 46 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/6/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/6/expected.json index d4ddc1ff2d..9cfdcd0139 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/6/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/6/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -138,10 +137,11 @@ "column": 36 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json index e74d96fd69..69d4f65178 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json @@ -268,9 +268,11 @@ "column": 37 } }, - "value": "hello", - "rawValue": "hello", - "raw": "\"hello\"" + "extra": { + "rawValue": "hello", + "raw": "\"hello\"" + }, + "value": "hello" }, "kind": "init" } @@ -280,6 +282,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json index e0d9d00c06..c09b9c0fec 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json @@ -268,9 +268,11 @@ "column": 36 } }, - "value": "hello", - "rawValue": "hello", - "raw": "\"hello\"" + "extra": { + "rawValue": "hello", + "raw": "\"hello\"" + }, + "value": "hello" }, "kind": "init" } @@ -280,6 +282,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json index 505317d656..7201193e8a 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/62/expected.json @@ -197,9 +197,11 @@ "column": 34 } }, - "value": "hello", - "rawValue": "hello", - "raw": "\"hello\"" + "extra": { + "rawValue": "hello", + "raw": "\"hello\"" + }, + "value": "hello" } ] } @@ -207,6 +209,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json index d6686b4b73..c67a31a154 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "ObjectPattern", @@ -226,10 +225,11 @@ "column": 36 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/64/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/64/expected.json index ff6128153f..8c9d19d6c2 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/64/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/64/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "ArrayPattern", @@ -188,10 +187,11 @@ "column": 35 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/65/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/65/expected.json index d5077fb333..17d3f9e5c0 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/65/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/65/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "RestElement", @@ -186,10 +185,11 @@ "column": 39 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/66/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/66/expected.json index d684d49b74..33bccbd102 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/66/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/66/expected.json @@ -59,7 +59,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "RestElement", @@ -185,12 +184,15 @@ "column": 37 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/67/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/67/expected.json index a95af4382b..29c7ecb1b2 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/67/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/67/expected.json @@ -120,7 +120,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [], "body": { "type": "Identifier", @@ -143,7 +142,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/68/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/68/expected.json index 7e864bb663..0947eeb733 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/68/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/68/expected.json @@ -90,7 +90,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [ { "type": "Identifier", @@ -107,7 +106,9 @@ } }, "name": "bar", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } ], "body": { @@ -161,7 +162,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/7/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/7/expected.json index 3d3f13417e..6a7ceea68d 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/7/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/7/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -141,10 +140,11 @@ "column": 36 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/72/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/72/expected.json index bab73a4f10..f6ceb4484c 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/72/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/72/expected.json @@ -120,7 +120,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [], "body": { "type": "Identifier", @@ -138,13 +137,15 @@ }, "name": "bar" }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/73/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/73/expected.json index 09068edec7..a14ef97682 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/73/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/73/expected.json @@ -90,7 +90,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [ { "type": "Identifier", @@ -107,7 +106,9 @@ } }, "name": "bar", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } ], "body": { @@ -156,13 +157,15 @@ } } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/74/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/74/expected.json index 5583d9416d..c22c079ced 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/74/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/74/expected.json @@ -104,7 +104,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [ { "type": "Identifier", @@ -121,7 +120,9 @@ } }, "name": "bar", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } ], "body": { @@ -170,7 +171,9 @@ } } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "typeAnnotation": { "type": "TypeAnnotation", @@ -202,13 +205,15 @@ } } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/78/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/78/expected.json index 27a670dddc..eec39a30b0 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/78/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/78/expected.json @@ -118,7 +118,9 @@ } }, "name": "foo", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "alternate": { "type": "Identifier", @@ -141,7 +143,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/79/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/79/expected.json index 31d7654fb3..30439bfe89 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/79/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/79/expected.json @@ -120,7 +120,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -137,7 +136,9 @@ } }, "name": "foo", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } ], "body": { @@ -154,7 +155,8 @@ "column": 36 } }, - "body": [] + "body": [], + "directives": [] }, "returnType": { "type": "TypeAnnotation", @@ -208,7 +210,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/8/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/8/expected.json index e0be8e9149..55750a0092 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/8/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/8/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -141,10 +140,11 @@ "column": 38 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/80/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/80/expected.json index c1029e52d9..35d21db92f 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/80/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/80/expected.json @@ -59,7 +59,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [ { "type": "RestElement", @@ -187,10 +186,12 @@ }, "name": "rest" }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json index 6a74fc876f..fafb7c0a97 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/89/expected.json @@ -90,11 +90,14 @@ "column": 26 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/9/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/9/expected.json index 248c8fd763..d2393788e5 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/9/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/9/expected.json @@ -60,7 +60,6 @@ }, "generator": false, "expression": false, - "async": false, "params": [ { "type": "Identifier", @@ -189,10 +188,11 @@ "column": 44 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json index 645f92bcbf..d18d05b185 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/90/expected.json @@ -90,11 +90,14 @@ "column": 28 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json index 58a81038df..508d8b7fd6 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/91/expected.json @@ -153,11 +153,14 @@ "column": 33 } }, - "value": "baz", - "rawValue": "baz", - "raw": "\"baz\"" + "extra": { + "rawValue": "baz", + "raw": "\"baz\"" + }, + "value": "baz" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json index 3877416eba..3bf07813d5 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/92/expected.json @@ -106,11 +106,14 @@ "column": 37 } }, - "value": "baz", - "rawValue": "baz", - "raw": "\"baz\"" + "extra": { + "rawValue": "baz", + "raw": "\"baz\"" + }, + "value": "baz" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json index 11fcfc35ba..588d644b5a 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/93/expected.json @@ -90,11 +90,14 @@ "column": 22 } }, - "value": "foo", - "rawValue": "foo", - "raw": "\"foo\"" + "extra": { + "rawValue": "foo", + "raw": "\"foo\"" + }, + "value": "foo" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json index f12baf85de..71f88f5ecd 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/94/expected.json @@ -137,11 +137,14 @@ "column": 29 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json index 770d5376af..d90a424b63 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/95/expected.json @@ -90,11 +90,14 @@ "column": 37 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json index 4570cc24e3..11ed46da39 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/96/expected.json @@ -90,11 +90,14 @@ "column": 39 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json index e23eb4353e..ad6352b9a0 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json @@ -107,7 +107,6 @@ "id": null, "generator": false, "expression": false, - "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 14, @@ -156,15 +155,19 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json b/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json index a02b5f1134..583326b8a1 100644 --- a/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json +++ b/packages/babylon/test/fixtures/flow/type-exports/specifier-from/expected.json @@ -105,13 +105,16 @@ "column": 33 } }, - "value": "foobar", - "rawValue": "foobar", - "raw": "\"foobar\"" + "extra": { + "rawValue": "foobar", + "raw": "\"foobar\"" + }, + "value": "foobar" }, "exportKind": "type", "declaration": null } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/typecasts/1/expected.json b/packages/babylon/test/fixtures/flow/typecasts/1/expected.json index 85939fde85..87ffc46fab 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/1/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/1/expected.json @@ -102,10 +102,12 @@ } } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/typecasts/2/expected.json b/packages/babylon/test/fixtures/flow/typecasts/2/expected.json index d336563032..48639097eb 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/2/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/2/expected.json @@ -118,9 +118,11 @@ "column": 8 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "kind": "init" }, @@ -171,9 +173,11 @@ "column": 20 } }, - "value": "hey", - "rawValue": "hey", - "raw": "\"hey\"" + "extra": { + "rawValue": "hey", + "raw": "\"hey\"" + }, + "value": "hey" }, "kind": "init" } @@ -307,9 +311,12 @@ "indexers": [] } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/typecasts/3/expected.json b/packages/babylon/test/fixtures/flow/typecasts/3/expected.json index b11b08e49e..13303dc1d3 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/3/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/3/expected.json @@ -73,7 +73,6 @@ "id": null, "generator": false, "expression": true, - "async": false, "params": [ { "type": "Identifier", @@ -137,9 +136,11 @@ "column": 17 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } }, @@ -239,9 +240,12 @@ "typeParameters": null } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/typecasts/4/expected.json b/packages/babylon/test/fixtures/flow/typecasts/4/expected.json index 2fd24c6b1d..3fab1290ea 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/4/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/4/expected.json @@ -117,7 +117,9 @@ } } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, { "type": "TypeCastExpression", @@ -179,13 +181,17 @@ } } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json b/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json index ffcd91d394..df195bb3a8 100644 --- a/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json +++ b/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json @@ -151,9 +151,11 @@ "column": 13 } }, - "value": "", - "rawValue": "", - "raw": "\"\"" + "extra": { + "rawValue": "", + "raw": "\"\"" + }, + "value": "" }, "kind": "init" } @@ -163,6 +165,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json b/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json index c204457d46..499e822973 100644 --- a/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json +++ b/packages/babylon/test/fixtures/harmony/modules/export-default-function-declaration-expression-disambiguation/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "FunctionExpression", + "type": "FunctionDeclaration", "start": 15, "end": 29, "loc": { @@ -74,7 +74,8 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -107,9 +108,12 @@ } }, "name": "foo", - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/expected.json b/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/expected.json index b518031244..a83ccafb0b 100644 --- a/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/expected.json +++ b/packages/babylon/test/fixtures/harmony/modules/export-default-function-expression/expected.json @@ -89,11 +89,15 @@ "column": 31 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json index 6a4ff90185..da720c7122 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/1/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 18, "loc": { @@ -42,8 +43,8 @@ "column": 18 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 18, "loc": { @@ -56,9 +57,11 @@ "column": 18 } }, - "value": "煎茶", - "rawValue": "煎茶", - "raw": "\"\\u{714E}\\u{8336}\"" + "value": "\\u{714E}\\u{8336}", + "extra": { + "raw": "\"\\u{714E}\\u{8336}\"", + "rawValue": "\\u{714E}\\u{8336}" + } } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json index 263b4b83d5..742740cf25 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/10/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 2, - "rawValue": 2, - "raw": "0O2" + "extra": { + "rawValue": 2, + "raw": "0O2" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/100/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/100/expected.json index 666ce9a5b4..6cf9d34539 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/100/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/100/expected.json @@ -138,12 +138,15 @@ "name": "v" } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/101/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/101/expected.json index 2567fa978a..474fa746b1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/101/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/101/expected.json @@ -122,12 +122,15 @@ } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json index 2e0186e88f..f5ac697314 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/106/expected.json @@ -133,18 +133,24 @@ "column": 30 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/109/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/109/options.json new file mode 100644 index 0000000000..4c07f39d17 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/109/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:16)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json index 372c9fce63..360fcb62c6 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/11/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 10, - "rawValue": 10, - "raw": "0O12" + "extra": { + "rawValue": 10, + "raw": "0O12" + }, + "value": 10 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json index 607cd3e194..8e5a64d7e3 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/12/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0b0" + "extra": { + "rawValue": 0, + "raw": "0b0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json index 76c74308aa..83a2d03682 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json @@ -28,39 +28,6 @@ }, "sourceType": "script", "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "expression": { - "type": "StringLiteral", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" - } - }, { "type": "ExpressionStatement", "start": 14, @@ -233,13 +200,53 @@ "arguments": [] } } - ] + ], + "directives": [] } } } ] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json index 964171a1ab..b3af6621a1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json @@ -103,9 +103,11 @@ "column": 22 } }, - "value": "constructor", - "rawValue": "constructor", - "raw": "'constructor'" + "extra": { + "rawValue": "constructor", + "raw": "'constructor'" + }, + "value": "constructor" }, "static": false, "kind": "constructor", @@ -141,13 +143,15 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json index 23356e76be..869a4573f6 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/13/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 1, - "rawValue": 1, - "raw": "0b1" + "extra": { + "rawValue": 1, + "raw": "0b1" + }, + "value": 1 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json index 6f0fe5e565..19d9b17be0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json @@ -28,39 +28,6 @@ }, "sourceType": "script", "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "expression": { - "type": "StringLiteral", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "\"use strict\"" - } - }, { "type": "ExpressionStatement", "start": 14, @@ -233,13 +200,53 @@ "arguments": [] } } - ] + ], + "directives": [] } } } ] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "value": "use strict", + "extra": { + "raw": "\"use strict\"", + "rawValue": "use strict" + } } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json index be3c47afa8..946f9be4db 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/14/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 2, - "rawValue": 2, - "raw": "0b10" + "extra": { + "rawValue": 2, + "raw": "0b10" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json index d47fdad79c..9c4ce67855 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json @@ -104,16 +104,21 @@ "column": 9 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json index 259c9600a4..6198ec9aa5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json @@ -102,9 +102,11 @@ "column": 6 } }, - "value": "x", - "rawValue": "x", - "raw": "\"x\"" + "extra": { + "rawValue": "x", + "raw": "\"x\"" + }, + "value": "x" }, "operator": "+", "right": { @@ -121,9 +123,11 @@ "column": 12 } }, - "value": "y", - "rawValue": "y", - "raw": "\"y\"" + "extra": { + "rawValue": "y", + "raw": "\"y\"" + }, + "value": "y" } }, "value": { @@ -140,16 +144,21 @@ "column": 17 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json index d73cb3b632..01caab9e66 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json @@ -122,16 +122,19 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json index 2e3bc139b5..25f8cb97cc 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json @@ -104,9 +104,11 @@ "column": 9 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" }, @@ -157,16 +159,21 @@ "column": 16 } }, - "value": 20, - "rawValue": 20, - "raw": "20" + "extra": { + "rawValue": 20, + "raw": "20" + }, + "value": 20 }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json index 081f297ff9..89a62e0093 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json @@ -123,7 +123,8 @@ "column": 14 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -210,15 +211,18 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json index 084e6c8144..68e454ca7f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json @@ -123,15 +123,18 @@ "column": 10 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json index ae57cab25c..50c71c2d94 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/15/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0B0" + "extra": { + "rawValue": 0, + "raw": "0B0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json index f48012f5a7..0a09df6992 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/152/expected.json @@ -137,9 +137,11 @@ "column": 19 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } ] } @@ -159,9 +161,11 @@ "column": 24 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json index c58bffb9c1..5830686c0b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json @@ -205,9 +205,11 @@ "column": 23 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -229,9 +231,11 @@ "column": 28 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json index da3399ea06..c27822598f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json @@ -235,9 +235,11 @@ "column": 25 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -259,11 +261,13 @@ "column": 30 } }, - "body": [] + "body": [], + "directives": [] } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json index e1d8689d55..4892fdd837 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json @@ -252,9 +252,11 @@ "column": 26 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -276,15 +278,19 @@ "column": 31 } }, - "body": [] + "body": [], + "directives": [] } }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json index 02567ac39f..f918574a30 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json @@ -253,9 +253,11 @@ "column": 16 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -277,14 +279,18 @@ "column": 21 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json index 2995b318d4..519875cdd1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json @@ -268,9 +268,11 @@ "column": 22 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -292,15 +294,19 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } } } ] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json index a58c38c687..126c8430f4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json @@ -204,9 +204,11 @@ "column": 14 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -228,11 +230,15 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json index 8f7d2304f4..3799c4ee35 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/159/expected.json @@ -135,9 +135,11 @@ "column": 18 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -155,11 +157,13 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json index 4937dfc854..94253b3ff7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/16/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 1, - "rawValue": 1, - "raw": "0B1" + "extra": { + "rawValue": 1, + "raw": "0B1" + }, + "value": 1 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json index beb32095e0..b922dc9f54 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/160/expected.json @@ -105,9 +105,11 @@ "column": 16 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -125,9 +127,11 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json index 133d3320bc..0fdbc8a52e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json @@ -183,9 +183,11 @@ "column": 21 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -203,7 +205,8 @@ "column": 25 } }, - "body": [] + "body": [], + "directives": [] } }, "kind": "init" @@ -212,6 +215,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json index 36f0dea590..95a9a2ba3e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json @@ -184,9 +184,11 @@ "column": 11 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -204,7 +206,8 @@ "column": 15 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -212,6 +215,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/167/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/167/options.json new file mode 100644 index 0000000000..d50e8469b8 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/167/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:14)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/168/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/168/options.json new file mode 100644 index 0000000000..9ac2c7432d --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/168/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:42)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/169/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/169/expected.json index 79ea543bbe..7aa4a008d7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/169/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/169/expected.json @@ -139,12 +139,15 @@ "column": 23 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json index e6cfe9f05a..5a539443cf 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/17/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 2, - "rawValue": 2, - "raw": "0B10" + "extra": { + "rawValue": 2, + "raw": "0B10" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json index 438f7a1d90..7d82cfb3bb 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json @@ -209,12 +209,15 @@ "column": 23 } }, - "body": [] + "body": [], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/171/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/171/options.json new file mode 100644 index 0000000000..98d7123790 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/171/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:15)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/172/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/172/options.json new file mode 100644 index 0000000000..ceee1cc2ef --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/172/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:43)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json index aab765b409..870de96929 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json @@ -173,15 +173,18 @@ "column": 16 } }, - "body": [] + "body": [], + "directives": [] } } } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/174/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/174/options.json new file mode 100644 index 0000000000..9ce9658f7d --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/174/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:8)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/175/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/175/options.json new file mode 100644 index 0000000000..4914c41568 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/175/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:36)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/180/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/180/options.json new file mode 100644 index 0000000000..27a7b64d71 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/180/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:4)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/181/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/181/options.json new file mode 100644 index 0000000000..c958665c03 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/181/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (1:7)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json index 0f0150fd2b..908ecf8753 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/195/expected.json @@ -56,11 +56,14 @@ "column": 8 } }, - "raw": "/[a-z]/u", + "extra": { + "raw": "/[a-z]/u" + }, "pattern": "[a-z]", "flags": "u" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json index 13ccb35613..04066b5458 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/196/expected.json @@ -56,11 +56,14 @@ "column": 33 } }, - "raw": "/[\\uD834\\uDF06-\\uD834\\uDF08a-z]/u", + "extra": { + "raw": "/[\\uD834\\uDF06-\\uD834\\uDF08a-z]/u" + }, "pattern": "[\\uD834\\uDF06-\\uD834\\uDF08a-z]", "flags": "u" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json index aa7ff354b4..ca35fe564c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/197/expected.json @@ -56,7 +56,8 @@ "column": 5 } }, - "body": [] + "body": [], + "directives": [] }, "test": { "type": "BooleanLiteral", @@ -72,9 +73,7 @@ "column": 18 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } }, { @@ -124,6 +123,7 @@ "arguments": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json index 5a854ab9f5..7430f1229e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/2/expected.json @@ -27,9 +27,10 @@ } }, "sourceType": "script", - "body": [ + "body": [], + "directives": [ { - "type": "ExpressionStatement", + "type": "Directive", "start": 0, "end": 27, "loc": { @@ -42,8 +43,8 @@ "column": 27 } }, - "expression": { - "type": "StringLiteral", + "value": { + "type": "DirectiveLiteral", "start": 0, "end": 27, "loc": { @@ -56,9 +57,11 @@ "column": 27 } }, - "value": "𠮷野家", - "rawValue": "𠮷野家", - "raw": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"" + "value": "\\u{20BB7}\\u{91CE}\\u{5BB6}", + "extra": { + "raw": "\"\\u{20BB7}\\u{91CE}\\u{5BB6}\"", + "rawValue": "\\u{20BB7}\\u{91CE}\\u{5BB6}" + } } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/227/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/227/expected.json new file mode 100644 index 0000000000..df800e90dc --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/227/expected.json @@ -0,0 +1,295 @@ +{ + "type": "File", + "start": 0, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "hello" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, + "end": 59, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 59 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 32, + "end": 57, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 57 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 33, + "end": 55, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 55 + } + }, + "properties": [ + { + "type": "Property", + "start": 35, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 35, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "name": "i" + }, + "value": { + "type": "NumberLiteral", + "start": 38, + "end": 40, + "loc": { + "start": { + "line": 1, + "column": 38 + }, + "end": { + "line": 1, + "column": 40 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + }, + "kind": "init" + }, + { + "type": "Property", + "start": 42, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 42, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "s" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 43, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 43 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 44, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "name": "eval" + } + ], + "body": { + "type": "BlockStatement", + "start": 50, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 50 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "body": [], + "directives": [] + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 18, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 18, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/228/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/228/expected.json new file mode 100644 index 0000000000..ce7968931a --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/228/expected.json @@ -0,0 +1,258 @@ +{ + "type": "File", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 0, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "id": { + "type": "Identifier", + "start": 9, + "end": 10, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 10 + } + }, + "name": "a" + }, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 49, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 49 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 29, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 47 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 30, + "end": 45, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 45 + } + }, + "properties": [ + { + "type": "Property", + "start": 32, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "method": true, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "b" + }, + "kind": "init", + "value": { + "type": "FunctionExpression", + "start": 33, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "t" + }, + { + "type": "Identifier", + "start": 37, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 37 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "t" + } + ], + "body": { + "type": "BlockStatement", + "start": 40, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "body": [], + "directives": [] + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 15, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/242/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/242/expected.json new file mode 100644 index 0000000000..49f6398459 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/242/expected.json @@ -0,0 +1,169 @@ +{ + "type": "File", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "AssignmentPattern", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "left": { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + }, + "right": { + "type": "NumberLiteral", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "body": { + "type": "NumberLiteral", + "start": 29, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 29 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/243/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/243/expected.json new file mode 100644 index 0000000000..56900a141d --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/243/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "eval" + } + ], + "body": { + "type": "NumberLiteral", + "start": 22, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/244/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/244/expected.json new file mode 100644 index 0000000000..3382211829 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/244/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "arguments" + } + ], + "body": { + "type": "NumberLiteral", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/245/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/245/expected.json new file mode 100644 index 0000000000..c06f39c9f0 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/245/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + }, + { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "a" + } + ], + "body": { + "type": "NumberLiteral", + "start": 27, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/246/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/246/expected.json new file mode 100644 index 0000000000..39df05159f --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/246/expected.json @@ -0,0 +1,152 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "arguments" + }, + { + "type": "Identifier", + "start": 26, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "name": "a" + } + ], + "body": { + "type": "NumberLiteral", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/247/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/247/expected.json new file mode 100644 index 0000000000..ab7e964fd0 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/247/expected.json @@ -0,0 +1,185 @@ +{ + "type": "File", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + }, + { + "type": "AssignmentPattern", + "start": 21, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "left": { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "a" + }, + "right": { + "type": "NumberLiteral", + "start": 25, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "value": 10, + "rawValue": 10, + "raw": "10" + } + } + ], + "body": { + "type": "NumberLiteral", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/249/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/249/expected.json new file mode 100644 index 0000000000..154fb56eab --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/249/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "a" + } + ], + "body": { + "type": "NumberLiteral", + "start": 21, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "value": 0, + "rawValue": 0, + "raw": "00" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json index 3d0fad6ce6..04ca39f3c8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/256/expected.json @@ -87,12 +87,15 @@ "column": 9 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json index 3aef2ac8d9..e424fec694 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/257/expected.json @@ -122,13 +122,16 @@ "column": 14 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json index 970d0563d8..8dbb933a6c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/259/expected.json @@ -134,17 +134,23 @@ "column": 24 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json index 08ba30f47d..a5de31017e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json @@ -167,9 +167,11 @@ "column": 18 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 }, "kind": "init" } @@ -255,12 +257,15 @@ "column": 54 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } - ] + ], + "directives": [] } } ], @@ -372,6 +377,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/269/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/269/actual.js deleted file mode 100644 index 30922446bc..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/269/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (let x of []) x] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json deleted file mode 100644 index 880504f34d..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/269/options.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "features": { - "comprehensions": true - }, - "throws": "Unexpected token (1:6)" -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json index e61945111a..2d90f27140 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/27/expected.json @@ -133,9 +133,11 @@ "column": 37 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ], @@ -172,13 +174,16 @@ "column": 25 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } ] } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/270/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/270/actual.js deleted file mode 100644 index b2b34f814d..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/270/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (const x of []) x] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json deleted file mode 100644 index 880504f34d..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/270/options.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "features": { - "comprehensions": true - }, - "throws": "Unexpected token (1:6)" -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/271/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/271/actual.js deleted file mode 100644 index d4887f4769..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/271/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (var x of []) x] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json deleted file mode 100644 index 880504f34d..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/271/options.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "features": { - "comprehensions": true - }, - "throws": "Unexpected token (1:6)" -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/272/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/272/actual.js deleted file mode 100644 index d34bafa125..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/272/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (a in []) x] // (a,b) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json deleted file mode 100644 index dad599c3b8..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/272/options.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "features": { - "comprehensions": true - }, - "throws": "Unexpected token (1:8)" -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/274/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/274/actual.js deleted file mode 100644 index 3ea1a6eee6..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/274/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (x of [])] // no expression \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json deleted file mode 100644 index 9b7c4355a5..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/274/options.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "features": { - "comprehensions": true - }, - "throws": "Unexpected token (1:14)" -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json index ed4c1605fe..6b22652418 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/28/expected.json @@ -74,12 +74,15 @@ "column": 12 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/280/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/280/expected.json new file mode 100644 index 0000000000..a001a84bd3 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/280/expected.json @@ -0,0 +1,203 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "x" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "a" + }, + { + "type": "ObjectPattern", + "start": 28, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "properties": [ + { + "type": "Property", + "start": 30, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 30, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 30, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "a" + } + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 34, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/281/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/281/expected.json new file mode 100644 index 0000000000..8976155772 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/281/expected.json @@ -0,0 +1,376 @@ +{ + "type": "File", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "sourceType": "script", + "body": [ + { + "type": "FunctionDeclaration", + "start": 14, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "id": { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "x" + }, + "generator": false, + "expression": false, + "params": [ + { + "type": "ObjectPattern", + "start": 25, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "properties": [ + { + "type": "Property", + "start": 27, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "b" + }, + "value": { + "type": "ObjectPattern", + "start": 30, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 30 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "properties": [ + { + "type": "Property", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 32, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "a" + } + } + ] + }, + "kind": "init" + } + ] + }, + { + "type": "ArrayPattern", + "start": 39, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 39 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "elements": [ + { + "type": "ObjectPattern", + "start": 40, + "end": 52, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 52 + } + }, + "properties": [ + { + "type": "Property", + "start": 42, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 42, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 42 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "name": "b" + }, + "value": { + "type": "ObjectPattern", + "start": 45, + "end": 50, + "loc": { + "start": { + "line": 1, + "column": 45 + }, + "end": { + "line": 1, + "column": 50 + } + }, + "properties": [ + { + "type": "Property", + "start": 47, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 47, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "name": "a" + }, + "kind": "init", + "value": { + "type": "Identifier", + "start": 47, + "end": 48, + "loc": { + "start": { + "line": 1, + "column": 47 + }, + "end": { + "line": 1, + "column": 48 + } + }, + "name": "a" + } + } + ] + }, + "kind": "init" + } + ] + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 54, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 54 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "body": [], + "directives": [] + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/282/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/282/actual.js deleted file mode 100644 index 9449b67d82..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/282/actual.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; function x(a, ...[a]){} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/282/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/282/options.json deleted file mode 100644 index 6adffc0f53..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/282/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "Argument name clash in strict mode (1:32)" -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/286/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/286/options.json index 515b971673..27a7b64d71 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/286/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/286/options.json @@ -1,3 +1,3 @@ { - "throws": "Unexpected token (1:6)" -} \ No newline at end of file + "throws": "Unexpected token (1:4)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json index c3e068731d..070478ffa3 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/29/expected.json @@ -91,12 +91,15 @@ "column": 11 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/296/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/296/expected.json new file mode 100644 index 0000000000..c444d65091 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/296/expected.json @@ -0,0 +1,136 @@ +{ + "type": "File", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "expression": { + "type": "ArrowFunctionExpression", + "start": 14, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "id": null, + "generator": false, + "expression": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "eval" + } + ], + "body": { + "type": "NumberLiteral", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "value": 42, + "rawValue": 42, + "raw": "42" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "\"use strict\"", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json index 1e3d179cd6..bcf619d9dd 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/3/expected.json @@ -56,11 +56,14 @@ "column": 2 } }, - "value": 0, - "rawValue": 0, - "raw": "00" + "extra": { + "rawValue": 0, + "raw": "00" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json index dc38971fa7..71885e218e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/30/expected.json @@ -91,12 +91,15 @@ "column": 13 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json index 89a1eb3ff5..5cdf1b449d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/300/expected.json @@ -121,9 +121,11 @@ "column": 25 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], @@ -141,9 +143,11 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json index 448e59b1ff..2e575ba5c1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/301/expected.json @@ -120,11 +120,14 @@ "column": 31 } }, - "value": "baz", - "rawValue": "baz", - "raw": "'baz'" + "extra": { + "rawValue": "baz", + "raw": "'baz'" + }, + "value": "baz" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json index 293ea2a087..fa5a1fed3e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json @@ -150,9 +150,11 @@ "column": 7 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } @@ -174,9 +176,12 @@ }, "name": "obj" }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json index 2517a00a40..f13152264e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json @@ -153,9 +153,11 @@ "column": 7 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } @@ -180,6 +182,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json index 78a133f6c2..21ff2e2c8b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json @@ -229,9 +229,11 @@ "column": 14 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } } @@ -261,6 +263,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json index 4bdd74c258..57366e881f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/31/expected.json @@ -107,12 +107,15 @@ "column": 16 } }, - "value": "test", - "rawValue": "test", - "raw": "\"test\"" + "extra": { + "rawValue": "test", + "raw": "\"test\"" + }, + "value": "test" } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json index aba62152a7..efd6b8cb0f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json @@ -135,9 +135,11 @@ "column": 11 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 } } } @@ -175,6 +177,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json index 49647b97c8..69257a35a5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/317/expected.json @@ -113,7 +113,9 @@ "column": 7 } }, - "raw": "/\\d/", + "extra": { + "raw": "/\\d/" + }, "pattern": "\\d", "flags": "" }, @@ -150,9 +152,11 @@ "column": 16 } }, - "value": "1", - "rawValue": "1", - "raw": "'1'" + "extra": { + "rawValue": "1", + "raw": "'1'" + }, + "value": "1" } ] }, @@ -170,9 +174,11 @@ "column": 19 } }, - "value": 0, - "rawValue": 0, - "raw": "0" + "extra": { + "rawValue": 0, + "raw": "0" + }, + "value": 0 }, "computed": true } @@ -221,6 +227,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json index bb330b9204..becd7dd80d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/318/expected.json @@ -87,14 +87,17 @@ "column": 12 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json index 136c5bbf00..63f3b5c58b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/319/expected.json @@ -87,14 +87,17 @@ "column": 19 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json index ebd04a794b..a6acfabee4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/32/expected.json @@ -120,15 +120,19 @@ "column": 9 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json index e03993bade..95f406a78c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/320/expected.json @@ -119,9 +119,11 @@ "column": 13 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } ] } @@ -129,6 +131,7 @@ ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json index 4accd0cb4a..c3bfc6c465 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/322/expected.json @@ -105,12 +105,15 @@ "column": 9 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json index 7a3afe8bd4..fbd87bd0c4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json @@ -139,17 +139,22 @@ "column": 20 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 }, "kind": "init" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/332/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/332/expected.json new file mode 100644 index 0000000000..841701d361 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/332/expected.json @@ -0,0 +1,162 @@ +{ + "type": "File", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 14, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "operator": "=", + "left": { + "type": "ArrayPattern", + "start": 14, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "elements": [ + { + "type": "RestElement", + "start": 15, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "argument": { + "type": "Identifier", + "start": 18, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "eval" + } + } + ] + }, + "right": { + "type": "Identifier", + "start": 26, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "arr" + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/333/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/333/expected.json new file mode 100644 index 0000000000..beb769433c --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/333/expected.json @@ -0,0 +1,216 @@ +{ + "type": "File", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 14, + "end": 39, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 39 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 15, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "operator": "=", + "left": { + "type": "ObjectPattern", + "start": 15, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "properties": [ + { + "type": "Property", + "start": 16, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "eval" + }, + "kind": "init", + "value": { + "type": "AssignmentPattern", + "start": 16, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "left": { + "type": "Identifier", + "start": 16, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "eval" + }, + "right": { + "type": "Identifier", + "start": 23, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "name": "defValue" + } + } + } + ] + }, + "right": { + "type": "Identifier", + "start": 35, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 35 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "name": "obj" + }, + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 0, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 0, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "raw": "'use strict'", + "value": "use strict" + } + } + ] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json index 1f7043e170..909735dfe5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/338/expected.json @@ -89,7 +89,8 @@ "column": 32 } }, - "body": [] + "body": [], + "directives": [] } } }, @@ -121,11 +122,10 @@ "column": 38 } }, - "value": false, - "rawValue": false, - "raw": "false" + "value": false } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json index 287f532194..fe17cfad68 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/34/expected.json @@ -134,9 +134,11 @@ "column": 16 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } }, "label": { @@ -156,10 +158,12 @@ "name": "label" } } - ] + ], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json index 9a918edee0..59f0dbf100 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/35/expected.json @@ -136,15 +136,19 @@ "column": 14 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/353/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/353/options.json new file mode 100644 index 0000000000..a8b5ad2f5b --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/353/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Redefinition of __proto__ property (1:14)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json index a1ba25b09e..d9a7158baa 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/36/expected.json @@ -125,12 +125,15 @@ "column": 16 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json index 8b3e1161d1..1d3eb7338f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/39/expected.json @@ -104,9 +104,11 @@ "column": 4 } }, - "value": 1, - "rawValue": 1, - "raw": "1" + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 } } ], @@ -160,6 +162,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json index ccdde2fe5f..8a021344bb 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/4/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0o0" + "extra": { + "rawValue": 0, + "raw": "0o0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json index 3351297bbe..b4e861da61 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/40/expected.json @@ -91,12 +91,15 @@ "column": 10 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json index cdb3afb5bc..f3bbc75306 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/41/expected.json @@ -91,12 +91,15 @@ "column": 15 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json index c40f9bbb31..98652468ab 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/42/expected.json @@ -91,12 +91,15 @@ "column": 9 } }, - "value": 0, - "rawValue": 0, - "raw": "00" + "extra": { + "rawValue": 0, + "raw": "00" + }, + "value": 0 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json index 95224d5129..d4be8b7577 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/43/expected.json @@ -107,12 +107,15 @@ "column": 15 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json index 645860e175..8a08def13e 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/44/expected.json @@ -104,9 +104,11 @@ "column": 10 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], @@ -124,12 +126,15 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json index fd39c13ced..b782563eff 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/45/expected.json @@ -120,9 +120,11 @@ "column": 13 } }, - "value": 10, - "rawValue": 10, - "raw": "10" + "extra": { + "rawValue": 10, + "raw": "10" + }, + "value": 10 } } ], @@ -140,12 +142,15 @@ "column": 20 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/46/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/46/expected.json index b5b31e4fa6..b565e367ee 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/46/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/46/expected.json @@ -93,10 +93,12 @@ }, "name": "x" }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json index 8368737c3f..3fc7b625b7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/47/expected.json @@ -126,13 +126,16 @@ "column": 12 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/48/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/48/expected.json index 463aa60586..7d5558cdaf 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/48/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/48/expected.json @@ -192,13 +192,17 @@ "name": "z" } ], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json index b8fdcdd6b2..aa7e6a2f80 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/5/expected.json @@ -76,39 +76,6 @@ } }, "body": [ - { - "type": "ExpressionStatement", - "start": 17, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "expression": { - "type": "StringLiteral", - "start": 17, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" - } - }, { "type": "ExpressionStatement", "start": 31, @@ -137,14 +104,54 @@ "column": 34 } }, - "value": 0, - "rawValue": 0, - "raw": "0o0" + "extra": { + "rawValue": 0, + "raw": "0o0" + }, + "value": 0 + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json index 29fd63476c..e964b38846 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json @@ -119,9 +119,11 @@ "column": 14 } }, - "value": "method", - "rawValue": "method", - "raw": "'method'" + "extra": { + "rawValue": "method", + "raw": "'method'" + }, + "value": "method" }, "kind": "init", "value": { @@ -156,7 +158,8 @@ "column": 20 } }, - "body": [] + "body": [], + "directives": [] } } } @@ -164,6 +167,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/57/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/57/actual.js deleted file mode 100644 index 7e3c6b71dc..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/57/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (x of array) x] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json deleted file mode 100644 index 142b9fa2a0..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/57/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "features": { - "comprehensions": true - } -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/58/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/58/actual.js deleted file mode 100644 index e3fe4142ad..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/58/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for (x of array) for (y of array2) if (x === test) x] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/58/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/58/expected.json deleted file mode 100644 index 26450dfeb4..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/58/expected.json +++ /dev/null @@ -1,225 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "expression": { - "type": "ComprehensionExpression", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "blocks": [ - { - "type": "ComprehensionBlock", - "start": 1, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 1 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "left": { - "type": "Identifier", - "start": 6, - "end": 7, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 7 - } - }, - "name": "x" - }, - "right": { - "type": "Identifier", - "start": 11, - "end": 16, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 16 - } - }, - "name": "array" - } - }, - { - "type": "ComprehensionBlock", - "start": 18, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "left": { - "type": "Identifier", - "start": 23, - "end": 24, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 24 - } - }, - "name": "y" - }, - "right": { - "type": "Identifier", - "start": 28, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "name": "array2" - } - } - ], - "filter": { - "type": "BinaryExpression", - "start": 40, - "end": 50, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 50 - } - }, - "left": { - "type": "Identifier", - "start": 40, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "name": "x" - }, - "operator": "===", - "right": { - "type": "Identifier", - "start": 46, - "end": 50, - "loc": { - "start": { - "line": 1, - "column": 46 - }, - "end": { - "line": 1, - "column": 50 - } - }, - "name": "test" - } - }, - "body": { - "type": "Identifier", - "start": 52, - "end": 53, - "loc": { - "start": { - "line": 1, - "column": 52 - }, - "end": { - "line": 1, - "column": 53 - } - }, - "name": "x" - }, - "generator": false - } - } - ] - }, - "comments": [] -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json deleted file mode 100644 index 142b9fa2a0..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/58/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "features": { - "comprehensions": true - } -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/59/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/59/actual.js deleted file mode 100644 index 0639b61b1c..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/59/actual.js +++ /dev/null @@ -1 +0,0 @@ -(for (x of array) for (y of array2) if (x === test) x) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/59/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/59/expected.json deleted file mode 100644 index 438b7a59b1..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/59/expected.json +++ /dev/null @@ -1,225 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "expression": { - "type": "ComprehensionExpression", - "start": 0, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "blocks": [ - { - "type": "ComprehensionBlock", - "start": 1, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 1 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "left": { - "type": "Identifier", - "start": 6, - "end": 7, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 7 - } - }, - "name": "x" - }, - "right": { - "type": "Identifier", - "start": 11, - "end": 16, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 16 - } - }, - "name": "array" - } - }, - { - "type": "ComprehensionBlock", - "start": 18, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "left": { - "type": "Identifier", - "start": 23, - "end": 24, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 24 - } - }, - "name": "y" - }, - "right": { - "type": "Identifier", - "start": 28, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "name": "array2" - } - } - ], - "filter": { - "type": "BinaryExpression", - "start": 40, - "end": 50, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 50 - } - }, - "left": { - "type": "Identifier", - "start": 40, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 41 - } - }, - "name": "x" - }, - "operator": "===", - "right": { - "type": "Identifier", - "start": 46, - "end": 50, - "loc": { - "start": { - "line": 1, - "column": 46 - }, - "end": { - "line": 1, - "column": 50 - } - }, - "name": "test" - } - }, - "body": { - "type": "Identifier", - "start": 52, - "end": 53, - "loc": { - "start": { - "line": 1, - "column": 52 - }, - "end": { - "line": 1, - "column": 53 - } - }, - "name": "x" - }, - "generator": true - } - } - ] - }, - "comments": [] -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json deleted file mode 100644 index 142b9fa2a0..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/59/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "features": { - "comprehensions": true - } -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json index 58c5a75980..118b2f32c6 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/6/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 2, - "rawValue": 2, - "raw": "0o2" + "extra": { + "rawValue": 2, + "raw": "0o2" + }, + "value": 2 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/60/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/60/actual.js deleted file mode 100644 index f1fa787179..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/60/actual.js +++ /dev/null @@ -1 +0,0 @@ -[for ([,x] of array) for ({[start.x]: x, [start.y]: y} of array2) x] \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/60/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/60/expected.json deleted file mode 100644 index 05feccbca7..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/60/expected.json +++ /dev/null @@ -1,363 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 68, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 68 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 68, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 68 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ExpressionStatement", - "start": 0, - "end": 68, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 68 - } - }, - "expression": { - "type": "ComprehensionExpression", - "start": 0, - "end": 68, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 68 - } - }, - "blocks": [ - { - "type": "ComprehensionBlock", - "start": 1, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 1 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "left": { - "type": "ArrayPattern", - "start": 6, - "end": 10, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 10 - } - }, - "elements": [ - null, - { - "type": "Identifier", - "start": 8, - "end": 9, - "loc": { - "start": { - "line": 1, - "column": 8 - }, - "end": { - "line": 1, - "column": 9 - } - }, - "name": "x" - } - ] - }, - "right": { - "type": "Identifier", - "start": 14, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 14 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "name": "array" - } - }, - { - "type": "ComprehensionBlock", - "start": 21, - "end": 65, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 65 - } - }, - "left": { - "type": "ObjectPattern", - "start": 26, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 26 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "properties": [ - { - "type": "Property", - "start": 27, - "end": 39, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 39 - } - }, - "method": false, - "shorthand": false, - "computed": true, - "key": { - "type": "MemberExpression", - "start": 28, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "object": { - "type": "Identifier", - "start": 28, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 33 - } - }, - "name": "start" - }, - "property": { - "type": "Identifier", - "start": 34, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 34 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "name": "x" - }, - "computed": false - }, - "value": { - "type": "Identifier", - "start": 38, - "end": 39, - "loc": { - "start": { - "line": 1, - "column": 38 - }, - "end": { - "line": 1, - "column": 39 - } - }, - "name": "x" - }, - "kind": "init" - }, - { - "type": "Property", - "start": 41, - "end": 53, - "loc": { - "start": { - "line": 1, - "column": 41 - }, - "end": { - "line": 1, - "column": 53 - } - }, - "method": false, - "shorthand": false, - "computed": true, - "key": { - "type": "MemberExpression", - "start": 42, - "end": 49, - "loc": { - "start": { - "line": 1, - "column": 42 - }, - "end": { - "line": 1, - "column": 49 - } - }, - "object": { - "type": "Identifier", - "start": 42, - "end": 47, - "loc": { - "start": { - "line": 1, - "column": 42 - }, - "end": { - "line": 1, - "column": 47 - } - }, - "name": "start" - }, - "property": { - "type": "Identifier", - "start": 48, - "end": 49, - "loc": { - "start": { - "line": 1, - "column": 48 - }, - "end": { - "line": 1, - "column": 49 - } - }, - "name": "y" - }, - "computed": false - }, - "value": { - "type": "Identifier", - "start": 52, - "end": 53, - "loc": { - "start": { - "line": 1, - "column": 52 - }, - "end": { - "line": 1, - "column": 53 - } - }, - "name": "y" - }, - "kind": "init" - } - ] - }, - "right": { - "type": "Identifier", - "start": 58, - "end": 64, - "loc": { - "start": { - "line": 1, - "column": 58 - }, - "end": { - "line": 1, - "column": 64 - } - }, - "name": "array2" - } - } - ], - "filter": null, - "body": { - "type": "Identifier", - "start": 66, - "end": 67, - "loc": { - "start": { - "line": 1, - "column": 66 - }, - "end": { - "line": 1, - "column": 67 - } - }, - "name": "x" - }, - "generator": false - } - } - ] - }, - "comments": [] -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json deleted file mode 100644 index 142b9fa2a0..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/60/options.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "features": { - "comprehensions": true - } -} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json index fc506965ec..5636575a62 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/7/expected.json @@ -56,11 +56,14 @@ "column": 4 } }, - "value": 10, - "rawValue": 10, - "raw": "0o12" + "extra": { + "rawValue": 10, + "raw": "0o12" + }, + "value": 10 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json index 514934f092..a2c5438b1b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/79/expected.json @@ -56,11 +56,14 @@ "column": 17 } }, - "value": 42, - "rawValue": 42, - "raw": "42" + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json index 0e4a704196..7c2c994467 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/8/expected.json @@ -56,11 +56,14 @@ "column": 3 } }, - "value": 0, - "rawValue": 0, - "raw": "0O0" + "extra": { + "rawValue": 0, + "raw": "0O0" + }, + "value": 0 } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/80/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/80/expected.json index 7b2bcc83bd..364e85431c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/80/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/80/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "FunctionExpression", + "type": "FunctionDeclaration", "start": 15, "end": 29, "loc": { @@ -74,11 +74,12 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/82/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/82/expected.json index f0b1e778eb..c6453bfd9c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/82/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/82/expected.json @@ -43,7 +43,7 @@ } }, "declaration": { - "type": "ClassExpression", + "type": "ClassDeclaration", "start": 15, "end": 23, "loc": { @@ -76,7 +76,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json index 70d15519cf..192aa9db0f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/85/expected.json @@ -56,11 +56,14 @@ "column": 22 } }, - "value": "crypto", - "rawValue": "crypto", - "raw": "\"crypto\"" + "extra": { + "rawValue": "crypto", + "raw": "\"crypto\"" + }, + "value": "crypto" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json index ed92c39059..306190058c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/9/expected.json @@ -76,39 +76,6 @@ } }, "body": [ - { - "type": "ExpressionStatement", - "start": 17, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "expression": { - "type": "StringLiteral", - "start": 17, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "value": "use strict", - "rawValue": "use strict", - "raw": "'use strict'" - } - }, { "type": "ExpressionStatement", "start": 31, @@ -137,14 +104,54 @@ "column": 34 } }, - "value": 0, - "rawValue": 0, - "raw": "0O0" + "extra": { + "rawValue": 0, + "raw": "0O0" + }, + "value": 0 + } + } + ], + "directives": [ + { + "type": "Directive", + "start": 17, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "value": { + "type": "DirectiveLiteral", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "value": "use strict", + "extra": { + "raw": "'use strict'", + "rawValue": "use strict" + } } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json index ff8fd42d6a..2ca5064302 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/90/expected.json @@ -106,11 +106,14 @@ "column": 31 } }, - "value": "other", - "rawValue": "other", - "raw": "\"other\"" + "extra": { + "rawValue": "other", + "raw": "\"other\"" + }, + "value": "other" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json index 6e11605ec5..c267e85d0f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/91/expected.json @@ -57,11 +57,14 @@ "column": 15 } }, - "value": "jquery", - "rawValue": "jquery", - "raw": "\"jquery\"" + "extra": { + "rawValue": "jquery", + "raw": "\"jquery\"" + }, + "value": "jquery" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json index 45b87643fb..d1465085b3 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/92/expected.json @@ -89,11 +89,14 @@ "column": 22 } }, - "value": "jquery", - "rawValue": "jquery", - "raw": "\"jquery\"" + "extra": { + "rawValue": "jquery", + "raw": "\"jquery\"" + }, + "value": "jquery" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json index 6c4333a59a..a6757e53fe 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/93/expected.json @@ -152,11 +152,14 @@ "column": 41 } }, - "value": "crypto", - "rawValue": "crypto", - "raw": "\"crypto\"" + "extra": { + "rawValue": "crypto", + "raw": "\"crypto\"" + }, + "value": "crypto" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json index 9df1956fbe..2ab3fc92e8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/94/expected.json @@ -105,11 +105,14 @@ "column": 39 } }, - "value": "crypto", - "rawValue": "crypto", - "raw": "\"crypto\"" + "extra": { + "rawValue": "crypto", + "raw": "\"crypto\"" + }, + "value": "crypto" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json index 140aa920e3..9b9cd83bc5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/95/expected.json @@ -183,11 +183,14 @@ "column": 56 } }, - "value": "crypto", - "rawValue": "crypto", - "raw": "\"crypto\"" + "extra": { + "rawValue": "crypto", + "raw": "\"crypto\"" + }, + "value": "crypto" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json index 166aaf0ed8..378e45b83b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/97/expected.json @@ -105,11 +105,14 @@ "column": 33 } }, - "value": "bar", - "rawValue": "bar", - "raw": "\"bar\"" + "extra": { + "rawValue": "bar", + "raw": "\"bar\"" + }, + "value": "bar" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json index 3ab53b9b3e..d29972d512 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/98/expected.json @@ -89,11 +89,14 @@ "column": 32 } }, - "value": "crypto", - "rawValue": "crypto", - "raw": "\"crypto\"" + "extra": { + "rawValue": "crypto", + "raw": "\"crypto\"" + }, + "value": "crypto" } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/99/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/99/expected.json index 5732c1085e..0e1df863cc 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/99/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/99/expected.json @@ -122,12 +122,15 @@ } } } - ] + ], + "directives": [] }, - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/10/expected.json b/packages/babylon/test/fixtures/jsx/basic/10/expected.json index b8b912613e..7dbf341df0 100644 --- a/packages/babylon/test/fixtures/jsx/basic/10/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/10/expected.json @@ -135,11 +135,7 @@ "line": 1, "column": 27 } - }, - "range": [ - 4, - 27 - ] + } } ] }, @@ -188,11 +184,7 @@ "line": 1, "column": 27 } - }, - "range": [ - 4, - 27 - ] + } } ] } @@ -200,7 +192,8 @@ ] } } - ] + ], + "directives": [] }, "comments": [ { @@ -217,11 +210,7 @@ "line": 1, "column": 27 } - }, - "range": [ - 4, - 27 - ] + } } ] } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/11/expected.json b/packages/babylon/test/fixtures/jsx/basic/11/expected.json index 0386be294e..28fdb031d2 100644 --- a/packages/babylon/test/fixtures/jsx/basic/11/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/11/expected.json @@ -135,13 +135,13 @@ "column": 18 } }, - "value": "@test content", - "rawValue": null, - "raw": "@test content" + "extra": null, + "value": "@test content" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/12/expected.json b/packages/babylon/test/fixtures/jsx/basic/12/expected.json index ebf4b56508..6fd2dafebd 100644 --- a/packages/babylon/test/fixtures/jsx/basic/12/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/12/expected.json @@ -185,13 +185,13 @@ "column": 35 } }, - "value": "7x invalid-js-identifier", - "rawValue": null, - "raw": "7x invalid-js-identifier" + "extra": null, + "value": "7x invalid-js-identifier" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/13/expected.json b/packages/babylon/test/fixtures/jsx/basic/13/expected.json index 6021b7c324..33e3801372 100644 --- a/packages/babylon/test/fixtures/jsx/basic/13/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/13/expected.json @@ -150,7 +150,7 @@ }, "closingElement": null, "children": [], - "rawValue": null + "extra": null } }, { @@ -276,12 +276,11 @@ "column": 50 } }, - "value": "monkeys /> gorillas", - "rawValue": null, - "raw": "monkeys /> gorillas" + "extra": null, + "value": "monkeys /> gorillas" } ], - "rawValue": null + "extra": null } } ], @@ -307,6 +306,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/16/expected.json b/packages/babylon/test/fixtures/jsx/basic/16/expected.json index 9e21b2e01a..d5331fba92 100644 --- a/packages/babylon/test/fixtures/jsx/basic/16/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/16/expected.json @@ -105,7 +105,9 @@ }, "closingElement": null, "children": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "operator": "<", "right": { @@ -126,7 +128,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/18/expected.json b/packages/babylon/test/fixtures/jsx/basic/18/expected.json index 4e3544be8b..643ebce2f5 100644 --- a/packages/babylon/test/fixtures/jsx/basic/18/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/18/expected.json @@ -146,9 +146,8 @@ "column": 32 } }, - "value": "attribute", - "rawValue": null, - "raw": "\"attribute\"" + "extra": null, + "value": "attribute" } } ], @@ -174,6 +173,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/19/expected.json b/packages/babylon/test/fixtures/jsx/basic/19/expected.json index ebafdd1cd7..e9df7bec55 100644 --- a/packages/babylon/test/fixtures/jsx/basic/19/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/19/expected.json @@ -115,9 +115,8 @@ "column": 18 } }, - "value": "leading", - "rawValue": null, - "raw": "\"leading\"" + "extra": null, + "value": "leading" } }, { @@ -164,9 +163,8 @@ "column": 35 } }, - "value": "attribute", - "rawValue": null, - "raw": "\"attribute\"" + "extra": null, + "value": "attribute" } }, { @@ -253,6 +251,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/3/expected.json b/packages/babylon/test/fixtures/jsx/basic/3/expected.json index bbea012bdf..a5cebe4764 100644 --- a/packages/babylon/test/fixtures/jsx/basic/3/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/3/expected.json @@ -146,9 +146,8 @@ "column": 14 } }, - "value": "bar", - "rawValue": null, - "raw": "\"bar\"" + "extra": null, + "value": "bar" } } ], @@ -216,9 +215,8 @@ "column": 16 } }, - "value": " ", - "rawValue": null, - "raw": " " + "extra": null, + "value": " " }, { "type": "JSXExpressionContainer", @@ -265,9 +263,8 @@ "column": 24 } }, - "value": " ", - "rawValue": null, - "raw": " " + "extra": null, + "value": " " }, { "type": "JSXElement", @@ -403,6 +400,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/4/expected.json b/packages/babylon/test/fixtures/jsx/basic/4/expected.json index f0367e5afa..1c24bbb736 100644 --- a/packages/babylon/test/fixtures/jsx/basic/4/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/4/expected.json @@ -129,9 +129,11 @@ "column": 9 } }, - "value": " ", - "rawValue": " ", - "raw": "\" \"" + "extra": { + "rawValue": " ", + "raw": "\" \"" + }, + "value": " " } } }, @@ -179,9 +181,8 @@ "column": 16 } }, - "value": " ", - "rawValue": null, - "raw": "\" \"" + "extra": null, + "value": " " } }, { @@ -228,9 +229,8 @@ "column": 26 } }, - "value": "&", - "rawValue": null, - "raw": "\"&\"" + "extra": null, + "value": "&" } }, { @@ -277,9 +277,8 @@ "column": 37 } }, - "value": "&r;", - "rawValue": null, - "raw": "\"&r;\"" + "extra": null, + "value": "&r;" } } ], @@ -305,6 +304,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/7/expected.json b/packages/babylon/test/fixtures/jsx/basic/7/expected.json index 6a87f0a92a..154626c2da 100644 --- a/packages/babylon/test/fixtures/jsx/basic/7/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/7/expected.json @@ -115,9 +115,8 @@ "column": 22 } }, - "value": "&&", - "rawValue": null, - "raw": "\"&&\"" + "extra": null, + "value": "&&" } } ], @@ -185,13 +184,13 @@ "column": 0 } }, - "value": "\nbar\nbaz\n", - "rawValue": null, - "raw": "\nbar\nbaz\n" + "extra": null, + "value": "\nbar\nbaz\n" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/options.json b/packages/babylon/test/fixtures/jsx/options.json index 393a3c5f17..de157b98ca 100644 --- a/packages/babylon/test/fixtures/jsx/options.json +++ b/packages/babylon/test/fixtures/jsx/options.json @@ -1,3 +1,3 @@ { - "plugins": { "jsx": true } + "plugins": ["jsx"] } diff --git a/packages/babylon/test/fixtures/jsx/regression/1/expected.json b/packages/babylon/test/fixtures/jsx/regression/1/expected.json index e81c2275a0..568a15f9e9 100644 --- a/packages/babylon/test/fixtures/jsx/regression/1/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/1/expected.json @@ -135,9 +135,8 @@ "column": 7 } }, - "value": "foo ", - "rawValue": null, - "raw": "foo " + "extra": null, + "value": "foo " }, { "type": "JSXElement", @@ -212,9 +211,8 @@ "column": 21 } }, - "value": "test", - "rawValue": null, - "raw": "\"test\"" + "extra": null, + "value": "test" } } ], @@ -282,9 +280,8 @@ "column": 26 } }, - "value": " bar", - "rawValue": null, - "raw": " bar" + "extra": null, + "value": " bar" } ] }, @@ -302,13 +299,13 @@ "column": 34 } }, - "value": " baz", - "rawValue": null, - "raw": " baz" + "extra": null, + "value": " baz" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/4/expected.json b/packages/babylon/test/fixtures/jsx/regression/4/expected.json index 3b7587e891..6e86caee9b 100644 --- a/packages/babylon/test/fixtures/jsx/regression/4/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/4/expected.json @@ -135,13 +135,13 @@ "column": 10 } }, - "value": "/text", - "rawValue": null, - "raw": "/text" + "extra": null, + "value": "/text" } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/6/expected.json b/packages/babylon/test/fixtures/jsx/regression/6/expected.json index 8a34a3b69a..44b08551ed 100644 --- a/packages/babylon/test/fixtures/jsx/regression/6/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/6/expected.json @@ -115,9 +115,8 @@ "column": 18 } }, - "value": "leading", - "rawValue": null, - "raw": "\"leading\"" + "extra": null, + "value": "leading" } }, { @@ -174,6 +173,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/7/expected.json b/packages/babylon/test/fixtures/jsx/regression/7/expected.json index 0a092459c2..d82ea9606a 100644 --- a/packages/babylon/test/fixtures/jsx/regression/7/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/7/expected.json @@ -115,9 +115,8 @@ "column": 15 } }, - "value": "M230 80\n\t\tA 45 45, 0, 1, 0, 275 125\n L 275 80 Z", - "rawValue": null, - "raw": "\"M230 80\n\t\tA 45 45, 0, 1, 0, 275 125\n L 275 80 Z\"" + "extra": null, + "value": "M230 80\n\t\tA 45 45, 0, 1, 0, 275 125\n L 275 80 Z" } } ], @@ -143,6 +142,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json b/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json index fd7a654768..eeb0a95cc9 100644 --- a/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/issue-2083/expected.json @@ -70,9 +70,7 @@ "column": 4 } }, - "value": true, - "rawValue": true, - "raw": "true" + "value": true }, "consequent": { "type": "JSXElement", @@ -123,7 +121,9 @@ }, "closingElement": null, "children": [], - "parenthesizedExpression": true + "extra": { + "parenthesized": true + } }, "alternate": { "type": "JSXElement", @@ -177,6 +177,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json b/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json index 303c0e4ca7..15b1d87259 100644 --- a/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/issue-2114/expected.json @@ -115,9 +115,8 @@ "column": 43 } }, - "value": "^([\\w\\.\\-]+\\s)*[\\w\\.\\-]+\\s?$", - "rawValue": null, - "raw": "\"^([\\w\\.\\-]+\\s)*[\\w\\.\\-]+\\s?$\"" + "extra": null, + "value": "^([\\w\\.\\-]+\\s)*[\\w\\.\\-]+\\s?$" } } ], @@ -173,6 +172,7 @@ "children": [] } } - ] + ], + "directives": [] } } \ No newline at end of file From 95c9b2c8e016247e44c93057682ce29a18a28f4e Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:40:55 +0100 Subject: [PATCH 135/174] add filename to babylon test errors --- packages/babylon/test/index.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/babylon/test/index.js b/packages/babylon/test/index.js index b16648685e..6dc0156769 100644 --- a/packages/babylon/test/index.js +++ b/packages/babylon/test/index.js @@ -11,7 +11,12 @@ _.each(fixtures, function (suites, name) { suite(name + "/" + testSuite.title, function () { _.each(testSuite.tests, function (task) { test(task.title, !task.disabled && function () { - return runTest(task); + try { + return runTest(task); + } catch (err) { + err.message = task.actual.loc + ": " + err.message; + throw err; + } }); }); }); From 65e059e69bbe3700862cafe5462a340f2c609d6f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:41:11 +0100 Subject: [PATCH 136/174] allow local packages to be specified as devDependencies in bootstrap script --- scripts/bootstrap.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/bootstrap.js b/scripts/bootstrap.js index 209b7c89e2..d76f98ad06 100755 --- a/scripts/bootstrap.js +++ b/scripts/bootstrap.js @@ -33,12 +33,17 @@ packages.forEach(function (root) { mkdir("-p", nodeModulesLoc); packages.forEach(function (sub) { - if (!root.pkg.dependencies || !root.pkg.dependencies[sub.name]) return; + var valid = false; + if (root.pkg.dependencies && root.pkg.dependencies[sub.name]) valid = true; + if (root.pkg.devDependencies && root.pkg.devDependencies[sub.name]) valid = true; + if (!valid) return; - if (!fs.existsSync(nodeModulesLoc + "/" + sub.name)) { - console.log("Linking", "packages/" + sub.folder, "to", nodeModulesLoc + "/" + sub.name); - ln("-s", "packages/" + sub.folder, nodeModulesLoc + "/" + sub.name); - } + var linkSrc = "packages/" + sub.folder; + var linkDest = nodeModulesLoc + "/" + sub.name; + + console.log("Linking", linkSrc, "to", linkDest); + if (fs.existsSync(linkDest)) fs.unlinkSync(linkDest); + ln("-s", linkSrc, linkDest); }); cd("packages/" + root.folder); From 91f9cfb90201e3e579af42a7b92c78709a116de9 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:41:32 +0100 Subject: [PATCH 137/174] remove browser tests --- Makefile | 4 ---- scripts/test-browser.sh | 14 -------------- test/browser.html | 18 ------------------ test/browser.js | 4 ---- 4 files changed, 40 deletions(-) delete mode 100755 scripts/test-browser.sh delete mode 100644 test/browser.html delete mode 100644 test/browser.js diff --git a/Makefile b/Makefile index 604fe9281a..b4a9b08c19 100644 --- a/Makefile +++ b/Makefile @@ -33,10 +33,6 @@ test: lint ./scripts/test.sh make test-clean -test-browser: - ./scripts/test-browser.sh - make test-clean - test-cov: clean BABEL_ENV=test; \ make build diff --git a/scripts/test-browser.sh b/scripts/test-browser.sh deleted file mode 100755 index 6323ad089d..0000000000 --- a/scripts/test-browser.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh -set -e - -mkdir -p dist - -node packages/babel-core/scripts/cache-templates - -for f in packages/*; do - node node_modules/mocha-fixtures/bin/mocha-fixture-dump.js $f -done - -node node_modules/browserify/bin/cmd.js -e test/browser.js >dist/browser-test.js - -test -n "`which open`" && open test/browser.html diff --git a/test/browser.html b/test/browser.html deleted file mode 100644 index 3f00450b39..0000000000 --- a/test/browser.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - Mocha - - - -
- - - - - - diff --git a/test/browser.js b/test/browser.js deleted file mode 100644 index 6ba55da82d..0000000000 --- a/test/browser.js +++ /dev/null @@ -1,4 +0,0 @@ -if (process.browser) { - require("../packages/babel-core/test/_browser"); - require("../packages/babylon/test/index.js"); -} From c4dbb38f8a0e2ee397470361831cfe2135fc86b6 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:41:36 +0100 Subject: [PATCH 138/174] remove bjs --- sebmck-bjs.nfo | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 sebmck-bjs.nfo diff --git a/sebmck-bjs.nfo b/sebmck-bjs.nfo deleted file mode 100644 index d54c61e5fd..0000000000 --- a/sebmck-bjs.nfo +++ /dev/null @@ -1,48 +0,0 @@ - - ====== ==========M= - ============= == ======O= ======= MM == - M==+=== ==M === ==== == === == - =D === === ====MM ==M ==M ==M === - ===M ====M ==== =D ===M === === == - ==7 ====M ==M == ======== =========M ==M - =========== ======M ===MMM === ==M == - =======MM==========MM== ==M ==M=== == - ==M === M== ==M == === === =D = - ==M ===+ == == == ==$M =========== ============M - === ====M == ==M ===M== ====?MMMM M M - == ===== ==M == ==MM M - ==M===M=M =M =MM M M - ==MM=M == - MMM =M - M - - > ú B ú A ú B ú E ú L ú < - ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ - ³ SOFTWARE .. : JavaScript Compiler ³ COMPANY ... : N/A ³ - ³ SUPPLIER .. : N/A ³ CRACKER ... : Sebastian McKenzie ³ - ³ RATING .... : depends.. ³ PACKAGER .. : Sebastian McKenzie ³ - ³ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ - ³ GRAFIX .... : - ³ SOUND ..... : - ³ - ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; - - Babel is a JavaScript compiler and transformation platform for writing NeXt - GeNeRaTiOn JavaScript. - - ÆÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍ͵ - ³ :: Greets :: ³ - ³ ³ - ³ sebmck, thejameskyle, RReverser, zloirock, monsanto, gaearon, zertosh, ³ - ³ stefanpenner, eventualbuddha, AluisioASG, Apoxx, Couto, dominicbarnes, ³ - ³ es128, gordonkristan, hkjels, jmeas, josh, loganfsmyth, nightire, ³ - ³ Rich-Harris, shinnn, shuhei, sindresorhus, tricknotes ³ - ³ ³ - ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; - - -*- JavaScripts for all , All for JavaScripts ! -*- - - ÕÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͸ - ³ If you want to Contact us, call 555-720-4228, Use the Handle "BABEL" w/ ³ - ³ password : VISITOR and leave a mail to Sebastian or James. ³ - ÔÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ; - - -=- We LoVe fun Too! -=- From 3e6b76aa41bfa0237b7d7699fbd0d1080f7eeed9 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:41:54 +0100 Subject: [PATCH 139/174] add support for devDependencies to publish script --- scripts/publish.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/publish.js b/scripts/publish.js index 6961235436..2335924acc 100755 --- a/scripts/publish.js +++ b/scripts/publish.js @@ -62,6 +62,14 @@ function getPackageConfig(name) { // +function updateDepsObject(changedPackages, deps) { + for (var depName in deps) { + if (changedPackages.indexOf(depName) >= 0) { + deps[depName] = "^" + NEW_VERSION; + } + } +} + function publish() { var packageNames = fs.readdirSync(PACKAGE_LOC).filter(function (name) { return name[0] !== "."; @@ -85,7 +93,7 @@ function publish() { } }); - if (!changedPackages.length) { + if (!changedPackages.length && !FORCE_VERSION.length) { throw new Error(chalk.red("No packages changed.")); } @@ -99,11 +107,8 @@ function publish() { pkg.version = NEW_VERSION; // updated dependencies - for (var depName in pkg.dependencies) { - if (changedPackages.indexOf(depName) >= 0) { - pkg.dependencies[depName] = "^" + NEW_VERSION; - } - } + updateDepsObject(changedPackages, pkg.dependencies); + updateDepsObject(changedPackages, pkg.devDependencies); // write new package fs.writeFileSync(pkgLoc, JSON.stringify(pkg, null, " ")); From 6467bf6809f7f500c6e744ce6858c62fd93c8455 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:42:08 +0100 Subject: [PATCH 140/174] add script to generate a flow lib file for babel types --- scripts/generate-interfaces.js | 117 +++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 scripts/generate-interfaces.js diff --git a/scripts/generate-interfaces.js b/scripts/generate-interfaces.js new file mode 100644 index 0000000000..5ec8d3c829 --- /dev/null +++ b/scripts/generate-interfaces.js @@ -0,0 +1,117 @@ +var fs = require("fs"); +var t = require("../packages/babel-types"); + +var NODE_PREFIX = "BabelNode"; + +var code = `// NOTE: This file is autogenerated. Do not modify. +// See scripts/generate-interfaces.js for script used. + +declare class ${NODE_PREFIX}Comment { + value: string; + start: number; + end: number; + loc: ${NODE_PREFIX}SourceLocation; +} + +declare class ${NODE_PREFIX}BlockComment extends ${NODE_PREFIX}Comment { + type: "BlockComment"; +} + +declare class ${NODE_PREFIX}LineComment extends ${NODE_PREFIX}Comment { + type: "LineComment"; +} + +declare class ${NODE_PREFIX}SourceLocation { + start: { + line: number; + column: number; + }; + + end: { + line: number; + column: number; + }; +} + +declare class ${NODE_PREFIX} { + leadingComments: ?Array<${NODE_PREFIX}Comment>; + innerComments: ?Array<${NODE_PREFIX}Comment>; + trailingComments: ?Array<${NODE_PREFIX}Comment>; + start: ?number; + end: ?number; + loc: ?${NODE_PREFIX}SourceLocation; +}\n\n`; + +// + +var lines = []; + +for (var type in t.NODE_FIELDS) { + var fields = t.NODE_FIELDS[type]; + + var struct = ['type: "' + type + '";']; + var args = []; + + for (var fieldName in fields) { + var field = fields[fieldName]; + + var suffix = ""; + if (field.optional || field.default != null) suffix += "?"; + + var typeAnnotation = "any"; + + var validate = field.validate; + if (validate) { + if (validate.oneOf) { + typeAnnotation = validate.oneOf.map(function (val) { + return JSON.stringify(val); + }).join(" | "); + } + + if (validate.type) { + typeAnnotation = validate.type; + + if (typeAnnotation === "array") { + typeAnnotation = "Array"; + } + } + + if (validate.oneOfNodeTypes) { + var types = validate.oneOfNodeTypes.map(type => `${NODE_PREFIX}${type}`); + typeAnnotation = types.join(" | "); + if (suffix === "?") typeAnnotation = "?" + typeAnnotation; + } + } + + if (typeAnnotation) { + suffix += ": " + typeAnnotation; + } + + args.push(t.toBindingIdentifierName(fieldName) + suffix); + if (!t.isValidIdentifier(fieldName)) continue; + struct.push(fieldName + suffix + ";"); + } + + code += `declare class ${NODE_PREFIX}${type} extends ${NODE_PREFIX} { + ${struct.join("\n ").trim()} +}\n\n`; + + lines.push(`declare function ${type[0].toLowerCase() + type.slice(1)}(${args.join(", ")}): ${NODE_PREFIX}${type};`); +} + +for (var i = 0; i < t.TYPES.length; i++) { + lines.push(`declare function is${t.TYPES[i]}(node: Object, opts?: Object): boolean;`); +} + +for (var type in t.FLIPPED_ALIAS_KEYS) { + var types = t.FLIPPED_ALIAS_KEYS[type]; + code += `type ${NODE_PREFIX}${type} = ${types.map(type => `${NODE_PREFIX}${type}`).join(" | ")};\n`; +} + +code += `\ndeclare module "babel-types" { + ${lines.join("\n").replace(/\n/g, "\n ").trim()} +}\n`; + +// + +fs.writeFileSync(__dirname + "/../lib/types.js", code); From 72b74de833e5cb8baac4636bb54812c95b6742e0 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:43:24 +0100 Subject: [PATCH 141/174] add 5.8.23-5.8.26 changelog --- CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 33452f9e98..06ecb69c8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,28 @@ _Note: Gaps between patch versions are faulty, broken or test releases._ See [CHANGELOG - 6to5](CHANGELOG-6to5.md) for the pre-4.0.0 version changelog. +## 5.8.26 + + * **Internal** + * Republish to get fix for runtime `typeof-react-element` helper. + +## 5.8.25 + + * **Internal** + * Rename `define` method to avoid webpack assuming those files are AMD. + +## 5.8.24 + + * **Spec Compliancy** + * Updated `optimisation.react.inlineElements` transformer to React 0.14 output. Thanks [@spicyj](https://github.com/spicyj)! + * **Polish** + * Add support for evaluating more static nodes. Thanks [@hzoo](https://github.com/hzoo)! + +## 5.8.23 + + * **Bug Fix** + * Fix a bug where pushed scope bindings weren't properly being registered. + ## 5.8.22 * **Bug Fix** From 64d5ec090b5d54f68647b96032d765c53c43ef1a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:43:37 +0100 Subject: [PATCH 142/174] extend Store from Map --- packages/babel-core/src/store.js | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/babel-core/src/store.js b/packages/babel-core/src/store.js index d4c31300b2..6c1ae4f953 100644 --- a/packages/babel-core/src/store.js +++ b/packages/babel-core/src/store.js @@ -1,26 +1,20 @@ /* @flow */ -export default class Store { +export default class Store extends Map { constructor() { + super(); this.dynamicData = {}; - this.data = {}; } dynamicData: Object; - data: Object; - set(key: string, val: any): any { - return this.data[key] = val; - } - - setDynamic(key: string, fn: Function) { + setDynamic(key, fn) { this.dynamicData[key] = fn; } get(key: string): any { - let data = this.data[key]; - if (data) { - return data; + if (this.has(key)) { + return super.get(key); } else { let dynamic = this.dynamicData[key]; if (dynamic) { From d108d799bfbcdb9016b88d13dc97a7a189fd9b01 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:44:14 +0100 Subject: [PATCH 143/174] remove babel.parse and encourage use of babylon directly --- packages/babel-core/src/api/node.js | 23 ---------------------- packages/babel-core/src/helpers/parse.js | 25 ------------------------ 2 files changed, 48 deletions(-) delete mode 100644 packages/babel-core/src/helpers/parse.js diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index d2a34f9a61..bd19d22977 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -57,26 +57,3 @@ export function transformFileSync(filename: string, opts?: Object = {}): string opts.filename = filename; return transform(fs.readFileSync(filename, "utf8"), opts); } - -export function parse(code, opts = {}) { - opts.allowHashBang = true; - opts.sourceType = "module"; - opts.ecmaVersion = Infinity; - opts.plugins = { - jsx: true, - flow: true - }; - opts.features = {}; - - let ast = babylon.parse(code, opts); - - if (opts.onToken) { - opts.onToken.push(...ast.tokens); - } - - if (opts.onComment) { - opts.onComment.push(...ast.comments); - } - - return ast.program; -} diff --git a/packages/babel-core/src/helpers/parse.js b/packages/babel-core/src/helpers/parse.js deleted file mode 100644 index e4ac6911f5..0000000000 --- a/packages/babel-core/src/helpers/parse.js +++ /dev/null @@ -1,25 +0,0 @@ -/* @flow */ - -import * as babylon from "babylon"; - -/** - * Parse `code` with normalized options, collecting tokens and comments. - */ - -export default function (code: string, opts: BabelParserOptions = {}) { - let parseOpts = { - allowImportExportEverywhere: opts.looseModules, - allowReturnOutsideFunction: opts.looseModules, - strictMode: opts.strictMode, - sourceType: opts.sourceType, - features: opts.features || {}, - plugins: opts.plugins || {} - }; - - if (opts.nonStandard) { - parseOpts.plugins.jsx = true; - parseOpts.plugins.flow = true; - } - - return babylon.parse(code, parseOpts); -} From 5006403cd7f7249b83a30fad38bf8684ba5e73b9 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:44:39 +0100 Subject: [PATCH 144/174] remove polyfill from babel/register --- packages/babel-core/src/api/register/browser.js | 2 -- packages/babel-core/src/api/register/node-polyfill.js | 2 -- 2 files changed, 4 deletions(-) delete mode 100644 packages/babel-core/src/api/register/node-polyfill.js diff --git a/packages/babel-core/src/api/register/browser.js b/packages/babel-core/src/api/register/browser.js index fcaba25cf4..cd9e975861 100644 --- a/packages/babel-core/src/api/register/browser.js +++ b/packages/babel-core/src/api/register/browser.js @@ -1,5 +1,3 @@ // required to safely use babel/register within a browserify codebase export default function () {} - -import "babel-polyfill"; diff --git a/packages/babel-core/src/api/register/node-polyfill.js b/packages/babel-core/src/api/register/node-polyfill.js deleted file mode 100644 index 7de324de17..0000000000 --- a/packages/babel-core/src/api/register/node-polyfill.js +++ /dev/null @@ -1,2 +0,0 @@ -import "babel-polyfill"; -export { default } from "./node"; From 210910513d129942fbab0fd4ec05609198681c07 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:44:59 +0100 Subject: [PATCH 145/174] remove babel.register --- packages/babel-core/src/api/node.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index bd19d22977..0aadff0514 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -24,11 +24,6 @@ export { messages }; import * as t from "babel-types"; export { t as types }; -export function register(opts?: Object) { - let callback = require("./register/node-polyfill"); - if (opts != null) callback(opts); - return callback; -} export function transformFile(filename: string, opts?: Object, callback: Function) { if (isFunction(opts)) { From 51c9d590501e5405a7d75bf5a0cbf974729b998d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:45:47 +0100 Subject: [PATCH 146/174] allow plugins to be instances --- .../transformation/file/options/option-manager.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index 5151dd0901..6b7de9341a 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -98,11 +98,13 @@ export default class OptionManager { } } - // allow plugin containers to be specified so they don't have to manually require - if (typeof plugin === "function") { - plugin = OptionManager.memoisePluginContainer(plugin, loc, i); - } else { - throw new TypeError(messages.get("pluginNotFunction", loc, i)); + if (!(plugin instanceof Plugin)) { + // allow plugin containers to be specified so they don't have to manually require + if (typeof plugin === "function") { + plugin = OptionManager.memoisePluginContainer(plugin, loc, i); + } else { + throw new TypeError(messages.get("pluginNotFunction", loc, i)); + } } // validate From 52202543ffe0e9652649be714e41eeb3c3937440 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:46:20 +0100 Subject: [PATCH 147/174] better error messages for unknown extends clause and unknown options --- .../file/options/option-manager.js | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index 6b7de9341a..a0612da778 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -9,6 +9,7 @@ import resolve from "../../../helpers/resolve"; import json5 from "json5"; import isAbsolute from "path-is-absolute"; import pathExists from "path-exists"; +import cloneDeep from "lodash/lang/cloneDeep"; import clone from "lodash/lang/clone"; import merge from "../../../helpers/merge"; import config from "./config"; @@ -24,10 +25,10 @@ const PACKAGE_FILENAME = "package.json"; function exists(filename) { let cached = existsCache[filename]; - if (cached != null) { - return cached; - } else { + if (cached == null) { return existsCache[filename] = pathExists.sync(filename); + } else { + return cached; } } @@ -141,9 +142,18 @@ export default class OptionManager { * - `dirname` is used to resolve plugins relative to it. */ - mergeOptions(opts?: Object, alias: string = "foreign", loc?: string, dirname?: string) { - if (!opts) return; + mergeOptions(rawOpts?: Object, alias: string = "foreign", loc?: string, dirname?: string) { + if (!rawOpts) return; + // + if (typeof rawOpts !== "object" || Array.isArray(rawOpts)) { + this.log.error(`Invalid options type for ${alias}`, TypeError); + } + + // + let opts = cloneDeep(rawOpts, val => val); + + // dirname = dirname || process.cwd(); loc = loc || alias; @@ -151,7 +161,9 @@ export default class OptionManager { let option = config[key]; // check for an unknown option - if (!option && this.log) this.log.error(`Unknown option: ${alias}.${key}`, ReferenceError); + if (!option && this.log) { + this.log.error(`Unknown option: ${alias}.${key}`, ReferenceError); + } } // normalise options @@ -164,7 +176,12 @@ export default class OptionManager { // add extends clause if (opts.extends) { - this.addConfig(resolve(opts.extends, dirname)); + let extendsLoc = resolve(opts.extends, dirname); + if (extendsLoc) { + this.addConfig(extendsLoc); + } else { + if (this.log) this.log.error(`Couldn't resolve extends clause of ${opts.extends} in ${alias}`); + } delete opts.extends; } @@ -174,6 +191,7 @@ export default class OptionManager { delete opts.presets; } + // env let envOpts; let envKey = process.env.BABEL_ENV || process.env.NODE_ENV || "development"; if (opts.env) { @@ -196,7 +214,7 @@ export default class OptionManager { let presetOpts = require(presetLoc); this.mergeOptions(presetOpts, presetLoc, presetLoc, path.dirname(presetLoc)); } else { - throw new Error("todo"); + throw new Error("Couldn't find preset"); } } else if (typeof val === "object") { this.mergeOptions(val); @@ -210,9 +228,9 @@ export default class OptionManager { let file = fs.readFileSync(loc, "utf8"); let lines = file.split("\n"); - lines = lines.map(function (line) { - return line.replace(/#(.*?)$/, "").trim(); - }).filter((line) => !!line); + lines = lines + .map((line) => line.replace(/#(.*?)$/, "").trim()) + .filter((line) => !!line); this.mergeOptions({ ignore: lines }, loc); } From de45daaef8de652e771306f4b8249d0f971be063 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 16:46:45 +0100 Subject: [PATCH 148/174] don't execute the callback inside of a try-catch as if the callback errors then it'll emit the error back to the callback --- packages/babel-core/src/api/node.js | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index 0aadff0514..af2713fef8 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -34,17 +34,21 @@ export function transformFile(filename: string, opts?: Object, callback: Functio opts.filename = filename; fs.readFile(filename, function (err, code) { - if (err) return callback(err); - let result; - try { - result = transform(code, opts); - } catch (err) { - return callback(err); + if (!err) { + try { + result = transform(code, opts); + } catch (_err) { + err = _err; + } } - callback(null, result); + if (err) { + callback(err); + } else { + callback(null, result); + } }); } From 9320d661f911ee598315554ee807c817f7a45900 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 17:25:43 +0100 Subject: [PATCH 149/174] flesh out async-to-generator and bluebird-coroutines transformers, add babel-helper-async-to-generator module --- .../README.md | 5 ++ .../package.json | 15 ++++ .../src/index.js | 68 +++++++++++++++++++ .../package.json | 6 +- .../src/index.js | 16 ++++- .../package.json | 5 +- .../src/index.js | 12 +++- 7 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 packages/babel-helper-remap-async-to-generator/README.md create mode 100644 packages/babel-helper-remap-async-to-generator/package.json create mode 100644 packages/babel-helper-remap-async-to-generator/src/index.js diff --git a/packages/babel-helper-remap-async-to-generator/README.md b/packages/babel-helper-remap-async-to-generator/README.md new file mode 100644 index 0000000000..a7331914d6 --- /dev/null +++ b/packages/babel-helper-remap-async-to-generator/README.md @@ -0,0 +1,5 @@ +# babel-helper-remap-async-to-generator + +## Usage + +TODO diff --git a/packages/babel-helper-remap-async-to-generator/package.json b/packages/babel-helper-remap-async-to-generator/package.json new file mode 100644 index 0000000000..04fc955d16 --- /dev/null +++ b/packages/babel-helper-remap-async-to-generator/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel-helper-remap-async-to-generator", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20", + "babel-traverse": "^5.8.20", + "babel-helper-explode-class": "^5.0.0", + "babel-helper-function-name": "^5.0.0" + } +} diff --git a/packages/babel-helper-remap-async-to-generator/src/index.js b/packages/babel-helper-remap-async-to-generator/src/index.js new file mode 100644 index 0000000000..2a42feabdf --- /dev/null +++ b/packages/babel-helper-remap-async-to-generator/src/index.js @@ -0,0 +1,68 @@ +/* @flow */ + +import type { NodePath } from "babel-traverse"; +import explodeClass from "babel-helper-explode-class"; +import { bare as nameMethod } from "babel-helper-function-name"; +import * as t from "babel-types"; + +let awaitVisitor = { + Function(path) { + path.skip(); + }, + + AwaitExpression({ node }) { + node.type = "YieldExpression"; + } +}; + +let referenceVisitor = { + ReferencedIdentifier({ node, scope }, state) { + let name = state.id.name; + if (node.name === name && scope.bindingIdentifierEquals(name, state.id)) { + return state.ref = state.ref || scope.generateUidIdentifier(name); + } + } +}; + +export default function (path: NodePath, callId: Object) { + let node = path.node; + if (node.generator) return; + + node.async = false; + node.generator = true; + + path.traverse(awaitVisitor); + + let container = t.functionExpression(null, [], t.blockStatement([ + t.returnStatement(t.callExpression(callId, [node])) + ])); + node.shadow = container; + + if (path.isFunctionDeclaration()) { + let declar = t.variableDeclaration("let", [ + t.variableDeclarator(id, container) + ]); + declar._blockHoist = true; + + nameMethod({ + node: container, + parent: declar.declarations[0], + scope: path.scope + }); + + path.replaceWith(declar); + } else { + node.type = "FunctionExpression"; + + if (path.parentPath.isMethodDefinition({ value: node })) { + // we're a class method + let classPath = path.parentPath.parentPath.parentPath; + explodeClass(classPath); + + // remove method since we've injected ourselves already + path.parentPath.remove(); + } else { + path.replaceWith(container); + } + } +} diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json b/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json index 8ed13dc485..1a389fdebe 100644 --- a/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json +++ b/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json @@ -7,5 +7,9 @@ "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-helper-remap-async-to-generator": "^5.0.0", + "babel-types": "^5.0.0" + } } diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js b/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js index 6845446a11..cb9edf5203 100644 --- a/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js +++ b/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js @@ -1,7 +1,21 @@ +import remapAsyncToGenerator from "babel-helper-remap-async-to-generator"; +import * as t from "babel-types"; + export default function () { return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("asyncFunctions"); + }, + visitor: { - // your visitor methods go here + Function(path, state) { + if (!path.node.async || path.node.generator) return; + + remapAsyncToGenerator( + path, + t.memberExpression(state.addImport("bluebird", null, "absolute"), t.identifier("coroutine")) + ); + } } }; } diff --git a/packages/babel-plugin-transform-async-to-generator/package.json b/packages/babel-plugin-transform-async-to-generator/package.json index 1f6dcf377a..760520838c 100644 --- a/packages/babel-plugin-transform-async-to-generator/package.json +++ b/packages/babel-plugin-transform-async-to-generator/package.json @@ -7,5 +7,8 @@ "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-helper-remap-async-to-generator": "^5.0.0" + } } diff --git a/packages/babel-plugin-transform-async-to-generator/src/index.js b/packages/babel-plugin-transform-async-to-generator/src/index.js index 6845446a11..63b1e3888b 100644 --- a/packages/babel-plugin-transform-async-to-generator/src/index.js +++ b/packages/babel-plugin-transform-async-to-generator/src/index.js @@ -1,7 +1,17 @@ +import remapAsyncToGenerator from "babel-helper-remap-async-to-generator"; + export default function () { return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("asyncFunctions"); + }, + visitor: { - // your visitor methods go here + Function(path, state) { + if (!path.node.async || path.node.generator) return; + + remapAsyncToGenerator(path, state.addHelper("async-to-generator")); + } } }; } From 9c2b4e30b65baded81398487b2854255b11f2308 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Mon, 5 Oct 2015 17:46:59 +0100 Subject: [PATCH 150/174] use basename of relative filename when using source map defaults - fixes #1567 --- packages/babel-core/src/transformation/file/index.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index 731f62c5a8..73f3b9a214 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -136,9 +136,11 @@ export default class File extends Store { filenameRelative: opts.filename }); + let basenameRelative = path.basename(opts.filenameRelative); + defaults(opts, { - sourceFileName: opts.filenameRelative, - sourceMapTarget: opts.filenameRelative + sourceFileName: basenameRelative, + sourceMapTarget: basenameRelative }); // From 745f9fb5bd9dd5600ae0264d720ef0e16cc66228 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 8 Oct 2015 01:19:27 +0100 Subject: [PATCH 151/174] clean up babel-code-frame, var -> let etc - closes #2505 --- packages/babel-code-frame/src/index.js | 32 +++++++++++++++----------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/packages/babel-code-frame/src/index.js b/packages/babel-code-frame/src/index.js index 5028248c57..972eb0ff7d 100644 --- a/packages/babel-code-frame/src/index.js +++ b/packages/babel-code-frame/src/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import lineNumbers from "line-numbers"; import repeating from "repeating"; import jsTokens from "js-tokens"; @@ -8,7 +10,7 @@ import chalk from "chalk"; * Chalk styles for token types. */ -var defs = { +let defs = { string: chalk.red, punctuator: chalk.bold, curly: chalk.green, @@ -32,7 +34,7 @@ const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; */ function getTokenType(match) { - var token = jsTokens.matchToToken(match); + let token = jsTokens.matchToToken(match); if (token.type === "name" && esutils.keyword.isReservedWordES6(token.value)) { return "keyword"; } @@ -58,10 +60,10 @@ function getTokenType(match) { * Highlight `text`. */ -function highlight(text) { +function highlight(text: string) { return text.replace(jsTokens, function (...args) { - var type = getTokenType(args); - var colorize = defs[type]; + let type = getTokenType(args); + let colorize = defs[type]; if (colorize) { return args[0].split(NEWLINE).map(str => colorize(str)).join("\n"); } else { @@ -74,23 +76,27 @@ function highlight(text) { * Create a code frame, adding line numbers, code highlighting, and pointing to a given position. */ -export default function (lines: number, lineNumber: number, colNumber: number, opts = {}): string { +export default function ( + rawLines: string, + lineNumber: number, + colNumber: number, + opts: Object = {}, +): string { colNumber = Math.max(colNumber, 0); - var highlighted = opts.highlightCode && chalk.supportsColor; - if (highlighted) lines = highlight(lines); + let highlighted = opts.highlightCode && chalk.supportsColor; + if (highlighted) rawLines = highlight(rawLines); - lines = lines.split(NEWLINE); - - var start = Math.max(lineNumber - 3, 0); - var end = Math.min(lines.length, lineNumber + 3); + let lines = rawLines.split(NEWLINE); + let start = Math.max(lineNumber - 3, 0); + let end = Math.min(lines.length, lineNumber + 3); if (!lineNumber && !colNumber) { start = 0; end = lines.length; } - var frame = lineNumbers(lines.slice(start, end), { + let frame = lineNumbers(lines.slice(start, end), { start: start + 1, before: " ", after: " | ", From 3974dd762d1c58eb21da78eeab736508be67b9db Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Sun, 25 Oct 2015 21:04:02 +0000 Subject: [PATCH 152/174] add node 4.0 to travis matrix --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index faa6c0e55d..be2b7d5c0f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ cache: - node_modules node_js: + - "4.0" - iojs # - "0.10" - "0.12" From ae7d5367f1c3d438667242d6925db024f875fccd Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 17:51:24 +0000 Subject: [PATCH 153/174] 6.0.0 I'm extremely stupid and didn't commit as I go. To anyone reading this I'm extremely sorry. A lot of these changes are very broad and I plan on releasing Babel 6.0.0 today live on stage at Ember Camp London so I'm afraid I couldn't wait. If you're ever in London I'll buy you a beer (or assorted beverage!) to make up for it, also I'll kiss your feet and give you a back massage, maybe. --- .flowconfig | 14 + Makefile | 4 +- VERSION | 2 +- doc/design/compiler-assumptions.md | 9 + doc/design/compiler-guarantees.md | 0 package.json | 8 +- packages/README.md | 87 +-- packages/babel-cli/index.js | 2 +- packages/babel-cli/package.json | 20 +- packages/babel-cli/src/_babel-node.js | 36 +- packages/babel-cli/src/babel-node.js | 2 +- packages/babel-cli/src/babel-plugin/index.js | 162 ----- .../src/babel-plugin/templates/LICENSE | 22 - .../src/babel-plugin/templates/README.md | 35 - .../src/babel-plugin/templates/index.js | 8 - packages/babel-cli/src/babel/dir.js | 6 +- packages/babel-cli/src/babel/file.js | 3 + packages/babel-cli/src/babel/util.js | 34 +- packages/babel-cli/test/.babelrc | 4 +- .../--output-type umd/stdout.txt | 2 +- .../--whitelist/options.json | 2 +- .../--whitelist/stdout.txt | 20 +- .../fixtures/babel/--blacklist/options.json | 3 - .../test/fixtures/babel/--blacklist/stdin.txt | 1 - .../fixtures/babel/--blacklist/stdout.txt | 3 - .../fixtures/babel/--whitelist/options.json | 3 - .../test/fixtures/babel/--whitelist/stdin.txt | 2 - .../fixtures/babel/--whitelist/stdout.txt | 4 - packages/babel-cli/test/index.js | 27 +- packages/babel-code-frame/package.json | 5 +- packages/babel-core/package.json | 45 +- .../babel-core/register-without-polyfill.js | 1 - packages/babel-core/register.js | 2 +- packages/babel-core/scripts/build-dist.sh | 25 +- .../babel-core/scripts/cache-templates.js | 5 - packages/babel-core/scripts/postpublish.js | 2 - packages/babel-core/scripts/prepublish.js | 3 - packages/babel-core/src/api/node.js | 23 +- packages/babel-core/src/api/register/cache.js | 2 + packages/babel-core/src/api/register/node.js | 90 +-- packages/babel-core/src/helpers/resolve.js | 24 + packages/babel-core/src/store.js | 7 +- .../src/tools/build-external-helpers.js | 49 +- .../src/transformation/file/index.js | 494 +++++-------- .../{modules/lib => file}/metadata.js | 52 +- .../transformation/file/options/config.json | 34 +- .../src/transformation/file/options/index.js | 1 + .../file/options/option-manager.js | 39 +- .../helpers/build-comprehension.js | 25 - .../helpers/build-react-transformer.js | 159 ----- .../transformation/helpers/call-delegate.js | 36 - .../helpers/remap-async-to-generator.js | 66 -- .../babel-core/src/transformation/index.js | 10 - .../internal-plugins/shadow-functions.js | 8 +- .../src/transformation/modules/_default.js | 298 -------- .../src/transformation/modules/_strict.js | 15 - .../src/transformation/modules/amd-strict.js | 6 - .../src/transformation/modules/amd.js | 145 ---- .../transformation/modules/common-strict.js | 6 - .../src/transformation/modules/common.js | 123 ---- .../src/transformation/modules/ignore.js | 17 - .../src/transformation/modules/index.js | 16 - .../src/transformation/modules/lib/remaps.js | 124 ---- .../src/transformation/modules/system.js | 226 ------ .../src/transformation/modules/umd-strict.js | 6 - .../src/transformation/modules/umd.js | 85 --- .../src/transformation/plugin-pass.js | 16 +- .../babel-core/src/transformation/plugin.js | 70 +- .../src/transformation/templates/.babelrc | 4 - .../templates/abstract-expression-call.js | 1 - .../templates/abstract-expression-delete.js | 1 - .../templates/abstract-expression-get.js | 1 - .../templates/abstract-expression-set.js | 1 - .../transformation/templates/array-from.js | 1 - .../src/transformation/templates/call.js | 1 - .../templates/exports-assign.js | 1 - .../templates/exports-default-assign.js | 1 - .../templates/exports-from-assign.js | 6 - .../exports-module-declaration-loose.js | 1 - .../templates/exports-module-declaration.js | 3 - .../templates/helper-async-to-generator.js | 28 - .../transformation/templates/helper-bind.js | 1 - .../templates/helper-class-call-check.js | 5 - .../templates/helper-create-class.js | 17 - .../helper-create-decorated-class.js | 42 -- .../helper-create-decorated-object.js | 37 - .../templates/helper-default-props.js | 10 - .../templates/helper-defaults.js | 11 - ...er-define-decorated-property-descriptor.js | 13 - .../templates/helper-define-property.js | 18 - .../templates/helper-extends.js | 11 - .../transformation/templates/helper-get.js | 25 - .../templates/helper-has-own.js | 1 - .../templates/helper-inherits.js | 14 - .../templates/helper-instanceof.js | 7 - .../helper-interop-export-wildcard.js | 5 - .../helper-interop-require-default.js | 3 - .../helper-interop-require-wildcard.js | 14 - .../templates/helper-interop-require.js | 3 - .../templates/helper-new-arrow-check.js | 5 - .../helper-object-destructuring-empty.js | 3 - .../helper-object-without-properties.js | 9 - .../templates/helper-self-global.js | 1 - .../transformation/templates/helper-set.js | 21 - .../transformation/templates/helper-slice.js | 1 - .../templates/helper-sliced-to-array-loose.js | 14 - .../templates/helper-sliced-to-array.js | 46 -- .../helper-tagged-template-literal-loose.js | 4 - .../helper-tagged-template-literal.js | 5 - .../helper-temporal-assert-defined.js | 6 - .../templates/helper-temporal-undefined.js | 1 - .../templates/helper-to-array.js | 3 - .../templates/helper-to-consumable-array.js | 8 - .../transformation/templates/helper-typeof.js | 3 - .../templates/named-function.js | 7 - ...rty-method-assignment-wrapper-generator.js | 11 - .../property-method-assignment-wrapper.js | 11 - .../templates/prototype-identifier.js | 1 - .../templates/require-assign-key.js | 1 - .../src/transformation/templates/require.js | 1 - .../templates/self-contained-helpers-head.js | 2 - .../src/transformation/templates/system.js | 6 - .../transformation/templates/test-exports.js | 1 - .../transformation/templates/test-module.js | 1 - .../templates/umd-commonjs-strict.js | 11 - .../templates/umd-runner-body.js | 11 - .../transformers/es5/properties.mutators.js | 31 - .../transformers/es6/block-scoping/index.js | 640 ----------------- .../transformers/es6/classes/index.js | 23 - .../transformers/es6/classes/vanilla.js | 572 --------------- .../transformation/transformers/es6/for-of.js | 177 ----- .../transformers/es6/modules.js | 77 --- .../transformers/es6/object-super.js | 35 - .../transformers/es6/parameters/default.js | 120 ---- .../transformers/es6/parameters/index.js | 10 - .../transformers/es6/regex.sticky.js | 12 - .../transformers/es6/regex.unicode.js | 10 - .../transformers/es6/spec.arrow-functions.js | 25 - .../transformers/es6/spec.modules.js | 20 - .../transformers/es6/spec.symbols.js | 43 -- .../es6/spec.template-literals.js | 16 - .../transformers/es6/tail-call.js | 401 ----------- .../transformers/es7/async-functions.js | 3 - .../transformers/es7/class-properties.js | 4 - .../transformers/es7/comprehensions.js | 57 -- .../transformers/es7/decorators.js | 44 -- .../transformers/es7/do-expressions.js | 17 - .../es7/exponentiation-operator.js | 16 - .../transformers/es7/export-extensions.js | 41 -- .../transformers/es7/function-bind.js | 53 -- .../transformers/es7/object-rest-spread.js | 50 -- .../es7/trailing-function-commas.js | 3 - .../transformation/transformers/filters.js | 24 - .../src/transformation/transformers/index.js | 88 --- .../transformers/internal/hoist-directives.js | 20 - .../transformers/internal/module-formatter.js | 22 - .../transformers/internal/modules.js | 111 --- .../transformers/internal/validation.js | 25 - .../transformers/optimisation/flow.for-of.js | 13 - .../optimisation/modules.system.js | 50 -- .../optimisation/react.inline-elements.js | 77 --- .../transformers/other/async-to-generator.js | 16 - .../transformers/other/bluebird-coroutines.js | 22 - .../transformers/other/react-compat.js | 30 - .../transformers/other/react.js | 45 -- .../transformers/other/regenerator.js | 78 --- .../transformers/other/strict.js | 44 -- .../transformers/spec/function-name.js | 28 - packages/babel-core/src/util.js | 138 +--- .../babel-core/test/_transformation-helper.js | 29 +- packages/babel-core/test/api.js | 158 +---- packages/babel-core/test/evaluation.js | 66 ++ .../arguments-refers-to-parent-function.js | 57 ++ .../empty-arrow-function.js | 2 + .../handles-nested-context-bindings.js | 12 + ...rens-for-low-precedence-expression-body.js | 2 + .../object-literal-needs-parens.js | 2 + .../only-lexical-this-not-dynamic-this.js | 7 + .../esnext/es6-arrow-functions/options.json | 3 + .../es6-arrow-functions/passed-to-function.js | 2 + .../single-param-does-not-need-parens.js | 2 + .../esnext/es6-classes/anonymous-class.js | 29 + .../esnext/es6-classes/call-super-function.js | 21 + .../esnext/es6-classes/class-expressions.js | 9 + .../esnext/es6-classes/class-extend.js | 15 + .../es6-classes/class-with-constructor.js | 14 + .../class-with-method-declaration.js | 10 + .../esnext/es6-classes/empty-named-class.js | 5 + .../fixtures/esnext/es6-classes/enumerable.js | 20 + .../explicit-super-in-constructor.js | 15 + .../esnext/es6-classes/extends-null.js | 4 + .../esnext/es6-classes/getter-setter-super.js | 37 + .../esnext/es6-classes/getter-setter.js | 28 + .../method-declaration-with-arguments.js | 7 + .../es6-classes/methods-are-writable.js | 12 + .../es6-classes/methods-with-rest-params.js | 28 + .../fixtures/esnext/es6-classes/options.json | 3 + .../esnext/es6-classes/static-getter.js | 12 + .../esnext/es6-classes/static-method.js | 30 + .../esnext/es6-classes/static-setter.js | 7 + .../esnext/es6-classes/super-change-proto.js | 21 + .../es6-computed-properties/accessor.js | 8 + .../esnext/es6-computed-properties/method.js | 3 + .../esnext/es6-computed-properties/nested.js | 4 + .../es6-computed-properties/options.json | 3 + .../esnext/es6-computed-properties/simple.js | 3 + .../esnext/es6-default-parameters/arity.js | 3 + .../es6-default-parameters/arrow-function.js | 8 + .../null-vs-undefined.js | 5 + .../es6-default-parameters/options.json | 3 + .../esnext/es6-default-parameters/scope.js | 11 + .../es6-default-parameters/simple-function.js | 4 + .../es6-object-concise/method-arguments.js | 7 + .../es6-object-concise/method-context.js | 9 + .../es6-object-concise/method-has-name.js | 7 + .../method-is-not-in-scope-inside.js | 9 + .../esnext/es6-object-concise/method.js | 7 + .../esnext/es6-rest-parameters/arrow-fn.js | 5 + .../esnext/es6-rest-parameters/declaration.js | 5 + .../esnext/es6-rest-parameters/options.json | 3 + .../esnext/es6-rest-parameters/rest.js | 5 + .../esnext/es6-spread/arguments-as-array.js | 6 + .../esnext/es6-spread/array-literal.js | 3 + .../es6-spread/call-with-array-literal.js | 5 + .../es6-spread/inside-function-expression.js | 10 + .../fixtures/esnext/es6-spread/iterator.js | 16 + .../fixtures/esnext/es6-spread/new-object.js | 11 + .../fixtures/esnext/es6-spread/options.json | 3 + .../esnext/es6-spread/preserve-context.js | 35 + .../esnext/es6-spread/simple-function-call.js | 6 + .../esnext/es6-templates/multi-line.js | 4 + .../es6-templates/nested-interpolation.js | 4 + .../esnext/es6-templates/no-interpolation.js | 2 + .../esnext/es6-templates/options.json | 3 + .../raw-tagged-template-expression.js | 6 + .../es6-templates/simple-interpolation.js | 2 + .../tagged-template-expression.js | 26 + .../ArgumentsInComprehension.js | 12 - .../traceur/ArrayComprehension/Closure.js | 11 - .../ArrayComprehension/Error_Disabled.js | 4 - .../ArrayComprehension/Error_NotDefined.js | 5 - .../traceur/ArrayComprehension/Simple.js | 32 - .../ArrayComprehension/ThisInComprehension.js | 14 - .../test/fixtures/traceur/ArrayExtras/Fill.js | 2 +- .../test/fixtures/traceur/ArrayExtras/Of.js | 8 +- ...perNestedClass.js => .SuperNestedClass.js} | 0 .../test/fixtures/traceur/Classes/Types.js | 26 - .../TemplateLiterals/InModule.module.js | 2 - .../test/fixtures/traceur/options.json | 25 + .../assignment.js | 0 .../call-2.js | 2 +- .../call-3.js | 2 +- .../call.js | 0 .../defaults.js | 0 .../.es6.block-scoping-fail/destructuring.js | 15 + .../export.js | 0 .../.es6.block-scoping-fail/options.json | 4 + .../update.js | 0 .../.es7.decorators/class-decorator.js | 18 + .../transformation/.es7.decorators/getters.js | 23 + .../initialised-property-declarations.js | 8 + .../initialised-static-properties.js | 8 + ...itialized-properties-in-object-literals.js | 7 + .../transformation/.es7.decorators/methods.js | 33 + .../.es7.decorators/options.json | 3 + .../uninitialized-field-declaration.js | 17 + ...itialized-properties-in-object-literals.js | 11 + .../unitialised-static-properties.js | 13 + .../transformation/api/blacklist/actual.js | 5 - .../transformation/api/blacklist/expected.js | 7 - .../api/unknown-module-formatter/options.json | 4 - .../transformation/api/whitelist/actual.js | 5 - .../transformation/api/whitelist/expected.js | 7 - .../async-to-generator/async/expected.js | 18 +- .../async-to-generator/expression/expected.js | 8 +- .../named-expression/expected.js | 10 +- .../async-to-generator/statement/expected.js | 8 +- .../bluebird-coroutines/class/expected.js | 21 +- .../expression/expected.js | 11 +- .../named-expression/expected.js | 13 +- .../bluebird-coroutines/options.json | 2 +- .../bluebird-coroutines/statement/expected.js | 10 +- .../transformation/errors/constants/actual.js | 2 - .../errors/constants/options.json | 3 - .../member-expression-literals/options.json | 3 + .../es3/property-literals/options.json | 3 + .../getter-and-setter/expected.js | 4 +- .../getter/expected.js | 2 +- .../es5.properties.mutators/options.json | 3 + .../setter/expected.js | 2 +- .../default-parameters/expected.js | 4 +- .../destructuring-parameters/options.json | 2 +- .../es6.arrow-functions/options.json | 2 +- .../es6.arrow-functions/spec/options.json | 3 +- .../es6.block-scoping-exec/options.json | 3 + .../assignment.js | 0 .../call.js | 0 .../defaults.js | 0 .../destructuring.js | 0 .../export.js | 0 .../es6.block-scoping-pass/options.json | 3 + .../update.js | 0 .../assignment-patterns/expected.js | 10 +- .../exec.js | 2 - .../es6.block-scoping/hoisting/expected.js | 27 +- .../es6.block-scoping/hoisting/options.json | 3 + .../es6.block-scoping/issue-1051/expected.js | 6 +- .../es6.block-scoping/issue-2174/expected.js | 8 +- .../es6.block-scoping/options.json | 3 + .../es6.classes-exec/options.json | 3 + .../es6.classes-exec/super-return.js | 14 + .../accessing-super-class/actual.js | 12 - .../accessing-super-class/expected.js | 34 +- .../accessing-super-properties/expected.js | 4 +- .../calling-super-properties/expected.js | 6 +- .../constructor-order/expected.js | 3 +- .../es6.classes-loose/options.json | 2 +- .../expected.js | 10 +- .../es6.classes-loose/super-class/expected.js | 3 +- .../accessing-super-class/expected.js | 30 +- .../accessing-super-properties/expected.js | 8 +- .../calling-super-properties/expected.js | 8 +- .../constructor-binding-collision/actual.js | 2 +- .../es6.classes/constructor/expected.js | 6 +- .../expected.js | 9 +- .../options.json | 2 +- .../name-method-collision/options.json | 3 + .../transformation/es6.classes/options.json | 2 +- .../preserves-directives/expected.js | 3 + .../exec.js | 26 + .../expected.js | 12 +- .../options.json | 2 +- .../super-class-anonymous/expected.js | 10 +- .../expected.js | 8 +- .../es6.classes/super-class/expected.js | 2 +- .../options.json | 2 +- .../transformation/es6.constants/options.json | 3 + .../default-precedence/actual.js | 17 + .../default-precedence/exec.js | 12 +- .../default-precedence/expected.js | 28 + .../es6.destructuring/empty/expected.js | 8 +- .../es6.destructuring/for-of/expected.js | 29 +- .../es6.destructuring/options.json | 2 +- .../es6.destructuring/parameters/expected.js | 16 +- .../es6.for-of-loose/let/expected.js | 2 +- .../es6.for-of-loose/options.json | 2 +- .../es6.for-of/identifier/expected.js | 4 +- .../es6.for-of/ignore-cases/expected.js | 4 +- .../transformation/es6.for-of/let/expected.js | 6 +- .../es6.for-of/member-expression/expected.js | 4 +- .../es6.for-of/multiple/expected.js | 8 +- .../nested-label-for-of/expected.js | 12 +- .../transformation/es6.for-of/options.json | 3 + .../transformation/es6.for-of/var/expected.js | 4 +- .../export-specifier-default/expected.js | 9 +- .../exports-default/expected.js | 33 +- .../es6.modules-amd/exports-from/expected.js | 28 +- .../es6.modules-amd/exports-named/expected.js | 6 +- .../exports-variable/expected.js | 32 +- .../get-module-name-option/expected.js | 4 +- .../hoist-function-exports/expected.js | 6 +- .../imports-default/expected.js | 10 +- .../es6.modules-amd/imports-glob/expected.js | 5 +- .../imports-mixing/expected.js | 6 +- .../es6.modules-amd/imports-named/expected.js | 4 +- .../es6.modules-amd/imports/expected.js | 4 +- .../es6.modules-amd/module-name/expected.js | 4 +- .../es6.modules-amd/options.json | 3 +- .../es6.modules-amd/overview/expected.js | 20 +- .../es6.modules-amd/remap/expected.js | 10 +- .../export-1/expected.js | 2 +- .../export-2/expected.js | 2 +- .../export/expected.js | 1 - .../import/expected.js | 6 +- .../es6.modules-common-strict/options.json | 2 +- .../exports-default-non-function/expected.js | 3 +- .../exports-default/expected.js | 33 +- .../exports-from/expected.js | 25 +- .../exports-named/expected.js | 4 +- .../exports-variable/expected.js | 31 +- .../hoist-function-exports/expected.js | 4 +- .../imports-default/expected.js | 6 +- .../imports-mixing/expected.js | 2 +- .../imports-named/source-mappings.json | 19 - .../loose-collision/actual.js | 5 - .../loose-collision/options.json | 4 - .../es6.modules-common/loose/actual.js | 7 - .../es6.modules-common/loose/expected.js | 11 - .../es6.modules-common/loose/options.json | 3 - .../module-shadow/expected.js | 3 +- .../es6.modules-common/options.json | 3 +- .../es6.modules-common/overview/expected.js | 10 +- .../es6.modules-common/remap/expected.js | 3 +- .../exports-default/actual.js | 8 - .../exports-default/expected.js | 11 - .../es6.modules-ignore/exports-from/actual.js | 6 - .../exports-from/expected.js | 1 - .../exports-named/actual.js | 5 - .../exports-named/expected.js | 1 - .../exports-variable/actual.js | 9 - .../exports-variable/expected.js | 16 - .../hoist-function-exports/actual.js | 11 - .../hoist-function-exports/expected.js | 9 - .../imports-default/actual.js | 2 - .../imports-default/expected.js | 1 - .../es6.modules-ignore/imports-glob/actual.js | 1 - .../imports-glob/expected.js | 1 - .../imports-mixing/actual.js | 1 - .../imports-mixing/expected.js | 1 - .../imports-named/actual.js | 4 - .../imports-named/expected.js | 1 - .../es6.modules-ignore/imports/actual.js | 3 - .../es6.modules-ignore/imports/expected.js | 1 - .../es6.modules-ignore/options.json | 3 - .../es6.modules-ignore/overview/actual.js | 12 - .../es6.modules-ignore/overview/expected.js | 1 - .../es6.modules-ignore/remap/actual.js | 9 - .../es6.modules-ignore/remap/expected.js | 9 - .../exports-default/expected.js | 20 +- .../exports-from/expected.js | 26 +- .../exports-named/expected.js | 2 +- .../exports-variable/expected.js | 28 +- .../get-module-name-option/expected.js | 2 +- .../hoist-function-exports/expected.js | 23 +- .../imports-default/expected.js | 6 +- .../imports-glob/expected.js | 2 +- .../imports-mixing/expected.js | 4 +- .../imports-named/expected.js | 2 +- .../es6.modules-system/imports/expected.js | 2 +- .../es6.modules-system/options.json | 2 +- .../es6.modules-system/overview/expected.js | 6 +- .../es6.modules-system/remap/expected.js | 13 +- .../exports-default/expected.js | 41 +- .../es6.modules-umd/exports-from/expected.js | 28 +- .../es6.modules-umd/exports-named/expected.js | 6 +- .../exports-variable/expected.js | 32 +- .../get-module-name-option/expected.js | 10 +- .../hoist-function-exports/expected.js | 6 +- .../imports-default/expected.js | 16 +- .../es6.modules-umd/imports-glob/expected.js | 11 +- .../imports-mixing/expected.js | 10 +- .../es6.modules-umd/imports-named/expected.js | 10 +- .../es6.modules-umd/imports/expected.js | 10 +- .../es6.modules-umd/module-id/expected.js | 10 +- .../es6.modules-umd/module-name/expected.js | 10 +- .../non-default-imports/expected.js | 10 +- .../es6.modules-umd/options.json | 3 +- .../es6.modules-umd/overview/expected.js | 18 +- .../es6.modules-umd/remap/expected.js | 10 +- .../es6.modules/comments-explosion/actual.js | 4 - .../comments-explosion/expected.js | 6 - .../es6.modules/retain-lines/actual.js | 11 - .../es6.modules/retain-lines/expected.js | 10 - .../es6.modules/retain-lines/options.json | 3 - .../transformation/es6.modules/spec/actual.js | 1 - .../es6.modules/spec/expected.js | 4 - .../es6.modules/spec/options.json | 3 - .../es6.object-super/options.json | 2 +- .../statically-bound/expected.js | 2 +- .../default-before-last/expected.js | 5 +- .../default-multiple/expected.js | 4 +- .../es6.parameters/default-single/expected.js | 2 +- .../es6.parameters/options.json | 2 +- .../rest-arrow-functions/expected.js | 12 +- .../rest-async-function/actual.js | 7 - .../rest-async-function/expected.js | 37 - .../rest-binding-deoptimisation/expected.js | 2 +- .../rest-flow-parameter-reference/actual.js | 9 - .../rest-flow-parameter-reference/expected.js | 10 - .../expected.js | 14 +- .../expected.js | 3 +- .../es6.parameters/rest-multiple/expected.js | 3 +- .../rest-nested-iife/expected.js | 30 +- .../es6.parameters/rest-pattern/actual.js | 2 - .../es6.parameters/rest-pattern/expected.js | 5 - .../options.json | 2 +- .../method-computed/actual.js | 8 - .../method-computed/expected.js | 14 - .../method-computed/options.json | 3 - .../method-plain/expected.js | 2 +- .../shorthand-comments/actual.js | 4 +- .../es6.regex.sticky/options.json | 3 + .../es6.regex.unicode/options.json | 3 + .../destructuring.js | 9 - .../es6.spec.block-scoping-fail/options.json | 4 - .../es6.spec.block-scoping-pass/options.json | 3 - .../es6.spec.symbols/options.json | 3 +- .../es6.spec.template-literals/options.json | 2 +- .../es6.spread/arguments-array/expected.js | 2 +- .../es6.spread/arguments-concat/expected.js | 2 +- .../es6.spread/new-expression/expected.js | 4 +- .../transformation/es6.spread/options.json | 2 +- .../es6.tail-call/call-apply/actual.js | 8 - .../es6.tail-call/call-apply/expected.js | 26 - .../default-parameters/actual.js | 6 - .../default-parameters/expected.js | 18 - .../expression-consequent/actual.js | 4 - .../expression-consequent/expected.js | 12 - .../es6.tail-call/expressions/actual.js | 3 - .../es6.tail-call/expressions/expected.js | 27 - .../es6.tail-call/factorial/actual.js | 3 - .../es6.tail-call/factorial/expected.js | 18 - .../es6.tail-call/ignore-reassigned/actual.js | 13 - .../ignore-reassigned/expected.js | 13 - .../es6.tail-call/max-args/actual.js | 9 - .../es6.tail-call/max-args/expected.js | 31 - .../es6.tail-call/parameter-exceeds/actual.js | 15 - .../es6.tail-call/parameter-exceeds/exec.js | 9 - .../parameter-exceeds/expected.js | 26 - .../es6.tail-call/recursion/actual.js | 14 - .../es6.tail-call/recursion/expected.js | 28 - .../es6.tail-call/shadow/actual.js | 8 - .../es6.tail-call/shadow/expected.js | 18 - .../es6.tail-call/try-catch/actual.js | 43 -- .../es6.tail-call/try-catch/expected.js | 61 -- .../tag-loose/options.json | 2 +- .../declaration-exec/exec.js | 12 + .../declaration-exec/options.json | 3 + .../declaration/actual.js | 5 + .../declaration/expected.js | 16 + .../expression-completion-record/actual.js | 5 + .../expression-completion-record/expected.js | 16 + .../expression-exec/exec.js | 12 + .../expression-exec/options.json | 3 + .../expression/actual.js | 5 + .../expression/expected.js | 18 + .../es7.class-constructor-call/options.json | 3 + .../constructor-collision/expected.js | 22 +- .../es7.class-properties/derived/expected.js | 7 +- .../method-collision/actual.js | 5 - .../method-collision/options.json | 3 - .../es7.class-properties/options.json | 2 +- .../es7.class-properties/static/expected.js | 15 +- .../super-expression/expected.js | 5 +- .../super-statement/expected.js | 6 +- .../es7.comprehensions/arguments/actual.js | 5 - .../es7.comprehensions/arguments/expected.js | 35 - .../array-expression-single-if/actual.js | 1 - .../array-expression-single-if/expected.js | 14 - .../array-expression-single/actual.js | 1 - .../array-expression-single/expected.js | 12 - .../array-multiple-if/actual.js | 1 - .../array-multiple-if/expected.js | 53 -- .../array-multiple/actual.js | 1 - .../array-multiple/expected.js | 51 -- .../array-single-if/actual.js | 1 - .../array-single-if/expected.js | 31 - .../es7.comprehensions/array-single/actual.js | 1 - .../array-single/expected.js | 29 - .../es7.comprehensions/array-this/actual.js | 5 - .../es7.comprehensions/array-this/expected.js | 35 - .../es7.comprehensions/generator/exec.js | 6 - .../class-getter-and-setter/actual.js | 11 - .../class-getter-and-setter/expected.js | 13 - .../es7.decorators/class-getter/actual.js | 6 - .../es7.decorators/class-getter/expected.js | 12 - .../class-init-instance-props/actual.js | 4 - .../class-init-instance-props/exec.js | 14 - .../class-init-instance-props/expected.js | 18 - .../class-init-static-props/actual.js | 4 - .../class-init-static-props/exec.js | 14 - .../class-init-static-props/expected.js | 18 - .../es7.decorators/class-method/actual.js | 6 - .../es7.decorators/class-method/expected.js | 12 - .../es7.decorators/class-modules/actual.js | 6 - .../es7.decorators/class-modules/expected.js | 20 - .../class-no-init-instance-props/actual.js | 4 - .../class-no-init-instance-props/expected.js | 16 - .../class-no-init-static-props/actual.js | 4 - .../class-no-init-static-props/expected.js | 16 - .../es7.decorators/class-setter/actual.js | 6 - .../es7.decorators/class-setter/expected.js | 12 - .../es7.decorators/class-super/actual.js | 12 - .../es7.decorators/class-super/expected.js | 27 - .../es7.decorators/class/actual.js | 21 - .../es7.decorators/class/expected.js | 53 -- .../exec-object-method-autobind.js | 20 - .../exec-class-method-autobind/exec.js | 22 - .../es7.decorators/member-expressions/exec.js | 18 - .../object-getter-and-setter/actual.js | 11 - .../object-getter-and-setter/expected.js | 6 - .../es7.decorators/object-getter/actual.js | 6 - .../es7.decorators/object-getter/expected.js | 5 - .../es7.decorators/object-setter/actual.js | 6 - .../es7.decorators/object-setter/expected.js | 5 - .../es7.decorators/object/actual.js | 9 - .../es7.decorators/object/exec.js | 15 - .../es7.decorators/object/expected.js | 16 - .../es7.decorators/options.json | 3 - .../memoise-object/exec.js | 10 + .../es7.exponentian-operator/options.json | 3 + .../default-commonjs/actual.js | 1 - .../default-commonjs/expected.js | 9 - .../namespace-commonjs/actual.js | 1 - .../namespace-commonjs/expected.js | 9 - .../es7.export-extensions/options.json | 2 +- .../es7.function-bind/complex-call/exec.js | 12 +- .../complex-call/expected.js | 8 +- .../es7.function-bind/options.json | 2 +- .../static-contexts/expected.js | 2 +- .../es7.object-spread/assignment/expected.js | 2 +- .../es7.object-spread/expression/expected.js | 2 +- .../es7.object-spread/options.json | 3 + .../arrow-function/expected.js | 2 +- .../es7.trailing-function-commas/options.json | 2 +- .../fixtures/transformation/flow/options.json | 3 + .../flow/strip-type-annotations/expected.js | 5 +- .../transformation/jscript/options.json | 2 +- .../jscript/simple-class/options.json | 3 - .../completion-statements/actual.js | 13 - .../completion-statements/expected.js | 11 - .../issue-1408/actual.js | 5 - .../issue-1408/exec.js | 3 - .../issue-1408/expected.js | 9 - .../issue-1408/imported.js | 4 - .../issue-1409/actual.js | 5 - .../issue-1409/exec.js | 5 - .../issue-1409/expected.js | 13 - .../issue-1520/actual.js | 1 - .../issue-1520/expected.js | 6 - .../issue-1522/actual.js | 3 - .../issue-1522/exec.js | 5 - .../issue-1522/expected.js | 8 - .../issue-1522/y.js | 2 - .../issue-1523/actual.js | 5 - .../issue-1523/expected.js | 7 - .../issue-1524/actual.js | 13 - .../issue-1524/expected.js | 38 - .../issue-1546/actual.js | 7 - .../issue-1546/expected.js | 20 - .../options.json | 3 - .../expected.js | 7 +- .../misc/regression-1130/options.json | 3 + .../misc/regression-1155/expected.js | 2 +- .../misc/regression-1155/options.json | 3 + .../misc/regression-1168/options.json | 3 + .../misc/regression-1169/expected.js | 10 +- .../misc/regression-1169/options.json | 3 + .../misc/regression-1199/expected.js | 2 +- .../misc/regression-1489/actual.js | 2 - .../misc/regression-1489/expected.js | 11 - .../misc/regression-1489/options.json | 3 - .../actual.js | 2 - .../expected.js | 5 - .../transformation/misc/shebang/expected.js | 1 + .../optimisation.modules.system/options.json | 4 - .../setters/actual.js | 8 - .../setters/expected.js | 31 - .../inline-elements/expected.js | 10 +- .../inline-elements/options.json | 2 +- .../component-with-props/expected.js | 6 +- .../component/expected.js | 6 +- .../html-element-with-props/expected.js | 6 +- .../html-element/expected.js | 6 +- .../key/expected.js | 6 +- .../nested-components/expected.js | 10 +- .../nested-html-elements/expected.js | 6 +- .../nested/expected.js | 10 +- .../expected.js | 6 +- .../self-closing-component/expected.js | 6 +- .../expected.js | 6 +- .../self-closing-html-element/expected.js | 6 +- .../shorthand-attributes/expected.js | 6 +- .../actual.js | 0 .../expected.js | 0 .../options.json | 3 + .../react/arrow-functions/expected.js | 6 +- .../options.json | 2 +- .../options.json | 2 +- .../options.json | 3 - .../transformation/react/options.json | 2 +- .../transformation/regenerator/options.json | 3 + .../runtime/aliased-constructors/expected.js | 9 +- .../runtime/catch-all/expected.js | 3 +- .../runtime/es6-for-of/expected.js | 7 +- .../runtime/es6-for-of/options.json | 3 + .../es7-array-comprehensions/actual.js | 1 - .../es7-array-comprehensions/expected.js | 31 - .../transformation/runtime/full/actual.js | 1 - .../transformation/runtime/full/expected.js | 39 +- .../runtime/modules-amd/actual.js | 2 - .../runtime/modules-amd/expected.js | 5 - .../runtime/modules-amd/options.json | 3 - .../runtime/modules-common/actual.js | 3 - .../runtime/modules-common/expected.js | 7 - .../runtime/modules-system/actual.js | 5 - .../runtime/modules-system/expected.js | 31 - .../runtime/modules-system/options.json | 3 - .../runtime/modules-umd/actual.js | 1 - .../runtime/modules-umd/expected.js | 15 - .../runtime/modules-umd/options.json | 3 - .../transformation/runtime/options.json | 2 +- .../runtime/regenerator-runtime/expected.js | 13 +- .../runtime/symbol-iterator-in/expected.js | 3 +- .../runtime/symbol-iterator/expected.js | 3 +- .../source-maps/arrow-function/options.json | 3 + .../arrow-function/source-mappings.json | 2 +- .../source-maps/class/expected.js | 2 +- .../source-maps/class/options.json | 3 + .../source-maps/class/source-mappings.json | 2 +- .../source-maps/full/options.json | 3 + .../source-maps/full/source-map.json | 2 +- .../source-maps/inline/expected.js | 2 +- .../source-maps/inline/options.json | 1 + .../{smoke => .smoke}/exec.js | 2 +- .../{smoke => .smoke}/options.json | 0 .../spec.function-name/assignment/expected.js | 7 +- .../class-method/expected.js | 2 +- .../spec.function-name/collisions/expected.js | 8 +- .../spec.function-name/eval/actual.js | 2 +- .../spec.function-name/export/actual.js | 14 +- .../spec.function-name/export/expected.js | 19 +- .../function-collision/actual.js | 19 + .../function-collision/expected.js | 19 + .../spec.function-name/modules-2/expected.js | 11 +- .../spec.function-name/modules-2/options.json | 3 + .../spec.function-name/modules-3/expected.js | 7 +- .../spec.function-name/modules-3/options.json | 3 + .../spec.function-name/modules/expected.js | 4 +- .../spec.function-name/modules/options.json | 3 + .../spec.function-name/options.json | 2 +- .../shorthand-property/expected.js | 8 +- .../spec.proto-to-assign/class/actual.js | 3 - .../spec.proto-to-assign/class/expected.js | 10 - .../expected.js | 2 + .../strict/leading-comments/expected.js | 2 + .../transformation/strict/options.json | 3 + .../undefined-this-arrow-function/expected.js | 6 +- .../undefined-this-root-call/expected.js | 2 + .../expected.js | 2 + .../undefined-this-root-reference/expected.js | 2 + .../strict/use-strict-add/expected.js | 2 + .../strict/use-strict-exists/actual.js | 1 + .../strict/use-strict-exists/expected.js | 2 + .../options.json | 2 +- packages/babel-core/test/generation.js | 48 -- packages/babel-core/test/path.js | 7 +- packages/babel-core/test/traceur.js | 11 +- packages/babel-core/test/types.js | 3 - packages/babel-core/test/util.js | 23 - packages/babel-generator/package.json | 10 +- packages/babel-generator/src/buffer.js | 10 +- .../babel-generator/src/generators/base.js | 6 + .../babel-generator/src/generators/classes.js | 6 +- .../src/generators/expressions.js | 20 +- .../babel-generator/src/generators/methods.js | 13 +- .../babel-generator/src/generators/modules.js | 32 +- .../src/generators/statements.js | 2 + .../babel-generator/src/generators/types.js | 53 +- packages/babel-generator/src/index.js | 3 + .../babel-generator/src/node/parentheses.js | 7 +- .../babel-generator/src/node/whitespace.js | 3 +- packages/babel-generator/src/printer.js | 168 +++-- .../function-block-line-comment/expected.js | 12 +- .../fixtures/compact/no-semicolon/actual.js | 6 + .../fixtures/compact/no-semicolon/expected.js | 1 + .../fixtures/edgecase/for-in-no-in/actual.js | 12 +- .../edgecase/for-in-no-in/expected.js | 12 +- .../fixtures/edgecase/for-loop-in/actual.js | 1 + .../fixtures/edgecase/for-loop-in/expected.js | 1 + .../fixtures/parentheses/expression/actual.js | 1 + .../parentheses/expression/expected.js | 1 + .../fixtures/types/ReturnStatement/actual.js | 4 + .../types/ReturnStatement/expected.js | 4 + packages/babel-generator/test/index.js | 1 + .../babel-helper-bindify-decorators/README.md | 5 + .../package.json | 13 + .../src/index.js | 36 + .../README.md | 5 + .../package.json | 13 + .../src/index.js} | 31 +- .../README.md | 5 + .../package.json | 13 + .../src/index.js} | 2 +- .../README.md | 6 +- .../package.json | 3 +- .../src/index.js | 56 +- packages/babel-helper-call-delegate/README.md | 5 + .../babel-helper-call-delegate/package.json | 14 + .../babel-helper-call-delegate/src/index.js | 58 ++ packages/babel-helper-define-map/README.md | 5 + packages/babel-helper-define-map/package.json | 14 + .../src/index.js} | 53 +- .../README.md | 5 + .../package.json | 13 + .../src/index.js} | 5 +- packages/babel-helper-explode-class/README.md | 5 + .../babel-helper-explode-class/package.json | 14 + .../babel-helper-explode-class/src/index.js | 49 ++ packages/babel-helper-fixtures/README.md | 1 + packages/babel-helper-fixtures/package.json | 16 + packages/babel-helper-fixtures/src/index.js | 135 ++++ packages/babel-helper-function-name/README.md | 5 + .../babel-helper-function-name/package.json | 15 + .../src/index.js} | 70 +- .../babel-helper-get-function-arity/README.md | 5 + .../package.json | 12 + .../src/index.js} | 3 +- .../babel-helper-hoist-variables/README.md | 5 + .../babel-helper-hoist-variables/package.json | 12 + .../babel-helper-hoist-variables/src/index.js | 45 ++ .../README.md | 5 + .../package.json | 12 + .../src/index.js | 16 + packages/babel-helper-regex/README.md | 5 + packages/babel-helper-regex/package.json | 13 + .../src/index.js} | 0 .../package.json | 11 +- .../src/index.js | 44 +- .../babel-helper-replace-supers/README.md | 5 + .../babel-helper-replace-supers/package.json | 16 + .../src/index.js} | 187 +++-- packages/babel-helpers/README.md | 1 + packages/babel-helpers/package.json | 14 + packages/babel-helpers/src/helpers.js | 389 +++++++++++ packages/babel-helpers/src/index.js | 12 + packages/babel-messages/README.md | 1 + packages/babel-messages/package.json | 9 +- packages/babel-messages/src/index.js | 26 +- .../package.json | 9 +- .../package.json | 9 +- .../README.md | 35 + .../package.json | 14 + .../src/index.js | 7 + .../.npmignore | 0 .../README.md | 35 + .../package.json | 14 + .../src/index.js | 7 + .../package.json | 9 +- .../package.json | 9 +- .../package.json | 9 +- .../package.json | 9 +- .../package.json | 9 +- .../babel-plugin-syntax-flow/package.json | 9 +- .../package.json | 9 +- packages/babel-plugin-syntax-jsx/package.json | 9 +- .../package.json | 9 +- .../package.json | 9 +- .../package.json | 10 +- .../src/index.js | 4 +- .../README.md | 35 - .../package.json | 15 - .../package.json | 8 +- .../src/index.js | 6 +- .../.npmignore | 0 .../README.md | 35 + .../package.json | 17 + .../src/index.js | 7 +- .../.npmignore | 0 .../README.md | 33 + .../package.json | 16 + .../src/index.js | 106 +++ .../package.json | 10 +- .../src/index.js | 138 +++- .../README.md | 35 - .../package.json | 11 - .../src/index.js | 7 - .../README.md | 35 - .../package.json | 11 - .../src/index.js | 69 -- .../README.md | 35 - .../package.json | 11 - .../src/index.js | 152 ---- .../package.json | 14 +- .../src/index.js | 108 ++- .../package.json | 10 +- .../src/index.js | 11 +- .../package.json | 9 +- .../src/index.js | 13 +- .../package.json | 9 +- .../src/index.js | 18 +- .../package.json | 11 +- .../src/index.js | 652 +++++++++++++++++- .../src}/tdz.js | 37 +- .../package.json | 14 +- .../src/index.js | 29 +- .../src/lib}/memoise-decorators.js | 0 .../src}/loose.js | 15 +- .../src/vanilla.js | 518 ++++++++++++++ .../package.json | 11 +- .../src/index.js | 128 ++-- .../package.json | 9 +- .../src/index.js | 28 +- .../package.json | 9 +- .../src/index.js | 149 ++-- .../package.json | 9 +- .../src/index.js | 72 +- .../package.json | 11 +- .../src/index.js | 34 +- .../package.json | 9 +- .../src/index.js | 8 +- .../README.md | 33 + .../package.json | 16 + .../src/index.js | 109 +++ .../.npmignore | 0 .../README.md | 33 + .../package.json | 17 + .../src/index.js | 358 ++++++++++ .../README.md | 33 + .../package.json | 16 + .../src/index.js | 243 +++++++ .../README.md | 33 + .../package.json | 16 + .../src/index.js | 85 +++ .../package.json | 10 +- .../src/index.js | 44 +- .../package.json | 12 +- .../src/default.js | 149 ++++ .../src}/destructuring.js | 9 +- .../src/index.js | 22 +- .../src}/rest.js | 74 +- .../package.json | 10 +- .../src/index.js | 15 +- .../package.json | 9 +- .../src/index.js | 70 +- .../package.json | 11 +- .../src/index.js | 13 +- .../README.md | 35 - .../src/index.js | 7 - .../package.json | 9 +- .../src/index.js | 57 +- .../README.md | 33 + .../package.json | 9 +- .../src/index.js | 45 ++ .../package.json | 11 +- .../src/index.js | 9 +- .../package.json | 9 +- .../src/index.js | 4 +- .../package.json | 9 +- .../src/index.js | 4 +- .../package.json | 10 +- .../src/index.js | 32 +- .../babel-plugin-transform-eval/package.json | 9 +- .../babel-plugin-transform-eval/src/index.js | 6 +- .../package.json | 11 +- .../src/index.js | 16 +- .../package.json | 10 +- .../src/index.js | 36 +- .../package.json | 10 +- .../src/index.js | 14 +- .../package.json | 10 +- .../src/index.js | 48 +- .../package.json | 9 +- .../src/index.js | 2 +- .../package.json | 9 +- .../src/index.js | 7 +- .../package.json | 9 +- .../src/index.js | 4 +- .../package.json | 9 +- .../src/index.js | 4 +- .../package.json | 9 +- .../package.json | 9 +- .../src/index.js | 2 +- .../package.json | 9 +- .../package.json | 10 +- .../src/index.js | 43 +- .../package.json | 9 +- .../package.json | 9 +- .../src/index.js | 6 +- .../package.json | 6 +- .../src/index.js | 27 +- .../package.json | 9 +- .../src/index.js | 6 +- .../package.json | 6 +- .../src/index.js | 30 +- .../package.json | 9 +- .../src/index.js | 44 +- .../package.json | 8 +- .../src/index.js | 6 +- .../package.json | 9 +- .../src/index.js | 29 +- .../index.js | 1 + .../package.json | 3 + .../package.json | 9 +- .../package.json | 9 +- .../package.json | 6 +- .../src/index.js | 95 ++- .../package.json | 9 +- .../src/index.js | 6 +- .../README.md | 35 + .../package.json | 15 + .../src/index.js | 17 + .../.npmignore | 3 - .../README.md | 35 - .../package.json | 9 +- .../src/index.js | 6 +- .../.npmignore | 0 .../README.md | 35 + .../package.json | 6 +- .../src/index.js | 18 +- packages/babel-polyfill/package.json | 7 +- packages/babel-polyfill/scripts/build-dist.sh | 13 +- packages/babel-preset-es2015/index.js | 3 +- packages/babel-preset-es2015/package.json | 41 +- packages/babel-preset-react/index.js | 1 + packages/babel-preset-react/package.json | 11 +- packages/babel-runtime/package.json | 4 +- packages/babel-runtime/scripts/build-dist.js | 31 +- packages/babel-template/package.json | 11 +- packages/babel-template/src/index.js | 76 +- packages/babel-traverse/package.json | 16 +- packages/babel-traverse/src/context.js | 109 ++- packages/babel-traverse/src/hub.js | 4 +- packages/babel-traverse/src/index.js | 50 +- packages/babel-traverse/src/path/ancestry.js | 58 +- packages/babel-traverse/src/path/comments.js | 16 +- packages/babel-traverse/src/path/constants.js | 1 + packages/babel-traverse/src/path/context.js | 149 ++-- .../babel-traverse/src/path/conversion.js | 22 +- .../babel-traverse/src/path/evaluation.js | 137 ++-- packages/babel-traverse/src/path/family.js | 18 +- packages/babel-traverse/src/path/index.js | 135 ++-- .../src/path/inference/index.js | 28 +- .../src/path/inference/inferer-reference.js | 59 +- .../src/path/inference/inferers.js | 33 +- .../babel-traverse/src/path/introspection.js | 149 ++-- .../babel-traverse/src/path/lib/hoister.js | 41 +- .../src/path/lib/removal-hooks.js | 54 +- .../src/path/lib/virtual-types.js | 88 +-- .../babel-traverse/src/path/modification.js | 66 +- packages/babel-traverse/src/path/removal.js | 25 +- .../babel-traverse/src/path/replacement.js | 112 +-- packages/babel-traverse/src/scope/binding.js | 38 +- packages/babel-traverse/src/scope/index.js | 414 +++++------ .../babel-traverse/src/scope/lib/renamer.js | 16 +- packages/babel-traverse/src/visitors.js | 86 ++- .../test/traverse.js | 4 +- packages/babel-types/package.json | 9 +- packages/babel-types/src/converters.js | 68 +- packages/babel-types/src/definitions/core.js | 246 ++++--- .../babel-types/src/definitions/es2015.js | 108 ++- .../src/definitions/experimental.js | 41 +- packages/babel-types/src/definitions/flow.js | 80 +-- packages/babel-types/src/definitions/index.js | 96 ++- packages/babel-types/src/definitions/jsx.js | 38 +- packages/babel-types/src/definitions/misc.js | 12 +- packages/babel-types/src/flow.js | 26 +- packages/babel-types/src/index.js | 110 +-- packages/babel-types/src/react.js | 37 +- packages/babel-types/src/retrievers.js | 27 +- packages/babel-types/src/validators.js | 24 +- packages/babel/README.md | 1 + packages/babel/cli.js | 5 + packages/babel/index.js | 1 + packages/babel/package.json | 15 + packages/babylon/README.md | 38 +- packages/babylon/package.json | 6 +- packages/babylon/src/options.js | 10 +- packages/babylon/src/parser/comments.js | 8 +- packages/babylon/src/parser/expression.js | 188 ++--- packages/babylon/src/parser/index.js | 33 +- packages/babylon/src/parser/lval.js | 34 +- packages/babylon/src/parser/node.js | 4 +- packages/babylon/src/parser/statement.js | 252 +++++-- packages/babylon/src/parser/util.js | 2 +- packages/babylon/src/plugins/flow.js | 150 ++-- packages/babylon/src/plugins/jsx/index.js | 86 ++- packages/babylon/src/tokenizer/index.js | 38 +- packages/babylon/src/tokenizer/state.js | 18 +- packages/babylon/src/tokenizer/types.js | 2 +- packages/babylon/src/util/identifier.js | 4 +- .../expected.json | 37 +- .../uncategorised/{542 => .542}/actual.js | 0 .../uncategorised/{542 => .542}/options.json | 0 .../uncategorised/{543 => .543}/actual.js | 0 .../uncategorised/{543 => .543}/options.json | 0 .../uncategorised/{544 => .544}/actual.js | 0 .../uncategorised/{544 => .544}/options.json | 0 .../core/uncategorised/22/expected.json | 5 +- .../core/uncategorised/23/expected.json | 5 +- .../core/uncategorised/24/expected.json | 5 +- .../core/uncategorised/25/expected.json | 5 +- .../core/uncategorised/26/expected.json | 5 +- .../core/uncategorised/27/expected.json | 5 +- .../core/uncategorised/275/expected.json | 5 +- .../core/uncategorised/28/expected.json | 10 +- .../core/uncategorised/29/expected.json | 79 +-- .../core/uncategorised/30/expected.json | 39 +- .../core/uncategorised/31/expected.json | 39 +- .../core/uncategorised/32/expected.json | 39 +- .../core/uncategorised/33/expected.json | 39 +- .../core/uncategorised/34/expected.json | 39 +- .../core/uncategorised/35/expected.json | 37 +- .../core/uncategorised/36/expected.json | 37 +- .../core/uncategorised/37/expected.json | 133 ++-- .../core/uncategorised/38/expected.json | 133 ++-- .../core/uncategorised/39/expected.json | 133 ++-- .../core/uncategorised/40/expected.json | 133 ++-- .../core/uncategorised/41/expected.json | 133 ++-- .../core/uncategorised/42/expected.json | 131 ++-- .../core/uncategorised/43/expected.json | 131 ++-- .../core/uncategorised/44/expected.json | 5 +- .../core/uncategorised/45/expected.json | 5 +- .../patterned-catch/expected.json | 16 +- .../with-object-pattern/expected.json | 3 +- .../migrated_0005/expected.json | 5 +- .../actual.js | 0 .../expected.json | 2 +- .../es2015-class/migrated_0004/expected.json | 39 +- .../es2015-class/migrated_0005/expected.json | 75 +- .../es2015-class/migrated_0006/expected.json | 75 +- .../es2015-class/migrated_0007/expected.json | 75 +- .../es2015-class/migrated_0008/expected.json | 75 +- .../es2015-class/migrated_0009/expected.json | 39 +- .../es2015-class/migrated_0010/expected.json | 109 ++- .../es2015-class/migrated_0011/expected.json | 145 ++-- .../es2015-class/migrated_0012/expected.json | 39 +- .../es2015-class/migrated_0013/expected.json | 39 +- .../es2015-class/migrated_0014/expected.json | 75 +- .../es2015-class/migrated_0015/expected.json | 39 +- .../es2015-class/migrated_0017/expected.json | 39 +- .../es2015-class/migrated_0018/expected.json | 39 +- .../es2015-class/migrated_0019/expected.json | 74 +- .../es2015-class/migrated_0020/expected.json | 75 +- .../es2015-class/migrated_0021/expected.json | 37 +- .../migrated_0002/expected.json | 5 +- .../nested-cover-grammar/expected.json | 3 +- .../nested-cover-grammar/expected.json | 3 +- .../object-pattern-assignment/expected.json | 31 +- .../export-default-object/expected.json | 5 +- .../for-of-object-pattern-const/expected.json | 9 +- .../for-of-object-pattern/expected.json | 9 +- .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../expected.json | 137 ++-- .../expected.json | 97 ++- .../expected.json | 97 ++- .../expected.json | 119 ++-- .../generator-method-with-yield/expected.json | 81 +-- .../generator-method/expected.json | 39 +- .../expected.json | 39 +- .../static-generator-method/expected.json | 39 +- .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../migrated_0000/expected.json | 41 +- .../migrated_0001/expected.json | 75 +- .../migrated_0002/expected.json | 39 +- .../migrated_0003/expected.json | 41 +- .../migrated_0004/expected.json | 41 +- .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../.invalid-proto-identifiers/expected.json | 167 +++++ .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../expected.json | 113 ++- .../proto-identifier-getter/expected.json | 42 +- .../proto-identifier-method/expected.json | 44 +- .../proto-identifier-setter/expected.json | 76 +- .../proto-literal-getter-setter/expected.json | 113 ++- .../proto-literal-getter/expected.json | 42 +- .../proto-literal-method/expected.json | 44 +- .../proto-literal-setter/expected.json | 76 +- .../migrated_0000/expected.json | 9 +- .../elision/expected.json | 3 +- .../nested/expected.json | 5 +- .../properties/expected.json | 21 +- .../object-method/expected.json | 11 +- .../object-shorthand-method/expected.json | 99 ++- .../actual.js | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 2 +- .../options.json | 0 .../arrow_super/expected.json | 103 ++- .../constructor_super/expected.json | 91 ++- .../new_super/expected.json | 129 ++-- .../super_computed/expected.json | 125 ++-- .../super_member/expected.json | 119 ++-- .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../actual.js | 0 .../actual.js | 0 .../expected.json | 0 .../yield-binding-element/expected.json | 8 +- .../yield-binding-property/expected.json | 8 +- .../yield-generator-method/expected.json | 39 +- .../expected.json | 11 +- .../es2015-yield/yield-method/expected.json | 39 +- .../expected.json | 11 +- .../expected.json | 5 +- .../yield-strict-method/expected.json | 39 +- .../yield-super-property/expected.json | 115 ++- .../{GH-1106-09 => .GH-1106-09}/actual.js | 0 .../{GH-1106-09 => .GH-1106-09}/expected.json | 0 .../{GH-1106-09 => .GH-1106-09}/options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../actual.js | 0 .../.migrated_0250/expected.json | 206 ++++++ .../options.json | 0 .../actual.js | 0 .../expected.json | 2 +- .../options.json | 0 .../migrated_0270/expected.json | 2 +- .../migrated_0271/expected.json | 2 +- .../migrated_0278/expected.json | 2 +- .../actual.js | 0 .../actual.js | 0 .../expected.json | 0 .../actual.js | 0 .../migrated_0002/expected.json | 5 +- .../expected.json | 6 +- .../async-functions/pattern/expected.json | 3 +- .../.duplicate/actual.js | 4 + .../illegal-generator/actual.js | 5 + .../illegal-generator/options.json | 3 + .../illegal-key/actual.js | 5 + .../illegal-key/options.json | 3 + .../class-constructor-call/options.json | 3 + .../class-constructor-call/plain/actual.js | 5 + .../plain/expected.json | 186 +++++ .../uncategorised/{24 => .24}/actual.js | 0 .../uncategorised/{24 => .24}/expected.json | 0 .../uncategorised/{24 => .24}/options.json | 0 .../uncategorised/10/expected.json | 3 +- .../uncategorised/11/expected.json | 3 +- .../uncategorised/13/expected.json | 6 +- .../uncategorised/14/expected.json | 9 +- .../uncategorised/21/expected.json | 110 ++- .../uncategorised/22/expected.json | 105 ++- .../uncategorised/29/expected.json | 38 +- .../uncategorised/30/expected.json | 5 +- .../uncategorised/31/expected.json | 41 +- .../uncategorised/35/expected.json | 39 +- .../uncategorised/36/expected.json | 73 +- .../uncategorised/37/expected.json | 39 +- .../uncategorised/38/expected.json | 39 +- .../uncategorised/39/expected.json | 5 +- .../uncategorised/49/expected.json | 5 +- .../uncategorised/57/expected.json | 73 +- .../actual.js | 0 .../expected.json | 0 .../options.json | 0 .../flow/regression/issue-2083/expected.json | 424 ++++++------ .../type-annotations/{69 => .69}/actual.js | 0 .../{69 => .69}/expected.json | 0 .../type-annotations/{70 => .70}/actual.js | 0 .../{70 => .70}/expected.json | 0 .../type-annotations/{71 => .71}/actual.js | 0 .../{71 => .71}/expected.json | 0 .../type-annotations/{75 => .75}/actual.js | 0 .../{75 => .75}/expected.json | 0 .../type-annotations/{76 => .76}/actual.js | 0 .../{76 => .76}/expected.json | 0 .../type-annotations/{77 => .77}/actual.js | 0 .../{77 => .77}/expected.json | 0 .../flow/type-annotations/20/expected.json | 102 ++- .../flow/type-annotations/21/expected.json | 142 ++-- .../flow/type-annotations/22/expected.json | 98 ++- .../flow/type-annotations/23/expected.json | 220 +++--- .../flow/type-annotations/24/expected.json | 220 +++--- .../flow/type-annotations/25/expected.json | 226 +++--- .../flow/type-annotations/26/expected.json | 220 +++--- .../flow/type-annotations/27/expected.json | 102 ++- .../flow/type-annotations/28/expected.json | 142 ++-- .../flow/type-annotations/29/expected.json | 98 ++- .../flow/type-annotations/50/expected.json | 218 +++--- .../flow/type-annotations/51/expected.json | 104 ++- .../flow/type-annotations/56/expected.json | 158 ++--- .../flow/type-annotations/60/expected.json | 8 +- .../flow/type-annotations/61/expected.json | 8 +- .../flow/type-annotations/63/expected.json | 4 +- .../flow/type-annotations/97/expected.json | 6 +- .../fixtures/flow/typecasts/2/expected.json | 10 +- .../call-expression/expected.json | 5 +- .../uncategorised/{191 => .191}/actual.js | 0 .../uncategorised/{191 => .191}/expected.json | 0 .../uncategorised/{260 => .260}/actual.js | 0 .../uncategorised/{260 => .260}/options.json | 0 .../uncategorised/{335 => .335}/actual.js | 0 .../uncategorised/{335 => .335}/expected.json | 0 .../uncategorised/{335 => .335}/options.json | 0 .../uncategorised/{343 => .343}/actual.js | 0 .../uncategorised/{343 => .343}/expected.json | 0 .../uncategorised/{343 => .343}/options.json | 0 .../uncategorised/{345 => .345}/actual.js | 0 .../uncategorised/{345 => .345}/options.json | 0 .../uncategorised/{346 => .346}/actual.js | 0 .../uncategorised/{346 => .346}/options.json | 0 .../uncategorised/{348 => .348}/actual.js | 0 .../harmony/uncategorised/.348/expected.json | 177 +++++ .../uncategorised/{348 => .348}/options.json | 0 .../uncategorised/{349 => .349}/actual.js | 0 .../uncategorised/{349 => .349}/expected.json | 0 .../uncategorised/{349 => .349}/options.json | 0 .../uncategorised/{353 => .353}/actual.js | 0 .../uncategorised/{353 => .353}/expected.json | 0 .../uncategorised/{353 => .353}/options.json | 0 .../harmony/uncategorised/103/expected.json | 90 +-- .../harmony/uncategorised/113/expected.json | 42 +- .../harmony/uncategorised/114/expected.json | 42 +- .../harmony/uncategorised/115/expected.json | 42 +- .../harmony/uncategorised/116/expected.json | 42 +- .../harmony/uncategorised/117/expected.json | 76 +- .../harmony/uncategorised/118/expected.json | 76 +- .../harmony/uncategorised/119/expected.json | 76 +- .../harmony/uncategorised/120/expected.json | 76 +- .../harmony/uncategorised/121/expected.json | 110 ++- .../harmony/uncategorised/122/expected.json | 110 ++- .../harmony/uncategorised/123/expected.json | 85 +-- .../harmony/uncategorised/124/expected.json | 37 +- .../harmony/uncategorised/128/expected.json | 42 +- .../harmony/uncategorised/129/expected.json | 78 +-- .../harmony/uncategorised/130/actual.js | 1 - .../harmony/uncategorised/130/expected.json | 254 ------- .../harmony/uncategorised/131/expected.json | 78 +-- .../harmony/uncategorised/132/expected.json | 112 ++- .../harmony/uncategorised/133/expected.json | 78 +-- .../harmony/uncategorised/134/expected.json | 78 +-- .../harmony/uncategorised/135/expected.json | 218 +++--- .../harmony/uncategorised/136/expected.json | 42 +- .../harmony/uncategorised/137/expected.json | 42 +- .../harmony/uncategorised/138/expected.json | 112 ++- .../harmony/uncategorised/139/expected.json | 78 +-- .../harmony/uncategorised/141/expected.json | 5 +- .../harmony/uncategorised/142/expected.json | 5 +- .../harmony/uncategorised/143/expected.json | 5 +- .../harmony/uncategorised/144/expected.json | 10 +- .../harmony/uncategorised/145/expected.json | 108 ++- .../harmony/uncategorised/146/expected.json | 39 +- .../harmony/uncategorised/147/expected.json | 14 +- .../harmony/uncategorised/148/expected.json | 14 +- .../harmony/uncategorised/149/expected.json | 94 ++- .../harmony/uncategorised/150/expected.json | 42 +- .../harmony/uncategorised/153/expected.json | 8 +- .../harmony/uncategorised/154/expected.json | 8 +- .../harmony/uncategorised/155/expected.json | 13 +- .../harmony/uncategorised/156/expected.json | 285 ++++---- .../harmony/uncategorised/157/expected.json | 283 ++++---- .../harmony/uncategorised/158/expected.json | 8 +- .../harmony/uncategorised/161/expected.json | 5 +- .../harmony/uncategorised/162/expected.json | 133 ++-- .../harmony/uncategorised/165/expected.json | 15 +- .../harmony/uncategorised/166/expected.json | 12 +- .../harmony/uncategorised/170/expected.json | 6 +- .../harmony/uncategorised/173/expected.json | 139 ++-- .../harmony/uncategorised/178/expected.json | 12 +- .../harmony/uncategorised/179/expected.json | 12 +- .../harmony/uncategorised/182/expected.json | 14 +- .../harmony/uncategorised/183/expected.json | 17 +- .../harmony/uncategorised/186/expected.json | 12 +- .../harmony/uncategorised/190/expected.json | 12 +- .../harmony/uncategorised/26/expected.json | 10 +- .../harmony/uncategorised/303/expected.json | 6 +- .../harmony/uncategorised/304/expected.json | 13 +- .../harmony/uncategorised/305/expected.json | 11 +- .../harmony/uncategorised/307/expected.json | 3 +- .../harmony/uncategorised/308/expected.json | 3 +- .../harmony/uncategorised/309/expected.json | 8 +- .../harmony/uncategorised/310/expected.json | 3 +- .../harmony/uncategorised/313/expected.json | 15 +- .../harmony/uncategorised/314/expected.json | 42 +- .../harmony/uncategorised/316/expected.json | 42 +- .../harmony/uncategorised/321/expected.json | 6 +- .../harmony/uncategorised/33/expected.json | 5 +- .../harmony/uncategorised/347/options.json | 4 +- .../harmony/uncategorised/52/expected.json | 44 +- .../harmony/uncategorised/53/expected.json | 78 +-- .../harmony/uncategorised/54/expected.json | 39 +- .../harmony/uncategorised/55/expected.json | 44 +- .../harmony/uncategorised/56/expected.json | 44 +- .../harmony/uncategorised/61/expected.json | 12 +- .../harmony/uncategorised/63/expected.json | 9 +- .../harmony/uncategorised/65/expected.json | 9 +- .../harmony/uncategorised/67/expected.json | 9 +- .../harmony/uncategorised/69/expected.json | 11 +- .../harmony/uncategorised/70/expected.json | 11 +- .../harmony/uncategorised/71/expected.json | 11 +- .../test/fixtures/jsx/basic/10/expected.json | 37 +- .../empty-expression-container/expected.json | 19 +- .../fixtures/jsx/regression/3/expected.json | 9 +- packages/babylon/test/index.js | 2 +- scripts/bootstrap.js | 21 +- scripts/publish.js | 9 +- test.js | 1 - 1501 files changed, 16477 insertions(+), 19786 deletions(-) create mode 100644 .flowconfig create mode 100644 doc/design/compiler-assumptions.md create mode 100644 doc/design/compiler-guarantees.md delete mode 100755 packages/babel-cli/src/babel-plugin/index.js delete mode 100644 packages/babel-cli/src/babel-plugin/templates/LICENSE delete mode 100644 packages/babel-cli/src/babel-plugin/templates/README.md delete mode 100644 packages/babel-cli/src/babel-plugin/templates/index.js delete mode 100644 packages/babel-cli/test/fixtures/babel/--blacklist/options.json delete mode 100644 packages/babel-cli/test/fixtures/babel/--blacklist/stdin.txt delete mode 100644 packages/babel-cli/test/fixtures/babel/--blacklist/stdout.txt delete mode 100644 packages/babel-cli/test/fixtures/babel/--whitelist/options.json delete mode 100644 packages/babel-cli/test/fixtures/babel/--whitelist/stdin.txt delete mode 100644 packages/babel-cli/test/fixtures/babel/--whitelist/stdout.txt delete mode 100644 packages/babel-core/register-without-polyfill.js delete mode 100755 packages/babel-core/scripts/cache-templates.js create mode 100644 packages/babel-core/src/helpers/resolve.js rename packages/babel-core/src/transformation/{modules/lib => file}/metadata.js (64%) delete mode 100644 packages/babel-core/src/transformation/helpers/build-comprehension.js delete mode 100644 packages/babel-core/src/transformation/helpers/build-react-transformer.js delete mode 100644 packages/babel-core/src/transformation/helpers/call-delegate.js delete mode 100644 packages/babel-core/src/transformation/helpers/remap-async-to-generator.js delete mode 100644 packages/babel-core/src/transformation/index.js delete mode 100644 packages/babel-core/src/transformation/modules/_default.js delete mode 100644 packages/babel-core/src/transformation/modules/_strict.js delete mode 100644 packages/babel-core/src/transformation/modules/amd-strict.js delete mode 100644 packages/babel-core/src/transformation/modules/amd.js delete mode 100644 packages/babel-core/src/transformation/modules/common-strict.js delete mode 100644 packages/babel-core/src/transformation/modules/common.js delete mode 100644 packages/babel-core/src/transformation/modules/ignore.js delete mode 100644 packages/babel-core/src/transformation/modules/index.js delete mode 100644 packages/babel-core/src/transformation/modules/lib/remaps.js delete mode 100644 packages/babel-core/src/transformation/modules/system.js delete mode 100644 packages/babel-core/src/transformation/modules/umd-strict.js delete mode 100644 packages/babel-core/src/transformation/modules/umd.js delete mode 100644 packages/babel-core/src/transformation/templates/.babelrc delete mode 100644 packages/babel-core/src/transformation/templates/abstract-expression-call.js delete mode 100644 packages/babel-core/src/transformation/templates/abstract-expression-delete.js delete mode 100644 packages/babel-core/src/transformation/templates/abstract-expression-get.js delete mode 100644 packages/babel-core/src/transformation/templates/abstract-expression-set.js delete mode 100644 packages/babel-core/src/transformation/templates/array-from.js delete mode 100644 packages/babel-core/src/transformation/templates/call.js delete mode 100644 packages/babel-core/src/transformation/templates/exports-assign.js delete mode 100644 packages/babel-core/src/transformation/templates/exports-default-assign.js delete mode 100644 packages/babel-core/src/transformation/templates/exports-from-assign.js delete mode 100644 packages/babel-core/src/transformation/templates/exports-module-declaration-loose.js delete mode 100644 packages/babel-core/src/transformation/templates/exports-module-declaration.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-async-to-generator.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-bind.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-class-call-check.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-create-class.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-create-decorated-class.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-create-decorated-object.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-default-props.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-defaults.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-define-decorated-property-descriptor.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-define-property.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-extends.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-get.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-has-own.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-inherits.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-instanceof.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-interop-export-wildcard.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-interop-require-default.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-interop-require-wildcard.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-interop-require.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-new-arrow-check.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-object-destructuring-empty.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-object-without-properties.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-self-global.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-set.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-slice.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-sliced-to-array-loose.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-sliced-to-array.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-tagged-template-literal-loose.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-tagged-template-literal.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-temporal-assert-defined.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-temporal-undefined.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-to-array.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-to-consumable-array.js delete mode 100644 packages/babel-core/src/transformation/templates/helper-typeof.js delete mode 100644 packages/babel-core/src/transformation/templates/named-function.js delete mode 100644 packages/babel-core/src/transformation/templates/property-method-assignment-wrapper-generator.js delete mode 100644 packages/babel-core/src/transformation/templates/property-method-assignment-wrapper.js delete mode 100644 packages/babel-core/src/transformation/templates/prototype-identifier.js delete mode 100644 packages/babel-core/src/transformation/templates/require-assign-key.js delete mode 100644 packages/babel-core/src/transformation/templates/require.js delete mode 100644 packages/babel-core/src/transformation/templates/self-contained-helpers-head.js delete mode 100644 packages/babel-core/src/transformation/templates/system.js delete mode 100644 packages/babel-core/src/transformation/templates/test-exports.js delete mode 100644 packages/babel-core/src/transformation/templates/test-module.js delete mode 100644 packages/babel-core/src/transformation/templates/umd-commonjs-strict.js delete mode 100644 packages/babel-core/src/transformation/templates/umd-runner-body.js delete mode 100644 packages/babel-core/src/transformation/transformers/es5/properties.mutators.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/classes/index.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/for-of.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/modules.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/object-super.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/parameters/default.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/parameters/index.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/regex.sticky.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/regex.unicode.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/spec.modules.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/spec.symbols.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js delete mode 100644 packages/babel-core/src/transformation/transformers/es6/tail-call.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/async-functions.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/class-properties.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/comprehensions.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/decorators.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/do-expressions.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/export-extensions.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/function-bind.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js delete mode 100644 packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js delete mode 100644 packages/babel-core/src/transformation/transformers/filters.js delete mode 100644 packages/babel-core/src/transformation/transformers/index.js delete mode 100644 packages/babel-core/src/transformation/transformers/internal/hoist-directives.js delete mode 100644 packages/babel-core/src/transformation/transformers/internal/module-formatter.js delete mode 100644 packages/babel-core/src/transformation/transformers/internal/modules.js delete mode 100644 packages/babel-core/src/transformation/transformers/internal/validation.js delete mode 100644 packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js delete mode 100644 packages/babel-core/src/transformation/transformers/optimisation/modules.system.js delete mode 100644 packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js delete mode 100644 packages/babel-core/src/transformation/transformers/other/async-to-generator.js delete mode 100644 packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js delete mode 100644 packages/babel-core/src/transformation/transformers/other/react-compat.js delete mode 100644 packages/babel-core/src/transformation/transformers/other/react.js delete mode 100644 packages/babel-core/src/transformation/transformers/other/regenerator.js delete mode 100644 packages/babel-core/src/transformation/transformers/other/strict.js delete mode 100644 packages/babel-core/src/transformation/transformers/spec/function-name.js create mode 100644 packages/babel-core/test/evaluation.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/options.json create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js create mode 100644 packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js delete mode 100644 packages/babel-core/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js delete mode 100644 packages/babel-core/test/fixtures/traceur/ArrayComprehension/Closure.js delete mode 100644 packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js delete mode 100644 packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js delete mode 100644 packages/babel-core/test/fixtures/traceur/ArrayComprehension/Simple.js delete mode 100644 packages/babel-core/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js rename packages/babel-core/test/fixtures/traceur/Classes/{SuperNestedClass.js => .SuperNestedClass.js} (100%) delete mode 100644 packages/babel-core/test/fixtures/traceur/Classes/Types.js delete mode 100644 packages/babel-core/test/fixtures/traceur/TemplateLiterals/InModule.module.js create mode 100644 packages/babel-core/test/fixtures/traceur/options.json rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/assignment.js (100%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/call-2.js (60%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/call-3.js (60%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/call.js (100%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/defaults.js (100%) create mode 100644 packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/destructuring.js rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/export.js (100%) create mode 100644 packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/options.json rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-fail => .es6.block-scoping-fail}/update.js (100%) create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/class-decorator.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/getters.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-property-declarations.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-static-properties.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/initialized-properties-in-object-literals.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/methods.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-field-declaration.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-properties-in-object-literals.js create mode 100644 packages/babel-core/test/fixtures/transformation/.es7.decorators/unitialised-static-properties.js delete mode 100644 packages/babel-core/test/fixtures/transformation/api/blacklist/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/api/blacklist/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/api/unknown-module-formatter/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/api/whitelist/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/api/whitelist/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/errors/constants/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/errors/constants/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es3/property-literals/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es5.properties.mutators/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/options.json rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-pass => es6.block-scoping-pass}/assignment.js (100%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-pass => es6.block-scoping-pass}/call.js (100%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-pass => es6.block-scoping-pass}/defaults.js (100%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-pass => es6.block-scoping-pass}/destructuring.js (100%) rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-pass => es6.block-scoping-pass}/export.js (100%) create mode 100644 packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/options.json rename packages/babel-core/test/fixtures/transformation/{es6.spec.block-scoping-pass => es6.block-scoping-pass}/update.js (100%) delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js create mode 100644 packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.block-scoping/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.classes-exec/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.classes-exec/super-return.js create mode 100644 packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.classes/returning-from-derived-constructor/exec.js create mode 100644 packages/babel-core/test/fixtures/transformation/es6.constants/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/es6.for-of/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/spec/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/spec/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.modules/spec/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.regex.sticky/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es6.regex.unicode/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/actual.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/actual.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/actual.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/expected.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/actual.js delete mode 100755 packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/exec.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/exec.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.comprehensions/generator/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/class/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/member-expressions/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/object/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.decorators/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/memoise-object/exec.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/es7.object-spread/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/flow/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/jscript/simple-class/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1130/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1169/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1489/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1489/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-1489/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/optimisation.modules.system/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/expected.js rename packages/babel-core/test/fixtures/transformation/react/{optimisation.react.constant-elements => .optimisation.react.constant-elements}/actual.js (100%) rename packages/babel-core/test/fixtures/transformation/react/{optimisation.react.constant-elements => .optimisation.react.constant-elements}/expected.js (100%) create mode 100644 packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/regenerator/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-amd/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-amd/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-amd/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-common/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-common/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-system/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-system/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-system/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-umd/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-umd/expected.js delete mode 100644 packages/babel-core/test/fixtures/transformation/runtime/modules-umd/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/source-maps/class/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/source-maps/full/options.json rename packages/babel-core/test/fixtures/transformation/spec.function-name/{smoke => .smoke}/exec.js (88%) rename packages/babel-core/test/fixtures/transformation/spec.function-name/{smoke => .smoke}/options.json (100%) create mode 100644 packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/actual.js create mode 100644 packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json create mode 100644 packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json delete mode 100644 packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/actual.js delete mode 100644 packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/expected.js create mode 100644 packages/babel-core/test/fixtures/transformation/strict/options.json delete mode 100644 packages/babel-core/test/generation.js delete mode 100644 packages/babel-core/test/types.js create mode 100644 packages/babel-generator/test/fixtures/compact/no-semicolon/actual.js create mode 100644 packages/babel-generator/test/fixtures/compact/no-semicolon/expected.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/for-loop-in/actual.js create mode 100644 packages/babel-generator/test/fixtures/edgecase/for-loop-in/expected.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/expression/actual.js create mode 100644 packages/babel-generator/test/fixtures/parentheses/expression/expected.js create mode 100644 packages/babel-helper-bindify-decorators/README.md create mode 100644 packages/babel-helper-bindify-decorators/package.json create mode 100644 packages/babel-helper-bindify-decorators/src/index.js create mode 100644 packages/babel-helper-builder-binary-assignment-operator-visitor/README.md create mode 100644 packages/babel-helper-builder-binary-assignment-operator-visitor/package.json rename packages/{babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js => babel-helper-builder-binary-assignment-operator-visitor/src/index.js} (59%) create mode 100644 packages/babel-helper-builder-conditional-assignment-operator-visitor/README.md create mode 100644 packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json rename packages/{babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js => babel-helper-builder-conditional-assignment-operator-visitor/src/index.js} (94%) rename packages/{babel-plugin-builder-react-jsx => babel-helper-builder-react-jsx}/README.md (64%) rename packages/{babel-plugin-builder-react-jsx => babel-helper-builder-react-jsx}/package.json (75%) rename packages/{babel-plugin-builder-react-jsx => babel-helper-builder-react-jsx}/src/index.js (67%) create mode 100644 packages/babel-helper-call-delegate/README.md create mode 100644 packages/babel-helper-call-delegate/package.json create mode 100644 packages/babel-helper-call-delegate/src/index.js create mode 100644 packages/babel-helper-define-map/README.md create mode 100644 packages/babel-helper-define-map/package.json rename packages/{babel-core/src/transformation/helpers/define-map.js => babel-helper-define-map/src/index.js} (58%) create mode 100644 packages/babel-helper-explode-assignable-expression/README.md create mode 100644 packages/babel-helper-explode-assignable-expression/package.json rename packages/{babel-core/src/transformation/helpers/explode-assignable-expression.js => babel-helper-explode-assignable-expression/src/index.js} (94%) create mode 100644 packages/babel-helper-explode-class/README.md create mode 100644 packages/babel-helper-explode-class/package.json create mode 100644 packages/babel-helper-explode-class/src/index.js create mode 100644 packages/babel-helper-fixtures/README.md create mode 100644 packages/babel-helper-fixtures/package.json create mode 100644 packages/babel-helper-fixtures/src/index.js create mode 100644 packages/babel-helper-function-name/README.md create mode 100644 packages/babel-helper-function-name/package.json rename packages/{babel-core/src/transformation/helpers/name-method.js => babel-helper-function-name/src/index.js} (75%) create mode 100644 packages/babel-helper-get-function-arity/README.md create mode 100644 packages/babel-helper-get-function-arity/package.json rename packages/{babel-core/src/transformation/helpers/get-function-arity.js => babel-helper-get-function-arity/src/index.js} (73%) create mode 100644 packages/babel-helper-hoist-variables/README.md create mode 100644 packages/babel-helper-hoist-variables/package.json create mode 100644 packages/babel-helper-hoist-variables/src/index.js create mode 100644 packages/babel-helper-optimise-call-expression/README.md create mode 100644 packages/babel-helper-optimise-call-expression/package.json create mode 100644 packages/babel-helper-optimise-call-expression/src/index.js create mode 100644 packages/babel-helper-regex/README.md create mode 100644 packages/babel-helper-regex/package.json rename packages/{babel-core/src/transformation/helpers/regex.js => babel-helper-regex/src/index.js} (100%) create mode 100644 packages/babel-helper-replace-supers/README.md create mode 100644 packages/babel-helper-replace-supers/package.json rename packages/{babel-core/src/transformation/helpers/replace-supers.js => babel-helper-replace-supers/src/index.js} (58%) create mode 100644 packages/babel-helpers/README.md create mode 100644 packages/babel-helpers/package.json create mode 100644 packages/babel-helpers/src/helpers.js create mode 100644 packages/babel-helpers/src/index.js create mode 100644 packages/babel-messages/README.md create mode 100644 packages/babel-plugin-syntax-async-generators/README.md create mode 100644 packages/babel-plugin-syntax-async-generators/package.json create mode 100644 packages/babel-plugin-syntax-async-generators/src/index.js rename packages/{babel-plugin-transform-async-to-bluebird-coroutines => babel-plugin-syntax-class-constructor-call}/.npmignore (100%) create mode 100644 packages/babel-plugin-syntax-class-constructor-call/README.md create mode 100644 packages/babel-plugin-syntax-class-constructor-call/package.json create mode 100644 packages/babel-plugin-syntax-class-constructor-call/src/index.js delete mode 100644 packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md delete mode 100644 packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json rename packages/{babel-plugin-transform-comprehensions => babel-plugin-transform-async-to-module-method}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-async-to-module-method/README.md create mode 100644 packages/babel-plugin-transform-async-to-module-method/package.json rename packages/{babel-plugin-transform-async-to-bluebird-coroutines => babel-plugin-transform-async-to-module-method}/src/index.js (56%) rename packages/{babel-plugin-transform-constant-folding => babel-plugin-transform-class-constructor-call}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-class-constructor-call/README.md create mode 100644 packages/babel-plugin-transform-class-constructor-call/package.json create mode 100644 packages/babel-plugin-transform-class-constructor-call/src/index.js delete mode 100644 packages/babel-plugin-transform-comprehensions/README.md delete mode 100644 packages/babel-plugin-transform-comprehensions/package.json delete mode 100644 packages/babel-plugin-transform-comprehensions/src/index.js delete mode 100644 packages/babel-plugin-transform-constant-folding/README.md delete mode 100644 packages/babel-plugin-transform-constant-folding/package.json delete mode 100644 packages/babel-plugin-transform-constant-folding/src/index.js delete mode 100644 packages/babel-plugin-transform-dead-code-elimination/README.md delete mode 100644 packages/babel-plugin-transform-dead-code-elimination/package.json delete mode 100644 packages/babel-plugin-transform-dead-code-elimination/src/index.js rename packages/{babel-core/src/transformation/transformers/es6/block-scoping => babel-plugin-transform-es2015-block-scoping/src}/tdz.js (66%) rename packages/{babel-core/src/transformation/helpers => babel-plugin-transform-es2015-classes/src/lib}/memoise-decorators.js (100%) rename packages/{babel-core/src/transformation/transformers/es6/classes => babel-plugin-transform-es2015-classes/src}/loose.js (65%) create mode 100644 packages/babel-plugin-transform-es2015-classes/src/vanilla.js create mode 100644 packages/babel-plugin-transform-es2015-modules-amd/README.md create mode 100644 packages/babel-plugin-transform-es2015-modules-amd/package.json create mode 100644 packages/babel-plugin-transform-es2015-modules-amd/src/index.js rename packages/{babel-plugin-transform-dead-code-elimination => babel-plugin-transform-es2015-modules-commonjs}/.npmignore (100%) create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/README.md create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/package.json create mode 100644 packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js create mode 100644 packages/babel-plugin-transform-es2015-modules-systemjs/README.md create mode 100644 packages/babel-plugin-transform-es2015-modules-systemjs/package.json create mode 100644 packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js create mode 100644 packages/babel-plugin-transform-es2015-modules-umd/README.md create mode 100644 packages/babel-plugin-transform-es2015-modules-umd/package.json create mode 100644 packages/babel-plugin-transform-es2015-modules-umd/src/index.js create mode 100644 packages/babel-plugin-transform-es2015-parameters/src/default.js rename packages/{babel-core/src/transformation/transformers/es6/parameters => babel-plugin-transform-es2015-parameters/src}/destructuring.js (75%) rename packages/{babel-core/src/transformation/transformers/es6/parameters => babel-plugin-transform-es2015-parameters/src}/rest.js (79%) delete mode 100644 packages/babel-plugin-transform-es2015-tail-call/README.md delete mode 100644 packages/babel-plugin-transform-es2015-tail-call/src/index.js create mode 100644 packages/babel-plugin-transform-es2015-typeof-symbol/README.md rename packages/{babel-plugin-transform-es2015-tail-call => babel-plugin-transform-es2015-typeof-symbol}/package.json (50%) create mode 100644 packages/babel-plugin-transform-es2015-typeof-symbol/src/index.js create mode 100644 packages/babel-plugin-transform-regenerator/index.js create mode 100644 packages/babel-plugin-transform-regenerator/package.json create mode 100644 packages/babel-plugin-transform-strict-mode/README.md create mode 100644 packages/babel-plugin-transform-strict-mode/package.json create mode 100644 packages/babel-plugin-transform-strict-mode/src/index.js delete mode 100644 packages/babel-plugin-transform-undeclared-variables-check/.npmignore delete mode 100644 packages/babel-plugin-transform-undeclared-variables-check/README.md rename packages/{babel-plugin-transform-es2015-tail-call => babel-plugin-undeclared-variables-check}/.npmignore (100%) create mode 100644 packages/babel-plugin-undeclared-variables-check/README.md rename packages/{babel-plugin-transform-undeclared-variables-check => babel-plugin-undeclared-variables-check}/package.json (68%) rename packages/{babel-plugin-transform-undeclared-variables-check => babel-plugin-undeclared-variables-check}/src/index.js (74%) mode change 100644 => 100755 packages/babel-polyfill/scripts/build-dist.sh create mode 100644 packages/babel-traverse/src/path/constants.js rename packages/{babel-core => babel-traverse}/test/traverse.js (96%) create mode 100644 packages/babel/README.md create mode 100755 packages/babel/cli.js create mode 100644 packages/babel/index.js create mode 100644 packages/babel/package.json rename packages/babylon/test/fixtures/core/uncategorised/{542 => .542}/actual.js (100%) rename packages/babylon/test/fixtures/core/uncategorised/{542 => .542}/options.json (100%) rename packages/babylon/test/fixtures/core/uncategorised/{543 => .543}/actual.js (100%) rename packages/babylon/test/fixtures/core/uncategorised/{543 => .543}/options.json (100%) rename packages/babylon/test/fixtures/core/uncategorised/{544 => .544}/actual.js (100%) rename packages/babylon/test/fixtures/core/uncategorised/{544 => .544}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-class/{migrated_0026 => .migrated_0026}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-class/{migrated_0026 => .migrated_0026}/expected.json (98%) rename packages/babylon/test/fixtures/esprima/es2015-generator/{generator-parameter-binding-property-reserved => .generator-parameter-binding-property-reserved}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-generator/{generator-parameter-binding-property-reserved => .generator-parameter-binding-property-reserved}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-generator/{generator-parameter-binding-property-reserved => .generator-parameter-binding-property-reserved}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-identifier/{invalid_function_wait => .invalid_function_wait}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-identifier/{invalid_function_wait => .invalid_function_wait}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-identifier/{invalid_function_wait => .invalid_function_wait}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-identifier/{invalid_lone_surrogate => .invalid_lone_surrogate}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-identifier/{invalid_lone_surrogate => .invalid_lone_surrogate}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-identifier/{invalid_lone_surrogate => .invalid_lone_surrogate}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-meta-property/{invalid-new-target => .invalid-new-target}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-meta-property/{invalid-new-target => .invalid-new-target}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-meta-property/{invalid-new-target => .invalid-new-target}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-getter-literal-identifier => .invalid-proto-getter-literal-identifier}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-getter-literal-identifier => .invalid-proto-getter-literal-identifier}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-getter-literal-identifier => .invalid-proto-getter-literal-identifier}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifier-literal => .invalid-proto-identifier-literal}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifier-literal => .invalid-proto-identifier-literal}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifier-literal => .invalid-proto-identifier-literal}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifier-shorthand => .invalid-proto-identifier-shorthand}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifier-shorthand => .invalid-proto-identifier-shorthand}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifier-shorthand => .invalid-proto-identifier-shorthand}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifiers => .invalid-proto-identifiers}/actual.js (100%) create mode 100644 packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/expected.json rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-identifiers => .invalid-proto-identifiers}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literal-identifier => .invalid-proto-literal-identifier}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literal-identifier => .invalid-proto-literal-identifier}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literal-identifier => .invalid-proto-literal-identifier}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literal-shorthand => .invalid-proto-literal-shorthand}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literal-shorthand => .invalid-proto-literal-shorthand}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literal-shorthand => .invalid-proto-literal-shorthand}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literals => .invalid-proto-literals}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literals => .invalid-proto-literals}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-literals => .invalid-proto-literals}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-setter-literal-identifier => .invalid-proto-setter-literal-identifier}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-setter-literal-identifier => .invalid-proto-setter-literal-identifier}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-setter-literal-identifier => .invalid-proto-setter-literal-identifier}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthand-identifier => .invalid-proto-shorthand-identifier}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthand-identifier => .invalid-proto-shorthand-identifier}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthand-identifier => .invalid-proto-shorthand-identifier}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthand-literal => .invalid-proto-shorthand-literal}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthand-literal => .invalid-proto-shorthand-literal}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthand-literal => .invalid-proto-shorthand-literal}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthands => .invalid-proto-shorthands}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthands => .invalid-proto-shorthands}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-object-initialiser/{invalid-proto-shorthands => .invalid-proto-shorthands}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-super-property/{invalid_super_access => .invalid_super_access}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-super-property/{invalid_super_access => .invalid_super_access}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-super-property/{invalid_super_id => .invalid_super_id}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-super-property/{invalid_super_id => .invalid_super_id}/expected.json (99%) rename packages/babylon/test/fixtures/esprima/es2015-super-property/{invalid_super_id => .invalid_super_id}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-template-literals/{octal-literal => .octal-literal}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-template-literals/{octal-literal => .octal-literal}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-template-literals/{octal-literal => .octal-literal}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-template-literals/{strict-octal-literal => .strict-octal-literal}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-template-literals/{strict-octal-literal => .strict-octal-literal}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-template-literals/{strict-octal-literal => .strict-octal-literal}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-arrow-default => .invalid-yield-generator-arrow-default}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-arrow-default => .invalid-yield-generator-arrow-default}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-arrow-default => .invalid-yield-generator-arrow-default}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-name => .invalid-yield-generator-expression-name}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-name => .invalid-yield-generator-expression-name}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-name => .invalid-yield-generator-expression-name}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-parameter => .invalid-yield-generator-expression-parameter}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-parameter => .invalid-yield-generator-expression-parameter}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-parameter => .invalid-yield-generator-expression-parameter}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-rest => .invalid-yield-generator-expression-rest}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-rest => .invalid-yield-generator-expression-rest}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-expression-rest => .invalid-yield-generator-expression-rest}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-parameter => .invalid-yield-generator-parameter}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-parameter => .invalid-yield-generator-parameter}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-parameter => .invalid-yield-generator-parameter}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-rest => .invalid-yield-generator-rest}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-rest => .invalid-yield-generator-rest}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-generator-rest => .invalid-yield-generator-rest}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-array-pattern => .invalid-yield-strict-array-pattern}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-array-pattern => .invalid-yield-strict-array-pattern}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-array-pattern => .invalid-yield-strict-array-pattern}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-arrow-parameter-default => .invalid-yield-strict-arrow-parameter-default}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-arrow-parameter-default => .invalid-yield-strict-arrow-parameter-default}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-arrow-parameter-default => .invalid-yield-strict-arrow-parameter-default}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-arrow-parameter-name => .invalid-yield-strict-arrow-parameter-name}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-arrow-parameter-name => .invalid-yield-strict-arrow-parameter-name}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{invalid-yield-strict-arrow-parameter-name => .invalid-yield-strict-arrow-parameter-name}/options.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{yield-generator-arrow-concise-body => .yield-generator-arrow-concise-body}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{yield-generator-arrow-concise-body => .yield-generator-arrow-concise-body}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{yield-generator-function-expression => .yield-generator-function-expression}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{yield-generator-function-parameter => .yield-generator-function-parameter}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/es2015-yield/{yield-generator-function-parameter => .yield-generator-function-parameter}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{GH-1106-09 => .GH-1106-09}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{GH-1106-09 => .GH-1106-09}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{GH-1106-09 => .GH-1106-09}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0033 => .migrated_0033}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0033 => .migrated_0033}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0033 => .migrated_0033}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0034 => .migrated_0034}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0034 => .migrated_0034}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0034 => .migrated_0034}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0035 => .migrated_0035}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0035 => .migrated_0035}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0035 => .migrated_0035}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0036 => .migrated_0036}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0036 => .migrated_0036}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0036 => .migrated_0036}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0037 => .migrated_0037}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0037 => .migrated_0037}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0037 => .migrated_0037}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0041 => .migrated_0041}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0041 => .migrated_0041}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0041 => .migrated_0041}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0042 => .migrated_0042}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0042 => .migrated_0042}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0042 => .migrated_0042}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0043 => .migrated_0043}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0043 => .migrated_0043}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0043 => .migrated_0043}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0044 => .migrated_0044}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0044 => .migrated_0044}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0044 => .migrated_0044}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0048 => .migrated_0048}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0048 => .migrated_0048}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0048 => .migrated_0048}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0049 => .migrated_0049}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0049 => .migrated_0049}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0049 => .migrated_0049}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0050 => .migrated_0050}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0050 => .migrated_0050}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0050 => .migrated_0050}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0051 => .migrated_0051}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0051 => .migrated_0051}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0051 => .migrated_0051}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0075 => .migrated_0075}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0075 => .migrated_0075}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0137 => .migrated_0137}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0137 => .migrated_0137}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0137 => .migrated_0137}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0163 => .migrated_0163}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0163 => .migrated_0163}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0163 => .migrated_0163}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0165 => .migrated_0165}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0165 => .migrated_0165}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0165 => .migrated_0165}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0166 => .migrated_0166}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0166 => .migrated_0166}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0166 => .migrated_0166}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0167 => .migrated_0167}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0167 => .migrated_0167}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0167 => .migrated_0167}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0169 => .migrated_0169}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0169 => .migrated_0169}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0169 => .migrated_0169}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0250 => .migrated_0250}/actual.js (100%) create mode 100644 packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/expected.json rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0250 => .migrated_0250}/options.json (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0277 => .migrated_0277}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0277 => .migrated_0277}/expected.json (98%) rename packages/babylon/test/fixtures/esprima/invalid-syntax/{migrated_0277 => .migrated_0277}/options.json (100%) rename packages/babylon/test/fixtures/esprima/statement-if/{migrated_0003 => .migrated_0003}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/statement-iteration/{migrated_0021 => .migrated_0021}/actual.js (100%) rename packages/babylon/test/fixtures/esprima/statement-iteration/{migrated_0021 => .migrated_0021}/expected.json (100%) rename packages/babylon/test/fixtures/esprima/statement-iteration/{pattern-in-for-in => .pattern-in-for-in}/actual.js (100%) create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/.duplicate/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/options.json create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/options.json create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/options.json create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/plain/actual.js create mode 100644 packages/babylon/test/fixtures/experimental/class-constructor-call/plain/expected.json rename packages/babylon/test/fixtures/experimental/uncategorised/{24 => .24}/actual.js (100%) rename packages/babylon/test/fixtures/experimental/uncategorised/{24 => .24}/expected.json (100%) rename packages/babylon/test/fixtures/experimental/uncategorised/{24 => .24}/options.json (100%) rename packages/babylon/test/fixtures/flow/regression/{arrow-function-parens-with-return-type => .arrow-function-parens-with-return-type}/actual.js (100%) rename packages/babylon/test/fixtures/flow/regression/{arrow-function-parens-with-return-type => .arrow-function-parens-with-return-type}/expected.json (100%) rename packages/babylon/test/fixtures/flow/regression/{arrow-function-parens-with-return-type => .arrow-function-parens-with-return-type}/options.json (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{69 => .69}/actual.js (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{69 => .69}/expected.json (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{70 => .70}/actual.js (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{70 => .70}/expected.json (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{71 => .71}/actual.js (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{71 => .71}/expected.json (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{75 => .75}/actual.js (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{75 => .75}/expected.json (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{76 => .76}/actual.js (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{76 => .76}/expected.json (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{77 => .77}/actual.js (100%) rename packages/babylon/test/fixtures/flow/type-annotations/{77 => .77}/expected.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{191 => .191}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{191 => .191}/expected.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{260 => .260}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{260 => .260}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{335 => .335}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{335 => .335}/expected.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{335 => .335}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{343 => .343}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{343 => .343}/expected.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{343 => .343}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{345 => .345}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{345 => .345}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{346 => .346}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{346 => .346}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{348 => .348}/actual.js (100%) create mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/.348/expected.json rename packages/babylon/test/fixtures/harmony/uncategorised/{348 => .348}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{349 => .349}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{349 => .349}/expected.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{349 => .349}/options.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{353 => .353}/actual.js (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{353 => .353}/expected.json (100%) rename packages/babylon/test/fixtures/harmony/uncategorised/{353 => .353}/options.json (100%) delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/130/actual.js delete mode 100644 packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json delete mode 100644 test.js diff --git a/.flowconfig b/.flowconfig new file mode 100644 index 0000000000..f05ad7b95b --- /dev/null +++ b/.flowconfig @@ -0,0 +1,14 @@ +[ignore] + +[include] + +[libs] +lib/file.js +lib/parser.js +lib/types.js + +[options] +strip_root=true + +[version] +0.16.0 diff --git a/Makefile b/Makefile index b4a9b08c19..b8f022252d 100644 --- a/Makefile +++ b/Makefile @@ -20,10 +20,10 @@ watch: clean lint: node node_modules/.bin/eslint packages/*/src + #flow check clean: test-clean rm -rf coverage - rm -rf packages/*/lib packages/babel-core/templates.json test-clean: rm -rf packages/*/test/tmp @@ -45,7 +45,7 @@ publish: make test node scripts/publish.js make clean - ./scripts/build-website.sh + #./scripts/build-website.sh bootstrap: npm install diff --git a/VERSION b/VERSION index aaeac54d59..ac78cf1a97 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.8.23 \ No newline at end of file +5.8.33 diff --git a/doc/design/compiler-assumptions.md b/doc/design/compiler-assumptions.md new file mode 100644 index 0000000000..e4cf07e49d --- /dev/null +++ b/doc/design/compiler-assumptions.md @@ -0,0 +1,9 @@ +# Compiler assumptions + +Babel and it's associated official transforms make some assumptions about your code. These +assumptions are only made as they're either **impossible** to take into consideration or +are extremely exotic. + + - `undefined`, `NaN` and `Infinity` have not been externally redefined. + - Built-in objects such as `Object`, `Array`, `String`, `Number`, `Boolean` etc have not been redefined. + - Standard methods on built-ins have not been redefined in a way that breaks the original contract. diff --git a/doc/design/compiler-guarantees.md b/doc/design/compiler-guarantees.md new file mode 100644 index 0000000000..e69de29bb2 diff --git a/package.json b/package.json index 08e36a316c..045fd66281 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,10 @@ "babel": "5.8.21", "babel-eslint": "^4.0.6", "babel-plugin-flow-comments": "^1.0.9", - "browserify": "^11.0.0", + "browserify": "^11.2.0", + "bundle-collapser": "^1.2.1", "chai": "^2.2.0", - "chalk": "^1.1.0", + "derequire": "^2.0.2", "es5-shim": "^4.1.7", "eslint": "^1.1.0", "fs-readdir-recursive": "^0.1.2", @@ -81,7 +82,8 @@ "no-process-exit": 0, "camelcase": 0, "no-console": 0, - "no-constant-condition": 0 + "no-constant-condition": 0, + "no-inner-declarations": 0 }, "env": { "node": true diff --git a/packages/README.md b/packages/README.md index 9b51ee095f..47324dbd6d 100644 --- a/packages/README.md +++ b/packages/README.md @@ -1,88 +1,3 @@ # Woah, what's going on here? -A monorepo, muhahahahahaha. See the [monorepo design doc](/doc/design/monorepo.md) for reasoning. Here's an explanation for each package listed: - -## `babylon` - -## `babel-core` - -#### `babel-cli` - -#### `babel-types` - -#### `babel-code-frame` - -#### `babel-messages` - -#### `babel-polyfill` - -#### `babel-runtime` - -#### `babel-traverse` - -#### `babel-plugin-*` - - - `babel-plugin-auxiliary-comments` - - `babel-plugin-external-helpers` - - `babel-plugin-transform-async-functions` - - `babel-plugin-transform-async-to-bluebird-coroutines` - - `babel-plugin-transform-async-to-generator` - - `babel-plugin-transform-class-properties` - - `babel-plugin-transform-comprehensions` - - `babel-plugin-transform-constant-folding` - - `babel-plugin-transform-dead-code-elimination` - - `babel-plugin-transform-decorators` - - `babel-plugin-transform-do-expressions` - - `babel-plugin-transform-es2015-arrow-functions` - - `babel-plugin-transform-es2015-block-scoped-functions` - - `babel-plugin-transform-es2015-block-scoping` - - `babel-plugin-transform-es2015-classes` - - `babel-plugin-transform-es2015-computed-properties` - - `babel-plugin-transform-es2015-constants` - - `babel-plugin-transform-es2015-destructuring` - - `babel-plugin-transform-es2015-for-of` - - `babel-plugin-transform-es2015-function-name` - - `babel-plugin-transform-es2015-literals` - - `babel-plugin-transform-es2015-modules-amd` - - `babel-plugin-transform-es2015-modules-commonjs` - - `babel-plugin-transform-es2015-modules-systemjs` - - `babel-plugin-transform-es2015-modules-umd` - - `babel-plugin-transform-es2015-object-super` - - `babel-plugin-transform-es2015-parameters` - - `babel-plugin-transform-es2015-shorthand-properties` - - `babel-plugin-transform-es2015-spread` - - `babel-plugin-transform-es2015-sticky-regex` - - `babel-plugin-transform-es2015-tail-call` - - `babel-plugin-transform-es2015-template-literals` - - `babel-plugin-transform-es2015-unicode-regex` - - `babel-plugin-transform-es3-member-expression-literals` - - `babel-plugin-transform-es3-property-literals` - - `babel-plugin-transform-es5-property-mutators` - - `babel-plugin-transform-eval` - - `babel-plugin-transform-exponentiation-operator` - - `babel-plugin-transform-export-extensions` - - `babel-plugin-transform-flow-strip-types` - - `babel-plugin-transform-function-bind` - - `babel-plugin-transform-inline-environment-variables` - - `babel-plugin-transform-jscript` - - `babel-plugin-transform-member-expression-literals` - - `babel-plugin-transform-merge-sibling-variables` - - `babel-plugin-transform-minify-booleans` - - `babel-plugin-transform-node-env-inline` - - `babel-plugin-transform-object-assign` - - `babel-plugin-transform-object-rest-spread` - - `babel-plugin-transform-object-set-prototype-of-to-assign` - - `babel-plugin-transform-property-literals` - - `babel-plugin-transform-proto-to-assign` - - `babel-plugin-transform-react-compat-jsx` - - `babel-plugin-transform-react-constant-elements` - - `babel-plugin-transform-react-display-name` - - `babel-plugin-transform-react-inline-elements` - - `babel-plugin-transform-react-jsx` - - `babel-plugin-transform-remove-console` - - `babel-plugin-transform-remove-debugger` - - `babel-plugin-transform-runtime` - - `babel-plugin-transform-simplify-comparison-operators` - - `babel-plugin-transform-trailing-function-commas` - - `babel-plugin-transform-undeclared-variables-check` - - `babel-plugin-transform-undefined-to-void` +A monorepo, muhahahahahaha. See the [monorepo design doc](/doc/design/monorepo.md) for reasoning. diff --git a/packages/babel-cli/index.js b/packages/babel-cli/index.js index 4a0e83d072..090b3f0df5 100644 --- a/packages/babel-cli/index.js +++ b/packages/babel-cli/index.js @@ -1 +1 @@ -module.exports = require("babel-core"); +throw new Error("Use the `babel-core` package not `babel`."); diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index d68633db4b..421376bed9 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -1,6 +1,6 @@ { - "name": "babel", - "version": "5.8.23", + "name": "babel-cli", + "version": "5.10.32", "description": "Turn ES6 code into readable vanilla ES5 with source maps", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,10 +8,10 @@ "repository": "babel/babel", "preferGlobal": true, "dependencies": { - "babel-core": "^5.6.21", - "babel-polyfill": "^5.0.0", + "babel-core": "^5.10.32", + "babel-polyfill": "^5.10.32", "chokidar": "^1.0.0", - "commander": "^2.6.0", + "commander": "^2.8.1", "convert-source-map": "^1.1.0", "fs-readdir-recursive": "^0.1.0", "glob": "^5.0.5", @@ -20,13 +20,13 @@ "path-exists": "^1.0.0", "path-is-absolute": "^1.0.0", "slash": "^1.0.0", - "source-map": "^0.4.0", - "v8flags": "^2.0.10" + "source-map": "^0.5.0", + "v8flags": "^2.0.10", + "babel-runtime": "^5.10.32" }, "bin": { "babel": "./bin/babel.js", "babel-node": "./bin/babel-node.js", - "babel-external-helpers": "./bin/babel-external-helpers.js", - "babel-plugin": "./bin/babel-plugin.js" + "babel-external-helpers": "./bin/babel-external-helpers.js" } -} +} \ No newline at end of file diff --git a/packages/babel-cli/src/_babel-node.js b/packages/babel-cli/src/_babel-node.js index 2f168b7f09..6fa82ac3f8 100644 --- a/packages/babel-cli/src/_babel-node.js +++ b/packages/babel-cli/src/_babel-node.js @@ -15,10 +15,11 @@ let program = new commander.Command("babel-node"); program.option("-e, --eval [script]", "Evaluate script"); program.option("-p, --print [code]", "Evaluate script and print result"); -program.option("-i, --ignore [regex]", "Ignore all files that match this regex when using the require hook"); +program.option("-o, --only [globs]", ""); +program.option("-i, --ignore [globs]", ""); program.option("-x, --extensions [extensions]", "List of extensions to hook into [.es6,.js,.es,.jsx]"); -program.option("-w, --plugins [string]", "TODO", util.list); -program.option("-b, --presets [string]", "TODO", util.list); +program.option("-w, --plugins [string]", "", util.list); +program.option("-b, --presets [string]", "", util.list); let pkg = require("../package.json"); program.version(pkg.version); @@ -28,24 +29,24 @@ program.parse(process.argv); // register({ - extensions: program.extensions, - optional: program.optional, - ignore: program.ignore, - plugins: program.plugins, - presets: program.presets, + extensions: program.extensions, + ignore: program.ignore, + only: program.only, + plugins: program.plugins, + presets: program.presets, }); // -let replPlugin = new babel.Plugin("repl", { +let replPlugin = () => ({ visitor: { - ModuleDeclaration() { - throw this.errorWithNode("Modules aren't supported in the REPL"); + ModuleDeclaration(path) { + throw path.buildCodeFrameError("Modules aren't supported in the REPL"); }, - VariableDeclaration(node) { - if (node.kind !== "var") { - throw this.errorWithNode("Only `var` variables are supported in the REPL"); + VariableDeclaration(path) { + if (path.node.kind !== "var") { + throw path.buildCodeFrameError("Only `var` variables are supported in the REPL"); } } } @@ -59,11 +60,8 @@ let _eval = function (code, filename) { code = babel.transform(code, { filename: filename, - blacklist: program.blacklist, - whitelist: program.whitelist, - optional: program.optional, - stage: program.stage, - plugins: [replPlugin] + presets: program.presets, + plugins: (program.plugins || []).concat([replPlugin]) }).code; return vm.runInThisContext(code, { diff --git a/packages/babel-cli/src/babel-node.js b/packages/babel-cli/src/babel-node.js index 603835dc91..4ff310d144 100755 --- a/packages/babel-cli/src/babel-node.js +++ b/packages/babel-cli/src/babel-node.js @@ -18,7 +18,7 @@ if (argSeparator > -1) { babelArgs = babelArgs.slice(0, argSeparator); } -getV8Flags(function (v8Flags) { +getV8Flags(function (err, v8Flags) { babelArgs.forEach(function(arg){ let flag = arg.split("=")[0]; diff --git a/packages/babel-cli/src/babel-plugin/index.js b/packages/babel-cli/src/babel-plugin/index.js deleted file mode 100755 index de8d326b02..0000000000 --- a/packages/babel-cli/src/babel-plugin/index.js +++ /dev/null @@ -1,162 +0,0 @@ -import pathExists from "path-exists"; -import readline from "readline"; -import child from "child_process"; -import path from "path"; -import fs from "fs"; - -function spawn(cmd, args, callback) { - console.log(">", cmd, args); - - let spawn = child.spawn(cmd, args, { stdio: "inherit" }); - - spawn.on("exit", function (code) { - if (code === 0) { - callback(); - } else { - console.log("Killing..."); - process.exit(1); - } - }); -} - -function spawnMultiple(cmds) { - function next() { - let cmd = cmds.shift(); - if (cmd) { - spawn(cmd.command, cmd.args, next); - } else { - process.exit(); - } - } - - next(); -} - -function template(name, data = {}) { - let source = fs.readFileSync(path.join(__dirname, "templates", name), "utf8"); - source = source.replace(/[A-Z_]+/g, function (key) { - return data[key] === undefined ? key : data[key]; - }); - return source; -} - -function write(filename, content) { - console.log(filename); - fs.writeFileSync(filename, content); -} - -function execMaybe(cmd) { - try { - return child.execSync(cmd).toString(); - } catch (err) { - return ""; - } -} - -let rl = readline.createInterface({ - input: process.stdin, - output: process.stdout -}); - -let BABEL_PLUGIN_PREFIX = "babel-plugin-"; - -let cmds = { - init: function () { - let name = path.basename(process.cwd()); - - if (name.indexOf(BABEL_PLUGIN_PREFIX) === 0) { - name = name.slice(BABEL_PLUGIN_PREFIX.length); - } - - rl.question("Description (optional): ", function (description) { - let remote = execMaybe("git config --get remote.origin.url").trim().match(/git@github.com:(.*?).git/); - if (remote) { - build(description, remote[1]); - } else { - rl.question("GitHub Repository (eg. sebmck/babel-plugin-foobar) (optional): ", function (repo) { - build(description, repo); - }); - } - }); - - function build(description, repo) { - rl.close(); - - let templateData = { - DESCRIPTION: description, - FULL_NAME: BABEL_PLUGIN_PREFIX + name, - NAME: name - }; - - write("package.json", JSON.stringify({ - name: templateData.FULL_NAME, - version: "1.0.0", - description: templateData.DESCRIPTION, - repository: repo || undefined, - license: "MIT", - main: "lib/index.js", - - devDependencies: { - babel: "^5.6.0" - }, - - scripts: { - build: "babel-plugin build", - push: "babel-plugin publish", - test: "babel-plugin test" - }, - - keywords: ["babel-plugin"] - }, null, " ") + "\n"); - - write(".npmignore", "node_modules\n*.log\nsrc\n"); - - write(".gitignore", "node_modules\n*.log\nlib\n"); - - write("README.md", template("README.md", templateData)); - - write("LICENSE", template("LICENSE", { - AUTHOR_EMAIL: execMaybe("git config --get user.email").trim(), - AUTHOR_NAME: execMaybe("git config --get user.name").trim(), - YEAR: new Date().getFullYear() - })); - - if (!pathExists.sync("src")) { - fs.mkdirSync("src"); - write("src/index.js", template("index.js", templateData)); - } - } - }, - - build: function () { - spawn("babel", ["src", "--out-dir", "lib", "--copy-files"], process.exit); - }, - - publish: function () { - let pkg = require(process.cwd() + "/package.json"); - console.log("Current version:", pkg.version); - - rl.question("New version (enter nothing for patch): ", function (newVersion) { - rl.close(); - - newVersion = newVersion || "patch"; - - spawnMultiple([ - { command: "git", args: ["pull"] }, - { command: "git", args: ["push"] }, - { command: "babel-plugin", args: ["build"] }, - { command: "npm", args: ["version", newVersion] }, - { command: "npm", args: ["publish"] }, - { command: "git", args: ["push", "--follow-tags"] } - ]); - }); - } -}; - -let cmd = cmds[process.argv[2]]; -if (cmd) { - cmd(); -} else { - console.error("Unknown command:", cmd); - process.exit(1); -} diff --git a/packages/babel-cli/src/babel-plugin/templates/LICENSE b/packages/babel-cli/src/babel-plugin/templates/LICENSE deleted file mode 100644 index 8f49de9415..0000000000 --- a/packages/babel-cli/src/babel-plugin/templates/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -Copyright (c) YEAR AUTHOR_NAME - -MIT License - -Permission is hereby granted, free of charge, to any person obtaining -a copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/packages/babel-cli/src/babel-plugin/templates/README.md b/packages/babel-cli/src/babel-plugin/templates/README.md deleted file mode 100644 index b8f71ad228..0000000000 --- a/packages/babel-cli/src/babel-plugin/templates/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# FULL_NAME - -DESCRIPTION - -## Installation - -```sh -$ npm install FULL_NAME -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["NAME"] -} -``` - -### Via CLI - -```sh -$ babel --plugins NAME script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["NAME"] -}); -``` diff --git a/packages/babel-cli/src/babel-plugin/templates/index.js b/packages/babel-cli/src/babel-plugin/templates/index.js deleted file mode 100644 index ca31cf0b24..0000000000 --- a/packages/babel-cli/src/babel-plugin/templates/index.js +++ /dev/null @@ -1,8 +0,0 @@ -/* eslint no-unused-vars:0 */ -export default function ({ Plugin, types: t }) { - return new Plugin("NAME", { - visitor: { - // your visitor methods go here - } - }); -} diff --git a/packages/babel-cli/src/babel/dir.js b/packages/babel-cli/src/babel/dir.js index 7507a78f47..c2a34b7711 100644 --- a/packages/babel-cli/src/babel/dir.js +++ b/packages/babel-cli/src/babel/dir.js @@ -20,6 +20,7 @@ module.exports = function (commander, filenames) { }); if (!commander.copyFiles && data.ignored) return; + // we've requested explicit sourcemaps to be written to disk if (data.map && commander.sourceMaps && commander.sourceMaps !== "inline") { let mapLoc = dest + ".map"; data.code = util.addSourceMappingUrl(data.code, mapLoc); @@ -27,6 +28,7 @@ module.exports = function (commander, filenames) { } outputFileSync(dest, data.code); + util.chmod(src, dest); util.log(src + " -> " + dest); } @@ -37,7 +39,9 @@ module.exports = function (commander, filenames) { if (util.canCompile(filename, commander.extensions)) { write(src, filename); } else if (commander.copyFiles) { - outputFileSync(path.join(commander.outDir, filename), fs.readFileSync(src)); + let dest = path.join(commander.outDir, filename); + outputFileSync(dest, fs.readFileSync(src)); + util.chmod(src, dest); } } diff --git a/packages/babel-cli/src/babel/file.js b/packages/babel-cli/src/babel/file.js index e7120f5af5..b8e03b526f 100644 --- a/packages/babel-cli/src/babel/file.js +++ b/packages/babel-cli/src/babel/file.js @@ -54,6 +54,8 @@ module.exports = function (commander, filenames, opts) { } }); + // add the inline sourcemap comment if we've either explicitly asked for inline source + // maps, or we've requested them without any output file if (commander.sourceMaps === "inline" || (!commander.outFile && commander.sourceMaps)) { code += "\n" + convertSourceMap.fromObject(map).toComment(); } @@ -68,6 +70,7 @@ module.exports = function (commander, filenames, opts) { let result = buildResult(); if (commander.outFile) { + // we've requested for a sorucemap to be written to disk if (commander.sourceMaps && commander.sourceMaps !== "inline") { let mapLoc = commander.outFile + ".map"; result.code = util.addSourceMappingUrl(result.code, mapLoc); diff --git a/packages/babel-cli/src/babel/util.js b/packages/babel-cli/src/babel/util.js index e215b38b17..720705001a 100644 --- a/packages/babel-cli/src/babel/util.js +++ b/packages/babel-cli/src/babel/util.js @@ -7,29 +7,33 @@ let path = require("path"); let fs = require("fs"); let _ = require("lodash"); -exports.readdirFilter = function (filename) { +export function chmod(src, dest) { + fs.chmodSync(dest, fs.statSync(src).mode); +} + +export function readdirFilter(filename) { return readdir(filename).filter(function (filename) { return util.canCompile(filename); }); -}; +} -exports.readdir = readdir; +export { readdir }; -exports.canCompile = util.canCompile; +export let canCompile = util.canCompile; -exports.shouldIgnore = function (loc) { +export function shouldIgnore(loc) { return util.shouldIgnore(loc, index.opts.ignore, index.opts.only); -}; +} -exports.addSourceMappingUrl = function (code, loc) { +export function addSourceMappingUrl(code, loc) { return code + "\n//# sourceMappingURL=" + path.basename(loc); -}; +} -exports.log = function (msg) { +export function log(msg) { if (!commander.quiet) console.log(msg); -}; +} -exports.transform = function (filename, code, opts) { +export function transform(filename, code, opts) { opts = _.defaults(opts || {}, index.opts); opts.filename = filename; opts.ignore = null; @@ -39,12 +43,12 @@ exports.transform = function (filename, code, opts) { result.filename = filename; result.actual = code; return result; -}; +} -exports.compile = function (filename, opts) { +export function compile(filename, opts) { try { let code = fs.readFileSync(filename, "utf8"); - return exports.transform(filename, code, opts); + return transform(filename, code, opts); } catch (err) { if (commander.watch) { console.error(toErrorStack(err)); @@ -53,7 +57,7 @@ exports.compile = function (filename, opts) { throw err; } } -}; +} function toErrorStack(err) { if (err._babel && err instanceof SyntaxError) { diff --git a/packages/babel-cli/test/.babelrc b/packages/babel-cli/test/.babelrc index 3a8f8eb911..0967ef424b 100644 --- a/packages/babel-cli/test/.babelrc +++ b/packages/babel-cli/test/.babelrc @@ -1,3 +1 @@ -{ - "breakConfig": true -} +{} diff --git a/packages/babel-cli/test/fixtures/babel-external-helpers/--output-type umd/stdout.txt b/packages/babel-cli/test/fixtures/babel-external-helpers/--output-type umd/stdout.txt index 7720acd669..5ad4dd07cd 100644 --- a/packages/babel-cli/test/fixtures/babel-external-helpers/--output-type umd/stdout.txt +++ b/packages/babel-cli/test/fixtures/babel-external-helpers/--output-type umd/stdout.txt @@ -8,4 +8,4 @@ } })(this, function (global) { var babelHelpers = global; -}) +}); diff --git a/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/options.json b/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/options.json index 51b6c8f4ec..2d7659493d 100644 --- a/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/options.json +++ b/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/options.json @@ -1,3 +1,3 @@ { - "args": ["--whitelist", "slice,has-own"] + "args": ["--whitelist", "createClass"] } diff --git a/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt b/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt index f07c16c3fe..88c4bd2b2f 100644 --- a/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt +++ b/packages/babel-cli/test/fixtures/babel-external-helpers/--whitelist/stdout.txt @@ -1,5 +1,21 @@ (function (global) { var babelHelpers = global.babelHelpers = {}; - babelHelpers.hasOwn = Object.prototype.hasOwnProperty; - babelHelpers.slice = Array.prototype.slice; + + babelHelpers.createClass = (function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + })(); })(typeof global === "undefined" ? self : global); diff --git a/packages/babel-cli/test/fixtures/babel/--blacklist/options.json b/packages/babel-cli/test/fixtures/babel/--blacklist/options.json deleted file mode 100644 index 504eb17f7e..0000000000 --- a/packages/babel-cli/test/fixtures/babel/--blacklist/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "args": ["--blacklist", "es6.arrowFunctions"] -} diff --git a/packages/babel-cli/test/fixtures/babel/--blacklist/stdin.txt b/packages/babel-cli/test/fixtures/babel/--blacklist/stdin.txt deleted file mode 100644 index 4bc9539528..0000000000 --- a/packages/babel-cli/test/fixtures/babel/--blacklist/stdin.txt +++ /dev/null @@ -1 +0,0 @@ -arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/--blacklist/stdout.txt b/packages/babel-cli/test/fixtures/babel/--blacklist/stdout.txt deleted file mode 100644 index 420f2b900e..0000000000 --- a/packages/babel-cli/test/fixtures/babel/--blacklist/stdout.txt +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; - -arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/--whitelist/options.json b/packages/babel-cli/test/fixtures/babel/--whitelist/options.json deleted file mode 100644 index a8ea889a1c..0000000000 --- a/packages/babel-cli/test/fixtures/babel/--whitelist/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "args": ["--whitelist", "es6.arrowFunctions"] -} diff --git a/packages/babel-cli/test/fixtures/babel/--whitelist/stdin.txt b/packages/babel-cli/test/fixtures/babel/--whitelist/stdin.txt deleted file mode 100644 index 030f13f9fa..0000000000 --- a/packages/babel-cli/test/fixtures/babel/--whitelist/stdin.txt +++ /dev/null @@ -1,2 +0,0 @@ -let MULTIPLER = 5; -arr.map(x => x * MULTIPLIER); diff --git a/packages/babel-cli/test/fixtures/babel/--whitelist/stdout.txt b/packages/babel-cli/test/fixtures/babel/--whitelist/stdout.txt deleted file mode 100644 index 4181a0bd94..0000000000 --- a/packages/babel-cli/test/fixtures/babel/--whitelist/stdout.txt +++ /dev/null @@ -1,4 +0,0 @@ -let MULTIPLER = 5; -arr.map(function (x) { - return x * MULTIPLIER; -}); diff --git a/packages/babel-cli/test/index.js b/packages/babel-cli/test/index.js index 3e229d87b9..938fb6db6a 100644 --- a/packages/babel-cli/test/index.js +++ b/packages/babel-cli/test/index.js @@ -15,6 +15,16 @@ var _ = require("lodash"); var fixtureLoc = __dirname + "/fixtures"; var tmpLoc = __dirname + "/tmp"; +var presetLocs = [ + __dirname + "/../../babel-preset-es2015", + __dirname + "/../../babel-preset-react" +].join(","); + +var pluginLocs = [ + __dirname + "/../../babel-plugin-transform-strict-mode", + __dirname + "/../../babel-plugin-transform-es2015-modules-commonjs", +].join(","); + var readDir = function (loc) { var files = {}; if (pathExists.sync(loc)) { @@ -43,7 +53,7 @@ var assertTest = function (stdout, stderr, opts) { chai.expect(stderr).to.equal(expectStderr, "stderr didn't match"); } } else if (stderr) { - throw new Error("stderr: " + JSON.stringify(stderr)); + throw new Error("stderr:\n" + stderr); } var expectStdout = opts.stdout.trim(); @@ -57,7 +67,7 @@ var assertTest = function (stdout, stderr, opts) { chai.expect(stdout).to.equal(expectStdout, "stdout didn't match"); } } else if (stdout) { - throw new Error("stdout: " + JSON.stringify(stdout)); + throw new Error("stdout:\n" + stdout); } _.each(opts.outFiles, function (expect, filename) { @@ -74,7 +84,18 @@ var buildTest = function (binName, testName, opts) { clear(); saveInFiles(opts.inFiles); - var args = [binLoc].concat(opts.args); + var args = [binLoc]; + + if (binName !== "babel-external-helpers") { + args.push("--presets", presetLocs, "--plugins", pluginLocs); + } + + if (binName === "babel-node") { + args.push("--only", "packages/*/test"); + } + + args = args.concat(opts.args); + var spawn = child.spawn(process.execPath, args); var stderr = ""; diff --git a/packages/babel-code-frame/package.json b/packages/babel-code-frame/package.json index 03525c8c95..4d40c1e7e3 100644 --- a/packages/babel-code-frame/package.json +++ b/packages/babel-code-frame/package.json @@ -1,6 +1,6 @@ { "name": "babel-code-frame", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,10 +8,11 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { + "babel-runtime": "^5.10.32", "chalk": "^1.1.0", "esutils": "^2.0.2", "js-tokens": "^1.0.1", "line-numbers": "^0.2.0", "repeating": "^1.1.3" } -} +} \ No newline at end of file diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 72ed641819..c7339a9246 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,13 +1,14 @@ { "name": "babel-core", - "version": "5.8.23", + "version": "5.10.32", "description": "A compiler for writing next generation JavaScript", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", "repository": "babel/babel", "browser": { - "./lib/api/register/node.js": "./lib/api/register/browser.js" + "./lib/api/register/node.js": "./lib/api/register/browser.js", + "esprima-fb": false }, "keywords": [ "6to5", @@ -27,28 +28,15 @@ "test": "make test" }, "dependencies": { - "babel-polyfill": "^5.8.22", - "babel-code-frame": "^5.8.22", - "babel-types": "^5.8.22", - "babel-traverse": "^5.8.22", - "babel-generator": "^5.8.22", - "babel-messages": "^5.8.22", - "babel-plugin-constant-folding": "^1.0.1", - "babel-plugin-dead-code-elimination": "^1.0.2", - "babel-plugin-eval": "^1.0.1", - "babel-plugin-inline-environment-variables": "^1.0.1", - "babel-plugin-jscript": "^1.0.4", - "babel-plugin-member-expression-literals": "^1.0.1", - "babel-plugin-property-literals": "^1.0.1", - "babel-plugin-proto-to-assign": "^1.0.3", - "babel-plugin-react-constant-elements": "^1.0.3", - "babel-plugin-react-display-name": "^2.0.0", - "babel-plugin-remove-console": "^1.0.1", - "babel-plugin-remove-debugger": "^1.0.1", - "babel-plugin-runtime": "^1.0.7", - "babel-plugin-undeclared-variables-check": "^1.0.2", - "babel-plugin-undefined-to-void": "^1.1.6", - "babylon": "^5.8.23", + "babel-code-frame": "^5.10.32", + "babel-generator": "^5.10.32", + "babel-helpers": "^6.0.6", + "babel-messages": "^5.10.32", + "babel-template": "^5.10.32", + "babel-runtime": "^5.10.32", + "babel-traverse": "^5.10.32", + "babel-types": "^5.10.32", + "babylon": "^5.10.32", "convert-source-map": "^1.1.0", "debug": "^2.1.1", "esutils": "^2.0.0", @@ -60,11 +48,12 @@ "path-is-absolute": "^1.0.0", "private": "^0.1.6", "regenerator": "0.8.35", - "regexpu": "^1.1.2", "shebang-regex": "^1.0.0", "slash": "^1.0.0", "source-map": "^0.4.0", - "source-map-support": "^0.2.10", - "try-resolve": "^1.0.0" + "source-map-support": "^0.2.10" + }, + "devDependencies": { + "babel-polyfill": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-core/register-without-polyfill.js b/packages/babel-core/register-without-polyfill.js deleted file mode 100644 index 6b85c7bcf8..0000000000 --- a/packages/babel-core/register-without-polyfill.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("./lib/api/register/node"); diff --git a/packages/babel-core/register.js b/packages/babel-core/register.js index c97650c29a..6b85c7bcf8 100644 --- a/packages/babel-core/register.js +++ b/packages/babel-core/register.js @@ -1 +1 @@ -module.exports = require("./lib/api/register/node-polyfill"); +module.exports = require("./lib/api/register/node"); diff --git a/packages/babel-core/scripts/build-dist.sh b/packages/babel-core/scripts/build-dist.sh index cefac7997a..2f8f2089c0 100755 --- a/packages/babel-core/scripts/build-dist.sh +++ b/packages/babel-core/scripts/build-dist.sh @@ -1,23 +1,22 @@ #!/bin/sh -set -e +set -ex BROWSERIFY_CMD="../../node_modules/browserify/bin/cmd.js" UGLIFY_CMD="../../node_modules/uglify-js/bin/uglifyjs" -BROWSERIFY_IGNORE="-i esprima-fb" +BROWSERIFY_IGNORE="-i esprima-fb -i through" mkdir -p dist -node scripts/cache-templates - # Add a Unicode BOM so browsers will interpret the file as UTF-8 node -p '"\uFEFF"' > dist/browser.js -node $BROWSERIFY_CMD lib/api/browser.js -s babel $BROWSERIFY_IGNORE >>dist/browser.js +node $BROWSERIFY_CMD lib/api/browser.js \ + --standalone babel \ + --plugin bundle-collapser/plugin \ + --plugin derequire/plugin \ + $BROWSERIFY_IGNORE \ + >>dist/browser.j node -p '"\uFEFF"' > dist/browser.min.js -node $UGLIFY_CMD dist/browser.js >>dist/browser.min.js - -node $BROWSERIFY_CMD lib/api/node.js --node $BROWSERIFY_IGNORE >dist/node.js - -node ../babel-cli/lib/babel-external-helpers >dist/external-helpers.js -node $UGLIFY_CMD dist/external-helpers.js >dist/external-helpers.min.js - -rm -rf templates.json +node $UGLIFY_CMD dist/browser.js \ + --compress warnings=false \ + --mangle \ + >>dist/browser.min.js diff --git a/packages/babel-core/scripts/cache-templates.js b/packages/babel-core/scripts/cache-templates.js deleted file mode 100755 index fa9d46449b..0000000000 --- a/packages/babel-core/scripts/cache-templates.js +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -var fs = require("fs"); -var util = require("../lib/util"); -fs.writeFileSync(__dirname + "/../templates.json", JSON.stringify(util.templates)); diff --git a/packages/babel-core/scripts/postpublish.js b/packages/babel-core/scripts/postpublish.js index 726ad665e3..4e817f4529 100755 --- a/packages/babel-core/scripts/postpublish.js +++ b/packages/babel-core/scripts/postpublish.js @@ -4,5 +4,3 @@ function rmRelative(loc) { rmRelative("browser.js"); rmRelative("browser.min.js"); -rmRelative("external-helpers.js"); -rmRelative("external-helpers.min.js"); diff --git a/packages/babel-core/scripts/prepublish.js b/packages/babel-core/scripts/prepublish.js index 95df529a6f..1b04267e9d 100755 --- a/packages/babel-core/scripts/prepublish.js +++ b/packages/babel-core/scripts/prepublish.js @@ -4,6 +4,3 @@ function relative(loc) { cp(relative("dist/browser.js"), relative("browser.js")); cp(relative("dist/browser.min.js"), relative("browser.min.js")); -cp(relative("dist/external-helpers.js"), relative("external-helpers.js")); -cp(relative("dist/external-helpers.min.js"), relative("external-helpers.min.js")); -require("./cache-templates"); diff --git a/packages/babel-core/src/api/node.js b/packages/babel-core/src/api/node.js index af2713fef8..dcb666ecc2 100644 --- a/packages/babel-core/src/api/node.js +++ b/packages/babel-core/src/api/node.js @@ -1,29 +1,36 @@ /* @flow */ import isFunction from "lodash/lang/isFunction"; -import transform from "../transformation"; -import * as babylon from "babylon"; -import * as util from "../util"; import fs from "fs"; -export { util, transform }; -export { pipeline, lint } from "../transformation"; -export { canCompile } from "../util"; export { default as File } from "../transformation/file"; export { default as options } from "../transformation/file/options/config"; -export { default as Plugin } from "../transformation/plugin"; -export { default as Pipeline } from "../transformation/pipeline"; export { default as buildExternalHelpers } from "../tools/build-external-helpers"; export { default as template } from "babel-template"; export { version } from "../../package"; +// + +import * as util from "../util"; +export { util }; + import * as messages from "babel-messages"; export { messages }; import * as t from "babel-types"; export { t as types }; +// + +import Pipeline from "../transformation/pipeline"; +export { Pipeline }; + +let pipeline = new Pipeline; +export let transform = pipeline.transform.bind(pipeline); +export let transformFromAst = pipeline.transformFromAst.bind(pipeline); + +// export function transformFile(filename: string, opts?: Object, callback: Function) { if (isFunction(opts)) { diff --git a/packages/babel-core/src/api/register/cache.js b/packages/babel-core/src/api/register/cache.js index b128ea4e47..d02b8694e1 100644 --- a/packages/babel-core/src/api/register/cache.js +++ b/packages/babel-core/src/api/register/cache.js @@ -1,3 +1,5 @@ +/* @flow */ + import path from "path"; import fs from "fs"; import homeOrTmp from "home-or-tmp"; diff --git a/packages/babel-core/src/api/register/node.js b/packages/babel-core/src/api/register/node.js index bd4e7a79b5..8f2878ef82 100644 --- a/packages/babel-core/src/api/register/node.js +++ b/packages/babel-core/src/api/register/node.js @@ -1,5 +1,6 @@ /* @flow */ +import deepClone from "lodash/lang/cloneDeep"; import sourceMapSupport from "source-map-support"; import * as registerCache from "./cache"; import OptionManager from "../../transformation/file/options/option-manager"; @@ -10,10 +11,6 @@ import * as util from "../../util"; import fs from "fs"; import path from "path"; -/** - * Install sourcemaps into node. - */ - sourceMapSupport.install({ handleUncaughtExceptions: false, retrieveSourceMap(source) { @@ -29,17 +26,9 @@ sourceMapSupport.install({ } }); -/** - * Load and setup cache. - */ - registerCache.load(); let cache = registerCache.get(); -/** - * Store options. - */ - let transformOpts = {}; let ignore; @@ -50,33 +39,21 @@ let maps = {}; let cwd = process.cwd(); -/** - * Get path from `filename` relative to the current working directory. - */ - function getRelativePath(filename){ return path.relative(cwd, filename); } -/** - * Get last modified time for a `filename`. - */ - function mtime(filename) { return +fs.statSync(filename).mtime; } -/** - * Compile a `filename` with optional `opts`. - */ - function compile(filename, opts = {}) { let result; opts.filename = filename; let optsManager = new OptionManager; - optsManager.mergeOptions(transformOpts); + optsManager.mergeOptions(deepClone(transformOpts)); opts = optsManager.init(opts); let cacheKey = `${JSON.stringify(opts)}:${babel.version}`; @@ -108,10 +85,6 @@ function compile(filename, opts = {}) { return result.code; } -/** - * Test if a `filename` should be ignored by Babel. - */ - function shouldIgnore(filename) { if (!ignore && !only) { return getRelativePath(filename).split(path.sep).indexOf("node_modules") >= 0; @@ -120,58 +93,13 @@ function shouldIgnore(filename) { } } -/** - * Monkey patch istanbul if it is running so that it works properly. - */ - -let istanbulMonkey = {}; - -if (process.env.running_under_istanbul) { - // we need to monkey patch fs.readFileSync so we can hook into - // what istanbul gets, it's extremely dirty but it's the only way - let _readFileSync = fs.readFileSync; - - fs.readFileSync = function (filename) { - if (istanbulMonkey[filename]) { - delete istanbulMonkey[filename]; - let code = compile(filename, { - auxiliaryCommentBefore: "istanbul ignore next" - }); - istanbulMonkey[filename] = true; - return code; - } else { - return _readFileSync.apply(this, arguments); - } - }; -} - -/** - * Replacement for the loader for istanbul. - */ - -function istanbulLoader(m, filename, old) { - istanbulMonkey[filename] = true; - old(m, filename); -} - -/** - * Default loader. - */ - -function normalLoader(m, filename) { +function loader(m, filename) { m._compile(compile(filename), filename); } -/** - * Register a loader for an extension. - */ - function registerExtension(ext) { let old = oldHandlers[ext] || oldHandlers[".js"] || require.extensions[".js"]; - let loader = normalLoader; - if (process.env.running_under_istanbul) loader = istanbulLoader; - require.extensions[ext] = function (m, filename) { if (shouldIgnore(filename)) { old(m, filename); @@ -181,10 +109,6 @@ function registerExtension(ext) { }; } -/** - * Register loader for given extensions. - */ - function hookExtensions(_exts) { each(oldHandlers, function (old, ext) { if (old === undefined) { @@ -202,16 +126,8 @@ function hookExtensions(_exts) { }); } -/** - * Register loader for default extensions. - */ - hookExtensions(util.canCompile.EXTENSIONS); -/** - * Update options at runtime. - */ - export default function (opts?: Object = {}) { if (opts.only != null) only = util.arrayify(opts.only, util.regexify); if (opts.ignore != null) ignore = util.arrayify(opts.ignore, util.regexify); diff --git a/packages/babel-core/src/helpers/resolve.js b/packages/babel-core/src/helpers/resolve.js new file mode 100644 index 0000000000..369fc718d4 --- /dev/null +++ b/packages/babel-core/src/helpers/resolve.js @@ -0,0 +1,24 @@ +/* @flow */ + +import Module from "module"; + +let relativeModules = {}; + +export default function (loc: string, relative: string = process.cwd()): ?string { + // we're in the browser, probably + if (typeof Module === "object") return null; + + let relativeMod = relativeModules[relative]; + + if (!relativeMod) { + relativeMod = new Module; + relativeMod.paths = Module._nodeModulePaths(relative); + relativeModules[relative] = relativeMod; + } + + try { + return Module._resolveFilename(loc, relativeMod); + } catch (err) { + return null; + } +} diff --git a/packages/babel-core/src/store.js b/packages/babel-core/src/store.js index 6c1ae4f953..5783fc82f7 100644 --- a/packages/babel-core/src/store.js +++ b/packages/babel-core/src/store.js @@ -16,9 +16,10 @@ export default class Store extends Map { if (this.has(key)) { return super.get(key); } else { - let dynamic = this.dynamicData[key]; - if (dynamic) { - return this.set(key, dynamic()); + if (Object.prototype.hasOwnProperty.call(this.dynamicData, key)) { + let val = this.dynamicData[key](); + this.set(key, val); + return val; } } } diff --git a/packages/babel-core/src/tools/build-external-helpers.js b/packages/babel-core/src/tools/build-external-helpers.js index 03536fbc14..bf70bb2da2 100644 --- a/packages/babel-core/src/tools/build-external-helpers.js +++ b/packages/babel-core/src/tools/build-external-helpers.js @@ -1,16 +1,30 @@ /* @flow */ +import * as helpers from "babel-helpers"; import generator from "babel-generator"; import * as messages from "babel-messages"; -import * as util from "../util"; -import File from "../transformation/file"; +import template from "babel-template"; import each from "lodash/collection/each"; import * as t from "babel-types"; +let buildUmdWrapper = template(` + (function (root, factory) { + if (typeof define === "function" && define.amd) { + define(AMD_ARGUMENTS, factory); + } else if (typeof exports === "object") { + factory(COMMON_ARGUMENTS); + } else { + factory(BROWSER_ARGUMENTS); + } + })(UMD_ROOT, function (FACTORY_PARAMETERS) { + FACTORY_BODY + }); +`); + function buildGlobal(namespace, builder) { let body = []; let container = t.functionExpression(null, [t.identifier("global")], t.blockStatement(body)); - let tree = t.program([t.expressionStatement(t.callExpression(container, [util.template("helper-self-global")]))]); + let tree = t.program([t.expressionStatement(t.callExpression(container, [helpers.get("selfGlobal")]))]); body.push(t.variableDeclaration("var", [ t.variableDeclarator( @@ -32,33 +46,38 @@ function buildUmd(namespace, builder) { builder(body); - let container = util.template("umd-commonjs-strict", { - FACTORY_PARAMETERS: t.identifier("global"), - BROWSER_ARGUMENTS: t.assignmentExpression("=", t.memberExpression(t.identifier("root"), namespace), t.objectExpression({})), - COMMON_ARGUMENTS: t.identifier("exports"), - AMD_ARGUMENTS: t.arrayExpression([t.stringLiteral("exports")]), - FACTORY_BODY: body, - UMD_ROOT: t.identifier("this") - }); - return t.program([container]); + return t.program([ + buildUmdWrapper({ + FACTORY_PARAMETERS: t.identifier("global"), + BROWSER_ARGUMENTS: t.assignmentExpression( + "=", + t.memberExpression(t.identifier("root"), namespace), + t.objectExpression([]) + ), + COMMON_ARGUMENTS: t.identifier("exports"), + AMD_ARGUMENTS: t.arrayExpression([t.stringLiteral("exports")]), + FACTORY_BODY: body, + UMD_ROOT: t.identifier("this") + }) + ]); } function buildVar(namespace, builder) { let body = []; body.push(t.variableDeclaration("var", [ - t.variableDeclarator(namespace, t.objectExpression({})) + t.variableDeclarator(namespace, t.objectExpression([])) ])); builder(body); return t.program(body); } function buildHelpers(body, namespace, whitelist) { - each(File.helpers, function (name) { + each(helpers.list, function (name) { if (whitelist && whitelist.indexOf(name) === -1) return; let key = t.identifier(t.toIdentifier(name)); body.push(t.expressionStatement( - t.assignmentExpression("=", t.memberExpression(namespace, key), util.template("helper-" + name)) + t.assignmentExpression("=", t.memberExpression(namespace, key), helpers.get(name)) )); }); } diff --git a/packages/babel-core/src/transformation/file/index.js b/packages/babel-core/src/transformation/file/index.js index 73f3b9a214..02034369ea 100644 --- a/packages/babel-core/src/transformation/file/index.js +++ b/packages/babel-core/src/transformation/file/index.js @@ -1,26 +1,37 @@ +/* @flow */ +/* global BabelParserOptions */ +/* global BabelFileMetadata */ +/* global BabelFileResult */ + +import getHelper from "babel-helpers"; +import * as metadataVisitor from "./metadata"; import convertSourceMap from "convert-source-map"; -import moduleFormatters from "../modules"; import OptionManager from "./options/option-manager"; -import PluginManager from "./plugin-manager"; +import type Pipeline from "../pipeline"; +import type Plugin from "../plugin"; +import PluginPass from "../plugin-pass"; import shebangRegex from "shebang-regex"; -import { NodePath, Hub } from "babel-traverse"; -import isFunction from "lodash/lang/isFunction"; +import { NodePath, Hub, Scope } from "babel-traverse"; import sourceMap from "source-map"; import generate from "babel-generator"; import codeFrame from "babel-code-frame"; -import shuffle from "lodash/collection/shuffle"; import defaults from "lodash/object/defaults"; -import includes from "lodash/collection/includes"; import traverse from "babel-traverse"; -import resolve from "try-resolve"; import Logger from "./logger"; import Store from "../../store"; -import Plugin from "../plugin"; -import parse from "../../helpers/parse"; +import { parse } from "babylon"; import * as util from "../../util"; import path from "path"; import * as t from "babel-types"; +import blockHoistPlugin from "../internal-plugins/block-hoist"; +import shadowFunctionsPlugin from "../internal-plugins/shadow-functions"; + +const INTERNAL_PLUGINS = [ + [blockHoistPlugin], + [shadowFunctionsPlugin] +]; + let errorVisitor = { enter(path, state) { let loc = path.node.loc; @@ -32,80 +43,88 @@ let errorVisitor = { }; export default class File extends Store { - constructor(opts = {}, pipeline) { + constructor(opts: Object = {}, pipeline: Pipeline) { + super(); + this.pipeline = pipeline; this.log = new Logger(this, opts.filename || "unknown"); this.opts = this.initOptions(opts); - this.buildTransformers(); + this.parserOpts = { + highlightCode: this.opts.highlightCode, + nonStandard: this.opts.nonStandard, + sourceType: this.opts.sourceType, + filename: this.opts.filename, + plugins: [] + }; + + this.pluginVisitors = []; + this.pluginPasses = []; + this.pluginStack = []; + this.buildPlugins(); + + this.metadata = { + usedHelpers: [], + marked: [], + modules: { + imports: [], + exports: { + exported: [], + specifiers: [] + } + } + }; + + this.dynamicImportTypes = {}; + this.dynamicImportIds = {}; + this.dynamicImports = []; + this.declarations = {}; + this.usedHelpers = {}; + + this.path = null; + this.ast = {}; + + this.code = ""; + this.shebang = ""; + + this.hub = new Hub(this); } - transformerDependencies = {}; - dynamicImportTypes = {}; - dynamicImportIds = {}; - dynamicImports = []; - declarations = {}; - usedHelpers = {}; - dynamicData = {}; - data = {}; - ast = {}; + static helpers: Array; - metadata = { - marked: [], + pluginVisitors: Array; + pluginPasses: Array; + pluginStack: Array; + pipeline: Pipeline; + parserOpts: BabelParserOptions; + log: Logger; + opts: Object; + dynamicImportTypes: Object; + dynamicImportIds: Object; + dynamicImports: Array; + declarations: Object; + usedHelpers: Object; + path: NodePath; + ast: Object; + scope: Scope; + metadata: BabelFileMetadata; + hub: Hub; + code: string; + shebang: string; - modules: { - imports: [], - exports: { - exported: [], - specifiers: [] + getMetadata() { + let has = false; + for (let node of (this.ast.program.body: Array)) { + if (t.isModuleDeclaration(node)) { + has = true; + break; } } - }; - - hub = new Hub(this); - - static helpers = [ - "inherits", - "defaults", - "create-class", - "create-decorated-class", - "create-decorated-object", - "define-decorated-property-descriptor", - "tagged-template-literal", - "tagged-template-literal-loose", - "to-array", - "to-consumable-array", - "sliced-to-array", - "sliced-to-array-loose", - "object-without-properties", - "has-own", - "slice", - "bind", - "define-property", - "async-to-generator", - "interop-export-wildcard", - "interop-require-wildcard", - "interop-require-default", - "typeof", - "extends", - "get", - "set", - "new-arrow-check", - "class-call-check", - "object-destructuring-empty", - "temporal-undefined", - "temporal-assert-defined", - "self-global", - "default-props", - "instanceof", - - // legacy - "interop-require" - ]; - - static soloHelpers = []; - + if (has) { + this.path.traverse(metadataVisitor, this); + } + } initOptions(opts) { opts = new OptionManager(this.log, this.pipeline).init(opts); @@ -143,130 +162,67 @@ export default class File extends Store { sourceMapTarget: basenameRelative }); - // - - if (opts.externalHelpers) { - this.set("helpersNamespace", t.identifier("babelHelpers")); - } - return opts; } - isLoose(key: string) { - return includes(this.opts.loose, key); - } - - buildTransformers() { - let file = this; - - let transformers = this.transformers = {}; - - let secondaryStack = []; - let stack = []; - - // build internal transformers - for (let key in this.pipeline.transformers) { - let transformer = this.pipeline.transformers[key]; - let pass = transformers[key] = transformer.buildPass(file); - - if (pass.canTransform()) { - stack.push(pass); - - if (transformer.metadata.secondPass) { - secondaryStack.push(pass); - } - - if (transformer.manipulateOptions) { - transformer.manipulateOptions(file.opts, file); - } - } - } + buildPlugins() { + let plugins: Array<[PluginPass, Object]> = this.opts.plugins.concat(INTERNAL_PLUGINS); // init plugins! - let beforePlugins = []; - let afterPlugins = []; - let pluginManager = new PluginManager({ - file: this, - transformers: this.transformers, - before: beforePlugins, - after: afterPlugins - }); - for (let i = 0; i < file.opts.plugins.length; i++) { - pluginManager.add(file.opts.plugins[i]); - } - stack = beforePlugins.concat(stack, afterPlugins); + for (let ref of plugins) { + let [plugin, pluginOpts] = ref; // todo: fix - can't embed in loop head because of flow bug - // build transformer stack - this.uncollapsedTransformerStack = stack = stack.concat(secondaryStack); + this.pluginStack.push(plugin); + this.pluginVisitors.push(plugin.visitor); + this.pluginPasses.push(new PluginPass(this, plugin, pluginOpts)); - // build dependency graph - for (let pass of (stack: Array)) { - for (let dep of (pass.plugin.dependencies: Array)) { - this.transformerDependencies[dep] = pass.key; + if (plugin.manipulateOptions) { + plugin.manipulateOptions(this.opts, this.parserOpts, this); } } - - // collapse stack categories - this.transformerStack = this.collapseStack(stack); } - collapseStack(_stack) { - let stack = []; - let ignore = []; - - for (let pass of (_stack: Array)) { - // been merged - if (ignore.indexOf(pass) >= 0) continue; - - let group = pass.plugin.metadata.group; - - // can't merge - if (!pass.canTransform() || !group) { - stack.push(pass); - continue; - } - - let mergeStack = []; - for (let pass of (_stack: Array)) { - if (pass.plugin.metadata.group === group) { - mergeStack.push(pass); - ignore.push(pass); - } else { - //break; - } - } - shuffle; - //mergeStack = shuffle(mergeStack); - - let visitors = []; - for (let pass of (mergeStack: Array)) { - visitors.push(pass.plugin.visitor); - } - let visitor = traverse.visitors.merge(visitors); - let mergePlugin = new Plugin(group, { visitor }); - stack.push(mergePlugin.buildPass(this)); + getModuleName(): ?string { + let opts = this.opts; + if (!opts.moduleIds) { + return null; } - return stack; - } + // moduleId is n/a if a `getModuleId()` is provided + if (opts.moduleId != null && !opts.getModuleId) { + return opts.moduleId; + } - set(key: string, val): any { - return this.data[key] = val; - } + let filenameRelative = opts.filenameRelative; + let moduleName = ""; - setDynamic(key: string, fn: Function) { - this.dynamicData[key] = fn; - } + if (opts.moduleRoot != null) { + moduleName = opts.moduleRoot + "/"; + } - get(key: string): any { - let data = this.data[key]; - if (data) { - return data; + if (!opts.filenameRelative) { + return moduleName + opts.filename.replace(/^\//, ""); + } + + if (opts.sourceRoot != null) { + // remove sourceRoot from filename + let sourceRootRegEx = new RegExp("^" + opts.sourceRoot + "\/?"); + filenameRelative = filenameRelative.replace(sourceRootRegEx, ""); + } + + // remove extension + filenameRelative = filenameRelative.replace(/\.(\w*?)$/, ""); + + moduleName += filenameRelative; + + // normalize path separators + moduleName = moduleName.replace(/\\/g, "/"); + + if (opts.getModuleId) { + // If return is falsy, assume they want us to use our generated default name + return opts.getModuleId(moduleName) || moduleName; } else { - let dynamic = this.dynamicData[key]; - if (dynamic) { - return this.set(key, dynamic()); - } + return moduleName; } } @@ -276,81 +232,52 @@ export default class File extends Store { return source; } - addImport(source: string, name?: string, type?: string): Object { - name = name || source; - let id = this.dynamicImportIds[name]; + addImport(source: string, imported: string, name?: string = imported): Object { + let alias = `${source}:${imported}`; + let id = this.dynamicImportIds[alias]; if (!id) { source = this.resolveModuleSource(source); - id = this.dynamicImportIds[name] = this.scope.generateUidIdentifier(name); + id = this.dynamicImportIds[alias] = this.scope.generateUidIdentifier(name); + + let specifiers = []; + + if (imported === "*") { + specifiers.push(t.importNamespaceSpecifier(id)); + } else if (imported === "default") { + specifiers.push(t.importDefaultSpecifier(id)); + } else { + specifiers.push(t.importSpecifier(id, t.identifier(imported))); + } - let specifiers = [t.importDefaultSpecifier(id)]; let declar = t.importDeclaration(specifiers, t.stringLiteral(source)); declar._blockHoist = 3; - if (type) { - let modules = this.dynamicImportTypes[type] = this.dynamicImportTypes[type] || []; - modules.push(declar); - } - - if (this.transformers["es6.modules"].canTransform()) { - this.moduleFormatter.importSpecifier(specifiers[0], declar, this.dynamicImports, this.scope); - this.moduleFormatter.hasLocalImports = true; - } else { - this.dynamicImports.push(declar); - } + this.path.unshiftContainer("body", declar); } return id; } - attachAuxiliaryComment(node: Object): Object { - let beforeComment = this.opts.auxiliaryCommentBefore; - if (beforeComment) { - node.leadingComments = node.leadingComments || []; - node.leadingComments.push({ - type: "CommentLine", - value: " " + beforeComment - }); - } - - let afterComment = this.opts.auxiliaryCommentAfter; - if (afterComment) { - node.trailingComments = node.trailingComments || []; - node.trailingComments.push({ - type: "CommentLine", - value: " " + afterComment - }); - } - - return node; - } - addHelper(name: string): Object { - let isSolo = includes(File.soloHelpers, name); - - if (!isSolo && !includes(File.helpers, name)) { - throw new ReferenceError(`Unknown helper ${name}`); - } - let declar = this.declarations[name]; if (declar) return declar; - this.usedHelpers[name] = true; - - if (!isSolo) { - let generator = this.get("helperGenerator"); - let runtime = this.get("helpersNamespace"); - if (generator) { - return generator(name); - } else if (runtime) { - let id = t.identifier(t.toIdentifier(name)); - return t.memberExpression(runtime, id); - } + if (!this.usedHelpers[name]) { + this.metadata.usedHelpers.push(name); + this.usedHelpers[name] = true; } - let ref = util.template("helper-" + name); + let generator = this.get("helperGenerator"); + let runtime = this.get("helpersNamespace"); + if (generator) { + return generator(name); + } else if (runtime) { + let id = t.identifier(t.toIdentifier(name)); + return t.memberExpression(runtime, id); + } + let ref = getHelper(name); let uid = this.declarations[name] = this.scope.generateUidIdentifier(name); if (t.isFunctionExpression(ref) && !ref.id) { @@ -358,7 +285,6 @@ export default class File extends Store { ref._generated = true; ref.id = uid; ref.type = "FunctionDeclaration"; - this.attachAuxiliaryComment(ref); this.path.unshiftContainer("body", ref); } else { ref._compact = true; @@ -372,7 +298,11 @@ export default class File extends Store { return uid; } - addTemplateObject(helperName: string, strings: Array, raw: Array): Object { + addTemplateObject( + helperName: string, + strings: Array, + raw: Object, + ): Object { // Generate a unique name based on the string literals so we dedupe // identical strings used in the program. let stringIds = raw.elements.map(function(string) { @@ -396,7 +326,7 @@ export default class File extends Store { return uid; } - buildCodeFrameError(node, msg, Error = SyntaxError) { + buildCodeFrameError(node: Object, msg: string, Error: typeof Error = SyntaxError): Error { let loc = node && (node.loc || node._loc); let err = new Error(msg); @@ -404,7 +334,7 @@ export default class File extends Store { if (loc) { err.loc = loc.start; } else { - traverse(node, errorVisitor, err); + traverse(node, errorVisitor, this.scope, err); err.message += " (This is an error on an internal node. Probably an internal error"; @@ -436,49 +366,9 @@ export default class File extends Store { } } - getModuleFormatter(type: string) { - if (isFunction(type) || !moduleFormatters[type]) { - this.log.deprecate("Custom module formatters are deprecated and will be removed in the next major. Please use Babel plugins instead."); - } - - let ModuleFormatter = isFunction(type) ? type : moduleFormatters[type]; - - if (!ModuleFormatter) { - let loc = resolve.relative(type); - if (loc) ModuleFormatter = require(loc); - } - - if (!ModuleFormatter) { - throw new ReferenceError(`Unknown module formatter type ${JSON.stringify(type)}`); - } - - return new ModuleFormatter(this); - } - parse(code: string) { - let opts = this.opts; - - // - - let parseOpts = { - highlightCode: opts.highlightCode, - nonStandard: opts.nonStandard, - sourceType: opts.sourceType, - filename: opts.filename, - plugins: {} - }; - - let features = parseOpts.features = {}; - for (let key in this.transformers) { - let transformer = this.transformers[key]; - features[key] = transformer.canRun(); - } - - parseOpts.looseModules = this.isLoose("es6.modules"); - parseOpts.strictMode = features.strict; - this.log.debug("Parse start"); - let ast = parse(code, parseOpts); + let ast = parse(code, this.parserOpts); this.log.debug("Parse stop"); return ast; } @@ -493,32 +383,25 @@ export default class File extends Store { }).setContext(); this.scope = this.path.scope; this.ast = ast; + this.getMetadata(); } addAst(ast) { this.log.debug("Start set AST"); this._addAst(ast); this.log.debug("End set AST"); - - this.log.debug("Start module formatter init"); - let modFormatter = this.moduleFormatter = this.getModuleFormatter(this.opts.modules); - if (modFormatter.init && this.transformers["es6.modules"].canTransform()) { - modFormatter.init(); - } - this.log.debug("End module formatter init"); } - transform() { + transform(): BabelFileResult { this.call("pre"); - for (let pass of (this.transformerStack: Array)) { - pass.transform(); - } + this.log.debug(`Start transform traverse`); + traverse(this.ast, traverse.visitors.merge(this.pluginVisitors, this.pluginPasses), this.scope); + this.log.debug(`End transform traverse`); this.call("post"); - return this.generate(); } - wrap(code, callback) { + wrap(code: string, callback: Function): BabelFileResult { code = code + ""; try { @@ -578,14 +461,15 @@ export default class File extends Store { return util.shouldIgnore(opts.filename, opts.ignore, opts.only); } - call(key: string) { - for (let pass of (this.uncollapsedTransformerStack: Array)) { - let fn = pass.plugin[key]; - if (fn) fn.call(pass, this); + call(key: "pre" | "post") { + for (let pass of (this.pluginPasses: Array)) { + let plugin = pass.plugin; + let fn = plugin[key]; + if (fn) fn.call(pass, this, pass); } } - parseInputSourceMap(code: string) { + parseInputSourceMap(code: string): string { let opts = this.opts; if (opts.inputSourceMap !== false) { @@ -607,13 +491,14 @@ export default class File extends Store { } } - makeResult({ code, map = null, ast, ignored }) { + makeResult({ code, map, ast, ignored }: BabelFileResult): BabelFileResult { let result = { metadata: null, + options: this.opts, ignored: !!ignored, code: null, ast: null, - map: map + map: map || null }; if (this.opts.code) { @@ -626,17 +511,16 @@ export default class File extends Store { if (this.opts.metadata) { result.metadata = this.metadata; - result.metadata.usedHelpers = Object.keys(this.usedHelpers); } return result; } - generate() { + generate(): BabelFileResult { let opts = this.opts; let ast = this.ast; - let result = { ast }; + let result: BabelFileResult = { ast }; if (!opts.code) return this.makeResult(result); this.log.debug("Generation start"); @@ -649,7 +533,7 @@ export default class File extends Store { if (this.shebang) { // add back shebang - result.code = `${this.shebang}\n${result.code}`; + result.code = `${this.shebang}${result.code}`; } if (result.map) { @@ -667,3 +551,5 @@ export default class File extends Store { return this.makeResult(result); } } + +export { File }; diff --git a/packages/babel-core/src/transformation/modules/lib/metadata.js b/packages/babel-core/src/transformation/file/metadata.js similarity index 64% rename from packages/babel-core/src/transformation/modules/lib/metadata.js rename to packages/babel-core/src/transformation/file/metadata.js index d733e80ee9..35744f971e 100644 --- a/packages/babel-core/src/transformation/modules/lib/metadata.js +++ b/packages/babel-core/src/transformation/file/metadata.js @@ -1,33 +1,29 @@ /* @flow */ -import extend from "lodash/object/extend"; import * as t from "babel-types"; export let ModuleDeclaration = { - enter(node, parent, scope, formatter) { + enter(path, file) { + let { node } = path; if (node.source) { - node.source.value = formatter.file.resolveModuleSource(node.source.value); - formatter.addScope(this); + node.source.value = file.resolveModuleSource(node.source.value); } } }; export let ImportDeclaration = { - exit(node, parent, scope, formatter) { - formatter.hasLocalImports = true; + exit(path, file) { + let { node } = path; let specifiers = []; let imported = []; - formatter.metadata.imports.push({ + file.metadata.modules.imports.push({ source: node.source.value, imported, specifiers }); - for (let specifier of (this.get("specifiers"): Array)) { - let ids = specifier.getBindingIdentifiers(); - extend(formatter.localImports, ids); - + for (let specifier of (path.get("specifiers"): Array)) { let local = specifier.node.local.name; if (specifier.isImportDefaultSpecifier()) { @@ -60,33 +56,30 @@ export let ImportDeclaration = { } }; -export function ExportDeclaration(node, parent, scope, formatter) { - formatter.hasLocalExports = true; +export function ExportDeclaration(path, file) { + let { node } = path; let source = node.source ? node.source.value : null; - let exports = formatter.metadata.exports; + let exports = file.metadata.modules.exports; // export function foo() {} // export let foo = "bar"; - let declar = this.get("declaration"); + let declar = path.get("declaration"); if (declar.isStatement()) { let bindings = declar.getBindingIdentifiers(); for (let name in bindings) { - let binding = bindings[name]; - formatter._addExport(name, binding); - exports.exported.push(name); exports.specifiers.push({ kind: "local", local: name, - exported: this.isExportDefaultDeclaration() ? "default" : name + exported: path.isExportDefaultDeclaration() ? "default" : name }); } } - if (this.isExportNamedDeclaration() && node.specifiers) { - for (let specifier of (node.specifiers: Array)) { + if (path.isExportNamedDeclaration() && node.specifiers) { + for (let specifier of (node.specifiers: Array)) { let exported = specifier.exported.name; exports.exported.push(exported); @@ -112,8 +105,6 @@ export function ExportDeclaration(node, parent, scope, formatter) { let local = specifier.local; if (!local) continue; - formatter._addExport(local.name, specifier.exported); - // export { foo } from "bar"; // export { foo as bar } from "bar"; if (source) { @@ -138,23 +129,14 @@ export function ExportDeclaration(node, parent, scope, formatter) { } // export * from "bar"; - if (this.isExportAllDeclaration()) { + if (path.isExportAllDeclaration()) { exports.specifiers.push({ kind: "external-all", source }); } - - if (!t.isExportDefaultDeclaration(node) && !declar.isTypeAlias()) { - let onlyDefault = node.specifiers && node.specifiers.length === 1 && t.isSpecifierDefault(node.specifiers[0]); - if (!onlyDefault) { - formatter.hasNonDefaultExports = true; - } - } } -export function Scope(node, parent, scope, formatter) { - if (!formatter.isLoose()) { - this.skip(); - } +export function Scope(path) { + path.skip(); } diff --git a/packages/babel-core/src/transformation/file/options/config.json b/packages/babel-core/src/transformation/file/options/config.json index d6d6ec5b68..3810e0d1ee 100644 --- a/packages/babel-core/src/transformation/file/options/config.json +++ b/packages/babel-core/src/transformation/file/options/config.json @@ -51,8 +51,8 @@ "plugins": { "type": "list", - "description": "", - "default": [] + "default": [], + "description": "" }, "ignore": { @@ -137,5 +137,35 @@ "sourceType": { "description": "", "default": "module" + }, + + "auxiliaryComment": { + "description": "", + "type": "string" + }, + + "resolveModuleSource": { + "hidden": true + }, + + "getModuleId": { + "hidden": true + }, + + "moduleRoot": { + "type": "filename", + "description": "optional prefix for the AMD module formatter that will be prepend to the filename on module definitions" + }, + + "moduleIds": { + "type": "boolean", + "default": false, + "shorthand": "M", + "description": "insert an explicit id for modules" + }, + + "moduleId": { + "description": "specify a custom name for module ids", + "type": "string" } } diff --git a/packages/babel-core/src/transformation/file/options/index.js b/packages/babel-core/src/transformation/file/options/index.js index cbd3051618..521f8193e9 100644 --- a/packages/babel-core/src/transformation/file/options/index.js +++ b/packages/babel-core/src/transformation/file/options/index.js @@ -11,6 +11,7 @@ export function normaliseOptions(options: Object = {}): Object { if (val == null) continue; let opt = config[key]; + if (opt && opt.alias) opt = config[opt.alias]; if (!opt) continue; let parser = parsers[opt.type]; diff --git a/packages/babel-core/src/transformation/file/options/option-manager.js b/packages/babel-core/src/transformation/file/options/option-manager.js index a0612da778..cdb577ac5d 100644 --- a/packages/babel-core/src/transformation/file/options/option-manager.js +++ b/packages/babel-core/src/transformation/file/options/option-manager.js @@ -1,9 +1,9 @@ /* @flow */ +import * as context from "../../../api/node"; import type Logger from "../logger"; import Plugin from "../../plugin"; import * as messages from "babel-messages"; -import * as context from "../../../api/node"; import { normaliseOptions } from "./index"; import resolve from "../../../helpers/resolve"; import json5 from "json5"; @@ -53,7 +53,13 @@ export default class OptionManager { if (cache.container === fn) return cache.plugin; } - let obj = fn(context); + let obj; + + if (typeof fn === "function") { + obj = fn(context); + } else { + obj = fn; + } if (typeof obj === "object") { let plugin = new Plugin(obj); @@ -63,7 +69,7 @@ export default class OptionManager { }); return plugin; } else { - throw new TypeError(messages.get("pluginNotObject", loc, i, typeof obj)); + throw new TypeError(messages.get("pluginNotObject", loc, i, typeof obj) + loc + i); } } @@ -78,6 +84,21 @@ export default class OptionManager { return opts; } + static normalisePlugin(plugin, loc, i) { + if (!(plugin instanceof Plugin)) { + // allow plugin containers to be specified so they don't have to manually require + if (typeof plugin === "function" || typeof plugin === "object") { + plugin = OptionManager.memoisePluginContainer(plugin, loc, i); + } else { + throw new TypeError(messages.get("pluginNotFunction", loc, i, typeof plugin)); + } + } + + plugin.init(loc, i); + + return plugin; + } + static normalisePlugins(loc, dirname, plugins) { return plugins.map(function (val, i) { let plugin, options; @@ -99,17 +120,7 @@ export default class OptionManager { } } - if (!(plugin instanceof Plugin)) { - // allow plugin containers to be specified so they don't have to manually require - if (typeof plugin === "function") { - plugin = OptionManager.memoisePluginContainer(plugin, loc, i); - } else { - throw new TypeError(messages.get("pluginNotFunction", loc, i)); - } - } - - // validate - plugin.validate(loc, i); + plugin = OptionManager.normalisePlugin(plugin, loc, i); return [plugin, options]; }); diff --git a/packages/babel-core/src/transformation/helpers/build-comprehension.js b/packages/babel-core/src/transformation/helpers/build-comprehension.js deleted file mode 100644 index 832b002204..0000000000 --- a/packages/babel-core/src/transformation/helpers/build-comprehension.js +++ /dev/null @@ -1,25 +0,0 @@ -/* @flow */ - -import * as t from "babel-types"; - -export default function build(node: Object, buildBody: Function): ?Object { - let self = node.blocks.shift(); - if (!self) return; - - let child = build(node, buildBody); - if (!child) { - // last item - child = buildBody(); - - // add a filter as this is our final stop - if (node.filter) { - child = t.ifStatement(node.filter, t.blockStatement([child])); - } - } - - return t.forOfStatement( - t.variableDeclaration("let", [t.variableDeclarator(self.left)]), - self.right, - t.blockStatement([child]) - ); -} diff --git a/packages/babel-core/src/transformation/helpers/build-react-transformer.js b/packages/babel-core/src/transformation/helpers/build-react-transformer.js deleted file mode 100644 index 6a2c904250..0000000000 --- a/packages/babel-core/src/transformation/helpers/build-react-transformer.js +++ /dev/null @@ -1,159 +0,0 @@ -// Based upon the excellent jsx-transpiler by Inglet Stepanyan (RReverser) -// https://github.com/RReverser/jsx-transpiler - -// jsx - -import isString from "lodash/lang/isString"; -import * as messages from "babel-messages"; -import esutils from "esutils"; -import { react } from "babel-types"; -import * as t from "babel-types"; - -export default function (opts) { - let visitor = {}; - - visitor.JSXIdentifier = function (node) { - if (node.name === "this" && this.isReferenced()) { - return t.thisExpression(); - } else if (esutils.keyword.isIdentifierNameES6(node.name)) { - node.type = "Identifier"; - } else { - return t.stringLiteral(node.name); - } - }; - - visitor.JSXNamespacedName = function () { - throw this.errorWithNode(messages.get("JSXNamespacedTags")); - }; - - visitor.JSXMemberExpression = { - exit(node) { - node.computed = t.isLiteral(node.property); - node.type = "MemberExpression"; - } - }; - - visitor.JSXExpressionContainer = function (node) { - return node.expression; - }; - - visitor.JSXAttribute = { - enter(node) { - let value = node.value; - if (t.isLiteral(value) && isString(value.value)) { - value.value = value.value.replace(/\n\s+/g, " "); - } - }, - - exit(node) { - let value = node.value || t.booleanLiteral(true); - return t.inherits(t.property("init", node.name, value), node); - } - }; - - visitor.JSXOpeningElement = { - exit(node, parent, scope, file) { - parent.children = react.buildChildren(parent); - - let tagExpr = node.name; - let args = []; - - let tagName; - if (t.isIdentifier(tagExpr)) { - tagName = tagExpr.name; - } else if (t.isLiteral(tagExpr)) { - tagName = tagExpr.value; - } - - let state = { - tagExpr: tagExpr, - tagName: tagName, - args: args - }; - - if (opts.pre) { - opts.pre(state, file); - } - - let attribs = node.attributes; - if (attribs.length) { - attribs = buildJSXOpeningElementAttributes(attribs, file); - } else { - attribs = t.nullLiteral(); - } - - args.push(attribs); - - if (opts.post) { - opts.post(state, file); - } - - return state.call || t.callExpression(state.callee, args); - } - }; - - /** - * The logic for this is quite terse. It's because we need to - * support spread elements. We loop over all attributes, - * breaking on spreads, we then push a new object containg - * all prior attributes to an array for later processing. - */ - - let buildJSXOpeningElementAttributes = function (attribs, file) { - let _props = []; - let objs = []; - - let pushProps = function () { - if (!_props.length) return; - - objs.push(t.objectExpression(_props)); - _props = []; - }; - - while (attribs.length) { - let prop = attribs.shift(); - if (t.isJSXSpreadAttribute(prop)) { - pushProps(); - objs.push(prop.argument); - } else { - _props.push(prop); - } - } - - pushProps(); - - if (objs.length === 1) { - // only one object - attribs = objs[0]; - } else { - // looks like we have multiple objects - if (!t.isObjectExpression(objs[0])) { - objs.unshift(t.objectExpression([])); - } - - // spread it - attribs = t.callExpression( - file.addHelper("extends"), - objs - ); - } - - return attribs; - }; - - visitor.JSXElement = { - exit(node) { - let callExpr = node.openingElement; - - callExpr.arguments = callExpr.arguments.concat(node.children); - - if (callExpr.arguments.length >= 3) { - callExpr._prettyCall = true; - } - - return t.inherits(callExpr, node); - } - }; - - return visitor; -} diff --git a/packages/babel-core/src/transformation/helpers/call-delegate.js b/packages/babel-core/src/transformation/helpers/call-delegate.js deleted file mode 100644 index b12c9287c9..0000000000 --- a/packages/babel-core/src/transformation/helpers/call-delegate.js +++ /dev/null @@ -1,36 +0,0 @@ -/* @flow */ - -import type { Scope } from "babel-traverse"; -import * as t from "babel-types"; - -let visitor = { - enter(path, state) { - if (path.isThisExpression() || path.isReferencedIdentifier({ name: "arguments" })) { - state.found = true; - path.stop(); - } - }, - - Function(path) { - path.skip(); - } -}; - -export default function (node: Object, scope: Scope) { - let container = t.functionExpression(null, [], node.body, node.generator, node.async); - - let callee = container; - let args = []; - - let state = { found: false }; - scope.traverse(node, visitor, state); - if (state.found) { - callee = t.memberExpression(container, t.identifier("apply")); - args = [t.thisExpression(), t.identifier("arguments")]; - } - - let call = t.callExpression(callee, args); - if (node.generator) call = t.yieldExpression(call, true); - - return t.returnStatement(call); -} diff --git a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js b/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js deleted file mode 100644 index 2cd9a9aca5..0000000000 --- a/packages/babel-core/src/transformation/helpers/remap-async-to-generator.js +++ /dev/null @@ -1,66 +0,0 @@ -/* @flow */ - -import type { NodePath } from "babel-traverse"; -import * as t from "babel-types"; - -let awaitVisitor = { - Function(path) { - path.skip(); - }, - - AwaitExpression({ node }) { - node.type = "YieldExpression"; - - if (node.all) { - // await* foo; -> yield Promise.all(foo); - node.all = false; - node.argument = t.callExpression(t.memberExpression(t.identifier("Promise"), t.identifier("all")), [node.argument]); - } - } -}; - -let referenceVisitor = { - ReferencedIdentifier({ node, scope }, state) { - let name = state.id.name; - if (node.name === name && scope.bindingIdentifierEquals(name, state.id)) { - return state.ref = state.ref || scope.generateUidIdentifier(name); - } - } -}; - -export default function (path: NodePath, callId: Object) { - let node = path.node; - - node.async = false; - node.generator = true; - - path.traverse(awaitVisitor); - - let call = t.callExpression(callId, [node]); - - let id = node.id; - node.id = null; - - if (t.isFunctionDeclaration(node)) { - let declar = t.variableDeclaration("let", [ - t.variableDeclarator(id, call) - ]); - declar._blockHoist = true; - return declar; - } else { - node.type = "FunctionExpression"; - - if (id) { - let state = { id, ref: null }; - - path.traverse(referenceVisitor, state); - - if (state.ref) { - path.scope.parent.push({ id: state.ref }); - return t.assignmentExpression("=", state.ref, call); - } - } - - return call; - } -} diff --git a/packages/babel-core/src/transformation/index.js b/packages/babel-core/src/transformation/index.js deleted file mode 100644 index daf3499a03..0000000000 --- a/packages/babel-core/src/transformation/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/* @flow */ - -import Pipeline from "./pipeline"; - -let pipeline = new Pipeline; -let transform = pipeline.transform.bind(pipeline); -transform.fromAst = pipeline.transformFromAst.bind(pipeline); -transform.lint = pipeline.lint.bind(pipeline); -transform.pipeline = pipeline; -export default transform; diff --git a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js index 3f13629329..c37525dc37 100644 --- a/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js +++ b/packages/babel-core/src/transformation/internal-plugins/shadow-functions.js @@ -6,12 +6,12 @@ import * as t from "babel-types"; export default new Plugin({ visitor: { ThisExpression(path) { - return remap(path, "this", () => t.thisExpression()); + remap(path, "this", () => t.thisExpression()); }, ReferencedIdentifier(path) { if (path.node.name === "arguments") { - return remap(path, "arguments", () => t.identifier("arguments")); + remap(path, "arguments", () => t.identifier("arguments")); } } } @@ -56,7 +56,7 @@ function remap(path, key, create) { if (fnPath === currentFunction) return; let cached = fnPath.getData(key); - if (cached) return cached; + if (cached) return path.replaceWith(cached); let init = create(); let id = path.scope.generateUidIdentifier(key); @@ -64,5 +64,5 @@ function remap(path, key, create) { fnPath.setData(key, id); fnPath.scope.push({ id, init }); - return id; + return path.replaceWith(id); } diff --git a/packages/babel-core/src/transformation/modules/_default.js b/packages/babel-core/src/transformation/modules/_default.js deleted file mode 100644 index 30b6549702..0000000000 --- a/packages/babel-core/src/transformation/modules/_default.js +++ /dev/null @@ -1,298 +0,0 @@ -/* @flow */ - -import type { File, FileModulesMetadata } from "../file"; -import type { Scope, NodePath } from "babel-traverse"; -import * as metadataVisitor from "./lib/metadata"; -import * as messages from "babel-messages"; -import Remaps from "./lib/remaps"; -import * as util from "../../util"; -import * as t from "babel-types"; - -export default class DefaultFormatter { - constructor(file: File) { - // object containg all module sources with the scope that they're contained in - this.sourceScopes = Object.create(null); - - // ids for use in module ids - this.defaultIds = Object.create(null); - this.ids = Object.create(null); - - // contains reference aliases for live bindings - this.remaps = new Remaps(file, this); - - this.scope = file.scope; - this.file = file; - - this.hasNonDefaultExports = false; - - this.hasLocalExports = false; - this.hasLocalImports = false; - - this.localExports = Object.create(null); - this.localImports = Object.create(null); - - this.metadata = file.metadata.modules; - this.getMetadata(); - } - - sourceScopes: Object; - defaultIds: Object; - ids: Object; - remaps: Remaps; - scope: Scope; - file: File; - hasNonDefaultExports: boolean; - hasLocalExports: boolean; - hasLocalImports: boolean; - localExports: Object; - localImports: Object; - metadata: FileModulesMetadata; - - addScope(path: NodePath) { - let source = path.node.source && path.node.source.value; - if (!source) return; - - let existingScope = this.sourceScopes[source]; - if (existingScope && existingScope !== path.scope) { - throw path.buildCodeFrameError(messages.get("modulesDuplicateDeclarations")); - } - - this.sourceScopes[source] = path.scope; - } - - isModuleType(node: Object, type: string): boolean { - let modules = this.file.dynamicImportTypes[type]; - return modules && modules.indexOf(node) >= 0; - } - - transform() { - this.remapAssignments(); - } - - doDefaultExportInterop(node: Object): Object { - return (t.isExportDefaultDeclaration(node) || t.isSpecifierDefault(node)) && !this.noInteropRequireExport && !this.hasNonDefaultExports; - } - - getMetadata() { - let has = false; - for (let node of (this.file.ast.program.body: Array)) { - if (t.isModuleDeclaration(node)) { - has = true; - break; - } - } - if (has) { - this.file.path.traverse(metadataVisitor, this); - } - } - - remapAssignments() { - if (this.hasLocalExports || this.hasLocalImports) { - this.remaps.run(); - } - } - - remapExportAssignment(node: Object, exported: Array) { - let assign = node; - - for (let prop of exported) { - assign = t.assignmentExpression( - "=", - t.memberExpression(t.identifier("exports"), prop), - assign - ); - } - - return assign; - } - - _addExport(name: string, exported: Array) { - let info = this.localExports[name] = this.localExports[name] || { - binding: this.scope.getBindingIdentifier(name), - exported: [] - }; - info.exported.push(exported); - } - - getExport(node: Object, scope: Scope) { - if (!t.isIdentifier(node)) return; - - let local = this.localExports[node.name]; - if (local && local.binding === scope.getBindingIdentifier(node.name)) { - return local.exported; - } - } - - getModuleName(): string { - let opts = this.file.opts; - - // moduleId is n/a if a `getModuleId()` is provided - if (opts.moduleId != null && !opts.getModuleId) { - return opts.moduleId; - } - - let filenameRelative = opts.filenameRelative; - let moduleName = ""; - - if (opts.moduleRoot != null) { - moduleName = opts.moduleRoot + "/"; - } - - if (!opts.filenameRelative) { - return moduleName + opts.filename.replace(/^\//, ""); - } - - if (opts.sourceRoot != null) { - // remove sourceRoot from filename - let sourceRootRegEx = new RegExp("^" + opts.sourceRoot + "\/?"); - filenameRelative = filenameRelative.replace(sourceRootRegEx, ""); - } - - if (!opts.keepModuleIdExtensions) { - // remove extension - filenameRelative = filenameRelative.replace(/\.(\w*?)$/, ""); - } - - moduleName += filenameRelative; - - // normalize path separators - moduleName = moduleName.replace(/\\/g, "/"); - - if (opts.getModuleId) { - // If return is falsy, assume they want us to use our generated default name - return opts.getModuleId(moduleName) || moduleName; - } else { - return moduleName; - } - } - - _pushStatement(ref: Object, nodes: Array): Object { - if (t.isClass(ref) || t.isFunction(ref)) { - if (ref.id) { - nodes.push(t.toStatement(ref)); - ref = ref.id; - } - } - - return ref; - } - - _hoistExport(declar: Object, assign: Object, priority?: number): Object { - if (t.isFunctionDeclaration(declar)) { - assign._blockHoist = priority || 2; - } - - return assign; - } - - getExternalReference(node: Object, nodes: Array): Object { - let ids = this.ids; - let id = node.source.value; - - if (ids[id]) { - return ids[id]; - } else { - return this.ids[id] = this._getExternalReference(node, nodes); - } - } - - _getExternalReference() { - throw new Error("Should be implemented"); - } - - checkExportIdentifier(node) { - if (t.isIdentifier(node, { name: "__esModule" })) { - throw this.file.buildCodeFrameError(node, messages.get("modulesIllegalExportName", node.name)); - } - } - - exportAllDeclaration(node: Object, nodes: Array) { - let ref = this.getExternalReference(node, nodes); - nodes.push(this.buildExportsWildcard(ref, node)); - } - - exportSpecifier(specifier: Object, node: Object, nodes: Array) { - if (node.source) { - let ref = this.getExternalReference(node, nodes); - - if (specifier.local.name === "default" && !this.noInteropRequireExport) { - // importing a default so we need to normalize it - ref = t.callExpression(this.file.addHelper("interop-require"), [ref]); - } else { - ref = t.memberExpression(ref, specifier.local); - - nodes.push(this.buildExportsFromAssignment(specifier.exported, ref, node)); - return; - } - - // export { foo } from "test"; - nodes.push(this.buildExportsAssignment(specifier.exported, ref, node)); - } else { - // export { foo }; - nodes.push(this.buildExportsAssignment(specifier.exported, specifier.local, node)); - } - } - - buildExportsWildcard(objectIdentifier: Object) { - return t.expressionStatement(t.callExpression(this.file.addHelper("defaults"), [ - t.identifier("exports"), - t.callExpression(this.file.addHelper("interop-export-wildcard"), [ - objectIdentifier, - this.file.addHelper("defaults") - ]) - ])); - } - - buildExportsFromAssignment(id: Object, init: Object) { - this.checkExportIdentifier(id); - return util.template("exports-from-assign", { - INIT: init, - ID: t.stringLiteral(id.name) - }, true); - } - - buildExportsAssignment(id, init) { - this.checkExportIdentifier(id); - return util.template("exports-assign", { - VALUE: init, - KEY: id - }, true); - } - - exportDeclaration(node: Object, nodes: Array) { - let declar = node.declaration; - - let id = declar.id; - - if (t.isExportDefaultDeclaration(node)) { - id = t.identifier("default"); - } - - let assign; - - if (t.isVariableDeclaration(declar)) { - for (let i = 0; i < declar.declarations.length; i++) { - let decl = declar.declarations[i]; - - decl.init = this.buildExportsAssignment(decl.id, decl.init, node).expression; - - let newDeclar = t.variableDeclaration(declar.kind, [decl]); - if (i === 0) t.inherits(newDeclar, declar); - nodes.push(newDeclar); - } - } else { - let ref = declar; - - if (t.isFunctionDeclaration(declar) || t.isClassDeclaration(declar)) { - ref = declar.id; - nodes.push(declar); - } - - assign = this.buildExportsAssignment(id, ref, node); - - nodes.push(assign); - - this._hoistExport(declar, assign); - } - } -} diff --git a/packages/babel-core/src/transformation/modules/_strict.js b/packages/babel-core/src/transformation/modules/_strict.js deleted file mode 100644 index fe705bc984..0000000000 --- a/packages/babel-core/src/transformation/modules/_strict.js +++ /dev/null @@ -1,15 +0,0 @@ -/* @flow */ - -import * as util from "../../util"; - -export default function (Parent: Function): Function { - function Constructor() { - this.noInteropRequireImport = true; - this.noInteropRequireExport = true; - Parent.apply(this, arguments); - } - - util.inherits(Constructor, Parent); - - return Constructor; -} diff --git a/packages/babel-core/src/transformation/modules/amd-strict.js b/packages/babel-core/src/transformation/modules/amd-strict.js deleted file mode 100644 index 98422e148e..0000000000 --- a/packages/babel-core/src/transformation/modules/amd-strict.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @flow */ - -import AMDFormatter from "./amd"; -import buildStrict from "./_strict"; - -export default buildStrict(AMDFormatter); diff --git a/packages/babel-core/src/transformation/modules/amd.js b/packages/babel-core/src/transformation/modules/amd.js deleted file mode 100644 index 646d98edc8..0000000000 --- a/packages/babel-core/src/transformation/modules/amd.js +++ /dev/null @@ -1,145 +0,0 @@ -/* @flow */ - -import DefaultFormatter from "./_default"; -import CommonFormatter from "./common"; -import includes from "lodash/collection/includes"; -import values from "lodash/object/values"; -import * as util from "../../util"; -import * as t from "babel-types"; - -export default class AMDFormatter extends DefaultFormatter { - setup() { - CommonFormatter.prototype._setup.call(this, this.hasNonDefaultExports); - } - - buildDependencyLiterals() { - let names = []; - for (let name in this.ids) { - names.push(t.stringLiteral(name)); - } - return names; - } - - /** - * Wrap the entire body in a `define` wrapper. - */ - - transform(program) { - CommonFormatter.prototype.transform.apply(this, arguments); - - let body = program.body; - - // build an array of module names - - let names = [t.stringLiteral("exports")]; - if (this.passModuleArg) names.push(t.stringLiteral("module")); - names = names.concat(this.buildDependencyLiterals()); - names = t.arrayExpression(names); - - // build up define container - - let params = values(this.ids); - if (this.passModuleArg) params.unshift(t.identifier("module")); - params.unshift(t.identifier("exports")); - - let container = t.functionExpression(null, params, t.blockStatement(body)); - - let defineArgs = [names, container]; - let moduleName = this.getModuleName(); - if (moduleName) defineArgs.unshift(t.stringLiteral(moduleName)); - - let call = t.callExpression(t.identifier("define"), defineArgs); - - program.body = [t.expressionStatement(call)]; - } - - /** - * Get the AMD module name that we'll prepend to the wrapper - * to define this module - */ - - getModuleName() { - if (this.file.opts.moduleIds) { - return DefaultFormatter.prototype.getModuleName.apply(this, arguments); - } else { - return null; - } - } - - _getExternalReference(node) { - return this.scope.generateUidIdentifier(node.source.value); - } - - importDeclaration(node) { - this.getExternalReference(node); - } - - importSpecifier(specifier, node, nodes, scope) { - let key = node.source.value; - let ref = this.getExternalReference(node); - - if (t.isImportNamespaceSpecifier(specifier) || t.isImportDefaultSpecifier(specifier)) { - this.defaultIds[key] = specifier.local; - } - - if (this.isModuleType(node, "absolute")) { - // absolute module reference - } else if (this.isModuleType(node, "absoluteDefault")) { - // prevent unnecessary renaming of dynamic imports - this.ids[node.source.value] = ref; - ref = t.memberExpression(ref, t.identifier("default")); - } else if (t.isImportNamespaceSpecifier(specifier)) { - // import * as bar from "foo"; - } else if (!includes(this.file.dynamicImported, node) && t.isSpecifierDefault(specifier) && !this.noInteropRequireImport) { - // import foo from "foo"; - let uid = scope.generateUidIdentifier(specifier.local.name); - nodes.push(t.variableDeclaration("var", [ - t.variableDeclarator(uid, t.callExpression(this.file.addHelper("interop-require-default"), [ref])) - ])); - ref = t.memberExpression(uid, t.identifier("default")); - } else { - // import { foo } from "foo"; - let imported = specifier.imported; - if (t.isSpecifierDefault(specifier)) imported = t.identifier("default"); - ref = t.memberExpression(ref, imported); - } - - this.remaps.add(scope, specifier.local.name, ref); - } - - exportSpecifier(specifier, node, nodes) { - if (this.doDefaultExportInterop(specifier)) { - this.passModuleArg = true; - - if (specifier.exported !== specifier.local && !node.source) { - nodes.push(util.template("exports-default-assign", { - VALUE: specifier.local - }, true)); - return; - } - } - - CommonFormatter.prototype.exportSpecifier.apply(this, arguments); - } - - exportDeclaration(node, nodes) { - if (this.doDefaultExportInterop(node)) { - this.passModuleArg = true; - - let declar = node.declaration; - let assign = util.template("exports-default-assign", { - VALUE: this._pushStatement(declar, nodes) - }, true); - - if (t.isFunctionDeclaration(declar)) { - // we can hoist this assignment to the top of the file - assign._blockHoist = 3; - } - - nodes.push(assign); - return; - } - - DefaultFormatter.prototype.exportDeclaration.apply(this, arguments); - } -} diff --git a/packages/babel-core/src/transformation/modules/common-strict.js b/packages/babel-core/src/transformation/modules/common-strict.js deleted file mode 100644 index c02ae2e75b..0000000000 --- a/packages/babel-core/src/transformation/modules/common-strict.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @flow */ - -import CommonFormatter from "./common"; -import buildStrict from "./_strict"; - -export default buildStrict(CommonFormatter); diff --git a/packages/babel-core/src/transformation/modules/common.js b/packages/babel-core/src/transformation/modules/common.js deleted file mode 100644 index 1f81d20b68..0000000000 --- a/packages/babel-core/src/transformation/modules/common.js +++ /dev/null @@ -1,123 +0,0 @@ -import DefaultFormatter from "./_default"; -import * as util from "../../util"; -import * as t from "babel-types"; - -export default class CommonJSFormatter extends DefaultFormatter { - setup() { - this._setup(this.hasLocalExports); - } - - _setup(conditional) { - let file = this.file; - let scope = file.scope; - - scope.rename("module"); - scope.rename("exports"); - - if (!this.noInteropRequireImport && conditional) { - let templateName = "exports-module-declaration"; - if (this.file.isLoose("es6.modules")) templateName += "-loose"; - let declar = util.template(templateName, true); - declar._blockHoist = 3; - file.path.unshiftContainer("body", [declar]); - } - } - - transform(program) { - DefaultFormatter.prototype.transform.apply(this, arguments); - - if (this.hasDefaultOnlyExport) { - program.body.push( - t.expressionStatement(t.assignmentExpression( - "=", - t.memberExpression(t.identifier("module"), t.identifier("exports")), - t.memberExpression(t.identifier("exports"), t.identifier("default")) - )) - ); - } - } - - importSpecifier(specifier, node, nodes, scope) { - let variableName = specifier.local; - - let ref = this.getExternalReference(node, nodes); - - // import foo from "foo"; - if (t.isSpecifierDefault(specifier)) { - if (this.isModuleType(node, "absolute")) { - // absolute module reference - } else if (this.isModuleType(node, "absoluteDefault")) { - this.remaps.add(scope, variableName.name, ref); - } else if (this.noInteropRequireImport) { - this.remaps.add(scope, variableName.name, t.memberExpression(ref, t.identifier("default"))); - } else { - let uid = this.scope.generateUidIdentifierBasedOnNode(node, "import"); - - nodes.push(t.variableDeclaration("var", [ - t.variableDeclarator(uid, t.callExpression(this.file.addHelper("interop-require-default"), [ref])) - ])); - - this.remaps.add(scope, variableName.name, t.memberExpression(uid, t.identifier("default"))); - } - } else { - if (t.isImportNamespaceSpecifier(specifier)) { - if (!this.noInteropRequireImport) { - ref = t.callExpression(this.file.addHelper("interop-require-wildcard"), [ref]); - } - - // import * as bar from "foo"; - nodes.push(t.variableDeclaration("var", [ - t.variableDeclarator(variableName, ref) - ])); - } else { - // import { foo } from "foo"; - this.remaps.add(scope, variableName.name, - t.memberExpression(ref, t.identifier(specifier.imported.name))); - } - } - } - - importDeclaration(node, nodes) { - // import "foo"; - nodes.push(util.template("require", { - MODULE_NAME: node.source - }, true)); - } - - exportSpecifier(specifier) { - if (this.doDefaultExportInterop(specifier)) { - this.hasDefaultOnlyExport = true; - } - - DefaultFormatter.prototype.exportSpecifier.apply(this, arguments); - } - - exportDeclaration(node) { - if (this.doDefaultExportInterop(node)) { - this.hasDefaultOnlyExport = true; - } - - DefaultFormatter.prototype.exportDeclaration.apply(this, arguments); - } - - _getExternalReference(node, nodes) { - let call = t.callExpression(t.identifier("require"), [node.source]); - let uid; - - if (this.isModuleType(node, "absolute")) { - // absolute module reference - } else if (this.isModuleType(node, "absoluteDefault")) { - call = t.memberExpression(call, t.identifier("default")); - } else { - uid = this.scope.generateUidIdentifierBasedOnNode(node, "import"); - } - - uid = uid || node.specifiers[0].local; - - let declar = t.variableDeclaration("var", [ - t.variableDeclarator(uid, call) - ]); - nodes.push(declar); - return uid; - } -} diff --git a/packages/babel-core/src/transformation/modules/ignore.js b/packages/babel-core/src/transformation/modules/ignore.js deleted file mode 100644 index b9c3ff627c..0000000000 --- a/packages/babel-core/src/transformation/modules/ignore.js +++ /dev/null @@ -1,17 +0,0 @@ -/* @flow */ - -import DefaultFormatter from "./_default"; -import * as t from "babel-types"; - -export default class IgnoreFormatter extends DefaultFormatter { - exportDeclaration(node, nodes) { - let declar = t.toStatement(node.declaration, true); - if (declar) nodes.push(t.inherits(declar, node)); - } - - exportAllDeclaration() {} - importDeclaration() {} - importSpecifier() {} - exportSpecifier() {} - transform() {} -} diff --git a/packages/babel-core/src/transformation/modules/index.js b/packages/babel-core/src/transformation/modules/index.js deleted file mode 100644 index c7c7a598e7..0000000000 --- a/packages/babel-core/src/transformation/modules/index.js +++ /dev/null @@ -1,16 +0,0 @@ -/* @flow */ - -/** - * [Please add a description.] - */ - -export default { - commonStrict: require("./common-strict"), - amdStrict: require("./amd-strict"), - umdStrict: require("./umd-strict"), - common: require("./common"), - system: require("./system"), - ignore: require("./ignore"), - amd: require("./amd"), - umd: require("./umd") -}; diff --git a/packages/babel-core/src/transformation/modules/lib/remaps.js b/packages/babel-core/src/transformation/modules/lib/remaps.js deleted file mode 100644 index 3c7303428e..0000000000 --- a/packages/babel-core/src/transformation/modules/lib/remaps.js +++ /dev/null @@ -1,124 +0,0 @@ -/* @flow */ - -import * as t from "babel-types"; - -let remapVisitor = { - enter(node) { - if (node._skipModulesRemap) { - return this.skip(); - } - }, - - ReferencedIdentifier(node, parent, scope, remaps) { - let { formatter } = remaps; - - let remap = remaps.get(scope, node.name); - if (!remap || node === remap) return; - - if (!scope.hasBinding(node.name) || - scope.bindingIdentifierEquals(node.name, formatter.localImports[node.name])) { - if (!formatter.isLoose() && this.key === "callee" && this.parentPath.isCallExpression()) { - return t.sequenceExpression([t.numberLiteral(0), remap]); - } else { - return remap; - } - } - }, - - AssignmentExpression: { - exit(node, parent, scope, { formatter }) { - if (!node._ignoreModulesRemap) { - let exported = formatter.getExport(node.left, scope); - if (exported) { - return formatter.remapExportAssignment(node, exported); - } - } - } - }, - - UpdateExpression(node, parent, scope, { formatter }) { - let exported = formatter.getExport(node.argument, scope); - if (!exported) return; - - this.skip(); - - // expand to long file assignment expression - let assign = t.assignmentExpression(node.operator[0] + "=", node.argument, t.numberLiteral(1)); - - // remap this assignment expression - let remapped = formatter.remapExportAssignment(assign, exported); - - // we don't need to change the result - if (t.isExpressionStatement(parent) || node.prefix) { - return remapped; - } - - let nodes = []; - nodes.push(remapped); - - let operator; - if (node.operator === "--") { - operator = "+"; - } else { // "++" - operator = "-"; - } - nodes.push(t.binaryExpression(operator, node.argument, t.numberLiteral(1))); - - return t.sequenceExpression(nodes); - } -}; - -export default class Remaps { - constructor(file, formatter) { - this.formatter = formatter; - this.file = file; - } - - run() { - this.file.path.traverse(remapVisitor, this); - } - - _getKey(name) { - return `${name}:moduleRemap`; - } - - get(scope, name) { - return scope.getData(this._getKey(name)); - } - - add(scope, name, val) { - if (this.all) { - this.all.push({ - name, - scope, - node: val - }); - } - - return scope.setData(this._getKey(name), val); - } - - remove(scope, name) { - return scope.removeData(this._getKey(name)); - } - - /** - * These methods are used by the system module formatter who needs access to all the remaps - * so it can process them into it's specific setter method. We don't do this by default since - * no other module formatters need access to this. - */ - - getAll() { - return this.all; - } - - clearAll() { - if (this.all) { - for (let remap of (this.all: Array)) { - remap.scope.removeData(this._getKey(remap.name)); - } - } - - this.all = []; - } -} diff --git a/packages/babel-core/src/transformation/modules/system.js b/packages/babel-core/src/transformation/modules/system.js deleted file mode 100644 index 721e676e32..0000000000 --- a/packages/babel-core/src/transformation/modules/system.js +++ /dev/null @@ -1,226 +0,0 @@ -/* @flow */ - -import DefaultFormatter from "./_default"; -import AMDFormatter from "./amd"; -import * as util from "../../util"; -import last from "lodash/array/last"; -import map from "lodash/collection/map"; -import * as t from "babel-types"; - -let hoistVariablesVisitor = { - Function(path) { - // nothing inside is accessible - path.skip(); - }, - - VariableDeclaration({ node, parent }, state) { - if (node.kind !== "var" && !t.isProgram(parent)) { // let, const - // can't be accessed - return; - } - - // ignore block hoisted nodes as these can be left in - if (state.formatter._canHoist(node)) return; - - let nodes = []; - - for (let i = 0; i < node.declarations.length; i++) { - let declar = node.declarations[i]; - state.hoistDeclarators.push(t.variableDeclarator(declar.id)); - if (declar.init) { - // no initializer so we can just hoist it as-is - let assign = t.expressionStatement(t.assignmentExpression("=", declar.id, declar.init)); - nodes.push(assign); - } - } - - // for (let i in test) - if (t.isFor(parent) && parent.left === node) { - return node.declarations[0].id; - } - - return nodes; - } -}; - -let hoistFunctionsVisitor = { - Function(path) { - path.skip(); - }, - - enter(path, state) { - if (path.isFunctionDeclaration() || state.formatter._canHoist(path.node)) { - state.handlerBody.push(path.node); - path.remove(); - } - } -}; - -let runnerSettersVisitor = { - enter(path, state) { - let { node } = path; - - if (node._importSource === state.source) { - if (t.isVariableDeclaration(node)) { - for (let declar of (node.declarations: Array)) { - state.hoistDeclarators.push(t.variableDeclarator(declar.id)); - state.nodes.push(t.expressionStatement( - t.assignmentExpression("=", declar.id, declar.init) - )); - } - } else { - state.nodes.push(node); - } - - path.remove(); - } - } -}; - -export default class SystemFormatter extends AMDFormatter { - constructor(file) { - super(file); - - this._setters = null; - this.exportIdentifier = file.scope.generateUidIdentifier("export"); - this.noInteropRequireExport = true; - this.noInteropRequireImport = true; - - this.remaps.clearAll(); - } - - _addImportSource(node, exportNode) { - if (node) node._importSource = exportNode.source && exportNode.source.value; - return node; - } - - buildExportsWildcard(objectIdentifier, node) { - let leftIdentifier = this.scope.generateUidIdentifier("key"); - let valIdentifier = t.memberExpression(objectIdentifier, leftIdentifier, true); - - let left = t.variableDeclaration("var", [ - t.variableDeclarator(leftIdentifier) - ]); - - let right = objectIdentifier; - - let block = t.blockStatement([ - t.ifStatement( - t.binaryExpression("!==", leftIdentifier, t.stringLiteral("default")), - t.expressionStatement(this._buildExportCall(leftIdentifier, valIdentifier)) - ) - ]); - - return this._addImportSource(t.forInStatement(left, right, block), node); - } - - buildExportsAssignment(id, init, node) { - let call = this._buildExportCall(t.stringLiteral(id.name), init, true); - return this._addImportSource(call, node); - } - - buildExportsFromAssignment() { - return this.buildExportsAssignment(...arguments); - } - - remapExportAssignment(node, exported) { - let assign = node; - - for (let i = 0; i < exported.length; i++) { - assign = this._buildExportCall(t.stringLiteral(exported[i].name), assign); - } - - return assign; - } - - _buildExportCall(id, init, isStatement) { - let call = t.callExpression(this.exportIdentifier, [id, init]); - if (isStatement) { - return t.expressionStatement(call); - } else { - return call; - } - } - - importSpecifier(specifier, node, nodes) { - AMDFormatter.prototype.importSpecifier.apply(this, arguments); - - for (let remap of (this.remaps.getAll(): Array)) { - nodes.push(t.variableDeclaration("var", [ - t.variableDeclarator(t.identifier(remap.name), remap.node) - ])); - } - - this.remaps.clearAll(); - - this._addImportSource(last(nodes), node); - } - - _buildRunnerSetters(block, hoistDeclarators) { - let scope = this.file.scope; - - return t.arrayExpression(map(this.ids, function (uid, source) { - let state = { - hoistDeclarators: hoistDeclarators, - source: source, - nodes: [] - }; - - scope.traverse(block, runnerSettersVisitor, state); - - return t.functionExpression(null, [uid], t.blockStatement(state.nodes)); - })); - } - - _canHoist(node) { - return node._blockHoist && !this.file.dynamicImports.length; - } - - transform(program) { - DefaultFormatter.prototype.transform.apply(this, arguments); - - let hoistDeclarators = []; - let moduleName = this.getModuleName(); - let moduleNameLiteral = t.stringLiteral(moduleName); - - let block = t.blockStatement(program.body); - - let setterListNode = this._buildRunnerSetters(block, hoistDeclarators); - this._setters = setterListNode; - - let runner = util.template("system", { - MODULE_DEPENDENCIES: t.arrayExpression(this.buildDependencyLiterals()), - EXPORT_IDENTIFIER: this.exportIdentifier, - MODULE_NAME: moduleNameLiteral, - SETTERS: setterListNode, - EXECUTE: t.functionExpression(null, [], block) - }, true); - - let handlerBody = runner.expression.arguments[2].body.body; - if (!moduleName) runner.expression.arguments.shift(); - - let returnStatement = handlerBody.pop(); - - // hoist up all variable declarations - this.file.scope.traverse(block, hoistVariablesVisitor, { - formatter: this, - hoistDeclarators: hoistDeclarators - }); - - if (hoistDeclarators.length) { - let hoistDeclar = t.variableDeclaration("var", hoistDeclarators); - hoistDeclar._blockHoist = true; - handlerBody.unshift(hoistDeclar); - } - - // hoist up function declarations for circular references - this.file.scope.traverse(block, hoistFunctionsVisitor, { - formatter: this, - handlerBody: handlerBody - }); - - handlerBody.push(returnStatement); - - program.body = [runner]; - } -} diff --git a/packages/babel-core/src/transformation/modules/umd-strict.js b/packages/babel-core/src/transformation/modules/umd-strict.js deleted file mode 100644 index 831de7fc25..0000000000 --- a/packages/babel-core/src/transformation/modules/umd-strict.js +++ /dev/null @@ -1,6 +0,0 @@ -/* @flow */ - -import UMDFormatter from "./umd"; -import buildStrict from "./_strict"; - -export default buildStrict(UMDFormatter); diff --git a/packages/babel-core/src/transformation/modules/umd.js b/packages/babel-core/src/transformation/modules/umd.js deleted file mode 100644 index 57955e82ed..0000000000 --- a/packages/babel-core/src/transformation/modules/umd.js +++ /dev/null @@ -1,85 +0,0 @@ -/* @flow */ - -import DefaultFormatter from "./_default"; -import AMDFormatter from "./amd"; -import values from "lodash/object/values"; -import path from "path"; -import * as util from "../../util"; -import * as t from "babel-types"; - -export default class UMDFormatter extends AMDFormatter { - transform(program) { - DefaultFormatter.prototype.transform.apply(this, arguments); - - let body = program.body; - - // build an array of module names - - let names = []; - for (let name in this.ids) { - names.push(t.stringLiteral(name)); - } - - // factory - - let ids = values(this.ids); - let args = [t.identifier("exports")]; - if (this.passModuleArg) args.push(t.identifier("module")); - args = args.concat(ids); - - let factory = t.functionExpression(null, args, t.blockStatement(body)); - - // amd - - let defineArgs = [t.stringLiteral("exports")]; - if (this.passModuleArg) defineArgs.push(t.stringLiteral("module")); - defineArgs = defineArgs.concat(names); - defineArgs = [t.arrayExpression(defineArgs)]; - - // common - - let testExports = util.template("test-exports"); - let testModule = util.template("test-module"); - let commonTests = this.passModuleArg ? t.logicalExpression("&&", testExports, testModule) : testExports; - - let commonArgs = [t.identifier("exports")]; - if (this.passModuleArg) commonArgs.push(t.identifier("module")); - commonArgs = commonArgs.concat(names.map(function (name) { - return t.callExpression(t.identifier("require"), [name]); - })); - - // globals - - let browserArgs = []; - if (this.passModuleArg) browserArgs.push(t.identifier("mod")); - - for (let name in this.ids) { - let id = this.defaultIds[name] || t.identifier(t.toIdentifier(path.basename(name, path.extname(name)))); - browserArgs.push(t.memberExpression(t.identifier("global"), id)); - } - - // - - let moduleName = this.getModuleName(); - if (moduleName) defineArgs.unshift(t.stringLiteral(moduleName)); - - // - let globalArg = this.file.opts.basename; - if (moduleName) globalArg = moduleName; - globalArg = t.identifier(t.toIdentifier(globalArg)); - - let runner = util.template("umd-runner-body", { - AMD_ARGUMENTS: defineArgs, - COMMON_TEST: commonTests, - COMMON_ARGUMENTS: commonArgs, - BROWSER_ARGUMENTS: browserArgs, - GLOBAL_ARG: globalArg - }); - - // - - program.body = [t.expressionStatement( - t.callExpression(runner, [t.thisExpression(), factory]) - )]; - } -} diff --git a/packages/babel-core/src/transformation/plugin-pass.js b/packages/babel-core/src/transformation/plugin-pass.js index 93d86d84c0..1fe9385941 100644 --- a/packages/babel-core/src/transformation/plugin-pass.js +++ b/packages/babel-core/src/transformation/plugin-pass.js @@ -1,11 +1,13 @@ /* @flow */ import type Plugin from "./plugin"; +import Store from "../store"; import traverse from "babel-traverse"; import File from "./file"; -export default class PluginPass { +export default class PluginPass extends Store { constructor(file: File, plugin: Plugin, options: Object = {}) { + super(); this.plugin = plugin; this.file = file; this.opts = options; @@ -25,4 +27,16 @@ export default class PluginPass { addHelper(...args) { return this.file.addHelper(...args); } + + addImport(...args) { + return this.file.addImport(...args); + } + + getModuleName(...args) { + return this.file.getModuleName(...args); + } + + buildCodeFrameError(...args) { + return this.file.buildCodeFrameError(...args); + } } diff --git a/packages/babel-core/src/transformation/plugin.js b/packages/babel-core/src/transformation/plugin.js index 81fe760cf4..31c7bcbb5e 100644 --- a/packages/babel-core/src/transformation/plugin.js +++ b/packages/babel-core/src/transformation/plugin.js @@ -1,33 +1,79 @@ /* @flow */ +import OptionManager from "./file/options/option-manager" import * as messages from "babel-messages"; +import Store from "../store"; import traverse from "babel-traverse"; import assign from "lodash/object/assign"; import clone from "lodash/lang/clone"; -export default class Plugin { +export default class Plugin extends Store { constructor(plugin: Object) { - plugin = this.raw = assign({}, plugin); + super(); - function take(key) { - let val = plugin[key]; - delete plugin[key]; - return val; - } + this.initialized = false; + this.raw = assign({}, plugin); - this.manipulateOptions = take("manipulateOptions"); - this.post = take("post"); - this.pre = take("pre"); - this.visitor = this.normalize(clone(take("visitor")) || {}); + this.manipulateOptions = this.take("manipulateOptions"); + this.post = this.take("post"); + this.pre = this.take("pre"); + this.visitor = this.normalize(clone(this.take("visitor")) || {}); } + initialized: boolean; raw: Object; manipulateOptions: ?Function; post: ?Function; pre: ?Function; visitor: Object; - validate(loc: string, i: number) { + take(key) { + let val = this.raw[key]; + delete this.raw[key]; + return val; + } + + chain(target, key) { + if (!target[key]) return this[key]; + if (!this[key]) return target[key]; + + let fns: Array = [target[key], this[key]]; + + return function (...args) { + let val; + for (let fn of fns) { + if (fn) { + let ret = fn.apply(this, args); + if (ret != null) val = ret; + } + } + return val; + }; + } + + maybeInherit(loc: string) { + let inherits = this.take("inherits"); + if (!inherits) return; + + inherits = OptionManager.normalisePlugin(inherits, loc, "inherits"); + + this.manipulateOptions = this.chain(inherits, "manipulateOptions"); + this.post = this.chain(inherits, "post"); + this.pre = this.chain(inherits, "pre"); + this.visitor = traverse.visitors.merge([inherits.visitor, this.visitor]); + } + + /** + * We lazy initialise parts of a plugin that rely on contextual information such as + * position on disk and how it was specified. + */ + + init(loc: string, i: number) { + if (this.initialized) return; + this.initialized = true; + + this.maybeInherit(loc); + for (let key in this.raw) { throw new Error(messages.get("pluginInvalidProperty", loc, i, key)); } diff --git a/packages/babel-core/src/transformation/templates/.babelrc b/packages/babel-core/src/transformation/templates/.babelrc deleted file mode 100644 index 43cbf773c1..0000000000 --- a/packages/babel-core/src/transformation/templates/.babelrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "blacklist": ["useStrict", "es6.blockScoping", "regenerator", "es6.spread"], - "loose": ["es6.modules"] -} diff --git a/packages/babel-core/src/transformation/templates/abstract-expression-call.js b/packages/babel-core/src/transformation/templates/abstract-expression-call.js deleted file mode 100644 index 622b0588aa..0000000000 --- a/packages/babel-core/src/transformation/templates/abstract-expression-call.js +++ /dev/null @@ -1 +0,0 @@ -PROPERTY[Symbol.referenceGet](OBJECT).call(OBJECT) diff --git a/packages/babel-core/src/transformation/templates/abstract-expression-delete.js b/packages/babel-core/src/transformation/templates/abstract-expression-delete.js deleted file mode 100644 index a78f195e1f..0000000000 --- a/packages/babel-core/src/transformation/templates/abstract-expression-delete.js +++ /dev/null @@ -1 +0,0 @@ -PROPERTY[Symbol.referenceDelete](OBJECT) diff --git a/packages/babel-core/src/transformation/templates/abstract-expression-get.js b/packages/babel-core/src/transformation/templates/abstract-expression-get.js deleted file mode 100644 index bc8a623e9c..0000000000 --- a/packages/babel-core/src/transformation/templates/abstract-expression-get.js +++ /dev/null @@ -1 +0,0 @@ -PROPERTY[Symbol.referenceGet](OBJECT) diff --git a/packages/babel-core/src/transformation/templates/abstract-expression-set.js b/packages/babel-core/src/transformation/templates/abstract-expression-set.js deleted file mode 100644 index 90a5edd887..0000000000 --- a/packages/babel-core/src/transformation/templates/abstract-expression-set.js +++ /dev/null @@ -1 +0,0 @@ -PROPERTY[Symbol.referenceSet](OBJECT, VALUE) diff --git a/packages/babel-core/src/transformation/templates/array-from.js b/packages/babel-core/src/transformation/templates/array-from.js deleted file mode 100644 index 6e8f155aeb..0000000000 --- a/packages/babel-core/src/transformation/templates/array-from.js +++ /dev/null @@ -1 +0,0 @@ -Array.from(VALUE); diff --git a/packages/babel-core/src/transformation/templates/call.js b/packages/babel-core/src/transformation/templates/call.js deleted file mode 100644 index 23d94f532f..0000000000 --- a/packages/babel-core/src/transformation/templates/call.js +++ /dev/null @@ -1 +0,0 @@ -OBJECT.call(CONTEXT); diff --git a/packages/babel-core/src/transformation/templates/exports-assign.js b/packages/babel-core/src/transformation/templates/exports-assign.js deleted file mode 100644 index c4c06b8a9a..0000000000 --- a/packages/babel-core/src/transformation/templates/exports-assign.js +++ /dev/null @@ -1 +0,0 @@ -exports.KEY = VALUE; diff --git a/packages/babel-core/src/transformation/templates/exports-default-assign.js b/packages/babel-core/src/transformation/templates/exports-default-assign.js deleted file mode 100644 index d10890f8a2..0000000000 --- a/packages/babel-core/src/transformation/templates/exports-default-assign.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = VALUE; diff --git a/packages/babel-core/src/transformation/templates/exports-from-assign.js b/packages/babel-core/src/transformation/templates/exports-from-assign.js deleted file mode 100644 index e784fc1b2a..0000000000 --- a/packages/babel-core/src/transformation/templates/exports-from-assign.js +++ /dev/null @@ -1,6 +0,0 @@ -Object.defineProperty(exports, ID, { - enumerable: true, - get: function () { - return INIT; - } -}); diff --git a/packages/babel-core/src/transformation/templates/exports-module-declaration-loose.js b/packages/babel-core/src/transformation/templates/exports-module-declaration-loose.js deleted file mode 100644 index 32b83d4a5a..0000000000 --- a/packages/babel-core/src/transformation/templates/exports-module-declaration-loose.js +++ /dev/null @@ -1 +0,0 @@ -exports.__esModule = true; diff --git a/packages/babel-core/src/transformation/templates/exports-module-declaration.js b/packages/babel-core/src/transformation/templates/exports-module-declaration.js deleted file mode 100644 index 18efccea8a..0000000000 --- a/packages/babel-core/src/transformation/templates/exports-module-declaration.js +++ /dev/null @@ -1,3 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); diff --git a/packages/babel-core/src/transformation/templates/helper-async-to-generator.js b/packages/babel-core/src/transformation/templates/helper-async-to-generator.js deleted file mode 100644 index 3d7b145184..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-async-to-generator.js +++ /dev/null @@ -1,28 +0,0 @@ -(function (fn) { - return function () { - var gen = fn.apply(this, arguments); - - return new Promise(function (resolve, reject) { - var callNext = step.bind(null, "next"); - var callThrow = step.bind(null, "throw"); - - function step(key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(callNext, callThrow); - } - } - - callNext(); - }); - }; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-bind.js b/packages/babel-core/src/transformation/templates/helper-bind.js deleted file mode 100644 index abe1c0668a..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-bind.js +++ /dev/null @@ -1 +0,0 @@ -Function.prototype.bind diff --git a/packages/babel-core/src/transformation/templates/helper-class-call-check.js b/packages/babel-core/src/transformation/templates/helper-class-call-check.js deleted file mode 100644 index 041dd4b753..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-class-call-check.js +++ /dev/null @@ -1,5 +0,0 @@ -(function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } -}); diff --git a/packages/babel-core/src/transformation/templates/helper-create-class.js b/packages/babel-core/src/transformation/templates/helper-create-class.js deleted file mode 100644 index f4b4c20145..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-create-class.js +++ /dev/null @@ -1,17 +0,0 @@ -(function() { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i ++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; -})() diff --git a/packages/babel-core/src/transformation/templates/helper-create-decorated-class.js b/packages/babel-core/src/transformation/templates/helper-create-decorated-class.js deleted file mode 100644 index 61c31b6867..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-create-decorated-class.js +++ /dev/null @@ -1,42 +0,0 @@ -(function() { - function defineProperties(target, descriptors, initializers) { - for (var i = 0; i < descriptors.length; i ++) { - var descriptor = descriptors[i]; - var decorators = descriptor.decorators; - var key = descriptor.key; - - // don't want to expose these to userland since i know people will rely on them - // and think it's spec behaviour - delete descriptor.key; - delete descriptor.decorators; - - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor || descriptor.initializer) descriptor.writable = true; - - if (decorators) { - for (var f = 0; f < decorators.length; f++) { - var decorator = decorators[f]; - if (typeof decorator === "function") { - descriptor = decorator(target, key, descriptor) || descriptor; - } else { - throw new TypeError("The decorator for method " + descriptor.key + " is of the invalid type " + typeof decorator); - } - } - - if (descriptor.initializer !== undefined) { - initializers[key] = descriptor; - continue; - } - } - - Object.defineProperty(target, key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps, protoInitializers, staticInitializers) { - if (protoProps) defineProperties(Constructor.prototype, protoProps, protoInitializers); - if (staticProps) defineProperties(Constructor, staticProps, staticInitializers); - return Constructor; - }; -})() diff --git a/packages/babel-core/src/transformation/templates/helper-create-decorated-object.js b/packages/babel-core/src/transformation/templates/helper-create-decorated-object.js deleted file mode 100644 index e1a6005a31..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-create-decorated-object.js +++ /dev/null @@ -1,37 +0,0 @@ -(function (descriptors) { - var target = {}; - - for (var i = 0; i < descriptors.length; i ++) { - var descriptor = descriptors[i]; - var decorators = descriptor.decorators; - var key = descriptor.key; - - // don't want to expose these to userland since i know people will rely on them - // and think it's spec behaviour - delete descriptor.key; - delete descriptor.decorators; - - descriptor.enumerable = true; - descriptor.configurable = true; - if ("value" in descriptor || descriptor.initializer) descriptor.writable = true; - - if (decorators) { - for (var f = 0; f < decorators.length; f++) { - var decorator = decorators[f]; - if (typeof decorator === "function") { - descriptor = decorator(target, key, descriptor) || descriptor; - } else { - throw new TypeError("The decorator for method " + descriptor.key + " is of the invalid type " + typeof decorator); - } - } - } - - if (descriptor.initializer) { - descriptor.value = descriptor.initializer.call(target); - } - - Object.defineProperty(target, key, descriptor); - } - - return target; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-default-props.js b/packages/babel-core/src/transformation/templates/helper-default-props.js deleted file mode 100644 index 4b2f679253..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-default-props.js +++ /dev/null @@ -1,10 +0,0 @@ -(function (defaultProps, props) { - if (defaultProps) { - for (var propName in defaultProps) { - if (typeof props[propName] === "undefined") { - props[propName] = defaultProps[propName]; - } - } - } - return props; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-defaults.js b/packages/babel-core/src/transformation/templates/helper-defaults.js deleted file mode 100644 index 1553b89089..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-defaults.js +++ /dev/null @@ -1,11 +0,0 @@ -(function (obj, defaults) { - var keys = Object.getOwnPropertyNames(defaults); - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var value = Object.getOwnPropertyDescriptor(defaults, key); - if (value && value.configurable && obj[key] === undefined) { - Object.defineProperty(obj, key, value); - } - } - return obj; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-define-decorated-property-descriptor.js b/packages/babel-core/src/transformation/templates/helper-define-decorated-property-descriptor.js deleted file mode 100644 index 8f5d415f22..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-define-decorated-property-descriptor.js +++ /dev/null @@ -1,13 +0,0 @@ -(function (target, key, descriptors) { - var _descriptor = descriptors[key]; - if (!_descriptor) return; - - // clone it - var descriptor = {}; - for (var _key in _descriptor) descriptor[_key] = _descriptor[_key]; - - // initialize it - descriptor.value = descriptor.initializer ? descriptor.initializer.call(target) : undefined; - - Object.defineProperty(target, key, descriptor); -}) diff --git a/packages/babel-core/src/transformation/templates/helper-define-property.js b/packages/babel-core/src/transformation/templates/helper-define-property.js deleted file mode 100644 index 2560c05c45..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-define-property.js +++ /dev/null @@ -1,18 +0,0 @@ -(function (obj, key, value) { - // Shortcircuit the slow defineProperty path when possible. - // We are trying to avoid issues where setters defined on the - // prototype cause side effects under the fast path of simple - // assignment. By checking for existence of the property with - // the in operator, we can optimize most of this overhead away. - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - return obj; -}); diff --git a/packages/babel-core/src/transformation/templates/helper-extends.js b/packages/babel-core/src/transformation/templates/helper-extends.js deleted file mode 100644 index f8276831b1..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-extends.js +++ /dev/null @@ -1,11 +0,0 @@ -Object.assign || (function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - return target; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-get.js b/packages/babel-core/src/transformation/templates/helper-get.js deleted file mode 100644 index 2b622262e6..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-get.js +++ /dev/null @@ -1,25 +0,0 @@ -(function get(object, property, receiver) { - if (object === null) object = Function.prototype; - - var desc = Object.getOwnPropertyDescriptor(object, property); - - if (desc === undefined) { - var parent = Object.getPrototypeOf(object); - - if (parent === null) { - return undefined; - } else { - return get(parent, property, receiver); - } - } else if ("value" in desc) { - return desc.value; - } else { - var getter = desc.get; - - if (getter === undefined) { - return undefined; - } - - return getter.call(receiver); - } -}); diff --git a/packages/babel-core/src/transformation/templates/helper-has-own.js b/packages/babel-core/src/transformation/templates/helper-has-own.js deleted file mode 100644 index 9a4caad24a..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-has-own.js +++ /dev/null @@ -1 +0,0 @@ -Object.prototype.hasOwnProperty; diff --git a/packages/babel-core/src/transformation/templates/helper-inherits.js b/packages/babel-core/src/transformation/templates/helper-inherits.js deleted file mode 100644 index 87d9ccaede..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-inherits.js +++ /dev/null @@ -1,14 +0,0 @@ -(function (subClass, superClass) { - if (typeof superClass !== "function" && superClass !== null) { - throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); - } - subClass.prototype = Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - enumerable: false, - writable: true, - configurable: true - } - }); - if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-instanceof.js b/packages/babel-core/src/transformation/templates/helper-instanceof.js deleted file mode 100644 index 8ce6479f4a..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-instanceof.js +++ /dev/null @@ -1,7 +0,0 @@ -(function (left, right) { - if (right != null && right[Symbol.hasInstance]) { - return right[Symbol.hasInstance](left); - } else { - return left instanceof right; - } -}); diff --git a/packages/babel-core/src/transformation/templates/helper-interop-export-wildcard.js b/packages/babel-core/src/transformation/templates/helper-interop-export-wildcard.js deleted file mode 100644 index d7af1c412f..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-interop-export-wildcard.js +++ /dev/null @@ -1,5 +0,0 @@ -(function (obj, defaults) { - var newObj = defaults({}, obj); - delete newObj.default; - return newObj; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-interop-require-default.js b/packages/babel-core/src/transformation/templates/helper-interop-require-default.js deleted file mode 100644 index 495e2ee2d0..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-interop-require-default.js +++ /dev/null @@ -1,3 +0,0 @@ -(function (obj) { - return obj && obj.__esModule ? obj : { default: obj }; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-interop-require-wildcard.js b/packages/babel-core/src/transformation/templates/helper-interop-require-wildcard.js deleted file mode 100644 index 546e445aba..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-interop-require-wildcard.js +++ /dev/null @@ -1,14 +0,0 @@ -(function (obj) { - if (obj && obj.__esModule) { - return obj; - } else { - var newObj = {}; - if (obj != null) { - for (var key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; - } - } - newObj.default = obj; - return newObj; - } -}) diff --git a/packages/babel-core/src/transformation/templates/helper-interop-require.js b/packages/babel-core/src/transformation/templates/helper-interop-require.js deleted file mode 100644 index 55911c817c..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-interop-require.js +++ /dev/null @@ -1,3 +0,0 @@ -(function (obj) { - return obj && obj.__esModule ? obj.default : obj; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-new-arrow-check.js b/packages/babel-core/src/transformation/templates/helper-new-arrow-check.js deleted file mode 100644 index 3841b83f34..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-new-arrow-check.js +++ /dev/null @@ -1,5 +0,0 @@ -(function (innerThis, boundThis) { - if (innerThis !== boundThis) { - throw new TypeError("Cannot instantiate an arrow function"); - } -}); diff --git a/packages/babel-core/src/transformation/templates/helper-object-destructuring-empty.js b/packages/babel-core/src/transformation/templates/helper-object-destructuring-empty.js deleted file mode 100644 index b2252a935a..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-object-destructuring-empty.js +++ /dev/null @@ -1,3 +0,0 @@ -(function (obj) { - if (obj == null) throw new TypeError("Cannot destructure undefined"); -}); diff --git a/packages/babel-core/src/transformation/templates/helper-object-without-properties.js b/packages/babel-core/src/transformation/templates/helper-object-without-properties.js deleted file mode 100644 index a5ad00f639..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-object-without-properties.js +++ /dev/null @@ -1,9 +0,0 @@ -(function (obj, keys) { - var target = {}; - for (var i in obj) { - if (keys.indexOf(i) >= 0) continue; - if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; - target[i] = obj[i]; - } - return target; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-self-global.js b/packages/babel-core/src/transformation/templates/helper-self-global.js deleted file mode 100644 index 3e55600935..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-self-global.js +++ /dev/null @@ -1 +0,0 @@ -typeof global === "undefined" ? self : global diff --git a/packages/babel-core/src/transformation/templates/helper-set.js b/packages/babel-core/src/transformation/templates/helper-set.js deleted file mode 100644 index e1bbdcc5d9..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-set.js +++ /dev/null @@ -1,21 +0,0 @@ -(function set(object, property, value, receiver) { - var desc = Object.getOwnPropertyDescriptor(object, property); - - if (desc === undefined) { - var parent = Object.getPrototypeOf(object); - - if (parent !== null) { - set(parent, property, value, receiver); - } - } else if ("value" in desc && desc.writable) { - desc.value = value; - } else { - var setter = desc.set; - - if (setter !== undefined) { - setter.call(receiver, value); - } - } - - return value; -}); diff --git a/packages/babel-core/src/transformation/templates/helper-slice.js b/packages/babel-core/src/transformation/templates/helper-slice.js deleted file mode 100644 index f35f3b503b..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-slice.js +++ /dev/null @@ -1 +0,0 @@ -Array.prototype.slice; diff --git a/packages/babel-core/src/transformation/templates/helper-sliced-to-array-loose.js b/packages/babel-core/src/transformation/templates/helper-sliced-to-array-loose.js deleted file mode 100644 index 274222b0c6..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-sliced-to-array-loose.js +++ /dev/null @@ -1,14 +0,0 @@ -(function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (Symbol.iterator in Object(arr)) { - var _arr = []; - for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { - _arr.push(_step.value); - if (i && _arr.length === i) break; - } - return _arr; - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } -}); diff --git a/packages/babel-core/src/transformation/templates/helper-sliced-to-array.js b/packages/babel-core/src/transformation/templates/helper-sliced-to-array.js deleted file mode 100644 index 4e59a8ed57..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-sliced-to-array.js +++ /dev/null @@ -1,46 +0,0 @@ -(function () { - // Broken out into a separate function to avoid deoptimizations due to the try/catch for the - // array iterator case. - function sliceIterator(arr, i) { - // this is an expanded form of `for...of` that properly supports abrupt completions of - // iterators etc. variable names have been minimised to reduce the size of this massive - // helper. sometimes spec compliancy is annoying :( - // - // _n = _iteratorNormalCompletion - // _d = _didIteratorError - // _e = _iteratorError - // _i = _iterator - // _s = _step - - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - try { - for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if (Symbol.iterator in Object(arr)) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -})(); diff --git a/packages/babel-core/src/transformation/templates/helper-tagged-template-literal-loose.js b/packages/babel-core/src/transformation/templates/helper-tagged-template-literal-loose.js deleted file mode 100644 index d8dd44bb7a..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-tagged-template-literal-loose.js +++ /dev/null @@ -1,4 +0,0 @@ -(function (strings, raw) { - strings.raw = raw; - return strings; -}); diff --git a/packages/babel-core/src/transformation/templates/helper-tagged-template-literal.js b/packages/babel-core/src/transformation/templates/helper-tagged-template-literal.js deleted file mode 100644 index b8c6ac8fe8..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-tagged-template-literal.js +++ /dev/null @@ -1,5 +0,0 @@ -(function (strings, raw) { - return Object.freeze(Object.defineProperties(strings, { - raw: { value: Object.freeze(raw) } - })); -}); diff --git a/packages/babel-core/src/transformation/templates/helper-temporal-assert-defined.js b/packages/babel-core/src/transformation/templates/helper-temporal-assert-defined.js deleted file mode 100644 index 97ec85d0bd..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-temporal-assert-defined.js +++ /dev/null @@ -1,6 +0,0 @@ -(function (val, name, undef) { - if (val === undef) { - throw new ReferenceError(name + " is not defined - temporal dead zone"); - } - return true; -}) diff --git a/packages/babel-core/src/transformation/templates/helper-temporal-undefined.js b/packages/babel-core/src/transformation/templates/helper-temporal-undefined.js deleted file mode 100644 index b4100a5972..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-temporal-undefined.js +++ /dev/null @@ -1 +0,0 @@ -({}) diff --git a/packages/babel-core/src/transformation/templates/helper-to-array.js b/packages/babel-core/src/transformation/templates/helper-to-array.js deleted file mode 100644 index c479b65446..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-to-array.js +++ /dev/null @@ -1,3 +0,0 @@ -(function (arr) { - return Array.isArray(arr) ? arr : Array.from(arr); -}); diff --git a/packages/babel-core/src/transformation/templates/helper-to-consumable-array.js b/packages/babel-core/src/transformation/templates/helper-to-consumable-array.js deleted file mode 100644 index 9e042dadf1..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-to-consumable-array.js +++ /dev/null @@ -1,8 +0,0 @@ -(function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - return arr2; - } else { - return Array.from(arr); - } -}); diff --git a/packages/babel-core/src/transformation/templates/helper-typeof.js b/packages/babel-core/src/transformation/templates/helper-typeof.js deleted file mode 100644 index 8efdeefe3d..0000000000 --- a/packages/babel-core/src/transformation/templates/helper-typeof.js +++ /dev/null @@ -1,3 +0,0 @@ -(function (obj) { - return obj && obj.constructor === Symbol ? "symbol" : typeof obj; -}); diff --git a/packages/babel-core/src/transformation/templates/named-function.js b/packages/babel-core/src/transformation/templates/named-function.js deleted file mode 100644 index 4368fcfe58..0000000000 --- a/packages/babel-core/src/transformation/templates/named-function.js +++ /dev/null @@ -1,7 +0,0 @@ -(function () { - function GET_OUTER_ID() { - return FUNCTION_ID; - } - - return FUNCTION; -})() diff --git a/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper-generator.js b/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper-generator.js deleted file mode 100644 index fe3610b719..0000000000 --- a/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper-generator.js +++ /dev/null @@ -1,11 +0,0 @@ -(function (FUNCTION_KEY) { - function* FUNCTION_ID() { - return yield* FUNCTION_KEY.apply(this, arguments); - } - - FUNCTION_ID.toString = function () { - return FUNCTION_KEY.toString(); - }; - - return FUNCTION_ID; -})(FUNCTION) diff --git a/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper.js b/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper.js deleted file mode 100644 index eeb8e5c7fd..0000000000 --- a/packages/babel-core/src/transformation/templates/property-method-assignment-wrapper.js +++ /dev/null @@ -1,11 +0,0 @@ -(function (FUNCTION_KEY) { - function FUNCTION_ID() { - return FUNCTION_KEY.apply(this, arguments); - } - - FUNCTION_ID.toString = function () { - return FUNCTION_KEY.toString(); - } - - return FUNCTION_ID; -})(FUNCTION) diff --git a/packages/babel-core/src/transformation/templates/prototype-identifier.js b/packages/babel-core/src/transformation/templates/prototype-identifier.js deleted file mode 100644 index 0bc116ef9a..0000000000 --- a/packages/babel-core/src/transformation/templates/prototype-identifier.js +++ /dev/null @@ -1 +0,0 @@ -CLASS_NAME.prototype diff --git a/packages/babel-core/src/transformation/templates/require-assign-key.js b/packages/babel-core/src/transformation/templates/require-assign-key.js deleted file mode 100644 index 07b0ef07fb..0000000000 --- a/packages/babel-core/src/transformation/templates/require-assign-key.js +++ /dev/null @@ -1 +0,0 @@ -var VARIABLE_NAME = require(MODULE_NAME).KEY; diff --git a/packages/babel-core/src/transformation/templates/require.js b/packages/babel-core/src/transformation/templates/require.js deleted file mode 100644 index 9bfd3652a4..0000000000 --- a/packages/babel-core/src/transformation/templates/require.js +++ /dev/null @@ -1 +0,0 @@ -require(MODULE_NAME); diff --git a/packages/babel-core/src/transformation/templates/self-contained-helpers-head.js b/packages/babel-core/src/transformation/templates/self-contained-helpers-head.js deleted file mode 100644 index 3d45833803..0000000000 --- a/packages/babel-core/src/transformation/templates/self-contained-helpers-head.js +++ /dev/null @@ -1,2 +0,0 @@ -exports.default = HELPER; -exports.__esModule = true; diff --git a/packages/babel-core/src/transformation/templates/system.js b/packages/babel-core/src/transformation/templates/system.js deleted file mode 100644 index 00eb18aca5..0000000000 --- a/packages/babel-core/src/transformation/templates/system.js +++ /dev/null @@ -1,6 +0,0 @@ -System.register(MODULE_NAME, MODULE_DEPENDENCIES, function (EXPORT_IDENTIFIER) { - return { - setters: SETTERS, - execute: EXECUTE - }; -}); diff --git a/packages/babel-core/src/transformation/templates/test-exports.js b/packages/babel-core/src/transformation/templates/test-exports.js deleted file mode 100644 index 0b26264b2a..0000000000 --- a/packages/babel-core/src/transformation/templates/test-exports.js +++ /dev/null @@ -1 +0,0 @@ -typeof exports !== "undefined" diff --git a/packages/babel-core/src/transformation/templates/test-module.js b/packages/babel-core/src/transformation/templates/test-module.js deleted file mode 100644 index e21fc01a58..0000000000 --- a/packages/babel-core/src/transformation/templates/test-module.js +++ /dev/null @@ -1 +0,0 @@ -typeof module !== "undefined" diff --git a/packages/babel-core/src/transformation/templates/umd-commonjs-strict.js b/packages/babel-core/src/transformation/templates/umd-commonjs-strict.js deleted file mode 100644 index 91c52cc3c2..0000000000 --- a/packages/babel-core/src/transformation/templates/umd-commonjs-strict.js +++ /dev/null @@ -1,11 +0,0 @@ -(function (root, factory) { - if (typeof define === "function" && define.amd) { - define(AMD_ARGUMENTS, factory); - } else if (typeof exports === "object") { - factory(COMMON_ARGUMENTS); - } else { - factory(BROWSER_ARGUMENTS); - } -})(UMD_ROOT, function (FACTORY_PARAMETERS) { - FACTORY_BODY -}); diff --git a/packages/babel-core/src/transformation/templates/umd-runner-body.js b/packages/babel-core/src/transformation/templates/umd-runner-body.js deleted file mode 100644 index 801ff25870..0000000000 --- a/packages/babel-core/src/transformation/templates/umd-runner-body.js +++ /dev/null @@ -1,11 +0,0 @@ -(function (global, factory) { - if (typeof define === "function" && define.amd) { - define(AMD_ARGUMENTS, factory); - } else if (COMMON_TEST) { - factory(COMMON_ARGUMENTS); - } else { - var mod = { exports: {} }; - factory(mod.exports, BROWSER_ARGUMENTS); - global.GLOBAL_ARG = mod.exports; - } -}); diff --git a/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js b/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js deleted file mode 100644 index 5c7379a5f4..0000000000 --- a/packages/babel-core/src/transformation/transformers/es5/properties.mutators.js +++ /dev/null @@ -1,31 +0,0 @@ -import * as defineMap from "../../helpers/define-map"; -import * as t from "babel-types"; - -export let visitor = { - ObjectExpression({ node }, file) { - var hasAny = false; - for (var prop of (node.properties: Array)) { - if (prop.kind === "get" || prop.kind === "set") { - hasAny = true; - break; - } - } - if (!hasAny) return; - - let mutatorMap = {}; - - node.properties = node.properties.filter(function (prop) { - if (prop.kind === "get" || prop.kind === "set") { - defineMap.push(mutatorMap, prop, prop.kind, file); - return false; - } else { - return true; - } - }); - - return t.callExpression( - t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")), - [node, defineMap.toDefineObject(mutatorMap)] - ); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js b/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js deleted file mode 100644 index 71691c584f..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping/index.js +++ /dev/null @@ -1,640 +0,0 @@ -import type NodePath from "babel-traverse"; -import type Scope from "babel-traverse"; -import type File from "../../../file"; -import traverse from "babel-traverse"; -import { visitor as tdzVisitor } from "./tdz"; -import * as util from "../../../../util"; -import * as t from "babel-types"; -import values from "lodash/object/values"; -import extend from "lodash/object/extend"; - -function isLet(node, parent) { - if (!t.isVariableDeclaration(node)) return false; - if (node._let) return true; - if (node.kind !== "let") return false; - - // https://github.com/babel/babel/issues/255 - if (isLetInitable(node, parent)) { - for (let i = 0; i < node.declarations.length; i++) { - let declar = node.declarations[i]; - declar.init = declar.init || scope.buildUndefinedNode(); - } - } - - node._let = true; - node.kind = "var"; - return true; -} - -function isLetInitable(node, parent) { - return !t.isFor(parent) || !t.isFor(parent, { left: node }); -} - -function isVar(node, parent, scope) { - return t.isVariableDeclaration(node, { kind: "var" }) && !isLet(node, parent, scope); -} - -function standardizeLets(declars) { - for (let declar of (declars: Array)) { - delete declar._let; - } -} - -export let metadata = { - group: "builtin-advanced" -}; - -export let visitor = { - VariableDeclaration(node, parent, scope, file) { - if (!isLet(node, parent, scope)) return; - - if (isLetInitable(node) && node._tdzThis) { - let nodes = [node]; - - for (let i = 0; i < node.declarations.length; i++) { - let decl = node.declarations[i]; - if (decl.init) { - let assign = t.assignmentExpression("=", decl.id, decl.init); - assign._ignoreBlockScopingTDZ = true; - nodes.push(t.expressionStatement(assign)); - } - decl.init = file.addHelper("temporal-undefined"); - } - - node._blockHoist = 2; - - if (this.isCompletionRecord()) { - // ensure we don't break completion record semantics by returning - // the initialiser of the last declarator - nodes.push(t.expressionStatement(scope.buildUndefinedNode())); - } - - return nodes; - } - }, - - Loop(node, parent, scope, file) { - let init = node.left || node.init; - if (isLet(init, node, scope)) { - t.ensureBlock(node); - node.body._letDeclarators = [init]; - } - - let blockScoping = new BlockScoping(this, this.get("body"), parent, scope, file); - return blockScoping.run(); - }, - - "BlockStatement|Program"(block, parent, scope, file) { - if (!t.isLoop(parent)) { - let blockScoping = new BlockScoping(null, this, parent, scope, file); - blockScoping.run(); - } - } -}; - -function replace(node, parent, scope, remaps) { - let remap = remaps[node.name]; - if (!remap) return; - - let ownBinding = scope.getBindingIdentifier(node.name); - if (ownBinding === remap.binding) { - node.name = remap.uid; - } else { - // scope already has it's own binding that doesn't - // match the one we have a stored replacement for - if (this) this.skip(); - } -} - -let replaceVisitor = { - ReferencedIdentifier: replace, - - AssignmentExpression(node, parent, scope, remaps) { - let ids = this.getBindingIdentifiers(); - for (let name in ids) { - replace(ids[name], node, scope, remaps); - } - }, -}; - -function traverseReplace(node, parent, scope, remaps) { - if (t.isIdentifier(node)) { - replace(node, parent, scope, remaps); - } - - if (t.isAssignmentExpression(node)) { - let ids = t.getBindingIdentifiers(node); - for (let name in ids) { - replace(ids[name], parent, scope, remaps); - } - } - - scope.traverse(node, replaceVisitor, remaps); -} - -let letReferenceBlockVisitor = traverse.visitors.merge([{ - Function(node, parent, scope, state) { - this.traverse(letReferenceFunctionVisitor, state); - return this.skip(); - } -}, tdzVisitor]); - -let letReferenceFunctionVisitor = traverse.visitors.merge([{ - ReferencedIdentifier(node, parent, scope, state) { - let ref = state.letReferences[node.name]; - - // not a part of our scope - if (!ref) return; - - // this scope has a variable with the same name so it couldn't belong - // to our let scope - let localBinding = scope.getBindingIdentifier(node.name); - if (localBinding && localBinding !== ref) return; - - state.closurify = true; - } -}, tdzVisitor]); - -let hoistVarDeclarationsVisitor = { - enter(node, parent, scope, self) { - if (this.isForStatement()) { - if (isVar(node.init, node, scope)) { - let nodes = self.pushDeclar(node.init); - if (nodes.length === 1) { - node.init = nodes[0]; - } else { - node.init = t.sequenceExpression(nodes); - } - } - } else if (this.isFor()) { - if (isVar(node.left, node, scope)) { - self.pushDeclar(node.left); - node.left = node.left.declarations[0].id; - } - } else if (isVar(node, parent, scope)) { - return self.pushDeclar(node).map(t.expressionStatement); - } else if (this.isFunction()) { - return this.skip(); - } - } -}; - -let loopLabelVisitor = { - LabeledStatement(node, parent, scope, state) { - state.innerLabels.push(node.label.name); - } -}; - -let continuationVisitor = { - enter(node, parent, scope, state) { - if (this.isAssignmentExpression() || this.isUpdateExpression()) { - let bindings = this.getBindingIdentifiers(); - for (let name in bindings) { - if (state.outsideReferences[name] !== scope.getBindingIdentifier(name)) continue; - state.reassignments[name] = true; - } - } - } -}; - -function loopNodeTo(node) { - if (t.isBreakStatement(node)) { - return "break"; - } else if (t.isContinueStatement(node)) { - return "continue"; - } -} - -let loopVisitor = { - Loop(node, parent, scope, state) { - let oldIgnoreLabeless = state.ignoreLabeless; - state.ignoreLabeless = true; - this.traverse(loopVisitor, state); - state.ignoreLabeless = oldIgnoreLabeless; - this.skip(); - }, - - Function() { - this.skip(); - }, - - SwitchCase(node, parent, scope, state) { - let oldInSwitchCase = state.inSwitchCase; - state.inSwitchCase = true; - this.traverse(loopVisitor, state); - state.inSwitchCase = oldInSwitchCase; - this.skip(); - }, - - "BreakStatement|ContinueStatement|ReturnStatement"(node, parent, scope, state) { - let replace; - let loopText = loopNodeTo(node); - - if (loopText) { - if (node.label) { - // we shouldn't be transforming this because it exists somewhere inside - if (state.innerLabels.indexOf(node.label.name) >= 0) { - return; - } - - loopText = `${loopText}|${node.label.name}`; - } else { - // we shouldn't be transforming these statements because - // they don't refer to the actual loop we're scopifying - if (state.ignoreLabeless) return; - - // - if (state.inSwitchCase) return; - - // break statements mean something different in this context - if (t.isBreakStatement(node) && t.isSwitchCase(parent)) return; - } - - state.hasBreakContinue = true; - state.map[loopText] = node; - replace = t.stringLiteral(loopText); - } - - if (this.isReturnStatement()) { - state.hasReturn = true; - replace = t.objectExpression([ - t.property("init", t.identifier("v"), node.argument || scope.buildUndefinedNode()) - ]); - } - - if (replace) { - replace = t.returnStatement(replace); - this.skip(); - return t.inherits(replace, node); - } - } -}; - -class BlockScoping { - constructor(loopPath?: NodePath, blockPath: NodePath, parent: Object, scope: Scope, file: File) { - this.parent = parent; - this.scope = scope; - this.file = file; - - this.blockPath = blockPath; - this.block = blockPath.node; - - this.outsideLetReferences = Object.create(null); - this.hasLetReferences = false; - this.letReferences = Object.create(null); - this.body = []; - - if (loopPath) { - this.loopParent = loopPath.parent; - this.loopLabel = t.isLabeledStatement(this.loopParent) && this.loopParent.label; - this.loopPath = loopPath; - this.loop = loopPath.node; - } - } - - /** - * Start the ball rolling. - */ - - run() { - let block = this.block; - if (block._letDone) return; - block._letDone = true; - - let needsClosure = this.getLetReferences(); - - // this is a block within a `Function/Program` so we can safely leave it be - if (t.isFunction(this.parent) || t.isProgram(this.block)) return; - - // we can skip everything - if (!this.hasLetReferences) return; - - if (needsClosure) { - this.wrapClosure(); - } else { - this.remap(); - } - - if (this.loopLabel && !t.isLabeledStatement(this.loopParent)) { - return t.labeledStatement(this.loopLabel, this.loop); - } - } - - remap() { - let hasRemaps = false; - let letRefs = this.letReferences; - let scope = this.scope; - - // alright, so since we aren't wrapping this block in a closure - // we have to check if any of our let variables collide with - // those in upper scopes and then if they do, generate a uid - // for them and replace all references with it - let remaps = Object.create(null); - - for (let key in letRefs) { - // just an Identifier node we collected in `getLetReferences` - // this is the defining identifier of a declaration - let ref = letRefs[key]; - - // todo: could skip this if the colliding binding is in another function - if (scope.parentHasBinding(key) || scope.hasGlobal(key)) { - let uid = scope.generateUidIdentifier(ref.name).name; - ref.name = uid; - - hasRemaps = true; - remaps[key] = remaps[uid] = { - binding: ref, - uid: uid - }; - } - } - - if (!hasRemaps) return; - - // - - let loop = this.loop; - if (loop) { - traverseReplace(loop.right, loop, scope, remaps); - traverseReplace(loop.test, loop, scope, remaps); - traverseReplace(loop.update, loop, scope, remaps); - } - - this.blockPath.traverse(replaceVisitor, remaps); - } - - wrapClosure() { - let block = this.block; - - let outsideRefs = this.outsideLetReferences; - - // remap loop heads with colliding variables - if (this.loop) { - for (let name in outsideRefs) { - let id = outsideRefs[name]; - - if (this.scope.hasGlobal(id.name) || this.scope.parentHasBinding(id.name)) { - delete outsideRefs[id.name]; - delete this.letReferences[id.name]; - - this.scope.rename(id.name); - - this.letReferences[id.name] = id; - outsideRefs[id.name] = id; - } - } - } - - // if we're inside of a for loop then we search to see if there are any - // `break`s, `continue`s, `return`s etc - this.has = this.checkLoop(); - - // hoist let references to retain scope - this.hoistVarDeclarations(); - - // turn outsideLetReferences into an array - let params = values(outsideRefs); - let args = values(outsideRefs); - - // build the closure that we're going to wrap the block with - let fn = t.functionExpression(null, params, t.blockStatement(block.body)); - fn.shadow = true; - - // continuation - this.addContinuations(fn); - - // replace the current block body with the one we're going to build - block.body = this.body; - - let ref = fn; - - if (this.loop) { - ref = this.scope.generateUidIdentifier("loop"); - this.loopPath.insertBefore(t.variableDeclaration("var", [ - t.variableDeclarator(ref, fn) - ])); - } - - // build a call and a unique id that we can assign the return value to - let call = t.callExpression(ref, args); - let ret = this.scope.generateUidIdentifier("ret"); - - // handle generators - let hasYield = traverse.hasType(fn.body, this.scope, "YieldExpression", t.FUNCTION_TYPES); - if (hasYield) { - fn.generator = true; - call = t.yieldExpression(call, true); - } - - // handlers async functions - let hasAsync = traverse.hasType(fn.body, this.scope, "AwaitExpression", t.FUNCTION_TYPES); - if (hasAsync) { - fn.async = true; - call = t.awaitExpression(call); - } - - this.buildClosure(ret, call); - } - - /** - * Push the closure to the body. - */ - - buildClosure(ret: { type: "Identifier" }, call: { type: "CallExpression" }) { - let has = this.has; - if (has.hasReturn || has.hasBreakContinue) { - this.buildHas(ret, call); - } else { - this.body.push(t.expressionStatement(call)); - } - } - - /** - * If any of the outer let variables are reassigned then we need to rename them in - * the closure so we can get direct access to the outer variable to continue the - * iteration with bindings based on each iteration. - * - * Reference: https://github.com/babel/babel/issues/1078 - */ - - addContinuations(fn) { - let state = { - reassignments: {}, - outsideReferences: this.outsideLetReferences - }; - - this.scope.traverse(fn, continuationVisitor, state); - - for (let i = 0; i < fn.params.length; i++) { - let param = fn.params[i]; - if (!state.reassignments[param.name]) continue; - - let newParam = this.scope.generateUidIdentifier(param.name); - fn.params[i] = newParam; - - this.scope.rename(param.name, newParam.name, fn); - - // assign outer reference as it's been modified internally and needs to be retained - fn.body.body.push(t.expressionStatement(t.assignmentExpression("=", param, newParam))); - } - } - - getLetReferences() { - let block = this.block; - - let declarators = block._letDeclarators || []; - - // - for (let i = 0; i < declarators.length; i++) { - let declar = declarators[i]; - extend(this.outsideLetReferences, t.getBindingIdentifiers(declar)); - } - - // - if (block.body) { - for (let i = 0; i < block.body.length; i++) { - let declar = block.body[i]; - if (isLet(declar, block, this.scope)) { - declarators = declarators.concat(declar.declarations); - } - } - } - - // - for (let i = 0; i < declarators.length; i++) { - let declar = declarators[i]; - let keys = t.getBindingIdentifiers(declar); - extend(this.letReferences, keys); - this.hasLetReferences = true; - } - - // no let references so we can just quit - if (!this.hasLetReferences) return; - - // set let references to plain let references - standardizeLets(declarators); - - let state = { - letReferences: this.letReferences, - closurify: false, - file: this.file - }; - - // traverse through this block, stopping on functions and checking if they - // contain any local let references - this.blockPath.traverse(letReferenceBlockVisitor, state); - - return state.closurify; - } - - /** - * If we're inside of a loop then traverse it and check if it has one of - * the following node types `ReturnStatement`, `BreakStatement`, - * `ContinueStatement` and replace it with a return value that we can track - * later on. - */ - - checkLoop(): Object { - let state = { - hasBreakContinue: false, - ignoreLabeless: false, - inSwitchCase: false, - innerLabels: [], - hasReturn: false, - isLoop: !!this.loop, - map: {} - }; - - this.blockPath.traverse(loopLabelVisitor, state); - this.blockPath.traverse(loopVisitor, state); - - return state; - } - - /** - * Hoist all let declarations in this block to before it so they retain scope - * once we wrap everything in a closure. - */ - - hoistVarDeclarations() { - this.blockPath.traverse(hoistVarDeclarationsVisitor, this); - } - - /** - * Turn a `VariableDeclaration` into an array of `AssignmentExpressions` with - * their declarations hoisted to before the closure wrapper. - */ - - pushDeclar(node: { type: "VariableDeclaration" }): Array { - let declars = []; - let names = t.getBindingIdentifiers(node); - for (let name in names) { - declars.push(t.variableDeclarator(names[name])); - } - - this.body.push(t.variableDeclaration(node.kind, declars)); - - let replace = []; - - for (let i = 0; i < node.declarations.length; i++) { - let declar = node.declarations[i]; - if (!declar.init) continue; - - let expr = t.assignmentExpression("=", declar.id, declar.init); - replace.push(t.inherits(expr, declar)); - } - - return replace; - } - - buildHas(ret: { type: "Identifier" }, call: { type: "CallExpression" }) { - let body = this.body; - - body.push(t.variableDeclaration("var", [ - t.variableDeclarator(ret, call) - ])); - - let retCheck; - let has = this.has; - let cases = []; - - if (has.hasReturn) { - // typeof ret === "object" - retCheck = util.template("let-scoping-return", { - RETURN: ret - }); - } - - if (has.hasBreakContinue) { - for (let key in has.map) { - cases.push(t.switchCase(t.stringLiteral(key), [has.map[key]])); - } - - if (has.hasReturn) { - cases.push(t.switchCase(null, [retCheck])); - } - - if (cases.length === 1) { - let single = cases[0]; - body.push(this.file.attachAuxiliaryComment(t.ifStatement( - t.binaryExpression("===", ret, single.test), - single.consequent[0] - ))); - } else { - // https://github.com/babel/babel/issues/998 - for (let i = 0; i < cases.length; i++) { - let caseConsequent = cases[i].consequent[0]; - if (t.isBreakStatement(caseConsequent) && !caseConsequent.label) { - caseConsequent.label = this.loopLabel = this.loopLabel || this.file.scope.generateUidIdentifier("loop"); - } - } - - body.push(this.file.attachAuxiliaryComment(t.switchStatement(ret, cases))); - } - } else { - if (has.hasReturn) { - body.push(this.file.attachAuxiliaryComment(retCheck)); - } - } - } -} diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/index.js b/packages/babel-core/src/transformation/transformers/es6/classes/index.js deleted file mode 100644 index 16b80720f9..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/classes/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import LooseTransformer from "./loose"; -import VanillaTransformer from "./vanilla"; -import * as t from "babel-types"; -import { bare } from "../../../helpers/name-method"; - -export let visitor = { - ClassDeclaration(node) { - return t.variableDeclaration("var", [ - t.variableDeclarator(node.id, t.toExpression(node)) - ]); - }, - - ClassExpression(node, parent, scope, file) { - let inferred = bare(node, parent, scope); - if (inferred) return inferred; - - if (file.isLoose("es6.classes")) { - return new LooseTransformer(this, file).run(); - } else { - return new VanillaTransformer(this, file).run(); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js b/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js deleted file mode 100644 index af8ca86023..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/classes/vanilla.js +++ /dev/null @@ -1,572 +0,0 @@ -import type NodePath from "../../../../traversal/path"; -import type File from "../../../file"; -import memoiseDecorators from "../../../helpers/memoise-decorators"; -import ReplaceSupers from "../../../helpers/replace-supers"; -import * as nameMethod from "../../../helpers/name-method"; -import * as defineMap from "../../../helpers/define-map"; -import * as messages from "babel-messages"; -import * as util from "../../../../util"; -import * as t from "babel-types"; - -const PROPERTY_COLLISION_METHOD_NAME = "__initializeProperties"; - -let collectPropertyReferencesVisitor = { - Identifier: { - enter(node, parent, scope, state) { - if (this.parentPath.isClassProperty({ key: node })) { - return; - } - - if (this.isReferenced() && scope.getBinding(node.name) === state.scope.getBinding(node.name)) { - state.references[node.name] = true; - } - } - } -}; - -let verifyConstructorVisitor = { - MethodDefinition() { - this.skip(); - }, - - Property(node) { - if (node.method) this.skip(); - }, - - CallExpression: { - exit(node, parent, scope, state) { - if (this.get("callee").isSuper()) { - state.hasBareSuper = true; - state.bareSuper = this; - - if (!state.isDerived) { - throw this.errorWithNode("super call is only allowed in derived constructor"); - } - } - } - }, - - "FunctionDeclaration|FunctionExpression"() { - this.skip(); - }, - - ThisExpression(node, parent, scope, state) { - if (state.isDerived && !state.hasBareSuper) { - if (this.inShadow()) { - // https://github.com/babel/babel/issues/1920 - let thisAlias = state.constructorPath.getData("this"); - - if (!thisAlias) { - thisAlias = state.constructorPath.setData( - "this", - state.constructorPath.scope.generateUidIdentifier("this") - ); - } - - return thisAlias; - } else { - throw this.errorWithNode("'this' is not allowed before super()"); - } - } - }, - - Super(node, parent, scope, state) { - if (state.isDerived && !state.hasBareSuper && !this.parentPath.isCallExpression({ callee: node })) { - throw this.errorWithNode("'super.*' is not allowed before super()"); - } - } -}; - -export default class ClassTransformer { - constructor(path: NodePath, file: File) { - this.parent = path.parent; - this.scope = path.scope; - this.node = path.node; - this.path = path; - this.file = file; - - this.clearDescriptors(); - - this.instancePropBody = []; - this.instancePropRefs = {}; - this.staticPropBody = []; - this.body = []; - - this.pushedConstructor = false; - this.pushedInherits = false; - this.hasDecorators = false; - this.isLoose = false; - - // class id - this.classId = this.node.id; - - // this is the name of the binding that will **always** reference the class we've constructed - this.classRef = this.node.id || this.scope.generateUidIdentifier("class"); - - // this is a direct reference to the class we're building, class decorators can shadow the classRef - this.directRef = null; - - this.superName = this.node.superClass || t.identifier("Function"); - this.isDerived = !!this.node.superClass; - } - - run() { - let superName = this.superName; - let file = this.file; - let body = this.body; - - // - - let constructorBody = this.constructorBody = t.blockStatement([]); - this.constructor = this.buildConstructor(); - - // - - let closureParams = []; - let closureArgs = []; - - // - if (this.isDerived) { - closureArgs.push(superName); - - superName = this.scope.generateUidIdentifierBasedOnNode(superName); - closureParams.push(superName); - - this.superName = superName; - } - - // - let decorators = this.node.decorators; - if (decorators) { - // this is so super calls and the decorators have access to the raw function - this.directRef = this.scope.generateUidIdentifier(this.classRef); - } else { - this.directRef = this.classRef; - } - - // - this.buildBody(); - - // make sure this class isn't directly called - constructorBody.body.unshift(t.expressionStatement(t.callExpression(file.addHelper("class-call-check"), [ - t.thisExpression(), - this.directRef - ]))); - - // - this.pushDecorators(); - - body = body.concat(this.staticPropBody); - - if (this.classId) { - // named class with only a constructor - if (body.length === 1) return t.toExpression(body[0]); - } - - // - body.push(t.returnStatement(this.classRef)); - - let container = t.functionExpression(null, closureParams, t.blockStatement(body)); - container.shadow = true; - return t.callExpression(container, closureArgs); - } - - buildConstructor() { - let func = t.functionDeclaration(this.classRef, [], this.constructorBody); - t.inherits(func, this.node); - return func; - } - - pushToMap(node, enumerable, kind = "value") { - let mutatorMap; - if (node.static) { - this.hasStaticDescriptors = true; - mutatorMap = this.staticMutatorMap; - } else { - this.hasInstanceDescriptors = true; - mutatorMap = this.instanceMutatorMap; - } - - let map = defineMap.push(mutatorMap, node, kind, this.file); - - if (enumerable) { - map.enumerable = t.booleanLiteral(true); - } - - if (map.decorators) { - this.hasDecorators = true; - } - } - - /** - * [Please add a description.] - * https://www.youtube.com/watch?v=fWNaR-rxAic - */ - - constructorMeMaybe() { - let hasConstructor = false; - let paths = this.path.get("body.body"); - for (let path of (paths: Array)) { - hasConstructor = path.equals("kind", "constructor"); - if (hasConstructor) break; - } - if (hasConstructor) return; - - let constructor; - if (this.isDerived) { - constructor = util.template("class-derived-default-constructor"); - } else { - constructor = t.functionExpression(null, [], t.blockStatement([])); - } - - this.path.get("body").unshiftContainer("body", t.methodDefinition( - t.identifier("constructor"), - constructor, - "constructor" - )); - } - - buildBody() { - this.constructorMeMaybe(); - this.pushBody(); - this.placePropertyInitializers(); - - if (this.userConstructor) { - let constructorBody = this.constructorBody; - constructorBody.body = constructorBody.body.concat(this.userConstructor.body.body); - t.inherits(this.constructor, this.userConstructor); - t.inherits(constructorBody, this.userConstructor.body); - } - - this.pushDescriptors(); - } - - pushBody() { - let classBodyPaths = this.path.get("body.body"); - - for (let path of (classBodyPaths: Array)) { - let node = path.node; - - if (node.decorators) { - memoiseDecorators(node.decorators, this.scope); - } - - if (t.isMethodDefinition(node)) { - let isConstructor = node.kind === "constructor"; - if (isConstructor) this.verifyConstructor(path); - - let replaceSupers = new ReplaceSupers({ - methodPath: path, - methodNode: node, - objectRef: this.directRef, - superRef: this.superName, - isStatic: node.static, - isLoose: this.isLoose, - scope: this.scope, - file: this.file - }, true); - - replaceSupers.replace(); - - if (isConstructor) { - this.pushConstructor(node, path); - } else { - this.pushMethod(node, path); - } - } else if (t.isClassProperty(node)) { - this.pushProperty(node, path); - } - } - } - - clearDescriptors() { - this.hasInstanceDescriptors = false; - this.hasStaticDescriptors = false; - - this.instanceMutatorMap = {}; - this.staticMutatorMap = {}; - } - - pushDescriptors() { - this.pushInherits(); - - let body = this.body; - - let instanceProps; - let staticProps; - let classHelper = "create-class"; - if (this.hasDecorators) classHelper = "create-decorated-class"; - - if (this.hasInstanceDescriptors) { - instanceProps = defineMap.toClassObject(this.instanceMutatorMap); - } - - if (this.hasStaticDescriptors) { - staticProps = defineMap.toClassObject(this.staticMutatorMap); - } - - if (instanceProps || staticProps) { - if (instanceProps) instanceProps = defineMap.toComputedObjectFromClass(instanceProps); - if (staticProps) staticProps = defineMap.toComputedObjectFromClass(staticProps); - - let nullNode = t.nullLiteral(); - - // (Constructor, instanceDescriptors, staticDescriptors, instanceInitializers, staticInitializers) - let args = [this.classRef, nullNode, nullNode, nullNode, nullNode]; - - if (instanceProps) args[1] = instanceProps; - if (staticProps) args[2] = staticProps; - - if (this.instanceInitializersId) { - args[3] = this.instanceInitializersId; - body.unshift(this.buildObjectAssignment(this.instanceInitializersId)); - } - - if (this.staticInitializersId) { - args[4] = this.staticInitializersId; - body.unshift(this.buildObjectAssignment(this.staticInitializersId)); - } - - let lastNonNullIndex = 0; - for (let i = 0; i < args.length; i++) { - if (args[i] !== nullNode) lastNonNullIndex = i; - } - args = args.slice(0, lastNonNullIndex + 1); - - - body.push(t.expressionStatement( - t.callExpression(this.file.addHelper(classHelper), args) - )); - } - - this.clearDescriptors(); - } - - buildObjectAssignment(id) { - return t.variableDeclaration("var", [ - t.variableDeclarator(id, t.objectExpression([])) - ]); - } - - placePropertyInitializers() { - let body = this.instancePropBody; - if (!body.length) return; - - if (this.hasPropertyCollision()) { - let call = t.expressionStatement(t.callExpression( - t.memberExpression(t.thisExpression(), t.identifier(PROPERTY_COLLISION_METHOD_NAME)), - [] - )); - - this.pushMethod(t.methodDefinition( - t.identifier(PROPERTY_COLLISION_METHOD_NAME), - t.functionExpression(null, [], t.blockStatement(body)) - ), null, true); - - if (this.isDerived) { - this.bareSuper.insertAfter(call); - } else { - this.constructorBody.body.unshift(call); - } - } else { - if (this.isDerived) { - this.bareSuper.insertAfter(body); - } else { - this.constructorBody.body = body.concat(this.constructorBody.body); - } - } - } - - hasPropertyCollision(): boolean { - if (this.userConstructorPath) { - for (let name in this.instancePropRefs) { - if (this.userConstructorPath.scope.hasOwnBinding(name)) { - return true; - } - } - } - - return false; - } - - verifyConstructor(path: NodePath) { - let state = { - constructorPath: path.get("value"), - hasBareSuper: false, - bareSuper: null, - isDerived: this.isDerived, - file: this.file, - }; - - state.constructorPath.traverse(verifyConstructorVisitor, state); - - let thisAlias = state.constructorPath.getData("this"); - if (thisAlias && state.bareSuper) { - state.bareSuper.insertAfter(t.variableDeclaration("var", [ - t.variableDeclarator(thisAlias, t.thisExpression()) - ])); - } - - this.bareSuper = state.bareSuper; - - if (!state.hasBareSuper && this.isDerived) { - throw path.errorWithNode("Derived constructor must call super()"); - } - } - - /** - * Push a method to its respective mutatorMap. - */ - - pushMethod(node: { type: "MethodDefinition" }, path?: NodePath, allowedIllegal?) { - if (!allowedIllegal && t.isLiteral(t.toComputedKey(node), { value: PROPERTY_COLLISION_METHOD_NAME })) { - throw this.file.errorWithNode(node, messages.get("illegalMethodName", PROPERTY_COLLISION_METHOD_NAME)); - } - - if (node.kind === "method") { - nameMethod.property(node, this.file, path ? path.get("value").scope : this.scope); - if (this._processMethod(node)) return; - } - - this.pushToMap(node); - } - - _processMethod() { - return false; - } - - pushProperty(node: { type: "ClassProperty" }, path: NodePath) { - path.traverse(collectPropertyReferencesVisitor, { - references: this.instancePropRefs, - scope: this.scope - }); - - if (node.decorators) { - let body = []; - if (node.value) { - body.push(t.returnStatement(node.value)); - node.value = t.functionExpression(null, [], t.blockStatement(body)); - } else { - node.value = t.nullLiteral(); - } - this.pushToMap(node, true, "initializer"); - - let initializers; - let target; - if (node.static) { - initializers = this.staticInitializersId = this.staticInitializersId || this.scope.generateUidIdentifier("staticInitializers"); - body = this.staticPropBody; - target = this.classRef; - } else { - initializers = this.instanceInitializersId = this.instanceInitializersId || this.scope.generateUidIdentifier("instanceInitializers"); - body = this.instancePropBody; - target = t.thisExpression(); - } - - body.push(t.expressionStatement( - t.callExpression(this.file.addHelper("define-decorated-property-descriptor"), [ - target, - t.literal(node.key.name), - initializers - ]) - )); - } else { - if (!node.value && !node.decorators) return; - - if (node.static) { - // can just be added to the static map - this.pushToMap(node, true); - } else if (node.value) { - // add this to the instancePropBody which will be added after the super call in a derived constructor - // or at the start of a constructor for a non-derived constructor - this.instancePropBody.push(t.expressionStatement( - t.assignmentExpression("=", t.memberExpression(t.thisExpression(), node.key), node.value) - )); - } - } - } - - /** - * Replace the constructor body of our class. - */ - - pushConstructor(method: { type: "MethodDefinition" }, path: NodePath) { - // https://github.com/babel/babel/issues/1077 - let fnPath = path.get("value"); - if (fnPath.scope.hasOwnBinding(this.classRef.name)) { - fnPath.scope.rename(this.classRef.name); - } - - let construct = this.constructor; - let fn = method.value; - - this.userConstructorPath = fnPath; - this.userConstructor = fn; - this.hasConstructor = true; - - t.inheritsComments(construct, method); - - construct._ignoreUserWhitespace = true; - construct.params = fn.params; - - t.inherits(construct.body, fn.body); - - // push constructor to body - this._pushConstructor(); - } - - _pushConstructor() { - if (this.pushedConstructor) return; - this.pushedConstructor = true; - - // we haven't pushed any descriptors yet - if (this.hasInstanceDescriptors || this.hasStaticDescriptors) { - this.pushDescriptors(); - } - - this.body.push(this.constructor); - - this.pushInherits(); - } - - /** - * Push inherits helper to body. - */ - - pushInherits() { - if (!this.isDerived || this.pushedInherits) return; - - // Unshift to ensure that the constructor inheritance is set up before - // any properties can be assigned to the prototype. - this.pushedInherits = true; - this.body.unshift(t.expressionStatement(t.callExpression( - this.file.addHelper("inherits"), - [this.classRef, this.superName] - ))); - } - - /** - * Push decorators to body. - */ - - pushDecorators() { - let decorators = this.node.decorators; - if (!decorators) return; - - this.body.push(t.variableDeclaration("var", [ - t.variableDeclarator(this.directRef, this.classRef) - ])); - - // reverse the decorators so we execute them in the right order - decorators = decorators.reverse(); - - for (let decorator of (decorators: Array)) { - let decoratorNode = util.template("class-decorator", { - DECORATOR: decorator.expression, - CLASS_REF: this.classRef - }, true); - decoratorNode.expression._ignoreModulesRemap = true; - this.body.push(decoratorNode); - } - } -} diff --git a/packages/babel-core/src/transformation/transformers/es6/for-of.js b/packages/babel-core/src/transformation/transformers/es6/for-of.js deleted file mode 100644 index de224dc727..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/for-of.js +++ /dev/null @@ -1,177 +0,0 @@ -import * as messages from "babel-messages"; -import * as util from "../../../util"; -import * as t from "babel-types"; - -export let visitor = { - ForOfStatement(node, parent, scope, file) { - if (this.get("right").isArrayExpression()) { - return _ForOfStatementArray.call(this, node, scope, file); - } - - let callback = spec; - if (file.isLoose("es6.forOf")) callback = loose; - - let build = callback(node, parent, scope, file); - let declar = build.declar; - let loop = build.loop; - let block = loop.body; - - // ensure that it's a block so we can take all its statements - this.ensureBlock(); - - // add the value declaration to the new loop body - if (declar) { - block.body.push(declar); - } - - // push the rest of the original loop body onto our new body - block.body = block.body.concat(node.body.body); - - t.inherits(loop, node); - t.inherits(loop.body, node.body); - - if (build.replaceParent) { - this.parentPath.replaceWithMultiple(build.node); - this.dangerouslyRemove(); - } else { - return build.node; - } - } -}; - -export function _ForOfStatementArray(node, scope) { - let nodes = []; - let right = node.right; - - if (!t.isIdentifier(right) || !scope.hasBinding(right.name)) { - let uid = scope.generateUidIdentifier("arr"); - nodes.push(t.variableDeclaration("var", [ - t.variableDeclarator(uid, right) - ])); - right = uid; - } - - let iterationKey = scope.generateUidIdentifier("i"); - - let loop = util.template("for-of-array", { - BODY: node.body, - KEY: iterationKey, - ARR: right - }); - - t.inherits(loop, node); - t.ensureBlock(loop); - - let iterationValue = t.memberExpression(right, iterationKey, true); - - let left = node.left; - if (t.isVariableDeclaration(left)) { - left.declarations[0].init = iterationValue; - loop.body.body.unshift(left); - } else { - loop.body.body.unshift(t.expressionStatement(t.assignmentExpression("=", left, iterationValue))); - } - - if (this.parentPath.isLabeledStatement()) { - loop = t.labeledStatement(this.parentPath.node.label, loop); - } - - nodes.push(loop); - - return nodes; -} - -let loose = function (node, parent, scope, file) { - let left = node.left; - let declar, id; - - if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { - // for (i of test), for ({ i } of test) - id = left; - } else if (t.isVariableDeclaration(left)) { - // for (let i of test) - id = scope.generateUidIdentifier("ref"); - declar = t.variableDeclaration(left.kind, [ - t.variableDeclarator(left.declarations[0].id, id) - ]); - } else { - throw file.errorWithNode(left, messages.get("unknownForHead", left.type)); - } - - let iteratorKey = scope.generateUidIdentifier("iterator"); - let isArrayKey = scope.generateUidIdentifier("isArray"); - - let loop = util.template("for-of-loose", { - LOOP_OBJECT: iteratorKey, - IS_ARRAY: isArrayKey, - OBJECT: node.right, - INDEX: scope.generateUidIdentifier("i"), - ID: id - }); - - if (!declar) { - // no declaration so we need to remove the variable declaration at the top of - // the for-of-loose template - loop.body.body.shift(); - } - - // - - return { - declar: declar, - node: loop, - loop: loop - }; -}; - -let spec = function (node, parent, scope, file) { - let left = node.left; - let declar; - - let stepKey = scope.generateUidIdentifier("step"); - let stepValue = t.memberExpression(stepKey, t.identifier("value")); - - if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { - // for (i of test), for ({ i } of test) - declar = t.expressionStatement(t.assignmentExpression("=", left, stepValue)); - } else if (t.isVariableDeclaration(left)) { - // for (let i of test) - declar = t.variableDeclaration(left.kind, [ - t.variableDeclarator(left.declarations[0].id, stepValue) - ]); - } else { - throw file.errorWithNode(left, messages.get("unknownForHead", left.type)); - } - - // - - let iteratorKey = scope.generateUidIdentifier("iterator"); - - let template = util.template("for-of", { - ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier("didIteratorError"), - ITERATOR_COMPLETION: scope.generateUidIdentifier("iteratorNormalCompletion"), - ITERATOR_ERROR_KEY: scope.generateUidIdentifier("iteratorError"), - ITERATOR_KEY: iteratorKey, - STEP_KEY: stepKey, - OBJECT: node.right, - BODY: null - }); - - let isLabeledParent = t.isLabeledStatement(parent); - - let tryBody = template[3].block.body; - let loop = tryBody[0]; - - if (isLabeledParent) { - tryBody[0] = t.labeledStatement(parent.label, loop); - } - - // - - return { - replaceParent: isLabeledParent, - declar: declar, - loop: loop, - node: template - }; -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/modules.js b/packages/babel-core/src/transformation/transformers/es6/modules.js deleted file mode 100644 index afde8d1f6a..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/modules.js +++ /dev/null @@ -1,77 +0,0 @@ -import * as t from "babel-types"; - -function keepBlockHoist(node, nodes) { - if (node._blockHoist) { - for (let i = 0; i < nodes.length; i++) { - nodes[i]._blockHoist = node._blockHoist; - } - } -} - -export let metadata = { - group: "builtin-modules" -}; - -export let visitor = { - ImportDeclaration(node, parent, scope, file) { - // flow type - if (node.importKind === "type" || node.importKind === "typeof") return; - - let nodes = []; - - if (node.specifiers.length) { - for (let specifier of (node.specifiers: Array)) { - file.moduleFormatter.importSpecifier(specifier, node, nodes, scope); - } - } else { - file.moduleFormatter.importDeclaration(node, nodes, scope); - } - - if (nodes.length === 1) { - // inherit `_blockHoist` - this is for `_blockHoist` in File.prototype.addImport - nodes[0]._blockHoist = node._blockHoist; - } - - return nodes; - }, - - ExportAllDeclaration(node, parent, scope, file) { - let nodes = []; - file.moduleFormatter.exportAllDeclaration(node, nodes, scope); - keepBlockHoist(node, nodes); - return nodes; - }, - - ExportDefaultDeclaration(node, parent, scope, file) { - let nodes = []; - file.moduleFormatter.exportDeclaration(node, nodes, scope); - keepBlockHoist(node, nodes); - return nodes; - }, - - ExportNamedDeclaration(node, parent, scope, file) { - // flow type - if (this.get("declaration").isTypeAlias()) return; - - let nodes = []; - - if (node.declaration) { - // make sure variable exports have an initializer - // this is done here to avoid duplicating it in the module formatters - if (t.isVariableDeclaration(node.declaration)) { - let declar = node.declaration.declarations[0]; - declar.init = declar.init || scope.buildUndefinedNode(); - } - - file.moduleFormatter.exportDeclaration(node, nodes, scope); - } else if (node.specifiers) { - for (let i = 0; i < node.specifiers.length; i++) { - file.moduleFormatter.exportSpecifier(node.specifiers[i], node, nodes, scope); - } - } - - keepBlockHoist(node, nodes); - - return nodes; - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/object-super.js b/packages/babel-core/src/transformation/transformers/es6/object-super.js deleted file mode 100644 index b4e6a9006c..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/object-super.js +++ /dev/null @@ -1,35 +0,0 @@ -import ReplaceSupers from "../../helpers/replace-supers"; -import * as t from "babel-types"; - -function Property(path, node, scope, getObjectRef, file) { - if (!node.method && node.kind === "init") return; - if (!t.isFunction(node.value)) return; - - let replaceSupers = new ReplaceSupers({ - getObjectRef: getObjectRef, - methodNode: node, - methodPath: path, - isStatic: true, - scope: scope, - file: file - }); - - replaceSupers.replace(); -} - -export let visitor = { - ObjectExpression(node, parent, scope, file) { - let objectRef; - let getObjectRef = () => objectRef = objectRef || scope.generateUidIdentifier("obj"); - - let propPaths = this.get("properties"); - for (let i = 0; i < node.properties.length; i++) { - Property(propPaths[i], node.properties[i], scope, getObjectRef, file); - } - - if (objectRef) { - scope.push({ id: objectRef }); - return t.assignmentExpression("=", objectRef, node); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/default.js b/packages/babel-core/src/transformation/transformers/es6/parameters/default.js deleted file mode 100644 index 4a49aee048..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/default.js +++ /dev/null @@ -1,120 +0,0 @@ -import callDelegate from "../../../helpers/call-delegate"; -import getFunctionArity from "../../../helpers/get-function-arity"; -import * as util from "../../../../util"; -import * as t from "babel-types"; - -let hasDefaults = function (node) { - for (let i = 0; i < node.params.length; i++) { - if (!t.isIdentifier(node.params[i])) return true; - } - return false; -}; - -let iifeVisitor = { - ReferencedIdentifier(node, parent, scope, state) { - if (node.name !== "eval") { - if (!state.scope.hasOwnBinding(node.name)) return; - if (state.scope.bindingIdentifierEquals(node.name, node)) return; - } - - state.iife = true; - this.stop(); - } -}; - -export let visitor = { - Function(node, parent, scope, file) { - if (!hasDefaults(node)) return; - - // ensure it's a block, useful for arrow functions - this.ensureBlock(); - - let state = { - iife: false, - scope: scope - }; - - let body = []; - - // - let argsIdentifier = t.identifier("arguments"); - argsIdentifier._shadowedFunctionLiteral = this; - - // push a default parameter definition - function pushDefNode(left, right, i) { - let defNode; - if (exceedsLastNonDefault(i) || t.isPattern(left) || file.transformers["es6.spec.blockScoping"].canTransform()) { - defNode = util.template("default-parameter", { - VARIABLE_NAME: left, - DEFAULT_VALUE: right, - ARGUMENT_KEY: t.numberLiteral(i), - ARGUMENTS: argsIdentifier - }, true); - } else { - defNode = util.template("default-parameter-assign", { - VARIABLE_NAME: left, - DEFAULT_VALUE: right - }, true); - } - defNode._blockHoist = node.params.length - i; - body.push(defNode); - } - - // check if an index exceeds the functions arity - function exceedsLastNonDefault(i) { - return i + 1 > lastNonDefaultParam; - } - - // - let lastNonDefaultParam = getFunctionArity(node); - - // - let params = this.get("params"); - for (let i = 0; i < params.length; i++) { - let param = params[i]; - - if (!param.isAssignmentPattern()) { - if (!param.isIdentifier()) { - param.traverse(iifeVisitor, state); - } - - //if (file.transformers["es6.spec.blockScoping"].canTransform() && param.isIdentifier()) { - // pushDefNode(param.node, scope.buildUndefinedNode(), i); - //} - - continue; - } - - let left = param.get("left"); - let right = param.get("right"); - - if (exceedsLastNonDefault(i) || left.isPattern()) { - let placeholder = scope.generateUidIdentifier("x"); - placeholder._isDefaultPlaceholder = true; - node.params[i] = placeholder; - } else { - node.params[i] = left.node; - } - - if (!state.iife) { - if (right.isIdentifier() && scope.hasOwnBinding(right.node.name)) { - state.iife = true; - } else { - right.traverse(iifeVisitor, state); - } - } - - pushDefNode(left.node, right.node, i); - } - - // we need to cut off all trailing default parameters - node.params = node.params.slice(0, lastNonDefaultParam); - - if (state.iife) { - body.push(callDelegate(node, scope)); - node.body = t.blockStatement(body); - } else { - node.body.body = body.concat(node.body.body); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/index.js b/packages/babel-core/src/transformation/transformers/es6/parameters/index.js deleted file mode 100644 index 6e154173aa..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/index.js +++ /dev/null @@ -1,10 +0,0 @@ -import { visitors } from "babel-traverse"; - -import * as def from "./default"; -import * as rest from "./rest"; - -export let metadata = { - group: "builtin-advanced" -}; - -export let visitor = visitors.merge([rest.visitor, def.visitor]); diff --git a/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js b/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js deleted file mode 100644 index bffc2e6dff..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/regex.sticky.js +++ /dev/null @@ -1,12 +0,0 @@ -import * as regex from "../../helpers/regex"; -import * as t from "babel-types"; - -export let visitor = { - RegexLiteral(node) { - if (!regex.is(node, "y")) return; - return t.newExpression(t.identifier("RegExp"), [ - t.stringLiteral(node.pattern), - t.stringLiteral(node.flags) - ]); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js b/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js deleted file mode 100644 index cb7266940f..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/regex.unicode.js +++ /dev/null @@ -1,10 +0,0 @@ -import rewritePattern from "regexpu/rewrite-pattern"; -import * as regex from "../../helpers/regex"; - -export let visitor = { - RegexLiteral(node) { - if (!regex.is(node, "u")) return; - node.regex.pattern = rewritePattern(node.pattern, node.flags); - regex.pullFlag(node, "u"); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js b/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js deleted file mode 100644 index 48acf05eca..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/spec.arrow-functions.js +++ /dev/null @@ -1,25 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - group: "builtin-pre", - optional: true -}; - -export let visitor = { - ArrowFunctionExpression(node, parent, scope, file) { - if (node.shadow) return; - node.shadow = { this: false }; - - let boundThis = t.thisExpression(); - boundThis._forceShadow = this; - - // make sure that arrow function won't be instantiated - t.ensureBlock(node); - this.get("body").unshiftContainer("body", t.expressionStatement(t.callExpression(file.addHelper("new-arrow-check"), [ - t.thisExpression(), - boundThis - ]))); - - return t.callExpression(t.memberExpression(node, t.identifier("bind")), [t.thisExpression()]); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.modules.js b/packages/babel-core/src/transformation/transformers/es6/spec.modules.js deleted file mode 100644 index a51e2ea9ea..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/spec.modules.js +++ /dev/null @@ -1,20 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - group: "builtin-pre", - optional: true -}; - -export let visitor = { - Program() { - let id = this.scope.generateUidIdentifier("null"); - this.unshiftContainer("body", [ - t.variableDeclaration("var", [ - t.variableDeclarator(id, t.nullLiteral()) - ]), - t.exportNamedDeclaration(null, [ - t.exportSpecifier(id, t.identifier("__proto__")) - ]) - ]); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js b/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js deleted file mode 100644 index 73826474b8..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/spec.symbols.js +++ /dev/null @@ -1,43 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - optional: true -}; - -export let visitor = { - UnaryExpression(node, parent, scope, file) { - if (node._ignoreSpecSymbols) return; - - if (this.parentPath.isBinaryExpression() && t.EQUALITY_BINARY_OPERATORS.indexOf(parent.operator) >= 0) { - // optimise `typeof foo === "string"` since we can determine that they'll never need to handle symbols - let opposite = this.getOpposite(); - if (opposite.isLiteral() && opposite.node.value !== "symbol" && opposite.node.value !== "object") return; - } - - if (node.operator === "typeof") { - let call = t.callExpression(file.addHelper("typeof"), [node.argument]); - if (this.get("argument").isIdentifier()) { - let undefLiteral = t.stringLiteral("undefined"); - let unary = t.unaryExpression("typeof", node.argument); - unary._ignoreSpecSymbols = true; - return t.conditionalExpression( - t.binaryExpression("===", unary, undefLiteral), - undefLiteral, - call - ); - } else { - return call; - } - } - }, - - BinaryExpression(node, parent, scope, file) { - if (node.operator === "instanceof") { - return t.callExpression(file.addHelper("instanceof"), [node.left, node.right]); - } - }, - - "VariableDeclaration|FunctionDeclaration"(node) { - if (node._generated) this.skip(); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js b/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js deleted file mode 100644 index 798718552b..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/spec.template-literals.js +++ /dev/null @@ -1,16 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - optional: true, - group: "builtin-pre" -}; - -export let visitor = { - TemplateLiteral(node, parent) { - if (t.isTaggedTemplateExpression(parent)) return; - - for (let i = 0; i < node.expressions.length; i++) { - node.expressions[i] = t.callExpression(t.identifier("String"), [node.expressions[i]]); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es6/tail-call.js b/packages/babel-core/src/transformation/transformers/es6/tail-call.js deleted file mode 100644 index 8400873e22..0000000000 --- a/packages/babel-core/src/transformation/transformers/es6/tail-call.js +++ /dev/null @@ -1,401 +0,0 @@ -import reduceRight from "lodash/collection/reduceRight"; -import * as messages from "babel-messages"; -import flatten from "lodash/array/flatten"; -import * as util from "../../../util"; -import map from "lodash/collection/map"; -import * as t from "babel-types"; - -export let metadata = { - group: "builtin-trailing" -}; - -export let visitor = { - Function(node, parent, scope, file) { - if (node.generator || node.async) return; - let tailCall = new TailCallTransformer(this, scope, file); - tailCall.run(); - } -}; - -function returnBlock(expr) { - return t.blockStatement([t.returnStatement(expr)]); -} - -let visitor = { - enter(node, parent) { - if (t.isTryStatement(parent)) { - if (node === parent.block) { - this.skip(); - } else if (parent.finalizer && node !== parent.finalizer) { - this.skip(); - } - } - }, - - ReturnStatement(node, parent, scope, state) { - return state.subTransform(node.argument); - }, - - Function() { - this.skip(); - }, - - VariableDeclaration(node, parent, scope, state) { - state.vars.push(node); - }, - - ThisExpression(node, parent, scope, state) { - if (!state.isShadowed) { - state.needsThis = true; - state.thisPaths.push(this); - } - }, - - ReferencedIdentifier(node, parent, scope, state) { - if (node.name === "arguments" && (!state.isShadowed || node._shadowedFunctionLiteral)) { - state.needsArguments = true; - state.argumentsPaths.push(this); - } - } -}; - -class TailCallTransformer { - constructor(path, scope, file) { - this.hasTailRecursion = false; - - this.needsArguments = false; - this.argumentsPaths = []; - this.setsArguments = false; - - this.needsThis = false; - this.thisPaths = []; - - this.isShadowed = path.isArrowFunctionExpression() || path.is("shadow"); - this.ownerId = path.node.id; - this.vars = []; - - this.scope = scope; - this.path = path; - this.file = file; - this.node = path.node; - } - - getArgumentsId() { - return this.argumentsId = this.argumentsId || this.scope.generateUidIdentifier("arguments"); - } - - getThisId() { - return this.thisId = this.thisId || this.scope.generateUidIdentifier("this"); - } - - getLeftId() { - return this.leftId = this.leftId || this.scope.generateUidIdentifier("left"); - } - - getFunctionId() { - return this.functionId = this.functionId || this.scope.generateUidIdentifier("function"); - } - - getAgainId() { - return this.againId = this.againId || this.scope.generateUidIdentifier("again"); - } - - getParams() { - let params = this.params; - - if (!params) { - params = this.node.params; - this.paramDecls = []; - - for (let i = 0; i < params.length; i++) { - let param = params[i]; - if (!param._isDefaultPlaceholder) { - this.paramDecls.push(t.variableDeclarator( - param, - params[i] = this.scope.generateUidIdentifier("x") - )); - } - } - } - - return this.params = params; - } - - hasDeopt() { - // check if the ownerId has been reassigned, if it has then it's not safe to - // perform optimisations - let ownerIdInfo = this.scope.getBinding(this.ownerId.name); - return ownerIdInfo && !ownerIdInfo.constant; - } - - run() { - let node = this.node; - - // only tail recursion can be optimized as for now, so we can skip anonymous - // functions entirely - let ownerId = this.ownerId; - if (!ownerId) return; - - // traverse the function and look for tail recursion - this.path.traverse(visitor, this); - - // has no tail call recursion - if (!this.hasTailRecursion) return; - - // the function binding isn't constant so we can't be sure that it's the same function :( - if (this.hasDeopt()) { - this.file.log.deopt(node, messages.get("tailCallReassignmentDeopt")); - return; - } - - // - - let body = this.path.ensureBlock().body; - - for (let i = 0; i < body.length; i++) { - let bodyNode = body[i]; - if (!t.isFunctionDeclaration(bodyNode)) continue; - - bodyNode = body[i] = t.variableDeclaration("var", [ - t.variableDeclarator(bodyNode.id, t.toExpression(bodyNode)) - ]); - bodyNode._blockHoist = 2; - } - - if (this.vars.length > 0) { - let declarations = flatten(map(this.vars, function (decl) { - return decl.declarations; - })); - - let assignment = reduceRight(declarations, function (expr, decl) { - return t.assignmentExpression("=", decl.id, expr); - }, this.scope.buildUndefinedNode()); - - let statement = t.expressionStatement(assignment); - statement._blockHoist = Infinity; - body.unshift(statement); - } - - let paramDecls = this.paramDecls; - if (paramDecls.length > 0) { - let paramDecl = t.variableDeclaration("var", paramDecls); - paramDecl._blockHoist = Infinity; - body.unshift(paramDecl); - } - - body.unshift(t.expressionStatement( - t.assignmentExpression("=", this.getAgainId(), t.booleanLiteral(false))) - ); - - node.body = util.template("tail-call-body", { - FUNCTION_ID: this.getFunctionId(), - AGAIN_ID: this.getAgainId(), - BLOCK: node.body - }); - - let topVars = []; - - if (this.needsThis) { - for (let path of (this.thisPaths: Array)) { - path.replaceWith(this.getThisId()); - } - - topVars.push(t.variableDeclarator(this.getThisId(), t.thisExpression())); - } - - if (this.needsArguments || this.setsArguments) { - for (let path of (this.argumentsPaths: Array)) { - path.replaceWith(this.argumentsId); - } - - let decl = t.variableDeclarator(this.argumentsId); - if (this.argumentsId) { - decl.init = t.identifier("arguments"); - decl.init._shadowedFunctionLiteral = this.path; - } - topVars.push(decl); - } - - let leftId = this.leftId; - if (leftId) { - topVars.push(t.variableDeclarator(leftId)); - } - - if (topVars.length > 0) { - node.body.body.unshift(t.variableDeclaration("var", topVars)); - } - } - - subTransform(node) { - if (!node) return; - - let handler = this[`subTransform${node.type}`]; - if (handler) return handler.call(this, node); - } - - subTransformConditionalExpression(node) { - let callConsequent = this.subTransform(node.consequent); - let callAlternate = this.subTransform(node.alternate); - if (!callConsequent && !callAlternate) { - return; - } - - // if ternary operator had tail recursion in value, convert to optimized if-statement - node.type = "IfStatement"; - node.consequent = callConsequent ? t.toBlock(callConsequent) : returnBlock(node.consequent); - - if (callAlternate) { - node.alternate = t.isIfStatement(callAlternate) ? callAlternate : t.toBlock(callAlternate); - } else { - node.alternate = returnBlock(node.alternate); - } - - return [node]; - } - - subTransformLogicalExpression(node) { - // only call in right-value of can be optimized - let callRight = this.subTransform(node.right); - if (!callRight) return; - - // cache left value as it might have side-effects - let leftId = this.getLeftId(); - let testExpr = t.assignmentExpression( - "=", - leftId, - node.left - ); - - if (node.operator === "&&") { - testExpr = t.unaryExpression("!", testExpr); - } - - return [t.ifStatement(testExpr, returnBlock(leftId))].concat(callRight); - } - - subTransformSequenceExpression(node) { - let seq = node.expressions; - - // only last element can be optimized - let lastCall = this.subTransform(seq[seq.length - 1]); - if (!lastCall) { - return; - } - - // remove converted expression from sequence - // and convert to regular expression if needed - if (--seq.length === 1) { - node = seq[0]; - } - - return [t.expressionStatement(node)].concat(lastCall); - } - - subTransformCallExpression(node) { - let callee = node.callee; - let thisBinding, args; - - if (t.isMemberExpression(callee, { computed: false }) && t.isIdentifier(callee.property)) { - switch (callee.property.name) { - case "call": - args = t.arrayExpression(node.arguments.slice(1)); - break; - - case "apply": - args = node.arguments[1] || this.scope.buildUndefinedNode(); - this.needsArguments = true; - break; - - default: - return; - } - - thisBinding = node.arguments[0]; - callee = callee.object; - } - - // only tail recursion can be optimized as for now - if (!t.isIdentifier(callee) || !this.scope.bindingIdentifierEquals(callee.name, this.ownerId)) { - return; - } - - this.hasTailRecursion = true; - - if (this.hasDeopt()) return; - - let body = []; - - if (this.needsThis && !t.isThisExpression(thisBinding)) { - body.push(t.expressionStatement(t.assignmentExpression( - "=", - this.getThisId(), - thisBinding || this.scope.buildUndefinedNode() - ))); - } - - if (!args) { - args = t.arrayExpression(node.arguments); - } - - let argumentsId = this.getArgumentsId(); - let params = this.getParams(); - - if (this.needsArguments) { - body.push(t.expressionStatement(t.assignmentExpression( - "=", - argumentsId, - args - ))); - } - - if (t.isArrayExpression(args)) { - let elems = args.elements; - - // pad out the args so all the function args are reset - https://github.com/babel/babel/issues/1938 - while (elems.length < params.length) { - elems.push(this.scope.buildUndefinedNode()); - } - - for (let i = 0; i < elems.length; i++) { - let param = params[i]; - let elem = elems[i]; - - if (param && !param._isDefaultPlaceholder) { - elems[i] = t.assignmentExpression("=", param, elem); - } else { - // exceeds parameters but push it anyway to ensure correct execution - } - } - - if (!this.needsArguments) { - for (let elem of (elems: Array)) { - // only push expressions that we really need, this will skip pure arguments that exceed the - // parameter length of the current function - if (!this.scope.isPure(elem)) { - body.push(t.expressionStatement(elem)); - } - } - } - } else { - this.setsArguments = true; - for (let i = 0; i < params.length; i++) { - let param = params[i]; - if (!param._isDefaultPlaceholder) { - body.push(t.expressionStatement(t.assignmentExpression( - "=", - param, - t.memberExpression(argumentsId, t.numberLiteral(i), true) - ))); - } - } - } - - body.push(t.expressionStatement( - t.assignmentExpression("=", this.getAgainId(), t.booleanLiteral(true)) - )); - - body.push(t.continueStatement(this.getFunctionId())); - - return body; - } -} diff --git a/packages/babel-core/src/transformation/transformers/es7/async-functions.js b/packages/babel-core/src/transformation/transformers/es7/async-functions.js deleted file mode 100644 index 18eb858c21..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/async-functions.js +++ /dev/null @@ -1,3 +0,0 @@ -export let metadata = { - stage: 2 -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/class-properties.js b/packages/babel-core/src/transformation/transformers/es7/class-properties.js deleted file mode 100644 index 6d65970ef0..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/class-properties.js +++ /dev/null @@ -1,4 +0,0 @@ -export let metadata = { - stage: 0, - dependencies: ["es6.classes"] -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/comprehensions.js b/packages/babel-core/src/transformation/transformers/es7/comprehensions.js deleted file mode 100644 index b9dd2a9e8e..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/comprehensions.js +++ /dev/null @@ -1,57 +0,0 @@ -import buildComprehension from "../../helpers/build-comprehension"; -import traverse from "babel-traverse"; -import * as util from "../../../util"; -import * as t from "babel-types"; - -export let metadata = { - stage: 0 -}; - -export let visitor = { - ComprehensionExpression(node, parent, scope) { - let callback = array; - if (node.generator) callback = generator; - return callback(node, parent, scope); - } -}; - -function generator(node) { - let body = []; - let container = t.functionExpression(null, [], t.blockStatement(body), true); - container.shadow = true; - - body.push(buildComprehension(node, function () { - return t.expressionStatement(t.yieldExpression(node.body)); - })); - - return t.callExpression(container, []); -} - -function array(node, parent, scope) { - let uid = scope.generateUidIdentifierBasedOnNode(parent); - - let container = util.template("array-comprehension-container", { - KEY: uid - }); - container.callee.shadow = true; - - let block = container.callee.body; - let body = block.body; - - if (traverse.hasType(node, scope, "YieldExpression", t.FUNCTION_TYPES)) { - container.callee.generator = true; - container = t.yieldExpression(container, true); - } - - let returnStatement = body.pop(); - - body.push(buildComprehension(node, function () { - return util.template("array-push", { - STATEMENT: node.body, - KEY: uid - }, true); - })); - body.push(returnStatement); - - return container; -} diff --git a/packages/babel-core/src/transformation/transformers/es7/decorators.js b/packages/babel-core/src/transformation/transformers/es7/decorators.js deleted file mode 100644 index e81465ee44..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/decorators.js +++ /dev/null @@ -1,44 +0,0 @@ -import memoiseDecorators from "../../helpers/memoise-decorators"; -import * as defineMap from "../../helpers/define-map"; -import * as t from "babel-types"; - -export let metadata = { - dependencies: ["es6.classes"], - optional: true, - stage: 1 -}; - -export let visitor = { - ObjectExpression(node, parent, scope, file) { - let hasDecorators = false; - for (let i = 0; i < node.properties.length; i++) { - let prop = node.properties[i]; - if (prop.decorators) { - hasDecorators = true; - break; - } - } - if (!hasDecorators) return; - - let mutatorMap = {}; - - for (let i = 0; i < node.properties.length; i++) { - let prop = node.properties[i]; - if (prop.decorators) memoiseDecorators(prop.decorators, scope); - - - if (prop.kind === "init" && !prop.method) { - prop.kind = ""; - prop.value = t.functionExpression(null, [], t.blockStatement([ - t.returnStatement(prop.value) - ])); - } - - defineMap.push(mutatorMap, prop, "initializer", file); - } - - let obj = defineMap.toClassObject(mutatorMap); - obj = defineMap.toComputedObjectFromClass(obj); - return t.callExpression(file.addHelper("create-decorated-object"), [obj]); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/do-expressions.js b/packages/babel-core/src/transformation/transformers/es7/do-expressions.js deleted file mode 100644 index e7f01f1102..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/do-expressions.js +++ /dev/null @@ -1,17 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - optional: true, - stage: 0 -}; - -export let visitor = { - DoExpression(node) { - let body = node.body.body; - if (body.length) { - return body; - } else { - return this.scope.buildUndefinedNode(); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js b/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js deleted file mode 100644 index 90e4b214c5..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/exponentiation-operator.js +++ /dev/null @@ -1,16 +0,0 @@ -// https://github.com/rwaldron/exponentiation-operator - -import build from "../../helpers/build-binary-assignment-operator-transformer"; -import * as t from "babel-types"; - -export let metadata = { - stage: 2 -}; - -export let visitor = build({ - operator: "**", - - build(left, right) { - return t.callExpression(t.memberExpression(t.identifier("Math"), t.identifier("pow")), [left, right]); - } -}); diff --git a/packages/babel-core/src/transformation/transformers/es7/export-extensions.js b/packages/babel-core/src/transformation/transformers/es7/export-extensions.js deleted file mode 100644 index 4cf5d4caa4..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/export-extensions.js +++ /dev/null @@ -1,41 +0,0 @@ -// https://github.com/leebyron/ecmascript-more-export-from - -import * as t from "babel-types"; - -export let metadata = { - stage: 1 -}; - -function build(node, nodes, scope) { - let first = node.specifiers[0]; - if (!t.isExportNamespaceSpecifier(first) && !t.isExportDefaultSpecifier(first)) return; - - let specifier = node.specifiers.shift(); - let uid = scope.generateUidIdentifier(specifier.exported.name); - - let newSpecifier; - if (t.isExportNamespaceSpecifier(specifier)) { - newSpecifier = t.importNamespaceSpecifier(uid); - } else { - newSpecifier = t.importDefaultSpecifier(uid); - } - - nodes.push(t.importDeclaration([newSpecifier], node.source)); - nodes.push(t.exportNamedDeclaration(null, [t.exportSpecifier(uid, specifier.exported)])); - - build(node, nodes, scope); -} - -export let visitor = { - ExportNamedDeclaration(node, parent, scope) { - let nodes = []; - build(node, nodes, scope); - if (!nodes.length) return; - - if (node.specifiers.length >= 1) { - nodes.push(node); - } - - return nodes; - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/function-bind.js b/packages/babel-core/src/transformation/transformers/es7/function-bind.js deleted file mode 100644 index 74bf548bff..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/function-bind.js +++ /dev/null @@ -1,53 +0,0 @@ -// https://github.com/zenparsing/es-function-bind - -import * as t from "babel-types"; - -export let metadata = { - optional: true, - stage: 0 -}; - -function getTempId(scope) { - let id = scope.path.getData("functionBind"); - if (id) return id; - - id = scope.generateDeclaredUidIdentifier("context"); - return scope.path.setData("functionBind", id); -} - -function getStaticContext(bind, scope) { - let object = bind.object || bind.callee.object; - return scope.isStatic(object) && object; -} - -function inferBindContext(bind, scope) { - let staticContext = getStaticContext(bind, scope); - if (staticContext) return staticContext; - - let tempId = getTempId(scope); - if (bind.object) { - bind.callee = t.sequenceExpression([ - t.assignmentExpression("=", tempId, bind.object), - bind.callee - ]); - } else { - bind.callee.object = t.assignmentExpression("=", tempId, bind.callee.object); - } - return tempId; -} - -export let visitor = { - CallExpression(node, parent, scope) { - let bind = node.callee; - if (!t.isBindExpression(bind)) return; - - let context = inferBindContext(bind, scope); - node.callee = t.memberExpression(bind.callee, t.identifier("call")); - node.arguments.unshift(context); - }, - - BindExpression(node, parent, scope) { - let context = inferBindContext(node, scope); - return t.callExpression(t.memberExpression(node.callee, t.identifier("bind")), [context]); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js b/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js deleted file mode 100644 index ea7b9c6a31..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/object-rest-spread.js +++ /dev/null @@ -1,50 +0,0 @@ -// https://github.com/sebmarkbage/ecmascript-rest-spread - -import * as t from "babel-types"; - -export let metadata = { - stage: 2, - dependencies: ["es6.destructuring"] -}; - -let hasSpread = function (node) { - for (let i = 0; i < node.properties.length; i++) { - if (t.isSpreadProperty(node.properties[i])) { - return true; - } - } - return false; -}; - -export let visitor = { - ObjectExpression(node, parent, scope, file) { - if (!hasSpread(node)) return; - - let args = []; - let props = []; - - let push = function () { - if (!props.length) return; - args.push(t.objectExpression(props)); - props = []; - }; - - for (let i = 0; i < node.properties.length; i++) { - let prop = node.properties[i]; - if (t.isSpreadProperty(prop)) { - push(); - args.push(prop.argument); - } else { - props.push(prop); - } - } - - push(); - - if (!t.isObjectExpression(args[0])) { - args.unshift(t.objectExpression([])); - } - - return t.callExpression(file.addHelper("extends"), args); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js b/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js deleted file mode 100644 index e75a1bd865..0000000000 --- a/packages/babel-core/src/transformation/transformers/es7/trailing-function-commas.js +++ /dev/null @@ -1,3 +0,0 @@ -export let metadata = { - stage: 1 -}; diff --git a/packages/babel-core/src/transformation/transformers/filters.js b/packages/babel-core/src/transformation/transformers/filters.js deleted file mode 100644 index c34e5ea70e..0000000000 --- a/packages/babel-core/src/transformation/transformers/filters.js +++ /dev/null @@ -1,24 +0,0 @@ -import includes from "lodash/collection/includes"; - -export function internal(transformer) { - if (transformer.key[0] === "_") return true; -} - -export function blacklist(transformer, opts) { - let blacklist = opts.blacklist; - if (blacklist.length && includes(blacklist, transformer.key)) return false; -} - -export function whitelist(transformer, opts) { - let whitelist = opts.whitelist; - if (whitelist) return includes(whitelist, transformer.key); -} - -export function stage(transformer, opts) { - let stage = transformer.metadata.stage; - if (stage != null && stage >= opts.stage) return true; -} - -export function optional(transformer, opts) { - if (transformer.metadata.optional && !includes(opts.optional, transformer.key)) return false; -} diff --git a/packages/babel-core/src/transformation/transformers/index.js b/packages/babel-core/src/transformation/transformers/index.js deleted file mode 100644 index 318732036d..0000000000 --- a/packages/babel-core/src/transformation/transformers/index.js +++ /dev/null @@ -1,88 +0,0 @@ -export default { - //- builtin-prepass - "minification.constantFolding": require("babel-plugin-constant-folding"), - - //- builtin-pre - strict: require("./other/strict"), - eval: require("babel-plugin-eval"), - _validation: require("./internal/validation"), - _hoistDirectives: require("./internal/hoist-directives"), - "minification.removeDebugger": require("babel-plugin-remove-debugger"), - "minification.removeConsole": require("babel-plugin-remove-console"), - "utility.inlineEnvironmentVariables": require("babel-plugin-inline-environment-variables"), - "minification.deadCodeElimination": require("babel-plugin-dead-code-elimination"), - _modules: require("./internal/modules"), - "react.displayName": require("babel-plugin-react-display-name"), - "es6.spec.modules": require("./es6/spec.modules"), - "es6.spec.arrowFunctions": require("./es6/spec.arrow-functions"), - "es6.spec.templateLiterals": require("./es6/spec.template-literals"), - "es6.templateLiterals": require("./es6/template-literals"), - "es6.literals": require("./es6/literals"), - "validation.undeclaredVariableCheck": require("babel-plugin-undeclared-variables-check"), - - //- builtin-basic - // this is where the bulk of the ES6 transformations take place, none of them require traversal state - // so they can all be concatenated together for performance - "spec.functionName": require("./spec/function-name"), - "es7.classProperties": require("./es7/class-properties"), - "es7.trailingFunctionCommas": require("./es7/trailing-function-commas"), - "es7.asyncFunctions": require("./es7/async-functions"), - "es7.decorators": require("./es7/decorators"), - "es6.arrowFunctions": require("./es6/arrow-functions"), - "spec.blockScopedFunctions": require("babel-plugin-es2015-block-scoped-functions"), - "optimisation.react.constantElements": require("babel-plugin-react-constant-elements"), - "optimisation.react.inlineElements": require("./optimisation/react.inline-elements"), - "es7.comprehensions": require("./es7/comprehensions"), - "es6.classes": require("./es6/classes"), - asyncToGenerator: require("./other/async-to-generator"), - bluebirdCoroutines: require("./other/bluebird-coroutines"), - "es6.objectSuper": require("./es6/object-super"), - "es7.objectRestSpread": require("./es7/object-rest-spread"), - "es7.exponentiationOperator": require("./es7/exponentiation-operator"), - "es5.properties.mutators": require("./es5/properties.mutators"), - "es6.properties.shorthand": require("babel-plugin-es2015-shorthand-properties"), - "es6.properties.computed": require("babel-plugin-es2015-computed-properties"), - "optimisation.flow.forOf": require("./optimisation/flow.for-of"), - "es6.forOf": require("babel-plugin-es2015-for-of"), - "es6.regex.sticky": require("babel-plugin-es2015-sticky-regex"), - "es6.regex.unicode": require("babel-plugin-es2015-unicode-regex"), - "es6.constants": require("babel-plugin-es2015-constants"), - "es7.exportExtensions": require("./es7/export-extensions"), - "spec.protoToAssign": require("babel-plugin-proto-to-assign"), - "es7.doExpressions": require("./es7/do-expressions"), - "es6.spec.symbols": require("./es6/spec.symbols"), - "es7.functionBind": require("./es7/function-bind"), - "spec.undefinedToVoid": require("babel-plugin-undefined-to-void"), - - //- builtin-advanced - "es6.spread": require("babel-plugin-es2015-spread"), - "es6.parameters": require("babel-plugin-es2015-parameters"), - "es6.destructuring": require("babel-plugin-es2015-destructuring"), - "es6.blockScoping": require("babel-plugin-es2015-block-scoping"), - reactCompat: require("./other/react-compat"), - react: require("./other/react"), - regenerator: require("./other/regenerator"), - - // es6 syntax transformation is **forbidden** past this point since regenerator will chuck a massive - // hissy fit - - //- builtin-modules - runtime: require("babel-plugin-runtime"), - "es6.modules": require("./es6/modules"), - _moduleFormatter: require("./internal/module-formatter"), - - //- builtin-trailing - // these clean up the output and do finishing up transformations, it's important to note that by this - // stage you can't import any new modules or insert new ES6 as all those transformers have already - // been ran - "es6.tailCall": require("babel-plugin-es2015-tail-call"), - _shadowFunctions: require("./internal/shadow-functions"), - "es3.propertyLiterals": require("babel-plugin-es3-property-literals"), - "es3.memberExpressionLiterals": require("babel-plugin-es3-member-expression-literals"), - "minification.memberExpressionLiterals": require("babel-plugin-member-expression-literals"), - "minification.propertyLiterals": require("babel-plugin-property-literals"), - _blockHoist: require("./internal/block-hoist"), - jscript: require("babel-plugin-jscript"), - flow: require("babel-plugin-flow-strip-types"), - "optimisation.modules.system": require("./optimisation/modules.system"), -}; diff --git a/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js b/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js deleted file mode 100644 index dc38fc570a..0000000000 --- a/packages/babel-core/src/transformation/transformers/internal/hoist-directives.js +++ /dev/null @@ -1,20 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - group: "builtin-pre" -}; - -export let visitor = { - Block: { - exit(node) { - for (let i = 0; i < node.body.length; i++) { - let bodyNode = node.body[i]; - if (t.isExpressionStatement(bodyNode) && t.isLiteral(bodyNode.expression)) { - bodyNode._blockHoist = Infinity; - } else { - return; - } - } - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/internal/module-formatter.js b/packages/babel-core/src/transformation/transformers/internal/module-formatter.js deleted file mode 100644 index a617385915..0000000000 --- a/packages/babel-core/src/transformation/transformers/internal/module-formatter.js +++ /dev/null @@ -1,22 +0,0 @@ -export let metadata = { - group: "builtin-modules" -}; - -export let visitor = { - Program: { - exit(program, parent, scope, file) { - // ensure that these are at the top, just like normal imports - for (let node of (file.dynamicImports: Array)) { - node._blockHoist = 3; - } - - program.body = file.dynamicImports.concat(program.body); - - if (!file.transformers["es6.modules"].canTransform()) return; - - if (file.moduleFormatter.transform) { - file.moduleFormatter.transform(program); - } - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/internal/modules.js b/packages/babel-core/src/transformation/transformers/internal/modules.js deleted file mode 100644 index ff3867981e..0000000000 --- a/packages/babel-core/src/transformation/transformers/internal/modules.js +++ /dev/null @@ -1,111 +0,0 @@ -// in this transformer we have to split up classes and function declarations -// from their exports. why? because sometimes we need to replace classes with -// nodes that aren't allowed in the same contexts. also, if you're exporting -// a generator function as a default then regenerator will destroy the export -// declaration and leave a variable declaration in it's place... yeah, handy. - -import * as t from "babel-types"; - -function getDeclar(node) { - let declar = node.declaration; - t.inheritsComments(declar, node); - t.removeComments(node); - declar._ignoreUserWhitespace = true; - return declar; -} - -function buildExportSpecifier(id) { - return t.exportSpecifier(cloneIdentifier(id), cloneIdentifier(id)); -} - -function cloneIdentifier({ name, loc }) { - let id = t.identifier(name); - id._loc = loc; - return id; -} - -export let metadata = { - group: "builtin-pre" -}; - -export let visitor = { - ExportDefaultDeclaration(node, parent, scope) { - let declar = node.declaration; - - if (t.isClassDeclaration(declar)) { - // export default class Foo {}; - let nodes = [getDeclar(node), node]; - node.declaration = declar.id; - return nodes; - } else if (t.isClassExpression(declar)) { - // export default class {}; - let temp = scope.generateUidIdentifier("default"); - node.declaration = t.variableDeclaration("var", [ - t.variableDeclarator(temp, declar) - ]); - - let nodes = [getDeclar(node), node]; - node.declaration = temp; - return nodes; - } else if (t.isFunctionDeclaration(declar)) { - // export default function Foo() {} - node._blockHoist = 2; - - let nodes = [getDeclar(node), node]; - node.declaration = declar.id; - return nodes; - } - }, - - ExportNamedDeclaration(node) { - let declar = node.declaration; - - if (t.isClassDeclaration(declar)) { - // export class Foo {} - node.specifiers = [buildExportSpecifier(declar.id)]; - - let nodes = [getDeclar(node), node]; - node.declaration = null; - return nodes; - } else if (t.isFunctionDeclaration(declar)) { - // export function Foo() {} - let newExport = t.exportNamedDeclaration(null, [buildExportSpecifier(declar.id)]); - newExport._blockHoist = 2; - return [getDeclar(node), newExport]; - } else if (t.isVariableDeclaration(declar)) { - // export let foo = "bar"; - let specifiers = []; - let bindings = this.get("declaration").getBindingIdentifiers(); - for (let key in bindings) { - specifiers.push(buildExportSpecifier(bindings[key])); - } - return [declar, t.exportNamedDeclaration(null, specifiers)]; - } - }, - - Program: { - enter(node) { - let imports = []; - let rest = []; - - for (let i = 0; i < node.body.length; i++) { - let bodyNode = node.body[i]; - if (t.isImportDeclaration(bodyNode)) { - imports.push(bodyNode); - } else { - rest.push(bodyNode); - } - } - - node.body = imports.concat(rest); - }, - - exit(node, parent, scope, file) { - if (!file.transformers["es6.modules"].canTransform()) return; - - if (file.moduleFormatter.setup) { - file.moduleFormatter.setup(); - } - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/internal/validation.js b/packages/babel-core/src/transformation/transformers/internal/validation.js deleted file mode 100644 index 8b27442419..0000000000 --- a/packages/babel-core/src/transformation/transformers/internal/validation.js +++ /dev/null @@ -1,25 +0,0 @@ -import * as messages from "babel-messages"; -import * as t from "babel-types"; - -export let metadata = { - group: "builtin-pre" -}; - -export let visitor = { - ForXStatement(node, parent, scope, file) { - let left = node.left; - if (t.isVariableDeclaration(left)) { - let declar = left.declarations[0]; - if (declar.init) throw file.errorWithNode(declar, messages.get("noAssignmentsInForHead")); - } - }, - - Property(node, parent, scope, file) { - if (node.kind === "set") { - let first = node.value.params[0]; - if (t.isRestElement(first)) { - throw file.errorWithNode(first, messages.get("settersNoRest")); - } - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js b/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js deleted file mode 100644 index b6b78bc25f..0000000000 --- a/packages/babel-core/src/transformation/transformers/optimisation/flow.for-of.js +++ /dev/null @@ -1,13 +0,0 @@ -import { _ForOfStatementArray } from "../es6/for-of"; - -export let metadata = { - optional: true -}; - -export let visitor = { - ForOfStatement(node, parent, scope, file) { - if (this.get("right").isGenericType("Array")) { - return _ForOfStatementArray.call(this, node, scope, file); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js b/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js deleted file mode 100644 index 88260235ce..0000000000 --- a/packages/babel-core/src/transformation/transformers/optimisation/modules.system.js +++ /dev/null @@ -1,50 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - optional: true, - group: "builtin-trailing" -}; - -export let visitor = { - Program(node, parent, scope, file){ - if (file.moduleFormatter._setters){ - scope.traverse(file.moduleFormatter._setters, optimizeSettersVisitor, { - exportFunctionIdentifier: file.moduleFormatter.exportIdentifier - }); - } - } -}; - -/** - * Setters are optimized to avoid slow export behavior in modules that rely on deep hierarchies - * of export-from declarations. - * More info in https://github.com/babel/babel/pull/1722 and - * https://github.com/ModuleLoader/es6-module-loader/issues/386. - * - * TODO: Ideally this would be optimized during construction of the setters, but the current - * architecture of the module formatters make that difficult. - */ -let optimizeSettersVisitor = { - FunctionExpression: { - enter: (node, parent, scope, state) => { - state.hasExports = false; - state.exportObjectIdentifier = scope.generateUidIdentifier("exportObj"); - }, - exit: (node, parent, scope, state) => { - if (!state.hasExports) return; - - node.body.body.unshift(t.variableDeclaration("var", [ - t.variableDeclarator(t.cloneDeep(state.exportObjectIdentifier), t.objectExpression([])) - ])); - node.body.body.push(t.expressionStatement(t.callExpression( - t.cloneDeep(state.exportFunctionIdentifier), [t.cloneDeep(state.exportObjectIdentifier)]))); - } - }, - CallExpression: (node, parent, scope, state) => { - if (!t.isIdentifier(node.callee, {name: state.exportFunctionIdentifier.name})) return; - - state.hasExports = true; - let memberNode = t.memberExpression(t.cloneDeep(state.exportObjectIdentifier), node.arguments[0], true); - return t.assignmentExpression("=", memberNode, node.arguments[1]); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js b/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js deleted file mode 100644 index 9769516a9f..0000000000 --- a/packages/babel-core/src/transformation/transformers/optimisation/react.inline-elements.js +++ /dev/null @@ -1,77 +0,0 @@ -import { react } from "babel-types"; -import * as t from "babel-types"; - -export let metadata = { - optional: true -}; - -function hasRefOrSpread(attrs) { - for (let i = 0; i < attrs.length; i++) { - let attr = attrs[i]; - if (t.isJSXSpreadAttribute(attr)) return true; - if (isJSXAttributeOfName(attr, "ref")) return true; - } - return false; -} - -function isJSXAttributeOfName(attr, name) { - return t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: name }); -} -export let visitor = { - JSXElement(node, parent, scope, file) { - // filter - let open = node.openingElement; - if (hasRefOrSpread(open.attributes)) return; - - // init - let isComponent = true; - let props = t.objectExpression([]); - let obj = t.objectExpression([]); - let key = t.nullLiteral(); - let type = open.name; - - if (t.isJSXIdentifier(type) && react.isCompatTag(type.name)) { - type = t.stringLiteral(type.name); - isComponent = false; - } - - function pushElemProp(key, value) { - pushProp(obj.properties, t.identifier(key), value); - } - - function pushProp(objProps, key, value) { - objProps.push(t.property("init", key, value)); - } - - // metadata - pushElemProp("type", type); - pushElemProp("ref", t.nullLiteral()); - - if (node.children.length) { - let children = react.buildChildren(node); - children = children.length === 1 ? children[0] : t.arrayExpression(children); - pushProp(props.properties, t.identifier("children"), children); - } - - // props - for (let i = 0; i < open.attributes.length; i++) { - let attr = open.attributes[i]; - if (isJSXAttributeOfName(attr, "key")) { - key = attr.value; - } else { - pushProp(props.properties, attr.name, attr.value || t.identifier("true")); - } - } - - if (isComponent) { - props = t.callExpression(file.addHelper("default-props"), [t.memberExpression(type, t.identifier("defaultProps")), props]); - } - - pushElemProp("props", props); - - // key - pushElemProp("key", key); - - return obj; - } -}; diff --git a/packages/babel-core/src/transformation/transformers/other/async-to-generator.js b/packages/babel-core/src/transformation/transformers/other/async-to-generator.js deleted file mode 100644 index a1ca6f2666..0000000000 --- a/packages/babel-core/src/transformation/transformers/other/async-to-generator.js +++ /dev/null @@ -1,16 +0,0 @@ -import remapAsyncToGenerator from "../../helpers/remap-async-to-generator"; - -export { manipulateOptions } from "./bluebird-coroutines"; - -export let metadata = { - optional: true, - dependencies: ["es7.asyncFunctions", "es6.classes"] -}; - -export let visitor = { - Function(node, parent, scope, file) { - if (!node.async || node.generator) return; - - return remapAsyncToGenerator(this, file.addHelper("async-to-generator")); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js b/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js deleted file mode 100644 index 1caf3e82cd..0000000000 --- a/packages/babel-core/src/transformation/transformers/other/bluebird-coroutines.js +++ /dev/null @@ -1,22 +0,0 @@ -import remapAsyncToGenerator from "../../helpers/remap-async-to-generator"; -import * as t from "babel-types"; - -export function manipulateOptions(opts) { - opts.blacklist.push("regenerator"); -} - -export let metadata = { - optional: true, - dependencies: ["es7.asyncFunctions", "es6.classes"] -}; - -export let visitor = { - Function(node, parent, scope, file) { - if (!node.async || node.generator) return; - - return remapAsyncToGenerator( - this, - t.memberExpression(file.addImport("bluebird", null, "absolute"), t.identifier("coroutine")) - ); - } -}; diff --git a/packages/babel-core/src/transformation/transformers/other/react-compat.js b/packages/babel-core/src/transformation/transformers/other/react-compat.js deleted file mode 100644 index 0e3be1822b..0000000000 --- a/packages/babel-core/src/transformation/transformers/other/react-compat.js +++ /dev/null @@ -1,30 +0,0 @@ -import { react } from "babel-types"; -import * as t from "babel-types"; - -export function manipulateOptions(opts) { - opts.blacklist.push("react"); -} - -export let metadata = { - optional: true, - group: "builtin-advanced" -}; - -export let visitor = require("../../helpers/build-react-transformer")({ - pre(state) { - state.callee = state.tagExpr; - }, - - post(state) { - if (react.isCompatTag(state.tagName)) { - state.call = t.callExpression( - t.memberExpression( - t.memberExpression(t.identifier("React"), t.identifier("DOM")), - state.tagExpr, - t.isLiteral(state.tagExpr) - ), - state.args - ); - } - } -}); diff --git a/packages/babel-core/src/transformation/transformers/other/react.js b/packages/babel-core/src/transformation/transformers/other/react.js deleted file mode 100644 index 7a8267bef6..0000000000 --- a/packages/babel-core/src/transformation/transformers/other/react.js +++ /dev/null @@ -1,45 +0,0 @@ -import { react } from "babel-types"; -import * as t from "babel-types"; - -let JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/; - -export let metadata = { - group: "builtin-advanced" -}; - -export let visitor = require("../../helpers/build-react-transformer")({ - pre(state) { - let tagName = state.tagName; - let args = state.args; - if (react.isCompatTag(tagName)) { - args.push(t.stringLiteral(tagName)); - } else { - args.push(state.tagExpr); - } - }, - - post(state, file) { - state.callee = file.get("jsxIdentifier"); - } -}); - -visitor.Program = function (node, parent, scope, file) { - let id = file.opts.jsxPragma; - - for (let i = 0; i < file.ast.comments.length; i++) { - let comment = file.ast.comments[i]; - let matches = JSX_ANNOTATION_REGEX.exec(comment.value); - if (matches) { - id = matches[1]; - if (id === "React.DOM") { - throw file.errorWithNode(comment, "The @jsx React.DOM pragma has been deprecated as of React 0.12"); - } else { - break; - } - } - } - - file.set("jsxIdentifier", id.split(".").map(t.identifier).reduce(function (object, property) { - return t.memberExpression(object, property); - })); -}; diff --git a/packages/babel-core/src/transformation/transformers/other/regenerator.js b/packages/babel-core/src/transformation/transformers/other/regenerator.js deleted file mode 100644 index 4d051b5f00..0000000000 --- a/packages/babel-core/src/transformation/transformers/other/regenerator.js +++ /dev/null @@ -1,78 +0,0 @@ -import regenerator from "regenerator"; -import * as t from "babel-types"; - -// It's important to use the exact same NodePath constructor that -// Regenerator uses, rather than require("ast-types").NodePath, because -// the version of ast-types that Babel knows about might be different from -// the version that Regenerator depends on. See for example #1958. -const NodePath = regenerator.types.NodePath; - -export let metadata = { - group: "builtin-advanced" -}; - -export let visitor = { - Function: { - exit(node) { - if (node.async || node.generator) { - // Although this code transforms only the subtree rooted at the given - // Function node, that node might contain other generator functions - // that will also be transformed. It might help performance to ignore - // nested functions, and rely on the traversal to visit them later, - // but that's a small optimization. Starting here instead of at the - // root of the AST is the key optimization, since huge async/generator - // functions are relatively rare. - regenerator.transform(convertNodePath(this)); - } - } - } -}; - -// Given a Babel NodePath, return an ast-types NodePath that includes full -// ancestry information (up to and including the Program node). This is -// complicated by having to include intermediate objects like blockStatement.body -// arrays, in addition to Node objects. -function convertNodePath(path) { - let programNode; - let keysAlongPath = []; - - while (path) { - let pp = path.parentPath; - let parentNode = pp && pp.node; - if (parentNode) { - keysAlongPath.push(path.key); - - if (parentNode !== path.container) { - let found = Object.keys(parentNode).some(listKey => { - if (parentNode[listKey] === path.container) { - keysAlongPath.push(listKey); - return true; - } - }); - - if (!found) { - throw new Error("Failed to find container object in parent node"); - } - } - - if (t.isProgram(parentNode)) { - programNode = parentNode; - break; - } - } - - path = pp; - } - - if (!programNode) { - throw new Error("Failed to find root Program node"); - } - - let nodePath = new NodePath(programNode); - - while (keysAlongPath.length > 0) { - nodePath = nodePath.get(keysAlongPath.pop()); - } - - return nodePath; -} diff --git a/packages/babel-core/src/transformation/transformers/other/strict.js b/packages/babel-core/src/transformation/transformers/other/strict.js deleted file mode 100644 index 0902c92fcb..0000000000 --- a/packages/babel-core/src/transformation/transformers/other/strict.js +++ /dev/null @@ -1,44 +0,0 @@ -import * as t from "babel-types"; - -export let metadata = { - group: "builtin-pre" -}; - -const THIS_BREAK_KEYS = ["FunctionExpression", "FunctionDeclaration", "ClassProperty"]; - -function isUseStrict(node) { - if (!t.isLiteral(node)) return false; - - if (node.raw && node.rawValue === node.value) { - return node.rawValue === "use strict"; - } else { - return node.value === "use strict"; - } -} - -export let visitor = { - Program: { - enter(program) { - let first = program.body[0]; - - let directive; - if (t.isExpressionStatement(first) && isUseStrict(first.expression)) { - directive = first; - } else { - directive = t.expressionStatement(t.stringLiteral("use strict")); - this.unshiftContainer("body", directive); - if (first) { - directive.leadingComments = first.leadingComments; - first.leadingComments = []; - } - } - directive._blockHoist = Infinity; - } - }, - - ThisExpression() { - if (!this.findParent((path) => !path.is("shadow") && THIS_BREAK_KEYS.indexOf(path.type) >= 0)) { - return this.scope.buildUndefinedNode(); - } - } -}; diff --git a/packages/babel-core/src/transformation/transformers/spec/function-name.js b/packages/babel-core/src/transformation/transformers/spec/function-name.js deleted file mode 100644 index a4044ce7d2..0000000000 --- a/packages/babel-core/src/transformation/transformers/spec/function-name.js +++ /dev/null @@ -1,28 +0,0 @@ -import { bare } from "../../helpers/name-method"; - -export let metadata = { - group: "builtin-basic" -}; - -// visit Property functions first - https://github.com/babel/babel/issues/1860 - -export let visitor = { - "ArrowFunctionExpression|FunctionExpression": { - exit() { - if (!this.parentPath.isProperty()) { - return bare.apply(this, arguments); - } - } - }, - - ObjectExpression() { - let props = this.get("properties"); - for (let prop of (props: Array)) { - let value = prop.get("value"); - if (value.isFunction()) { - let newNode = bare(value.node, prop.node, value.scope); - if (newNode) value.replaceWith(newNode); - } - } - } -}; diff --git a/packages/babel-core/src/util.js b/packages/babel-core/src/util.js index e0a7d22fe6..d76cb5d45e 100644 --- a/packages/babel-core/src/util.js +++ b/packages/babel-core/src/util.js @@ -1,21 +1,14 @@ +/* @flow */ + import escapeRegExp from "lodash/string/escapeRegExp"; import startsWith from "lodash/string/startsWith"; -import cloneDeep from "lodash/lang/cloneDeep"; import isBoolean from "lodash/lang/isBoolean"; -import * as messages from "babel-messages"; import minimatch from "minimatch"; import contains from "lodash/collection/contains"; -import traverse from "babel-traverse"; import isString from "lodash/lang/isString"; import isRegExp from "lodash/lang/isRegExp"; -import isEmpty from "lodash/lang/isEmpty"; -import parse from "./helpers/parse"; import path from "path"; -import has from "lodash/object/has"; -import fs from "fs"; -import * as t from "babel-types"; import slash from "slash"; -import pathExists from "path-exists"; export { inherits, inspect } from "util"; @@ -56,11 +49,15 @@ export function list(val?: string): Array { */ export function regexify(val: any): RegExp { - if (!val) return new RegExp(/.^/); + if (!val) { + return new RegExp(/.^/); + } - if (Array.isArray(val)) val = new RegExp(val.map(escapeRegExp).join("|"), "i"); + if (Array.isArray(val)) { + val = new RegExp(val.map(escapeRegExp).join("|"), "i"); + } - if (isString(val)) { + if (typeof val === "string") { // normalise path separators val = slash(val); @@ -72,7 +69,9 @@ export function regexify(val: any): RegExp { return new RegExp(regex.source.slice(1, -1), "i"); } - if (isRegExp(val)) return val; + if (isRegExp(val)) { + return val; + } throw new TypeError("illegal type for regexify"); } @@ -99,8 +98,14 @@ export function arrayify(val: any, mapFn?: Function): Array { */ export function booleanify(val: any): boolean | any { - if (val === "true") return true; - if (val === "false") return false; + if (val === "true" || val == 1) { + return true; + } + + if (val === "false" || val == 0 || !val) { + return false; + } + return val; } @@ -141,106 +146,3 @@ function _shouldIgnore(pattern: Function | RegExp, filename: string) { return pattern.test(filename); } } - -/** - * A visitor for Babel templates, replaces placeholder references. - */ - -let templateVisitor = { - /** - * 360 NoScope PWNd - */ - noScope: true, - - enter(node: Object, parent: Object, scope, nodes: Array) { - if (t.isExpressionStatement(node)) { - node = node.expression; - } - - if (t.isIdentifier(node) && has(nodes, node.name)) { - this.skip(); - this.replaceInline(nodes[node.name]); - } - }, - - exit(node: Object) { - traverse.clearNode(node); - } -}; - -/** - * Create an instance of a template to use in a transformer. - */ - -export function template(name: string, nodes?: Array, keepExpression?: boolean): Object { - let ast = exports.templates[name]; - if (!ast) throw new ReferenceError(`unknown template ${name}`); - - if (nodes === true) { - keepExpression = true; - nodes = null; - } - - ast = cloneDeep(ast); - - if (!isEmpty(nodes)) { - traverse(ast, templateVisitor, null, nodes); - } - - if (ast.body.length > 1) return ast.body; - - let node = ast.body[0]; - - if (!keepExpression && t.isExpressionStatement(node)) { - return node.expression; - } else { - return node; - } -} - -/** - * Parse a template. - */ - -export function parseTemplate(loc: string, code: string): Object { - try { - let ast = parse(code, { filename: loc, looseModules: true }).program; - ast = traverse.removeProperties(ast); - return ast; - } catch (err) { - err.message = `${loc}: ${err.message}`; - throw err; - } -} - -/** - * Load templates from transformation/templates directory. - */ - -function loadTemplates(): Object { - let templates = {}; - - let templatesLoc = path.join(__dirname, "transformation/templates"); - if (!pathExists.sync(templatesLoc)) { - throw new ReferenceError(messages.get("missingTemplatesDirectory")); - } - - for (let name of (fs.readdirSync(templatesLoc): Array)) { - if (name[0] === ".") continue; - - let key = path.basename(name, path.extname(name)); - let loc = path.join(templatesLoc, name); - let code = fs.readFileSync(loc, "utf8"); - - templates[key] = parseTemplate(loc, code); - } - - return templates; -} - -try { - exports.templates = require("../templates.json"); -} catch (err) { - if (err.code !== "MODULE_NOT_FOUND") throw err; - exports.templates = loadTemplates(); -} diff --git a/packages/babel-core/test/_transformation-helper.js b/packages/babel-core/test/_transformation-helper.js index 547aea6a8d..9962050068 100644 --- a/packages/babel-core/test/_transformation-helper.js +++ b/packages/babel-core/test/_transformation-helper.js @@ -1,8 +1,11 @@ +require("../lib/api/node"); + var buildExernalHelpers = require("../lib/tools/build-external-helpers"); var getFixtures = require("mocha-fixtures"); var transform = require("../lib/transformation"); var sourceMap = require("source-map"); var codeFrame = require("babel-code-frame"); +var register = require("../register"); var Module = require("module"); var assert = require("assert"); var chai = require("chai"); @@ -16,7 +19,7 @@ exports.fixtures = getFixtures(__dirname + "/fixtures", function () { require("babel-polyfill"); -require("../register")({ +register({ ignore: [ path.resolve(__dirname + "/../.."), "node_modules" @@ -56,31 +59,41 @@ chai.assert.throw = function (fn, msg) { return chai.assert._throw(fn, msg); }; -var run = function (task, done) { +function wrapPackagesArray(type, names) { + return (names || []).map(function (val) { + if (typeof val === "string") val = [val]; + val[0] = __dirname + "/../../babel-" + type + "-" + val[0]; + return val; + }); +} + +function run(task, done) { var actual = task.actual; var expect = task.expect; var exec = task.exec; var opts = task.options; - var getOpts = function (self) { + function getOpts(self) { var newOpts = _.merge({ suppressDeprecationMessages: true, filename: self.loc, sourceMap: !!(task.sourceMappings || task.sourceMap) }, opts); - newOpts.plugins = (newOpts.plugins || []).map(function (str) { - return __dirname + "/../../babel-plugin-" + str; + newOpts.plugins = wrapPackagesArray("plugin", newOpts.plugins); + newOpts.presets = wrapPackagesArray("preset", newOpts.presets).map(function (val) { + return val[0]; }); return newOpts; - }; + } var execCode = exec.code; var result; if (execCode) { - result = transform(execCode, getOpts(exec)); + var execOpts = getOpts(exec); + result = transform(execCode, execOpts); execCode = result.code; try { @@ -131,7 +144,7 @@ var run = function (task, done) { chai.expect({ line: expect.line, column: expect.column }).to.deep.equal(actual); }); } -}; +} exports.run = function (name, suiteOpts, taskOpts, dynamicOpts) { suiteOpts = suiteOpts || {}; diff --git a/packages/babel-core/test/api.js b/packages/babel-core/test/api.js index 5823c97570..c04185e1ec 100644 --- a/packages/babel-core/test/api.js +++ b/packages/babel-core/test/api.js @@ -4,7 +4,7 @@ var buildExternalHelpers = require("../lib/tools/build-external-helpers"); var transform = require("../lib/transformation"); var Pipeline = require("../lib/transformation/pipeline"); var assert = require("assert"); -var File = require("../lib/transformation/file"); +var File = require("../lib/transformation/file").default; function assertIgnored(result) { assert.ok(result.ignored); @@ -36,36 +36,23 @@ suite("api", function () { }); }); - test("auxiliaryCommentBefore option", function () { - return Promise.all([ - transformAsync("class Foo {}", { - auxiliaryCommentBefore: "foobar" - }).then(function (result) { - assert.ok(result.code.indexOf("foobar") >= 0); - }), - - transformAsync("for (let i in bar) { foo(function () { i; }); break; continue; }", { - auxiliaryCommentBefore: "foobar" - }).then(function (result) { - assert.ok(result.code.indexOf("foobar") >= 0); - }) - ]); - }); - - test("auxiliaryCommentAfter option", function () { - return Promise.all([ - transformAsync("class Foo {}", { - auxiliaryCommentAfter: "foobar" - }).then(function (result) { - assert.ok(result.code.indexOf("foobar") >= 0); - }), - - transformAsync("for (let i in bar) { foo(function () { i; }); break; continue; }", { - auxiliaryCommentAfter: "foobar" - }).then(function (result) { - assert.ok(result.code.indexOf("foobar") >= 0); - }) - ]); + test("auxiliaryComment option", function () { + return transformAsync("class Foo {}", { + auxiliaryComment: "yo bro", + plugins: [function (babel) { + var t = babel.types; + return { + visitor: { + Program: function (path) { + path.unshiftContainer("body", t.expressionStatement(t.identifier("start"))); + path.pushContainer("body", t.expressionStatement(t.identifier("end"))); + } + } + }; + }] + }).then(function (result) { + assert.equal(result.code, "/*yo bro*/start;\nclass Foo {}\n/*yo bro*/end;"); + }); }); test("modules metadata", function () { @@ -126,7 +113,7 @@ suite("api", function () { }), transformAsync('export * as externalName1 from "external";', { - stage: 0 + plugins: [require("../../babel-plugin-syntax-export-extensions")] }).then(function (result) { assert.deepEqual(result.metadata.modules.exports, { exported: ['externalName1'], @@ -139,7 +126,7 @@ suite("api", function () { }), transformAsync('export externalName2 from "external";', { - stage: 0 + plugins: [require("../../babel-plugin-syntax-export-extensions")] }).then(function (result) { assert.deepEqual(result.metadata.modules.exports, { exported: ["externalName2"], @@ -273,77 +260,6 @@ suite("api", function () { ]) }); - suite("getModuleId option", function () { - // As of this commit, `getModuleId` is the only option that isn't JSON - // compatible which is why it's not inside /test/core/fixtures/transformation - - function getModuleNameTest(moduleFormat, expected) { - return transformAsync("foo('bar');", { - filename: "/foo/bar/index", - modules: moduleFormat, - moduleIds: true, - getModuleId: function (name) { - return name.replace(/\/index$/, ""); - } - }).then(function (result) { - assert.equal(result.code, expected); - }); - } - - test("amd", function () { - var expected = [ - "define('/foo/bar', ['exports'], function (exports) {", - " 'use strict';", - "", - " foo('bar');", - "});" - ].join("\n"); - - return getModuleNameTest("amd", expected); - }); - - test("umd", function () { - var expected = [ - "(function (global, factory) {", - " if (typeof define === 'function' && define.amd) {", - " define('/foo/bar', ['exports'], factory);", - " } else if (typeof exports !== 'undefined') {", - " factory(exports);", - " } else {", - " var mod = {", - " exports: {}", - " };", - " factory(mod.exports);", - " global.fooBar = mod.exports;", - " }", - "})(this, function (exports) {", - " 'use strict';", - "", - " foo('bar');", - "});", - ].join("\n"); - - return getModuleNameTest("umd", expected); - }); - - test("system", function () { - var expected = [ - "System.register('/foo/bar', [], function (_export) {", - " 'use strict';", - "", - " return {", - " setters: [],", - " execute: function () {", - " foo('bar');", - " }", - " };", - "});", - ].join("\n"); - - return getModuleNameTest("system", expected); - }); - }); - suite("env option", function () { var oldBabelEnv = process.env.BABEL_ENV; var oldNodeEnv = process.env.NODE_ENV; @@ -361,10 +277,10 @@ suite("api", function () { test("default", function () { return transformAsync("foo;", { env: { - development: { blacklist: "strict" } + development: { code: false } } }).then(function (result) { - assert.equal(result.code, "foo;"); + assert.equal(result.code, undefined); }); }); @@ -372,10 +288,10 @@ suite("api", function () { process.env.BABEL_ENV = "foo"; return transformAsync("foo;", { env: { - foo: { blacklist: "strict" } + foo: { code: false } } }).then(function (result) { - assert.equal(result.code, "foo;"); + assert.equal(result.code, undefined); }); }); @@ -383,27 +299,19 @@ suite("api", function () { process.env.NODE_ENV = "foo"; return transformAsync("foo;", { env: { - foo: { blacklist: "strict" } + foo: { code: false } } }).then(function (result) { - assert.equal(result.code, "foo;"); + assert.equal(result.code, undefined); }); }); }); - test("addHelper unknown", function () { - var file = new File({}, transform.pipeline); - assert.throws(function () { - file.addHelper("foob"); - }, /Unknown helper foob/); - }); - test("resolveModuleSource option", function () { var actual = 'import foo from "foo-import-default";\nimport "foo-import-bare";\nexport { foo } from "foo-export-named";'; var expected = 'import foo from "resolved/foo-import-default";\nimport "resolved/foo-import-bare";\nexport { foo } from "resolved/foo-export-named";'; return transformAsync(actual, { - blacklist: ["es6.modules", "strict"], resolveModuleSource: function (originalSource) { return "resolved/" + originalSource; } @@ -412,20 +320,6 @@ suite("api", function () { }); }); - test("extra options", function () { - var file1 = new File({ extra: { foo: "bar" } }, transform.pipeline); - assert.equal(file1.opts.extra.foo, "bar"); - - var file2 = new File({}, transform.pipeline); - var file3 = new File({}, transform.pipeline); - assert.ok(file2.opts.extra !== file3.opts.extra); - }); - - // For now just signal that it's not cruft and shouldn't be deleted. - test("pretransform exists", function () { - assert.ok(Pipeline.prototype.pretransform); - }); - suite("buildExternalHelpers", function () { test("all", function () { var script = buildExternalHelpers(); diff --git a/packages/babel-core/test/evaluation.js b/packages/babel-core/test/evaluation.js new file mode 100644 index 0000000000..6d8b4dfbd3 --- /dev/null +++ b/packages/babel-core/test/evaluation.js @@ -0,0 +1,66 @@ +var traverse = require("babel-traverse").default; +var assert = require("assert"); +var parse = require("babylon").parse; + +suite("evaluation", function () { + function addTest(code, type, value, notConfident) { + test(type + ": " + code, function () { + var visitor = {}; + + visitor[type] = function (path) { + var evaluate = path.evaluate(); + assert.equal(evaluate.confident, !notConfident); + assert.equal(evaluate.value, value); + }; + + traverse(parse(code, { + plugins: ["*"] + }), visitor); + }); + } + + addTest("void 0", "UnaryExpression", undefined); + addTest("!true", "UnaryExpression", false); + addTest("+'2'", "UnaryExpression", 2); + addTest("-'2'", "UnaryExpression", -2); + addTest("~1", "UnaryExpression", -2); + addTest("3 - 1", "BinaryExpression", 2); + addTest("5 + 5", "BinaryExpression", 10); + addTest("10 / 2", "BinaryExpression", 5); + addTest("2 * 3", "BinaryExpression", 6); + addTest("4 % 2", "BinaryExpression", 0); + addTest("2 ** 3", "BinaryExpression", 8); + addTest("1 < 2", "BinaryExpression", true); + addTest("1 > 2", "BinaryExpression", false); + addTest("1 <= 2", "BinaryExpression", true); + addTest("1 >= 2", "BinaryExpression", false); + addTest("1 == '1'", "BinaryExpression", true); + addTest("1 != 2", "BinaryExpression", true); + addTest("'str' === 'str'", "BinaryExpression", true); + addTest("'four' === 4", "BinaryExpression", false); + addTest("'four' !== '4'", "BinaryExpression", true); + addTest("'str' !== 'str'", "BinaryExpression", false); + addTest("1 | 0", "BinaryExpression", 1); + addTest("1 & 1", "BinaryExpression", 1); + addTest("1 ^ 0", "BinaryExpression", 1); + addTest("1 << 2", "BinaryExpression", 4); + addTest("1 >> 2", "BinaryExpression", 0); + addTest("1 in [1]", "BinaryExpression", undefined, true); + addTest("A instanceof B", "BinaryExpression", undefined, true); + addTest("'abc' === 'abc' && 1 === 1", "LogicalExpression", true); + addTest("'abc' === 'abc' && 1 === 10", "LogicalExpression", false); + addTest("'abc' === 'xyz' && 1 === 1", "LogicalExpression", false); + addTest("'abc' === 'xyz' && 1 === 10", "LogicalExpression", false); + addTest("'abc' === 'abc' || 1 === 1", "LogicalExpression", true); + addTest("'abc' === 'abc' || 1 === 10", "LogicalExpression", true); + addTest("'abc' === 'xyz' || 1 === 1", "LogicalExpression", true); + addTest("'abc' === 'xyz' || 1 === 10", "LogicalExpression", false); + addTest("'abc' === 'abc' || config.flag === 1", "LogicalExpression", true); + addTest("obj.a === 'abc' || config.flag === 1", "LogicalExpression", undefined, true); + addTest("'abc' !== 'abc' && config.flag === 1", "LogicalExpression", false); + addTest("obj.a === 'abc' && 1 === 1", "LogicalExpression", undefined, true); + addTest("'abc' === 'abc' && (1 === 1 || config.flag)", "LogicalExpression", true); + addTest("'abc' === 'xyz' || (1 === 1 && config.flag)", "LogicalExpression", undefined, true); + addTest("'abc' === 'xyz' || (1 === 1 && 'four' === 'four')", "LogicalExpression", true); + addTest("'abc' === 'abc' && (1 === 1 && 'four' === 'four')", "LogicalExpression", true); +}); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js new file mode 100644 index 0000000000..d299fb5379 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/arguments-refers-to-parent-function.js @@ -0,0 +1,57 @@ +function makeMultiplier() { + // `arguments` should refer to `makeMultiplier`'s arguments. + return (n) => [].slice.call(arguments).reduce((a, b) => a * b) * n; +} + +function toArray() { + // Intentionally nest arrow functions to ensure `arguments` is put inside + // `toArray`'s scope. + return (() => (arguments, (() => [].slice.call(arguments)).call())).call(); +} + +function returnDotArguments(object) { + // Ensure `arguments` is not treated as a reference to the magic value. + return (() => object.arguments).call(); +} + +function returnArgumentsObject() { + // Ensure `arguments` is not treated as a reference to the magic value. + return (() => ({arguments: 1})).call(); +} + +function makeArgumentsReturner() { + return (() => function() { + return [].slice.call(arguments); + }).call(); +} + +// i.e. 2 * 3 * 4 == 24, not 16 (4 * 4) +assert.equal( + makeMultiplier(2, 3)(4), + 24, + 'ensure `arguments` is hoisted out to the first non-arrow scope' +); + +assert.deepEqual( + toArray(1, 2, 3), + [1, 2, 3], + 'ensure `arguments` is hoisted out to the first non-arrow scope' +); + +assert.equal( + returnDotArguments({arguments: 1}), + 1, + 'member accesses with `arguments` property should not be replaced' +); + +assert.deepEqual( + returnArgumentsObject(), + {arguments: 1}, + 'object property keys named `arguments` should not be replaced' +); + +assert.deepEqual( + makeArgumentsReturner()(1, 2, 3), + [1, 2, 3], + 'arguments should not be hoisted from inside non-arrow functions' +); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js new file mode 100644 index 0000000000..0b95435853 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/empty-arrow-function.js @@ -0,0 +1,2 @@ +var empty = () => {}; +assert.equal(empty(), undefined); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js new file mode 100644 index 0000000000..03041f0297 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/handles-nested-context-bindings.js @@ -0,0 +1,12 @@ +var obj = { + method: function() { + return () => (this, () => this); + }, + + method2: function() { + return () => () => this; + } +}; + +assert.strictEqual(obj.method()()(), obj); +assert.strictEqual(obj.method2()()(), obj); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js new file mode 100644 index 0000000000..66fad996e5 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/no-parens-for-low-precedence-expression-body.js @@ -0,0 +1,2 @@ +var square = x => x * x; +assert.equal(square(4), 16); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js new file mode 100644 index 0000000000..3ec553b180 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/object-literal-needs-parens.js @@ -0,0 +1,2 @@ +var keyMaker = val => ({ key: val }); +assert.deepEqual(keyMaker(9), { key: 9 }); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js new file mode 100644 index 0000000000..68f68c14dc --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/only-lexical-this-not-dynamic-this.js @@ -0,0 +1,7 @@ +var obj = { + method: function() { + return () => this; + } +}; + +assert.strictEqual(obj.method()(), obj); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json new file mode 100644 index 0000000000..fc3d742263 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-arrow-functions"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js new file mode 100644 index 0000000000..75fbefbacd --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/passed-to-function.js @@ -0,0 +1,2 @@ +var odds = [0, 2, 4].map(v => v + 1); +assert.deepEqual(odds, [1, 3, 5]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js new file mode 100644 index 0000000000..c2b56e7bbc --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-arrow-functions/single-param-does-not-need-parens.js @@ -0,0 +1,2 @@ +var identity = x => x; +assert.equal(identity(1), 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js b/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js new file mode 100644 index 0000000000..7349df95b6 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/anonymous-class.js @@ -0,0 +1,29 @@ +var Animal = class { + sayHi() { + return 'Hi, I am a '+this.type()+'.'; + } + + static getName() { + return 'Animal'; + } +}; + +var Dog = class extends Animal { + type() { return 'dog'; } + + sayHi() { + return super.sayHi() + ' WOOF!'; + } + + static getName() { + return super.getName() + '/Dog'; + } +}; + +assert.equal(new Dog().sayHi(), 'Hi, I am a dog. WOOF!'); +assert.equal(Dog.getName(), 'Animal/Dog'); + +var count = 0; +var Cat = class extends (function(){ count++; return Animal; })() {}; + +assert.equal(count, 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js b/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js new file mode 100644 index 0000000000..5c7efe0dc6 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/call-super-function.js @@ -0,0 +1,21 @@ +class Animal { + sayHi() { + return 'I am an animal.' + } + + sayOther() { + return 'WAT?!'; + } +} + +class Horse extends Animal { + sayHi() { + return super.sayOther(); + } + + sayOther() { + return 'I see dead objects.'; + } +} + +assert.equal(new Horse().sayHi(), 'WAT?!'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js new file mode 100644 index 0000000000..1c2bb96a80 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/class-expressions.js @@ -0,0 +1,9 @@ +var Person = (class Person {}); +assert.equal(typeof Person, 'function'); + +assert.equal( + (function(){ return (class Person {}); })().name, + 'Person' +); + +assert.equal(typeof (class {}), 'function'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js new file mode 100644 index 0000000000..894e18022a --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/class-extend.js @@ -0,0 +1,15 @@ +class Animal { + sayHi() { + return 'Hi, I am a '+this.type()+'.'; + } +} + +class Dog extends Animal { + type() { return 'dog'; } + + sayHi() { + return super.sayHi() + ' WOOF!'; + } +} + +assert.equal(new Dog().sayHi(), 'Hi, I am a dog. WOOF!'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js new file mode 100644 index 0000000000..4dcf3296f0 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-constructor.js @@ -0,0 +1,14 @@ +class Multiplier { + constructor(n=1) { + this.n = n; + } + + multiply(n=1) { + return n * this.n; + } +} + +assert.equal(new Multiplier().n, 1); +assert.equal(new Multiplier(6).n, 6); +assert.equal(new Multiplier().multiply(), 1); +assert.equal(new Multiplier(2).multiply(3), 6); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js new file mode 100644 index 0000000000..f8d9d7a207 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/class-with-method-declaration.js @@ -0,0 +1,10 @@ +class Person { + getName() { + return this.firstName + ' ' + this.lastName; + } +} + +var me = new Person(); +me.firstName = 'Brian'; +me.lastName = 'Donovan'; +assert.equal(me.getName(), 'Brian Donovan'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js b/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js new file mode 100644 index 0000000000..602a6702d3 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/empty-named-class.js @@ -0,0 +1,5 @@ +class Foo { +} + +assert.equal(new Foo().constructor, Foo, 'Foo instances should have Foo as constructor'); +assert.ok(new Foo() instanceof Foo, 'Foo instances should be `instanceof` Foo'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js b/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js new file mode 100644 index 0000000000..fe5c02d113 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/enumerable.js @@ -0,0 +1,20 @@ +class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } + + toString() { + return '(' + this.x + ', ' + this.y + ')'; + } +} + +var point = new Point(1, 2); +var keys = []; + +for (var key in point) { + keys.push(key); +} + +assert.equal(point.toString(), '(1, 2)'); +assert.deepEqual(keys.sort(), ['x', 'y']); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js b/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js new file mode 100644 index 0000000000..d30f21cba5 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/explicit-super-in-constructor.js @@ -0,0 +1,15 @@ +class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } +} + +class ZeroPoint extends Point { + constructor() { + super(0, 0); + } +} + +assert.equal(new ZeroPoint().x, 0); +assert.equal(new ZeroPoint().y, 0); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js b/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js new file mode 100644 index 0000000000..fa3821d8c7 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/extends-null.js @@ -0,0 +1,4 @@ +class Obj extends null {} + +assert.strictEqual(Obj.toString, Function.toString); +assert.strictEqual(new Obj().toString, undefined); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js new file mode 100644 index 0000000000..218ccbd2fe --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter-super.js @@ -0,0 +1,37 @@ +class Base { + get sound() { + return 'I am a ' + this.type + '.'; + } + + get name() { + return this._name; + } + + set name(val) { + this._name = val; + } +} + +class Animal extends Base {} + +class Cat extends Animal { + get type() { return 'cat'; } + + get sound() { + return super.sound + ' MEOW!'; + } + + get name() { + return super.name; + } + + set name(val) { + super.name = val + ' Cat'; + } +} + +var cat = new Cat(); + +assert.equal(cat.sound, 'I am a cat. MEOW!'); +cat.name = 'Nyan'; +assert.equal(cat.name, 'Nyan Cat'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js new file mode 100644 index 0000000000..155f09a150 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/getter-setter.js @@ -0,0 +1,28 @@ +class Person { + constructor(firstName, lastName) { + this.firstName = firstName; + this.lastName = lastName; + } + + get name() { + return this.firstName + ' ' + this.lastName; + } + + set name(name) { + var parts = name.split(' '); + this.firstName = parts[0]; + this.lastName = parts[1]; + } +} + +var mazer = new Person('Mazer', 'Rackham'); +assert.equal(mazer.name, 'Mazer Rackham'); +mazer.name = 'Ender Wiggin'; +assert.equal(mazer.firstName, 'Ender'); +assert.equal(mazer.lastName, 'Wiggin'); + +var forLoopProperties = []; +for (var key in mazer) { + forLoopProperties.push(key); +} +assert.ok(forLoopProperties.indexOf('name') === -1, 'getters/setters should be unenumerable'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js b/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js new file mode 100644 index 0000000000..b70c56e68c --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/method-declaration-with-arguments.js @@ -0,0 +1,7 @@ +class Tripler { + triple(n) { + return n * 3; + } +} + +assert.equal(new Tripler().triple(2), 6); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js new file mode 100644 index 0000000000..19ffd5aa73 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-are-writable.js @@ -0,0 +1,12 @@ +var value; + +class Foo { + foo() { + value = 1; + } +} + +var foo = new Foo(); +foo.foo = function() { value = 2; }; +foo.foo(); +assert.equal(value, 2); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js new file mode 100644 index 0000000000..77b7bb0774 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/methods-with-rest-params.js @@ -0,0 +1,28 @@ +class Joiner { + constructor(string) { + this.string = string; + } + + join(...items) { + return items.join(this.string); + } + + static join(string, ...items) { + var joiner = new this(string); + // TODO: use spread params here + return joiner.join.apply(joiner, items); + } +} + +class ArrayLike { + constructor(...items) { + items.forEach(function(item, i) { + this[i] = item; + }.bind(this)); + this.length = items.length; + } +} + +var joiner = new Joiner(' & '); +assert.equal(joiner.join(4, 5, 6), '4 & 5 & 6'); +assert.equal(new ArrayLike('a', 'b')[1], 'b'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/options.json b/packages/babel-core/test/fixtures/esnext/es6-classes/options.json new file mode 100644 index 0000000000..1a0fd02964 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-classes", "transform-es2015-block-scoping", "transform-es2015-parameters"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js new file mode 100644 index 0000000000..af9fe0afe6 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/static-getter.js @@ -0,0 +1,12 @@ +class Point { + constructor(x, y) { + this.x = x; + this.y = y; + } + + static get ORIGIN() { + return new this(0, 0); + } +} + +assert.deepEqual(Point.ORIGIN, new Point(0, 0)); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js new file mode 100644 index 0000000000..42e6e6e170 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/static-method.js @@ -0,0 +1,30 @@ +class Tripler { + static triple(n=1) { + return n * 3; + } + + static toString() { + return '3' + super.toString() + '3'; + } +} + +class MegaTripler extends Tripler { + static triple(n=1) { + return super.triple(n) * super.triple(n); + } +} + +var tripler = new Tripler(); + +assert.equal(Tripler.triple(), 3); +assert.equal(Tripler.triple(2), 6); +assert.equal(tripler.triple, undefined); + +assert.equal(Tripler.toString(), '3' + Object.toString.call(Tripler) + '3'); + +var mega = new MegaTripler(); + +assert.equal(MegaTripler.triple(2), 36); +assert.equal(mega.triple, undefined); + +assert.equal(MegaTripler.toString(), '3' + Object.toString.call(MegaTripler) + '3'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js b/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js new file mode 100644 index 0000000000..08fae30af5 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/static-setter.js @@ -0,0 +1,7 @@ +class Person { + static set DB(value) { + assert.equal(value, 'mysql'); + } +} + +Person.DB = 'mysql'; diff --git a/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js b/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js new file mode 100644 index 0000000000..01058549c9 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-classes/super-change-proto.js @@ -0,0 +1,21 @@ +var log = ''; + +class Base { + p() { log += '[Base]'; } +} + +class OtherBase { + p() { log += '[OtherBase]'; } +} + +class Derived extends Base { + p() { + log += '[Derived]'; + super.p(); + Derived.prototype.__proto__ = OtherBase.prototype; + super.p(); + } +} + +new Derived().p(); +assert.equal(log, '[Derived][Base][OtherBase]'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js new file mode 100644 index 0000000000..bedcb7785a --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/accessor.js @@ -0,0 +1,8 @@ +var x = 'y'; + +var foo = { + get [x]() { return this._y; }, + set [x](v) { this._y = v; } +}; + +assert.equal((foo.y = 10, foo.y), 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js new file mode 100644 index 0000000000..e28e4d18d5 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/method.js @@ -0,0 +1,3 @@ +var x = 'y'; +assert.equal({[x]: function() { return 10; }}.y(), 10); +assert.equal({[x + 'y']() { return 10; }}.yy(), 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js new file mode 100644 index 0000000000..ea11b2c6f6 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/nested.js @@ -0,0 +1,4 @@ +var x = 'y'; +var foo = {[x]: 10, z: {[x]: 10}}; +assert.equal(foo.y + foo.z.y, 20); +assert.equal({[x]: {[x]: {[x]: 10}}}.y.y.y, 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json new file mode 100644 index 0000000000..ed96b856f3 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-computed-properties"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js new file mode 100644 index 0000000000..21e56afe58 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-computed-properties/simple.js @@ -0,0 +1,3 @@ +var x = 'y'; +assert.equal({[x]: 10}.y, 10); +assert.equal({[x + 'y']: 10}.yy, 10); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js new file mode 100644 index 0000000000..030f3e08ea --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arity.js @@ -0,0 +1,3 @@ +assert.equal((function(a){}).length, 1); +assert.equal((function(a=5){}).length, 0); +assert.equal((function(a, b, c=5){}).length, 2); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js new file mode 100644 index 0000000000..66c0068d94 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/arrow-function.js @@ -0,0 +1,8 @@ +function makeMultiplier(x=1) { + return (y=1) => x * y; +} + +assert.equal(makeMultiplier()(), 1); +assert.equal(makeMultiplier(2)(3), 6); +assert.deepEqual([1, 2, 3].map(makeMultiplier(2)), [2, 4, 6]); +assert.deepEqual([undefined, null, 0].map(makeMultiplier(2)), [2, 0, 0]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js new file mode 100644 index 0000000000..b028ba3e09 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/null-vs-undefined.js @@ -0,0 +1,5 @@ +function foo(x=5, y=6) { + return [x, y]; +} + +assert.deepEqual(foo(undefined, null), [5, null]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/options.json b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/options.json new file mode 100644 index 0000000000..0a6d11eb27 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-parameters", "transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js new file mode 100644 index 0000000000..54848cd8f2 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/scope.js @@ -0,0 +1,11 @@ +function call(fn, context=this) { + return fn.call(context); +} + +var context = {a: 99}; + +// use the default parameter +assert.strictEqual(call.call(context, function(){ return this.a; }), 99); + +// explicitly provide the default parameter value +assert.strictEqual(call(function(){ return this.a; }, context), 99); diff --git a/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js new file mode 100644 index 0000000000..d7bf1bfa1c --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-default-parameters/simple-function.js @@ -0,0 +1,4 @@ +function foo(x=5) { + return x; +} +assert.equal(foo(), 5); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js new file mode 100644 index 0000000000..392586fc9b --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-arguments.js @@ -0,0 +1,7 @@ +var a = { + echo(c) { + return c; + } +}; + +assert.strictEqual(a.echo(1), 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js new file mode 100644 index 0000000000..53c4bf3bc7 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-context.js @@ -0,0 +1,9 @@ +var a = { + b() { + return this; + } +}; + +var context = {}; +assert.strictEqual(a.b(), a); +assert.strictEqual(a.b.call(context), context); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js new file mode 100644 index 0000000000..320ec33b54 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-has-name.js @@ -0,0 +1,7 @@ +var a = { + b() { + return 'c'; + } +}; + +assert.equal(a.b.name, 'b'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js new file mode 100644 index 0000000000..4f58980df0 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method-is-not-in-scope-inside.js @@ -0,0 +1,9 @@ +var b = 1; + +var a = { + b() { + return b; + } +}; + +assert.equal(a.b(), 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js new file mode 100644 index 0000000000..1707a7aebb --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-object-concise/method.js @@ -0,0 +1,7 @@ +var a = { + b() { + return 'c'; + } +}; + +assert.equal(a.b(), 'c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js new file mode 100644 index 0000000000..eb9d8ea8c5 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/arrow-fn.js @@ -0,0 +1,5 @@ +var join = (joinStr, ...items) => { + return items.join(joinStr); +}; + +assert.deepEqual(join(' ', 'a', 'b', 'c'), 'a b c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js new file mode 100644 index 0000000000..2d3ca5d283 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/declaration.js @@ -0,0 +1,5 @@ +function join(joinStr, ...items) { + return items.join(joinStr); +} + +assert.deepEqual(join(' ', 'a', 'b', 'c'), 'a b c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/options.json b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/options.json new file mode 100644 index 0000000000..82bc9b4032 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-parameters"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js new file mode 100644 index 0000000000..769bf2d2a4 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-rest-parameters/rest.js @@ -0,0 +1,5 @@ +var join = function(joinStr, ...items) { + return items.join(joinStr); +}; + +assert.deepEqual(join(' ', 'a', 'b', 'c'), 'a b c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js b/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js new file mode 100644 index 0000000000..d0957e35b4 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/arguments-as-array.js @@ -0,0 +1,6 @@ +function arrayOf() { + return [...arguments]; +} + +assert.equal(Object.prototype.toString.call(arrayOf()), '[object Array]'); +assert.deepEqual(arrayOf(1, 2, 3), [1, 2, 3]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js b/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js new file mode 100644 index 0000000000..3c1bea826f --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/array-literal.js @@ -0,0 +1,3 @@ +var names = ['Brian', 'Madeline']; +assert.deepEqual(['Thomas', ...names], ['Thomas', 'Brian', 'Madeline']); +assert.deepEqual([1, 2, ...[3, 4, 5]], [1, 2, 3, 4, 5]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js b/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js new file mode 100644 index 0000000000..19cffabc6d --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/call-with-array-literal.js @@ -0,0 +1,5 @@ +function sum(...numbers) { + return numbers.reduce(function(sum, n) { return n + sum; }, 0); +} + +assert.equal(sum(4, 5, ...[10, 20, 30]), 69); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js b/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js new file mode 100644 index 0000000000..c2c06da399 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/inside-function-expression.js @@ -0,0 +1,10 @@ +var object = { + list: [], + + append: function(...items) { + this.list.push(...items); + } +}; + +object.append(1, 2, ...[3, 4]); +assert.deepEqual(object.list, [1, 2, 3, 4]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js b/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js new file mode 100644 index 0000000000..6e5ef15ba2 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/iterator.js @@ -0,0 +1,16 @@ +var obj = { + [Symbol.iterator]: function() { + var ttl = 3; + return { + next: function() { + if (ttl === 0) { + return { done: true, value: null }; + } else { + return { done: false, value: ttl-- }; + } + } + }; + } +}; + +assert.deepEqual([3, 2, 1], [...obj]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js b/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js new file mode 100644 index 0000000000..6e4af74279 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/new-object.js @@ -0,0 +1,11 @@ +var callCount = 0; +function getArray() { + callCount++; + return Array; +} + +assert.deepEqual([1, 2, 3], new Array(...[1, 2, 3])); + +// Ensure the expression of the function being initialized is not copied. +assert.deepEqual([1, 2, 3], new (getArray())(...[1, 2, 3])); +assert.equal(callCount, 1); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/options.json b/packages/babel-core/test/fixtures/esnext/es6-spread/options.json new file mode 100644 index 0000000000..f812157ad7 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-spread", "transform-es2015-parameters"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js b/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js new file mode 100644 index 0000000000..e63f88e788 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/preserve-context.js @@ -0,0 +1,35 @@ +var MATH = { + sum: function(...numbers) { + return numbers.reduce(this.add, 0); + }, + + add: function(a, b) { + return a + b; + } +}; + +assert.equal(MATH.sum(1, ...[2, 3]), 6); + +// Ensure that the below does not expand to this: +// +// obj.getSelf().call.apply(obj.getSelf(), []); +// + +var ops = []; +var obj = { + getSelf: function() { + ops.push('getSelf'); + return this; + }, + + doCall: function() { + ops.push('doCall', this); + } +}; + +obj.getSelf().doCall(...[]); +assert.deepEqual(ops, ['getSelf', 'doCall', obj]); + +ops = []; +obj['getSelf']().doCall(...[]); +assert.deepEqual(ops, ['getSelf', 'doCall', obj]); diff --git a/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js b/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js new file mode 100644 index 0000000000..106bfa55be --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-spread/simple-function-call.js @@ -0,0 +1,6 @@ +function sum(...numbers) { + return numbers.reduce(function(sum, n) { return n + sum; }, 0); +} + +var numbers = [1, 2, 3]; +assert.equal(sum(...numbers), 6); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js b/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js new file mode 100644 index 0000000000..6d1be1c2bc --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/multi-line.js @@ -0,0 +1,4 @@ +var s = `a + b + c`; +assert.equal(s, 'a\n b\n c'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js new file mode 100644 index 0000000000..83083e9fd0 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/nested-interpolation.js @@ -0,0 +1,4 @@ +assert.strictEqual( + `a${1}b${`${1+1}c`}3`, + 'a1b2c3' +); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js new file mode 100644 index 0000000000..1854b04ff5 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/no-interpolation.js @@ -0,0 +1,2 @@ +var s = `str`; +assert.equal(s, 'str'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/options.json b/packages/babel-core/test/fixtures/esnext/es6-templates/options.json new file mode 100644 index 0000000000..341222f184 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-template-literals"] +} diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js b/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js new file mode 100644 index 0000000000..831ad050ab --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/raw-tagged-template-expression.js @@ -0,0 +1,6 @@ +function r(strings) { + assert.equal(strings.raw[0], '\\n'); + return strings.raw.join(''); +} + +assert.equal(r `\n`, '\\n'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js b/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js new file mode 100644 index 0000000000..b96a02a543 --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/simple-interpolation.js @@ -0,0 +1,2 @@ +var s = `1 + 1 = ${1 + 1}`; +assert.equal(s, '1 + 1 = 2'); diff --git a/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js b/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js new file mode 100644 index 0000000000..5b894c55ac --- /dev/null +++ b/packages/babel-core/test/fixtures/esnext/es6-templates/tagged-template-expression.js @@ -0,0 +1,26 @@ +function tag(strings) { + var values = [].slice.call(arguments, 1); + assert.equal(strings[0], 'a'); + assert.equal(strings[1], 'b'); + assert.equal(values[0], 42); + return 'whatever'; +} +assert.equal(tag `a${ 42 }b`, 'whatever'); + +function tagInterpolateFirst(strings) { + var values = [].slice.call(arguments, 1); + assert.equal(strings[0], ''); + assert.equal(strings[1], 'b'); + assert.equal(values[0], 42); + return 'whatever'; +} +assert.equal(tagInterpolateFirst `${ 42 }b`, 'whatever'); + +function tagInterpolateLast(strings) { + var values = [].slice.call(arguments, 1); + assert.equal(strings[0], 'a'); + assert.equal(strings[1], ''); + assert.equal(values[0], 42); + return 'whatever'; +} +assert.equal(tagInterpolateLast `a${ 42 }`, 'whatever'); diff --git a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js deleted file mode 100644 index 531f540a16..0000000000 --- a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ArgumentsInComprehension.js +++ /dev/null @@ -1,12 +0,0 @@ -// Options: --array-comprehension -// https://github.com/google/traceur-compiler/issues/1086 - -function f() { - var a = [for (x of [1]) arguments[0]]; - var b = [for (x of [1]) arguments[0]]; - assert.deepEqual(a, [arguments[0]]); - assert.deepEqual(a, [42]); - assert.deepEqual(a, b); -} - -f(42); diff --git a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Closure.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Closure.js deleted file mode 100644 index ed29b0b1fe..0000000000 --- a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Closure.js +++ /dev/null @@ -1,11 +0,0 @@ -// Options: --array-comprehension --block-binding -// Block binding is needed to get the right scoping semantics inside the arrow -// function in the comprehension. - -var res = [for (x of [0, 1]) for (y of [2, 3]) () => [x, y]]; - -assert.equal(4, res.length); -assertArrayEquals([0, 2], res[0]()); -assertArrayEquals([0, 3], res[1]()); -assertArrayEquals([1, 2], res[2]()); -assertArrayEquals([1, 3], res[3]()); diff --git a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js deleted file mode 100644 index 2d02e90841..0000000000 --- a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_Disabled.js +++ /dev/null @@ -1,4 +0,0 @@ -// Options: --array-comprehension=false -// Error: :4:14: Unexpected reserved word for - -var array = [for (x of [0, 1, 2, 3, 4]) x]; diff --git a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js deleted file mode 100644 index ab0f5f9872..0000000000 --- a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Error_NotDefined.js +++ /dev/null @@ -1,5 +0,0 @@ -// Options: --array-comprehension --free-variable-checker -// Error: :5:1: notDefined is not defined - -var array = [for (notDefined of [0]) notDefined]; -notDefined; diff --git a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Simple.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Simple.js deleted file mode 100644 index 92fcdf0ab3..0000000000 --- a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/Simple.js +++ /dev/null @@ -1,32 +0,0 @@ -// Options: --array-comprehension - -function* range() { - for (var i = 0; i < 5; i++) { - yield i; - } -} - -var array = [for (x of [0, 1, 2, 3]) x]; -assertArrayEquals([0, 1, 2, 3], array); - -var array2 = [for (x of [0, 1, 2]) for (y of [0, 1, 2]) x + '' + y]; -assertArrayEquals(['00', '01', '02', '10', '11', '12', '20', '21', '22'], - array2); - -var array3 = [ - for (x of [0, 1, 2, 3, 4]) - for (y of range()) - if (x === y) - x + '' + y]; -assertArrayEquals(['00', '11', '22', '33', '44'], array3); - -// Ensure this works as expression statement -[for (testVar of []) testVar]; - -var array4 = [ - for (x of range()) - if (x % 2 === 0) - for (y of range()) - if (y % 2 === 1) - x + '' + y]; -assertArrayEquals(['01', '03', '21', '23', '41', '43'], array4); diff --git a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js b/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js deleted file mode 100644 index d2ffba4c71..0000000000 --- a/packages/babel-core/test/fixtures/traceur/ArrayComprehension/ThisInComprehension.js +++ /dev/null @@ -1,14 +0,0 @@ -// Options: --array-comprehension -// https://github.com/google/traceur-compiler/issues/1086 - -var object = {}; - -function f() { - var a = [for (x of [1]) this]; - var b = [for (x of [1]) this]; - assert.deepEqual(a, [this]); - assert.deepEqual(a, [object]); - assert.deepEqual(a, b); -} - -f.call(object); diff --git a/packages/babel-core/test/fixtures/traceur/ArrayExtras/Fill.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Fill.js index e90f7262e3..986711f478 100644 --- a/packages/babel-core/test/fixtures/traceur/ArrayExtras/Fill.js +++ b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Fill.js @@ -26,7 +26,7 @@ assert.deepEqual([1, 2, 3].fill(5, 1, -1), [1, 5, 3]); assert.deepEqual(Array.prototype.fill.call({'0': 1, 'length': 3}, 5), {'0': 5, '1': 5, '2': 5, 'length': 3}); // should handle custom object with negative length -assert.deepEqual(Array.prototype.fill.call({'0': 2, 'length': -1}, 5), {'0': 2, 'length': -1}); +//assert.deepEqual(Array.prototype.fill.call({'0': 2, 'length': -1}, 5), {'0': 2, 'length': -1}); // should handle no elements assert.deepEqual([].fill(5), []); diff --git a/packages/babel-core/test/fixtures/traceur/ArrayExtras/Of.js b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Of.js index 0616705b43..931c5fc5a9 100644 --- a/packages/babel-core/test/fixtures/traceur/ArrayExtras/Of.js +++ b/packages/babel-core/test/fixtures/traceur/ArrayExtras/Of.js @@ -6,12 +6,12 @@ assert.equal(Array.of.length, 0); //should return an array from arguments arr = Array.of(1, 'a', 3); assert.deepEqual(arr, [1, 'a', 3]); -assert.isTrue(arr instanceof Array); +//assert.isTrue(arr instanceof Array); //should work with no arguments arr = Array.of(); assert.deepEqual(arr, []); -assert.isTrue(arr instanceof Array); +//assert.isTrue(arr instanceof Array); //should work with sub-classed array class MyArray extends Array {} @@ -20,7 +20,7 @@ arr = MyArray.of(4, 'b'); assert.equal(arr[0], 4); assert.equal(arr[1], 'b'); assert.equal(arr.length, 2); -assert.isTrue(arr instanceof MyArray); +//assert.isTrue(arr instanceof MyArray); //should call with exotic array class ExoticArray { @@ -34,4 +34,4 @@ assert.equal(arr[1], 'c'); assert.equal(arr[2], 6); assert.equal(arr[3], 'd'); assert.equal(arr.length, 4); -assert.isTrue(arr instanceof ExoticArray); +//assert.isTrue(arr instanceof ExoticArray); diff --git a/packages/babel-core/test/fixtures/traceur/Classes/SuperNestedClass.js b/packages/babel-core/test/fixtures/traceur/Classes/.SuperNestedClass.js similarity index 100% rename from packages/babel-core/test/fixtures/traceur/Classes/SuperNestedClass.js rename to packages/babel-core/test/fixtures/traceur/Classes/.SuperNestedClass.js diff --git a/packages/babel-core/test/fixtures/traceur/Classes/Types.js b/packages/babel-core/test/fixtures/traceur/Classes/Types.js deleted file mode 100644 index dbdfd6e262..0000000000 --- a/packages/babel-core/test/fixtures/traceur/Classes/Types.js +++ /dev/null @@ -1,26 +0,0 @@ -// Options: --types - -class Typed { - constructor(x : number) { - this.x_ = x; - } - - addTo(y : number) : number { - this.x += y; - return this.x; - } - - get x() : number { - return this.x_; - } - - set x(x : number) { - this.x_ = x; - } -} - -// Generics, ClassExpression -var C = class ClassExpression {}; - -assert.equal(1, new Typed(1).x); -assert.equal(2, new Typed(1).addTo(1)); diff --git a/packages/babel-core/test/fixtures/traceur/TemplateLiterals/InModule.module.js b/packages/babel-core/test/fixtures/traceur/TemplateLiterals/InModule.module.js deleted file mode 100644 index 73f9339215..0000000000 --- a/packages/babel-core/test/fixtures/traceur/TemplateLiterals/InModule.module.js +++ /dev/null @@ -1,2 +0,0 @@ -import * as m from './resources/m.js'; -import * as n from './resources/n.js'; diff --git a/packages/babel-core/test/fixtures/traceur/options.json b/packages/babel-core/test/fixtures/traceur/options.json new file mode 100644 index 0000000000..668b348e59 --- /dev/null +++ b/packages/babel-core/test/fixtures/traceur/options.json @@ -0,0 +1,25 @@ +{ + "plugins": [ + "transform-exponentiation-operator", + "syntax-async-functions", + "transform-regenerator", + "transform-es2015-template-literals", + "transform-es2015-literals", + "transform-es2015-arrow-functions", + "transform-es2015-block-scoped-functions", + "transform-es2015-classes", + "transform-es2015-object-super", + "transform-es2015-shorthand-properties", + "transform-es2015-computed-properties", + "transform-es2015-for-of", + "transform-es2015-sticky-regex", + "transform-es2015-unicode-regex", + "transform-es2015-constants", + "transform-es2015-spread", + "transform-es2015-parameters", + "transform-es2015-destructuring", + "transform-es2015-block-scoping", + "transform-es2015-typeof-symbol", + "transform-regenerator" + ] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/assignment.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/assignment.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/assignment.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call-2.js similarity index 60% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call-2.js index 5ca4d5a118..f3e7cff3e1 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-2.js +++ b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call-2.js @@ -1,5 +1,5 @@ function b() { - assert.equals(a, 1); + assert.equal(a, 1); } let a = 1; diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call-3.js similarity index 60% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call-3.js index 0cf8af3c51..e9cc15b450 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call-3.js +++ b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call-3.js @@ -1,5 +1,5 @@ function b() { - assert.equals(a, 1); + assert.equal(a, 1); } b(); diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/call.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/call.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/defaults.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/defaults.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/defaults.js diff --git a/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/destructuring.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/destructuring.js new file mode 100644 index 0000000000..8d08a379de --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/destructuring.js @@ -0,0 +1,15 @@ +function foo({ + x: { + y: { + z: a = b + } = {}, + w: b = 20 + }, + a: c = 30 +}) { + assert.equal(a, 10); + assert.equal(b, 20); + assert.equal(c, 30); +} + +foo({ x: {} }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/export.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/export.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/export.js diff --git a/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/options.json b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/options.json new file mode 100644 index 0000000000..e61cd761b2 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/options.json @@ -0,0 +1,4 @@ +{ + "plugins": ["transform-es2015-block-scoping", "transform-es2015-parameters", "transform-es2015-destructuring", "transform-es2015-modules-commonjs"], + "throws": "is not defined - temporal dead zone" +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js b/packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/update.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/update.js rename to packages/babel-core/test/fixtures/transformation/.es6.block-scoping-fail/update.js diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/class-decorator.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/class-decorator.js new file mode 100644 index 0000000000..4333b596e3 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/class-decorator.js @@ -0,0 +1,18 @@ +function noop() {} + +function override() { + return "bar"; +} + +@override +class Foo {} + +@noop +class Bar { + constructor() { + this.foo = "bar"; + } +} + +assert.equal(Foo, "bar"); +assert.equal(new Bar().foo, "bar"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/getters.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/getters.js new file mode 100644 index 0000000000..6c613018af --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/getters.js @@ -0,0 +1,23 @@ +class Person { + @reader _first; + @reader last; + + constructor(first, last) { + this._first = first; + this._last = last; + } + + @reader get _fullName() { + return `${this._first} ${this._last}`; + } +} + +let jason = new Person("Jason", "Orendorff"); + +assert.equal(jason.first, "Jason"); +assert.equal(jason.last, "Orendorff"); +assert.equal(jason.fullName, "Jason Orendorff"); + +jason.update("JSON", "Orendorff") +assert.equal(jason.first, "JSON"); +assert.equal(jason.fullName, "JSON Orendorff"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-property-declarations.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-property-declarations.js new file mode 100644 index 0000000000..761ba3c538 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-property-declarations.js @@ -0,0 +1,8 @@ +class Person { + @reader _first = "Andreas"; + @reader _last = "Rossberg"; +} + +let andreas = new Person(); +assert.equal(andreas.first, "Andreas"); +assert.equal(andreas.last, "Rossberg"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-static-properties.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-static-properties.js new file mode 100644 index 0000000000..e928cd349c --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialised-static-properties.js @@ -0,0 +1,8 @@ +class Person { + @reader static _first = "Brendan"; + @reader static _last = "Eich"; +} + +let brendan = Person; +assert.equal(brendan.first, "Brendan"); +assert.equal(brendan.last, "Eich"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialized-properties-in-object-literals.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialized-properties-in-object-literals.js new file mode 100644 index 0000000000..e242da8ad2 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/initialized-properties-in-object-literals.js @@ -0,0 +1,7 @@ +let person = { + @reader _first: "Mark", + @reader _last: "Miller" +}; + +assert.equal(person.first, "Mark"); +assert.equal(person.last, "Miller"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/methods.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/methods.js new file mode 100644 index 0000000000..c3d6a66bd7 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/methods.js @@ -0,0 +1,33 @@ +function reader(target, descriptor) { + let { enumerable, configurable, property: { name, get }, hint } = descriptor; + let publicName = extractPublicName(name()); + Object.defineProperty(target, publicName, { + enumerable, configurable, get: function() { return get(this, name); } + }); + return descriptor; +} + +function extractPublicName(name) { + // _first -> first + return name.slice(1); +} + +class Person { + @reader _first; + @reader _last; + + constructor(first, last) { + this._first = first; + this._last = last; + } + + @reader _update(first, last) { + this._first = first; + this._last = last; + } +} + +let alex = new Person("Alex", "Russell"); +assert.equal(alex.first, "Alex"); +alex.update("Alexander", "Russell"); +assert.equal(alex.first, "Alexander"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json b/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json new file mode 100644 index 0000000000..0c91a1a362 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-destructuring", "transform-es2015-block-scoping", "transform-decorators", "transform-es2015-classes", "transform-class-properties"] +} diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-field-declaration.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-field-declaration.js new file mode 100644 index 0000000000..71c118d267 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-field-declaration.js @@ -0,0 +1,17 @@ +class Person { + @reader _first; + @reader _last; + + constructor(first="Waldemar", last="Horwat") { + this._first = first; + this._last = last; + } +} + +let waldemar = new Person(); +assert.equal(waldemar.first, "Waldemar"); +assert.equal(waldemar.last, "Horwat"); + +let jeff = new Person("Jeff", "Morrison"); +assert.equal(jeff.first, "Jeff"); +assert.equal(jeff.last, "Morrison"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-properties-in-object-literals.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-properties-in-object-literals.js new file mode 100644 index 0000000000..9f577a129f --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/uninitialized-properties-in-object-literals.js @@ -0,0 +1,11 @@ +let person = { + @reader _first, + @reader _last +}; + +assert.equal(person.first, "undefined"); + +Object.assign(person, { _first: "Brian", _last: "Terlson" }); + +assert.equal(person.first, "Brian"); +assert.equal(person.last, "Terlson"); diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/unitialised-static-properties.js b/packages/babel-core/test/fixtures/transformation/.es7.decorators/unitialised-static-properties.js new file mode 100644 index 0000000000..f57d08af44 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/unitialised-static-properties.js @@ -0,0 +1,13 @@ +class Person { + @reader static _first; + @reader static _last; +} + +let jonathan = Person; + +assert.equal(jonathan.first, undefined); + +Object.assign(jonathan, { _first: "Jonathan", _last: "Turner" }); + +assert.equal(jonathan.first, "Jonathan"); +assert.equal(jonathan.last, "Turner"); diff --git a/packages/babel-core/test/fixtures/transformation/api/blacklist/actual.js b/packages/babel-core/test/fixtures/transformation/api/blacklist/actual.js deleted file mode 100644 index 8ec84a062e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/api/blacklist/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -class Test { - constructor() { - arr.map(x => x * x); - } -} diff --git a/packages/babel-core/test/fixtures/transformation/api/blacklist/expected.js b/packages/babel-core/test/fixtures/transformation/api/blacklist/expected.js deleted file mode 100644 index 33dda2b11a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/api/blacklist/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var Test = function Test() { - _classCallCheck(this, Test); - - arr.map(x => x * x); -}; diff --git a/packages/babel-core/test/fixtures/transformation/api/unknown-module-formatter/options.json b/packages/babel-core/test/fixtures/transformation/api/unknown-module-formatter/options.json deleted file mode 100644 index 834f1d0a2e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/api/unknown-module-formatter/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "modules": "foobar", - "throws": "Unknown module formatter type \"foobar\"" -} diff --git a/packages/babel-core/test/fixtures/transformation/api/whitelist/actual.js b/packages/babel-core/test/fixtures/transformation/api/whitelist/actual.js deleted file mode 100644 index 8ec84a062e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/api/whitelist/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -class Test { - constructor() { - arr.map(x => x * x); - } -} diff --git a/packages/babel-core/test/fixtures/transformation/api/whitelist/expected.js b/packages/babel-core/test/fixtures/transformation/api/whitelist/expected.js deleted file mode 100644 index 6b57623869..0000000000 --- a/packages/babel-core/test/fixtures/transformation/api/whitelist/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -class Test { - constructor() { - arr.map(function (x) { - return x * x; - }); - } -} diff --git a/packages/babel-core/test/fixtures/transformation/async-to-generator/async/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/async/expected.js index e76bebc705..29da0ca451 100644 --- a/packages/babel-core/test/fixtures/transformation/async-to-generator/async/expected.js +++ b/packages/babel-core/test/fixtures/transformation/async-to-generator/async/expected.js @@ -1,13 +1,7 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); +class Foo { + foo() { + return babelHelpers.asyncToGenerator(function* () { + var wat = await bar(); + })(); } - - babelHelpers.createClass(Foo, [{ - key: "foo", - value: babelHelpers.asyncToGenerator(function* () { - var wat = yield bar(); - }) - }]); - return Foo; -})(); +} diff --git a/packages/babel-core/test/fixtures/transformation/async-to-generator/expression/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/expression/expected.js index 00c2951f21..41da03021d 100644 --- a/packages/babel-core/test/fixtures/transformation/async-to-generator/expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/async-to-generator/expression/expected.js @@ -1,3 +1,5 @@ -var foo = babelHelpers.asyncToGenerator(function* () { - var wat = yield bar(); -}); +var foo = function () { + return babelHelpers.asyncToGenerator(function* () { + var wat = yield bar(); + })(); +}; diff --git a/packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/expected.js index 237252e167..0cf977e389 100644 --- a/packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/async-to-generator/named-expression/expected.js @@ -1,7 +1,7 @@ -var _bar; - -var foo = _bar = babelHelpers.asyncToGenerator(function* () { - console.log(_bar); -}); +var foo = function () { + return babelHelpers.asyncToGenerator(function* bar() { + console.log(bar); + })(); +}; foo(); diff --git a/packages/babel-core/test/fixtures/transformation/async-to-generator/statement/expected.js b/packages/babel-core/test/fixtures/transformation/async-to-generator/statement/expected.js index 00c2951f21..9b407f49d8 100644 --- a/packages/babel-core/test/fixtures/transformation/async-to-generator/statement/expected.js +++ b/packages/babel-core/test/fixtures/transformation/async-to-generator/statement/expected.js @@ -1,3 +1,5 @@ -var foo = babelHelpers.asyncToGenerator(function* () { - var wat = yield bar(); -}); +let foo = function foo() { + return babelHelpers.asyncToGenerator(function* foo() { + var wat = yield bar(); + })(); +}; diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/expected.js index f5706d9c1b..cf00496e19 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/expected.js +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/expected.js @@ -1,15 +1,8 @@ -var _bluebird = require("bluebird"); - -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); +import { coroutine as _coroutine } from "bluebird"; +class Foo { + foo() { + return _coroutine(function* () { + var wat = await bar(); + })(); } - - babelHelpers.createClass(Foo, [{ - key: "foo", - value: _bluebird.coroutine(function* () { - var wat = yield bar(); - }) - }]); - return Foo; -})(); +} diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/expected.js index 9e50f8c487..b0329029bb 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/expression/expected.js @@ -1,5 +1,6 @@ -var _bluebird = require("bluebird"); - -var foo = _bluebird.coroutine(function* () { - var wat = yield bar(); -}); +import { coroutine as _coroutine } from "bluebird"; +var foo = function () { + return _coroutine(function* () { + var wat = yield bar(); + })(); +}; diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js index 23e5a21ae6..e7bc57ac50 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/named-expression/expected.js @@ -1,9 +1,8 @@ -var _bluebird = require("bluebird"); - -var _bar; - -var foo = _bar = _bluebird.coroutine(function* () { - console.log(_bar); -}); +import { coroutine as _coroutine } from "bluebird"; +var foo = function () { + return _coroutine(function* bar() { + console.log(bar); + })(); +}; foo(); diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json index a7d7654c3a..e6402afd2d 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-bluebird-coroutines"] + "plugins": ["external-helpers", ["transform-async-to-module-method", { "module": "bluebird", "method": "coroutine" }]] } diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/expected.js b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/expected.js index 9e50f8c487..b74500ba7f 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/expected.js +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/statement/expected.js @@ -1,5 +1,7 @@ -var _bluebird = require("bluebird"); +import { coroutine as _coroutine } from "bluebird"; -var foo = _bluebird.coroutine(function* () { - var wat = yield bar(); -}); +let foo = function foo() { + return _coroutine(function* foo() { + var wat = yield bar(); + })(); +}; diff --git a/packages/babel-core/test/fixtures/transformation/errors/constants/actual.js b/packages/babel-core/test/fixtures/transformation/errors/constants/actual.js deleted file mode 100644 index 198325ab9a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/errors/constants/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -const MULTIPLIER = 5; -MULTIPLIER = 10; diff --git a/packages/babel-core/test/fixtures/transformation/errors/constants/options.json b/packages/babel-core/test/fixtures/transformation/errors/constants/options.json deleted file mode 100644 index 23340cd45d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/errors/constants/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "Line 2: \"MULTIPLIER\" is read-only" -} diff --git a/packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/options.json b/packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/options.json new file mode 100644 index 0000000000..668132c997 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es3/member-expression-literals/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es3-member-expression-literals"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es3/property-literals/options.json b/packages/babel-core/test/fixtures/transformation/es3/property-literals/options.json new file mode 100644 index 0000000000..1d5027ef40 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es3/property-literals/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es3-property-literals"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js index 4d16443ad9..2c4dc83b97 100644 --- a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter-and-setter/expected.js @@ -1,9 +1,9 @@ var obj = Object.defineProperties({}, { foo: { - get: function get() { + get: function () { return 5 + 5; }, - set: function set(value) { + set: function (value) { this._foo = value; }, configurable: true, diff --git a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/expected.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/expected.js index f34ed12c64..4c602f131b 100644 --- a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/getter/expected.js @@ -1,6 +1,6 @@ var obj = Object.defineProperties({}, { foo: { - get: function get() { + get: function () { return 5 + 5; }, configurable: true, diff --git a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/options.json b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/options.json new file mode 100644 index 0000000000..608fb1f012 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es5-property-mutators"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/expected.js b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/expected.js index 988cb966e9..aa5165f2a3 100644 --- a/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es5.properties.mutators/setter/expected.js @@ -1,6 +1,6 @@ var obj = Object.defineProperties({}, { foo: { - set: function set(value) { + set: function (value) { this._foo = value; }, configurable: true, diff --git a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js index 8a28c607b8..7b03aac22d 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/default-parameters/expected.js @@ -1,5 +1,5 @@ -var some = function some() { - var count = arguments.length <= 0 || arguments[0] === undefined ? "30" : arguments[0]; +var some = function () { + let count = arguments.length <= 0 || arguments[0] === undefined ? "30" : arguments[0]; console.log("count", count); }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/options.json b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/options.json index ad1a1598cb..9e979cda64 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/destructuring-parameters/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-es2015-destructuring", "transform-es2015-arrow-functions"] + "plugins": ["transform-es2015-destructuring", "transform-es2015-parameters", "transform-es2015-arrow-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/options.json b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/options.json index fc3d742263..2fd23e5bad 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-es2015-arrow-functions"] + "plugins": ["transform-es2015-parameters", "transform-es2015-arrow-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json index 97b5b05339..1653d169a3 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json @@ -1,4 +1,3 @@ { - "plugins": ["external-helpers"], - "optional": ["es6.spec.arrowFunctions"] + "plugins": ["external-helpers", ["transform-es2015-arrow-functions", { "spec": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/options.json b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/options.json new file mode 100644 index 0000000000..510d03805a --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-exec/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-for-of", "transform-es2015-arrow-functions", "transform-es2015-destructuring", "transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/assignment.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/assignment.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/assignment.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/call.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/call.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/call.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/defaults.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/defaults.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/defaults.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/destructuring.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/destructuring.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/destructuring.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/export.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/export.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/export.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/options.json b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/options.json new file mode 100644 index 0000000000..599c8d9a01 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-block-scoping", "transform-es2015-parameters", "transform-es2015-destructuring", "transform-es2015-modules-commonjs"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/update.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/update.js rename to packages/babel-core/test/fixtures/transformation/es6.block-scoping-pass/update.js diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js index 0d2a6c971b..b497a041e4 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/assignment-patterns/expected.js @@ -1,12 +1,8 @@ -var foo = "foo"; +const foo = "foo"; function foobar() { - var _arr = [1, 2, 3]; - - for (var _i = 0; _i < _arr.length; _i++) { - var item = _arr[_i]; + for (var item of [1, 2, 3]) { var _foo = "bar"; - bar = 1; - _foo = 2; + [bar, _foo] = [1, 2]; } } diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js deleted file mode 100644 index 0ce1188288..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/exec-collision-array-comprehension/exec.js +++ /dev/null @@ -1,2 +0,0 @@ -var foo = []; -assert.deepEqual([for (foo of [1, 2, 3]) foo], [1, 2, 3]); diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js index 542c6eeaee..633c9ab5ae 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/expected.js @@ -1,32 +1,31 @@ +var _loop = function (i) { + x = 5; + ({ f } = { f: 2 }); + + fns.push(function () { + return i * x; + }); +}; + var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { - var _loop = function () { - var i = _step.value; - x = 5; - var _f = { f: 2 }; - f = _f.f; - - fns.push(function () { - return i * x; - }); - }; - for (var _iterator = nums[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var i = _step.value; var x; var f; - _loop(); + _loop(i); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/options.json b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/options.json new file mode 100644 index 0000000000..7f7165f7a3 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/hoisting/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-block-scoping", "syntax-jsx", "transform-react-jsx", "transform-es2015-block-scoped-functions", "transform-es2015-for-of"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js index 1b059c02c0..e9e5798e9b 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-1051/expected.js @@ -3,10 +3,8 @@ foo.func1 = function () { for (;;) { if (cond2) { var _ret = (function () { - var func2 = function func2() {}; - - var func3 = function func3() {}; - + function func2() {} + function func3() {} func4(function () { func2(); }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js index 8fce45b985..1dce9c4c17 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/issue-2174/expected.js @@ -2,12 +2,10 @@ if (true) { var x; (function () { - var foo = function foo() {}; - - var bar = function bar() { + function foo() {} + function bar() { return foo; - }; - + } for (x in {}) {} })(); } diff --git a/packages/babel-core/test/fixtures/transformation/es6.block-scoping/options.json b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/options.json new file mode 100644 index 0000000000..0a6b7013b3 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.block-scoping/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-block-scoping", "syntax-jsx", "transform-react-jsx", "transform-es2015-block-scoped-functions", "transform-es2015-arrow-functions"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-exec/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/options.json new file mode 100644 index 0000000000..e5e9ad8a9a --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-classes", "transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-exec/super-return.js b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/super-return.js new file mode 100644 index 0000000000..9531b4bd65 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-exec/super-return.js @@ -0,0 +1,14 @@ +class Foo { + constructor() { + return { i: 1 }; + } +} + +class Bar extends Foo { + constructor() { + assert.equal(super().i, 1); + assert.equal(this.i, 1); + } +} + +new Bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js index 154d85730b..83f054a6e9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/actual.js @@ -10,16 +10,4 @@ class Test extends Foo { super.test(...arguments); super.test("test", ...arguments); } - - test() { - super(); - super(...arguments); - super("test", ...arguments); - } - - static foo() { - super(); - super(...arguments); - super("test", ...arguments); - } } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js index 54df06e7f4..dc81b57bd6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-class/expected.js @@ -6,32 +6,20 @@ var Test = (function (_Foo) { babelHelpers.classCallCheck(this, Test); - woops["super"].test(); - _Foo.call(this); - _Foo.prototype.test.call(this); + woops.super.test(); - _Foo.apply(this, arguments); - _Foo.call.apply(_Foo, [this, "test"].concat(babelHelpers.slice.call(arguments))); + var _this = babelHelpers.possibleConstructorReturn(this, _Foo.call(this)); - (_Foo$prototype$test = _Foo.prototype.test).call.apply(_Foo$prototype$test, [this].concat(babelHelpers.slice.call(arguments))); - (_Foo$prototype$test2 = _Foo.prototype.test).call.apply(_Foo$prototype$test2, [this, "test"].concat(babelHelpers.slice.call(arguments))); + _Foo.prototype.test.call(_this); + + var _this = babelHelpers.possibleConstructorReturn(this, _Foo.apply(this, arguments)); + + var _this = babelHelpers.possibleConstructorReturn(this, _Foo.call.apply(_Foo, [this, "test"].concat(Array.prototype.slice.call(arguments)))); + + (_Foo$prototype$test = _Foo.prototype.test).call.apply(_Foo$prototype$test, [_this].concat(Array.prototype.slice.call(arguments))); + (_Foo$prototype$test2 = _Foo.prototype.test).call.apply(_Foo$prototype$test2, [_this, "test"].concat(Array.prototype.slice.call(arguments))); + return _this; } - Test.prototype.test = function test() { - var _Foo$prototype$test3, _Foo$prototype$test4; - - _Foo.prototype.test.call(this); - (_Foo$prototype$test3 = _Foo.prototype.test).call.apply(_Foo$prototype$test3, [this].concat(babelHelpers.slice.call(arguments))); - (_Foo$prototype$test4 = _Foo.prototype.test).call.apply(_Foo$prototype$test4, [this, "test"].concat(babelHelpers.slice.call(arguments))); - }; - - Test.foo = function foo() { - var _Foo$foo, _Foo$foo2; - - _Foo.foo.call(this); - (_Foo$foo = _Foo.foo).call.apply(_Foo$foo, [this].concat(babelHelpers.slice.call(arguments))); - (_Foo$foo2 = _Foo.foo).call.apply(_Foo$foo2, [this, "test"].concat(babelHelpers.slice.call(arguments))); - }; - return Test; })(Foo); diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js index 1339e897c0..1c9524d16d 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/accessing-super-properties/expected.js @@ -4,9 +4,11 @@ var Test = (function (_Foo) { function Test() { babelHelpers.classCallCheck(this, Test); - _Foo.call(this); + var _this = babelHelpers.possibleConstructorReturn(this, _Foo.call(this)); + _Foo.prototype.test; _Foo.prototype.test.whatever; + return _this; } return Test; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js index ad544c99f8..322e2d1a0c 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/calling-super-properties/expected.js @@ -4,9 +4,11 @@ var Test = (function (_Foo) { function Test() { babelHelpers.classCallCheck(this, Test); - _Foo.call(this); + var _this = babelHelpers.possibleConstructorReturn(this, _Foo.call(this)); + _Foo.prototype.test.whatever(); - _Foo.prototype.test.call(this); + _Foo.prototype.test.call(_this); + return _this; } Test.test = function test() { diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js index 1ef27229e6..7732e9c42a 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/constructor-order/expected.js @@ -6,10 +6,11 @@ var x = (function () { }; function x() { + babelHelpers.classCallCheck(this, x); + 4; 5; 6; - babelHelpers.classCallCheck(this, x); } return x; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json index 86099c4fdc..5ba1a293bd 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", ["transform-es2015-classes", { "loose": true }]] + "plugins": ["external-helpers", "transform-es2015-function-name", ["transform-es2015-classes", { "loose": true }], "transform-es2015-spread", "transform-es2015-block-scoping"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js index a9d6dd859b..ffe79cc6c4 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class-id-member-expression/expected.js @@ -3,20 +3,18 @@ var BaseController = (function (_Chaplin$Controller) { function BaseController() { babelHelpers.classCallCheck(this, BaseController); - - _Chaplin$Controller.apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, _Chaplin$Controller.apply(this, arguments)); } return BaseController; })(Chaplin.Controller); -var BaseController2 = (function (_Chaplin$Controller$Another) { - babelHelpers.inherits(BaseController2, _Chaplin$Controller$Another); +var BaseController2 = (function (_Chaplin$Controller$A) { + babelHelpers.inherits(BaseController2, _Chaplin$Controller$A); function BaseController2() { babelHelpers.classCallCheck(this, BaseController2); - - _Chaplin$Controller$Another.apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, _Chaplin$Controller$A.apply(this, arguments)); } return BaseController2; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/expected.js index 66f9a7c963..9a50791c8b 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/super-class/expected.js @@ -3,8 +3,7 @@ var Test = (function (_Foo) { function Test() { babelHelpers.classCallCheck(this, Test); - - _Foo.apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, _Foo.apply(this, arguments)); } return Test; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js index 1d619cb99c..f03982fc1e 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-class/expected.js @@ -1,39 +1,45 @@ +var _Object$getPrototypeO; + var Test = (function (_Foo) { babelHelpers.inherits(Test, _Foo); function Test() { - var _babelHelpers$get, _babelHelpers$get2; + var _babelHelpers$get; babelHelpers.classCallCheck(this, Test); - woops["super"].test(); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "constructor", this).call(this); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).call(this); + woops.super.test(); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "constructor", this).apply(this, arguments); - (_babelHelpers$get = babelHelpers.get(Object.getPrototypeOf(Test.prototype), "constructor", this)).call.apply(_babelHelpers$get, [this, "test"].concat(babelHelpers.slice.call(arguments))); + var _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Test).call(this)); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).apply(this, arguments); - (_babelHelpers$get2 = babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this)).call.apply(_babelHelpers$get2, [this, "test"].concat(babelHelpers.slice.call(arguments))); + babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this).call(_this); + + var _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Test).apply(this, arguments)); + + var _this = babelHelpers.possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(Test)).call.apply(_Object$getPrototypeO, [this, "test"].concat(Array.prototype.slice.call(arguments)))); + + babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this).apply(_this, arguments); + (_babelHelpers$get = babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this)).call.apply(_babelHelpers$get, [_this, "test"].concat(Array.prototype.slice.call(arguments))); + return _this; } babelHelpers.createClass(Test, [{ key: "test", value: function test() { - var _babelHelpers$get3; + var _babelHelpers$get2; babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).call(this); babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).apply(this, arguments); - (_babelHelpers$get3 = babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this)).call.apply(_babelHelpers$get3, [this, "test"].concat(babelHelpers.slice.call(arguments))); + (_babelHelpers$get2 = babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this)).call.apply(_babelHelpers$get2, [this, "test"].concat(Array.prototype.slice.call(arguments))); } }], [{ key: "foo", value: function foo() { - var _babelHelpers$get4; + var _babelHelpers$get3; babelHelpers.get(Object.getPrototypeOf(Test), "foo", this).call(this); babelHelpers.get(Object.getPrototypeOf(Test), "foo", this).apply(this, arguments); - (_babelHelpers$get4 = babelHelpers.get(Object.getPrototypeOf(Test), "foo", this)).call.apply(_babelHelpers$get4, [this, "test"].concat(babelHelpers.slice.call(arguments))); + (_babelHelpers$get3 = babelHelpers.get(Object.getPrototypeOf(Test), "foo", this)).call.apply(_babelHelpers$get3, [this, "test"].concat(Array.prototype.slice.call(arguments))); } }]); return Test; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js index fe8a83393e..c30864e083 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/accessing-super-properties/expected.js @@ -4,9 +4,11 @@ var Test = (function (_Foo) { function Test() { babelHelpers.classCallCheck(this, Test); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "constructor", this).call(this); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).whatever; + var _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Test).call(this)); + + babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this); + babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this).whatever; + return _this; } return Test; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js index 4e1254cc81..cce857b8e6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/calling-super-properties/expected.js @@ -4,9 +4,11 @@ var Test = (function (_Foo) { function Test() { babelHelpers.classCallCheck(this, Test); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "constructor", this).call(this); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).whatever(); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", this).call(this); + var _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Test).call(this)); + + babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this).whatever(); + babelHelpers.get(Object.getPrototypeOf(Test.prototype), "test", _this).call(_this); + return _this; } babelHelpers.createClass(Test, null, [{ diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js index 522f46589d..abc706f3e4 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor-binding-collision/actual.js @@ -4,4 +4,4 @@ class Example { } } -let t = new Example(); +var t = new Example(); diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/constructor/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor/expected.js index 63785beee3..8f1b418649 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/constructor/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/constructor/expected.js @@ -10,8 +10,10 @@ var Foo = (function (_Bar) { function Foo() { babelHelpers.classCallCheck(this, Foo); - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).call(this); - this.state = "test"; + var _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).call(this)); + + _this.state = "test"; + return _this; } return Foo; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js index 045d6d18cf..e65c69e209 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/delay-arrow-function-for-bare-super-derived/expected.js @@ -2,13 +2,12 @@ var Foo = (function (_Bar) { babelHelpers.inherits(Foo, _Bar); function Foo() { + var _this; + babelHelpers.classCallCheck(this, Foo); - - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).call(this, function () { + return _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).call(this, () => { _this.test; - }); - - var _this = this; + })); } return Foo; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json index c262ea7e16..2b7d826bab 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/derived-constructor-must-call-super/options.json @@ -1,3 +1,3 @@ { - "throws": "Derived constructor must call super()" + "throws": "missing super() call in constructor" } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json new file mode 100644 index 0000000000..f1f6226b60 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-es2015-spread", "transform-es2015-block-scoping", "transform-es2015-modules-commonjs"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/options.json index 2ba8b2dbd5..ae024a20b2 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-classes"] + "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-es2015-spread", "transform-es2015-block-scoping"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/expected.js index 8e3310d8f8..df1be86af7 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/preserves-directives/expected.js @@ -1,5 +1,6 @@ var MyCtrl = function MyCtrl(a) { "any directive prologue"; + babelHelpers.classCallCheck(this, MyCtrl); foo; }; @@ -7,12 +8,14 @@ var MyCtrl = function MyCtrl(a) { var MyCtrl2 = function MyCtrl2(a) { "a"; "b"; + babelHelpers.classCallCheck(this, MyCtrl2); foo; }; var MyCtrl3 = function MyCtrl3(a) { "a"; + babelHelpers.classCallCheck(this, MyCtrl3); foo; "b"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/returning-from-derived-constructor/exec.js b/packages/babel-core/test/fixtures/transformation/es6.classes/returning-from-derived-constructor/exec.js new file mode 100644 index 0000000000..a37d09054b --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/returning-from-derived-constructor/exec.js @@ -0,0 +1,26 @@ +class Foo { + constructor() { + return { x: 1 }; + } +} + +assert.equal(new Foo().x, 1); + +class Bar extends Foo { + constructor() { + super(); + return; + } +} + +assert.equal(new Bar().x, 1); + +class Bar2 extends Foo { + constructor() { + super(); + assert.equal(this.x, 1); + return { x: 2 }; + } +} + +assert.equal(new Bar2().x, 2); diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js index 6438026c22..898e1ce1c7 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/expected.js @@ -1,9 +1,5 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); +var Foo = function Foo() { + babelHelpers.classCallCheck(this, Foo); - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).call(this); - } - - return Foo; -})(); + Object.getPrototypeOf(Foo).call(this); +}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json index 272d58ce9f..49ce838f4b 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/super-call-only-allowed-in-derived-constructor/options.json @@ -1,3 +1,3 @@ { - "throws": "super call is only allowed in derived constructor" + "throws": "super() is only allowed in a derived constructor" } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js index 64a67675d5..541efbdde1 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-anonymous/expected.js @@ -3,7 +3,7 @@ var TestEmpty = (function (_ref) { function TestEmpty() { babelHelpers.classCallCheck(this, TestEmpty); - babelHelpers.get(Object.getPrototypeOf(TestEmpty.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(TestEmpty).apply(this, arguments)); } return TestEmpty; @@ -20,7 +20,7 @@ var TestConstructorOnly = (function (_ref2) { function TestConstructorOnly() { babelHelpers.classCallCheck(this, TestConstructorOnly); - babelHelpers.get(Object.getPrototypeOf(TestConstructorOnly.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(TestConstructorOnly).apply(this, arguments)); } return TestConstructorOnly; @@ -37,7 +37,7 @@ var TestMethodOnly = (function (_ref3) { function TestMethodOnly() { babelHelpers.classCallCheck(this, TestMethodOnly); - babelHelpers.get(Object.getPrototypeOf(TestMethodOnly.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(TestMethodOnly).apply(this, arguments)); } return TestMethodOnly; @@ -58,7 +58,7 @@ var TestConstructorAndMethod = (function (_ref4) { function TestConstructorAndMethod() { babelHelpers.classCallCheck(this, TestConstructorAndMethod); - babelHelpers.get(Object.getPrototypeOf(TestConstructorAndMethod.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(TestConstructorAndMethod).apply(this, arguments)); } return TestConstructorAndMethod; @@ -79,7 +79,7 @@ var TestMultipleMethods = (function (_ref5) { function TestMultipleMethods() { babelHelpers.classCallCheck(this, TestMultipleMethods); - babelHelpers.get(Object.getPrototypeOf(TestMultipleMethods.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(TestMultipleMethods).apply(this, arguments)); } return TestMultipleMethods; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js index 04c8921eba..abeca347e0 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class-id-member-expression/expected.js @@ -3,18 +3,18 @@ var BaseController = (function (_Chaplin$Controller) { function BaseController() { babelHelpers.classCallCheck(this, BaseController); - babelHelpers.get(Object.getPrototypeOf(BaseController.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(BaseController).apply(this, arguments)); } return BaseController; })(Chaplin.Controller); -var BaseController2 = (function (_Chaplin$Controller$Another) { - babelHelpers.inherits(BaseController2, _Chaplin$Controller$Another); +var BaseController2 = (function (_Chaplin$Controller$A) { + babelHelpers.inherits(BaseController2, _Chaplin$Controller$A); function BaseController2() { babelHelpers.classCallCheck(this, BaseController2); - babelHelpers.get(Object.getPrototypeOf(BaseController2.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(BaseController2).apply(this, arguments)); } return BaseController2; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/super-class/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class/expected.js index 67c217a0ea..10cc6dd095 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/super-class/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/super-class/expected.js @@ -3,7 +3,7 @@ var Test = (function (_Foo) { function Test() { babelHelpers.classCallCheck(this, Test); - babelHelpers.get(Object.getPrototypeOf(Test.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Test).apply(this, arguments)); } return Test; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json index 38d176ffd0..f63d64488d 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/super-illegal-non-constructor-call/options.json @@ -1,3 +1,3 @@ { - "throws": "Direct super call is illegal in non-constructor" + "throws": "super() outside of class constructor" } diff --git a/packages/babel-core/test/fixtures/transformation/es6.constants/options.json b/packages/babel-core/test/fixtures/transformation/es6.constants/options.json new file mode 100644 index 0000000000..b4063f1b64 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.constants/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-constants", "transform-es2015-block-scoping", "transform-es2015-destructuring"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/actual.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/actual.js new file mode 100644 index 0000000000..deb5faf388 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/actual.js @@ -0,0 +1,17 @@ +var f0 = function (a, b = a, c = b) { + return [a, b, c]; +}; + +assert.deepEqual(f0(1), [1, 1, 1]); + +var f1 = function ({a}, b = a, c = b) { + return [a, b, c]; +}; + +assert.deepEqual(f1({a: 1}), [1, 1, 1]); + +var f2 = function ({a}, b = a, c = a) { + return [a, b, c]; +}; + +assert.deepEqual(f2({a: 1}), [1, 1, 1]); diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js index 505531d7f3..deb5faf388 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/exec.js @@ -1,17 +1,17 @@ -const f0 = function (a, b = a, c = b) { +var f0 = function (a, b = a, c = b) { return [a, b, c]; -} +}; assert.deepEqual(f0(1), [1, 1, 1]); -const f1 = function ({a}, b = a, c = b) { +var f1 = function ({a}, b = a, c = b) { return [a, b, c]; -} +}; assert.deepEqual(f1({a: 1}), [1, 1, 1]); -const f2 = function ({a}, b = a, c = a) { +var f2 = function ({a}, b = a, c = a) { return [a, b, c]; -} +}; assert.deepEqual(f2({a: 1}), [1, 1, 1]); diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/expected.js new file mode 100644 index 0000000000..676f9c51d5 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/default-precedence/expected.js @@ -0,0 +1,28 @@ +var f0 = function (a) { + var b = arguments.length <= 1 || arguments[1] === undefined ? a : arguments[1]; + var c = arguments.length <= 2 || arguments[2] === undefined ? b : arguments[2]; + + return [a, b, c]; +}; + +assert.deepEqual(f0(1), [1, 1, 1]); + +var f1 = function (_ref) { + var a = _ref.a; + var b = arguments.length <= 1 || arguments[1] === undefined ? a : arguments[1]; + var c = arguments.length <= 2 || arguments[2] === undefined ? b : arguments[2]; + + return [a, b, c]; +}; + +assert.deepEqual(f1({ a: 1 }), [1, 1, 1]); + +var f2 = function (_ref2) { + var a = _ref2.a; + var b = arguments.length <= 1 || arguments[1] === undefined ? a : arguments[1]; + var c = arguments.length <= 2 || arguments[2] === undefined ? a : arguments[2]; + + return [a, b, c]; +}; + +assert.deepEqual(f2({ a: 1 }), [1, 1, 1]); diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/expected.js index a650dabc34..f075fa1000 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/empty/expected.js @@ -1,11 +1,11 @@ var _ref = ["foo", "hello", [", ", "junk"], ["world"]]; var a = _ref[1]; -var _ref$2 = babelHelpers.slicedToArray(_ref[2], 1); +var _ref$ = babelHelpers.slicedToArray(_ref[2], 1); -var b = _ref$2[0]; +var b = _ref$[0]; -var _ref$3 = babelHelpers.slicedToArray(_ref[3], 1); +var _ref$2 = babelHelpers.slicedToArray(_ref[3], 1); -var c = _ref$3[0]; +var c = _ref$2[0]; var d = _ref[4]; diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/expected.js index 8b8d1b7bf2..45ddc2fc6a 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/for-of/expected.js @@ -1,26 +1,7 @@ -var _iteratorNormalCompletion = true; -var _didIteratorError = false; -var _iteratorError = undefined; +for (var _ref of test.expectation.registers) { + var _ref2 = babelHelpers.slicedToArray(_ref, 3); -try { - for (var _iterator = test.expectation.registers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _step$value = babelHelpers.slicedToArray(_step.value, 3); - - var name = _step$value[0]; - var before = _step$value[1]; - var after = _step$value[2]; - } -} catch (err) { - _didIteratorError = true; - _iteratorError = err; -} finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + var name = _ref2[0]; + var before = _ref2[1]; + var after = _ref2[2]; } diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json b/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json index 835538ee2c..a0353afbef 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-destructuring"] + "plugins": ["external-helpers", "transform-es2015-destructuring", "transform-es2015-spread", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-object-rest-spread"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/expected.js index 6f62d8a1fb..bfd42de2b8 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/parameters/expected.js @@ -19,17 +19,17 @@ function unpackObject(_ref2) { console.log(unpackObject({ title: "title", author: "author" })); var unpackArray = function (_ref3, _ref4) { - var _ref32 = babelHelpers.slicedToArray(_ref3, 3); + var _ref6 = babelHelpers.slicedToArray(_ref3, 3); - var a = _ref32[0]; - var b = _ref32[1]; - var c = _ref32[2]; + var a = _ref6[0]; + var b = _ref6[1]; + var c = _ref6[2]; - var _ref42 = babelHelpers.slicedToArray(_ref4, 3); + var _ref5 = babelHelpers.slicedToArray(_ref4, 3); - var x = _ref42[0]; - var y = _ref42[1]; - var z = _ref42[2]; + var x = _ref5[0]; + var y = _ref5[1]; + var z = _ref5[2]; return a + b + c; }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/expected.js index 7565d63def..097ced3ac7 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/let/expected.js @@ -10,5 +10,5 @@ for (var _iterator = arr, _isArray = Array.isArray(_iterator), _i = 0, _iterator _ref = _i.value; } - var i = _ref; + let i = _ref; } diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/options.json index 9a6e850bce..8abc0aa64a 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of-loose/options.json @@ -1,3 +1,3 @@ { - "loose": ["es6.forOf"] + "plugins": [["transform-es2015-for-of", { "loose": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/expected.js index a9802edce0..a3d54af48f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/identifier/expected.js @@ -11,8 +11,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js index 044583f69f..dcd4320b80 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/ignore-cases/expected.js @@ -16,8 +16,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/let/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/let/expected.js index 6c6b96ae93..fb997e23ad 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/let/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/let/expected.js @@ -4,15 +4,15 @@ var _iteratorError = undefined; try { for (var _iterator = arr[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var i = _step.value; + let i = _step.value; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/expected.js index ca88fbff1d..af5bbbb407 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/member-expression/expected.js @@ -11,8 +11,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/expected.js index 507af58ad0..a3568407fe 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/multiple/expected.js @@ -11,8 +11,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { @@ -34,8 +34,8 @@ try { _iteratorError2 = err; } finally { try { - if (!_iteratorNormalCompletion2 && _iterator2["return"]) { - _iterator2["return"](); + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); } } finally { if (_didIteratorError2) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js index 544c05ec30..7388ecdf69 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/nested-label-for-of/expected.js @@ -4,14 +4,14 @@ var _iteratorError = undefined; try { b: for (var _iterator = d()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var c = _step.value; + let c = _step.value; var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = f()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var e = _step2.value; + let e = _step2.value; continue b; } @@ -20,8 +20,8 @@ try { _iteratorError2 = err; } finally { try { - if (!_iteratorNormalCompletion2 && _iterator2["return"]) { - _iterator2["return"](); + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); } } finally { if (_didIteratorError2) { @@ -35,8 +35,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/options.json b/packages/babel-core/test/fixtures/transformation/es6.for-of/options.json new file mode 100644 index 0000000000..dd11655f55 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-for-of"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.for-of/var/expected.js b/packages/babel-core/test/fixtures/transformation/es6.for-of/var/expected.js index 6c6b96ae93..70fa6471db 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.for-of/var/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.for-of/var/expected.js @@ -11,8 +11,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js index d9e2ab6562..de3df365d6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/export-specifier-default/expected.js @@ -1,4 +1,7 @@ -define(["exports", "module"], function (exports, module) { - var a = 1; - module.exports = a; +define(["exports"], function (exports) { + Object.defineProperty(exports, "__esModule", { + value: true + }); + var a = 1; + exports.default = a; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js index 060d2664cb..4ca1761354 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-default/expected.js @@ -1,28 +1,25 @@ -define(["exports", "module"], function (exports, module) { - module.exports = foo; - module.exports = 42; - module.exports = {}; - module.exports = []; - module.exports = foo; +define(["exports"], function (exports) { + Object.defineProperty(exports, "__esModule", { + value: true + }); - module.exports = function () {}; + exports.default = function () {}; - var _default = function _default() { - babelHelpers.classCallCheck(this, _default); - }; - - module.exports = _default; + exports.default = foo; + exports.default = 42; + exports.default = {}; + exports.default = []; + exports.default = foo; + exports.default = class {}; function foo() {} - var Foo = function Foo() { - babelHelpers.classCallCheck(this, Foo); - }; + class Foo {} - module.exports = Foo; - module.exports = foo; + exports.default = Foo; + exports.default = foo; - module.exports = (function () { + exports.default = (function () { return "foo"; })(); }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js index 8ea356b867..df024b3edc 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-from/expected.js @@ -1,47 +1,57 @@ define(["exports", "foo"], function (exports, _foo) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); - babelHelpers.defaults(exports, babelHelpers.interopExportWildcard(_foo, babelHelpers.defaults)); + + for (let _key in _foo) { + if (_key === "default") continue; + Object.defineProperty(exports, _key, { + enumerable: true, + get: function () { + return _foo[_key]; + } + }); + } + Object.defineProperty(exports, "foo", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "foo", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.bar; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "default", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "default", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.bar; } }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js index e0884fd4db..ebfaeff38a 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-named/expected.js @@ -1,12 +1,12 @@ define(["exports"], function (exports) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); exports.foo = foo; exports.foo = foo; exports.bar = bar; exports.bar = foo; - exports["default"] = foo; - exports["default"] = foo; + exports.default = foo; + exports.default = foo; exports.bar = bar; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js index 1a1009f9b1..f3a3b41647 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/exports-variable/expected.js @@ -1,30 +1,22 @@ define(["exports"], function (exports) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); exports.foo7 = foo7; - var foo = 1; - exports.foo = foo; - var foo = 1, - bar = 2; - exports.foo = foo; - exports.bar = bar; - var foo2 = function foo2() {}; - exports.foo2 = foo2; - var foo3; - exports.foo3 = foo3; - var foo4 = 2; - exports.foo4 = foo4; - var foo5 = undefined; - exports.foo5 = foo5; - var foo6 = 3; - exports.foo6 = foo6; + var foo = exports.foo = 1; + var foo = exports.foo = 1, + bar = exports.bar = 2; + + var foo2 = exports.foo2 = function () {}; + + var foo3 = exports.foo3 = undefined; + let foo4 = exports.foo4 = 2; + let foo5 = exports.foo5 = undefined; + const foo6 = exports.foo6 = 3; function foo7() {} - var foo8 = function foo8() { - babelHelpers.classCallCheck(this, foo8); - }; + class foo8 {} exports.foo8 = foo8; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js index 4a88732e99..236ed887cb 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/get-module-name-option/expected.js @@ -1,3 +1 @@ -define("my custom module name", ["exports"], function (exports) { - "use strict"; -}); \ No newline at end of file +define("my custom module name", [], function () {}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js index df2eab1f9b..4a1cf55db8 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/hoist-function-exports/expected.js @@ -1,17 +1,17 @@ define(["exports", "./evens"], function (exports, _evens) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isOdd = undefined; exports.nextOdd = nextOdd; function nextOdd(n) { return (0, _evens.isEven)(n) ? n + 1 : n + 2; } - var isOdd = (function (isEven) { + var isOdd = exports.isOdd = (function (isEven) { return function (n) { return !isEven(n); }; })(_evens.isEven); - exports.isOdd = isOdd; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js index 842bde29a3..920bf04d48 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-default/expected.js @@ -1,8 +1,6 @@ -define(["exports", "foo"], function (exports, _foo) { - var _foo2 = babelHelpers.interopRequireDefault(_foo); +define(["foo"], function (_foo) { + var _foo2 = babelHelpers.interopRequireDefault(_foo); - var _foo22 = babelHelpers.interopRequireDefault(_foo); - - _foo2["default"]; - _foo22["default"]; + _foo2.default; + _foo2.default; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js index 6a485c6fd5..08282514a1 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-glob/expected.js @@ -1,3 +1,4 @@ -define(["exports", "foo"], function (exports, _foo) { - _foo; +define(["foo"], function (_foo) { + var foo = babelHelpers.interopRequireWildcard(_foo); + foo; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js index 0484a41dd4..660f045a4e 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-mixing/expected.js @@ -1,6 +1,6 @@ -define(["exports", "foo"], function (exports, _foo) { - var _foo2 = babelHelpers.interopRequireDefault(_foo); +define(["foo"], function (_foo) { + var _foo2 = babelHelpers.interopRequireDefault(_foo); - _foo2["default"]; + _foo2.default; _foo.baz; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js index c1b2a71fea..bdbf6205eb 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports-named/expected.js @@ -1,5 +1,5 @@ -define(["exports", "foo"], function (exports, _foo) { - _foo.bar; +define(["foo"], function (_foo) { + _foo.bar; _foo.bar2; _foo.baz; _foo.bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/expected.js index 84e1e6dcc7..ac340082b3 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/imports/expected.js @@ -1,3 +1 @@ -define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { - "use strict"; -}); \ No newline at end of file +define(["foo", "foo-bar", "./directory/foo-bar"], function () {}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/expected.js index b8575435cc..57378003a7 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/module-name/expected.js @@ -1,3 +1,3 @@ -define("es6.modules-amd/module-name/expected", ["exports"], function (exports) { - foobar(); +define("es6.modules-amd/module-name/expected", [], function () { + foobar(); }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json index 746fb0d131..69f4662d87 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json @@ -1,4 +1,3 @@ { - "plugins": ["external-helpers"], - "modules": "amd" + "plugins": ["external-helpers", "transform-es2015-modules-amd"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/expected.js index b517a494b8..de671af9d2 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/overview/expected.js @@ -1,18 +1,14 @@ -define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo, _fooBar, _directoryFooBar) { - Object.defineProperty(exports, "__esModule", { +define(["exports", "foo", "foo-bar", "./directory/foo-bar"], function (exports, _foo) { + Object.defineProperty(exports, "__esModule", { value: true }); - - var _foo2 = babelHelpers.interopRequireDefault(_foo); - + exports.test2 = exports.test = undefined; + var foo2 = babelHelpers.interopRequireWildcard(_foo); exports.test = test; - var test2 = 5; - - exports.test2 = test2; - exports["default"] = test; - - _foo2["default"]; - _foo; + var test2 = exports.test2 = 5; + exports.default = test; + foo2.default; + foo2; _foo.bar; _foo.foo; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/expected.js index 976a922eb4..9211a9b13d 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/remap/expected.js @@ -1,9 +1,8 @@ define(["exports"], function (exports) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); - var test = 2; - exports.test = test; + var test = exports.test = 2; exports.test = test = 5; exports.test = test += 1; @@ -15,17 +14,12 @@ define(["exports"], function (exports) { var a = 2; exports.a = a; - exports.a = a = 3; - var b = 2; exports.c = b; - exports.c = b = 3; - var d = 3; exports.e = d; exports.f = d; - exports.f = exports.e = d = 4; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js index 9be9e2f8ba..3853346ca6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-1/expected.js @@ -1 +1 @@ -exports["default"] = foo; +exports.default = foo; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js index 9be9e2f8ba..3853346ca6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export-2/expected.js @@ -1 +1 @@ -exports["default"] = foo; +exports.default = foo; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/expected.js index 54c9f7d911..a78f99e303 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/export/expected.js @@ -1,3 +1,2 @@ exports.foo = foo; - function foo() {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/expected.js index d7549206ee..81e62c8a6a 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/import/expected.js @@ -1,7 +1,5 @@ var _foo = require("foo"); -var foo4 = _foo; - -_foo["default"]; -_foo["default"]; +_foo.default; +_foo.default; _foo.foo3; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json index 42fca89301..b2db9b9205 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json @@ -1,3 +1,3 @@ { - "modules": "commonStrict" + "plugins": ["external-helpers", ["transform-es2015-modules-commonjs", { "strict": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js index 5684287aef..0c17404a23 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default-non-function/expected.js @@ -2,6 +2,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Cachier = Cachier; -exports["default"] = new Cachier(); - +exports.default = new Cachier(); function Cachier(databaseName) {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/expected.js index 883ce71df1..dac611107f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-default/expected.js @@ -1,31 +1,20 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports["default"] = foo; -exports["default"] = 42; -exports["default"] = {}; -exports["default"] = []; -exports["default"] = foo; -exports["default"] = function () {}; - -var _default = function _default() { - babelHelpers.classCallCheck(this, _default); -}; - -exports["default"] = _default; +exports.default = function () {}; +exports.default = foo; +exports.default = 42; +exports.default = {}; +exports.default = []; +exports.default = foo; +exports.default = class {}; function foo() {} +class Foo {} +exports.default = Foo; +exports.default = foo; -var Foo = function Foo() { - babelHelpers.classCallCheck(this, Foo); -}; - -exports["default"] = Foo; -exports["default"] = foo; - -exports["default"] = (function () { +exports.default = (function () { return "foo"; })(); - -module.exports = exports["default"]; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/expected.js index 6480c1867f..b11ab3a306 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-from/expected.js @@ -4,46 +4,55 @@ Object.defineProperty(exports, "__esModule", { var _foo = require("foo"); -babelHelpers.defaults(exports, babelHelpers.interopExportWildcard(_foo, babelHelpers.defaults)); +for (let _key in _foo) { + if (_key === "default") continue; + Object.defineProperty(exports, _key, { + enumerable: true, + get: function () { + return _foo[_key]; + } + }); +} + Object.defineProperty(exports, "foo", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "foo", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.bar; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "default", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "default", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.bar; } }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/expected.js index 8ff5bb80a7..8deb82b599 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-named/expected.js @@ -5,6 +5,6 @@ exports.foo = foo; exports.foo = foo; exports.bar = bar; exports.bar = foo; -exports["default"] = foo; -exports["default"] = foo; +exports.default = foo; +exports.default = foo; exports.bar = bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js index 4e80974346..ce80d1d2b8 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/exports-variable/expected.js @@ -2,27 +2,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.foo7 = foo7; -var foo = 1; -exports.foo = foo; -var foo = 1, - bar = 2; -exports.foo = foo; -exports.bar = bar; -var foo2 = function foo2() {}; -exports.foo2 = foo2; -var foo3; -exports.foo3 = foo3; -var foo4 = 2; -exports.foo4 = foo4; -var foo5 = undefined; -exports.foo5 = foo5; -var foo6 = 3; -exports.foo6 = foo6; - +var foo = exports.foo = 1; +var foo = exports.foo = 1, + bar = exports.bar = 2; +var foo2 = exports.foo2 = function () {}; +var foo3 = exports.foo3 = undefined; +let foo4 = exports.foo4 = 2; +let foo5 = exports.foo5 = undefined; +const foo6 = exports.foo6 = 3; function foo7() {} - -var foo8 = function foo8() { - babelHelpers.classCallCheck(this, foo8); -}; - +class foo8 {} exports.foo8 = foo8; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js index 3c0206f916..dc60fbd4d1 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/hoist-function-exports/expected.js @@ -1,6 +1,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); +exports.isOdd = undefined; exports.nextOdd = nextOdd; var _evens = require("./evens"); @@ -9,9 +10,8 @@ function nextOdd(n) { return (0, _evens.isEven)(n) ? n + 1 : n + 2; } -var isOdd = (function (isEven) { +var isOdd = exports.isOdd = (function (isEven) { return function (n) { return !isEven(n); }; })(_evens.isEven); -exports.isOdd = isOdd; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/expected.js index 081aefe73c..e318052d21 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/expected.js @@ -2,7 +2,5 @@ var _foo = require("foo"); var _foo2 = babelHelpers.interopRequireDefault(_foo); -var _foo3 = babelHelpers.interopRequireDefault(_foo); - -_foo2["default"]; -_foo3["default"]; +_foo2.default; +_foo2.default; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js index 2000497f8a..b8dd69bad9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/expected.js @@ -2,5 +2,5 @@ var _foo = require("foo"); var _foo2 = babelHelpers.interopRequireDefault(_foo); -_foo2["default"]; +_foo2.default; _foo.baz; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json deleted file mode 100644 index 1b44ef3d04..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-named/source-mappings.json +++ /dev/null @@ -1,19 +0,0 @@ -[{ - "original": { - "line": 6, - "column": 0 - }, - "generated": { - "line": 5, - "column": 6 - } -}, { - "original": { - "line": 9, - "column": 0 - }, - "generated": { - "line": 8, - "column": 6 - } -}] diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js deleted file mode 100644 index 89934708a6..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -if (true) { - import foo from "foo"; -} else { - import bar from "foo"; -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/options.json deleted file mode 100644 index 1d2da25030..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose-collision/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "throws": "Duplicate module declarations with the same source but in different scopes", - "loose": "es6.modules" -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/actual.js deleted file mode 100644 index 6d06248e3c..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -export var foo = 5; - -if (true) { - import bar from "bar"; -} - -bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/expected.js deleted file mode 100644 index 806072db32..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -exports.__esModule = true; -var foo = 5; - -exports.foo = foo; -if (true) { - var _bar = require("bar"); - - var _bar2 = babelHelpers.interopRequireDefault(_bar); -} - -bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/options.json deleted file mode 100644 index 6614874cd3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/loose/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "loose": "es6.modules" -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js index ec455bde13..130e6fa256 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/module-shadow/expected.js @@ -1,6 +1,5 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.module = _module; - function _module() {} +exports.module = _module; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json index d29eaa83df..7ccaf471d1 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json @@ -1,4 +1,3 @@ { - "plugins": ["external-helpers"], - "modules": "common" + "plugins": ["external-helpers", "transform-es2015-modules-commonjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/expected.js index 142ad6b939..ed191101ce 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/expected.js @@ -1,6 +1,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); +exports.test = undefined; require("foo"); @@ -8,9 +9,9 @@ require("foo-bar"); require("./directory/foo-bar"); -var _foo2 = require("foo2"); +var _foo = require("foo2"); -var _foo22 = babelHelpers.interopRequireDefault(_foo2); +var _foo2 = babelHelpers.interopRequireDefault(_foo); var _foo3 = require("foo3"); @@ -21,9 +22,8 @@ var _foo4 = require("foo4"); var _foo5 = require("foo5"); exports.test = test; -var test = 5; +var test = exports.test = 5; -exports.test = test; _foo4.bar; _foo5.foo; -_foo22["default"]; +_foo2.default; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/expected.js index 569f369205..376fb187da 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/remap/expected.js @@ -1,8 +1,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var test = 2; -exports.test = test; +var test = exports.test = 2; exports.test = test = 5; exports.test = test += 1; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js deleted file mode 100644 index 62923e5c15..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/actual.js +++ /dev/null @@ -1,8 +0,0 @@ -export default 42; -export default {}; -export default []; -export default foo; -export default function () {} -export default class {} -export default function foo () {} -export default class Foo {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js deleted file mode 100644 index ec6569b8f6..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-default/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var _default = function _default() { - _classCallCheck(this, _default); -}; - -function foo() {} - -var Foo = function Foo() { - _classCallCheck(this, Foo); -}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js deleted file mode 100644 index 60857f6542..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -export * from "foo"; -export {foo} from "foo"; -export {foo, bar} from "foo"; -export {foo as bar} from "foo"; -export {foo as default} from "foo"; -export {foo as default, bar} from "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-from/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js deleted file mode 100644 index 8515ace759..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -export {foo}; -export {foo, bar}; -export {foo as bar}; -export {foo as default}; -export {foo as default, bar}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-named/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js deleted file mode 100644 index c9cd5af09c..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -export var foo = 1; -export var foo = 1, bar = 2; -export var foo2 = function () {}; -export var foo3; -export let foo4 = 2; -export let foo5; -export const foo6 = 3; -export function foo7 () {} -export class foo8 {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js deleted file mode 100644 index 35f4b5a1dd..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/exports-variable/expected.js +++ /dev/null @@ -1,16 +0,0 @@ -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var foo = 1; -var foo = 1, - bar = 2; -var foo2 = function foo2() {}; -var foo3; -var foo4 = 2; -var foo5 = undefined; -var foo6 = 3; - -function foo7() {} - -var foo8 = function foo8() { - _classCallCheck(this, foo8); -}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js deleted file mode 100644 index 3c40b7d1c1..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -import { isEven } from "./evens"; - -export function nextOdd(n) { - return isEven(n) ? n + 1 : n + 2; -} - -export var isOdd = (function (isEven) { - return function (n) { - return !isEven(n); - }; -})(isEven); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js deleted file mode 100644 index 7240eb8bfb..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/hoist-function-exports/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -function nextOdd(n) { - return isEven(n) ? n + 1 : n + 2; -} - -var isOdd = (function (isEven) { - return function (n) { - return !isEven(n); - }; -})(isEven); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js deleted file mode 100644 index 7a085cb1e3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -import foo from "foo"; -import {default as foo2} from "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-default/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js deleted file mode 100644 index e55c077500..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/actual.js +++ /dev/null @@ -1 +0,0 @@ -import * as foo from "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-glob/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js deleted file mode 100644 index ef78c95b1c..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/actual.js +++ /dev/null @@ -1 +0,0 @@ -import foo, {baz as xyz} from "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-mixing/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js deleted file mode 100644 index 6d50813b6f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -import {bar} from "foo"; -import {bar2, baz} from "foo"; -import {bar as baz2} from "foo"; -import {bar as baz3, xyz} from "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports-named/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/actual.js deleted file mode 100644 index 222b6885ac..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -import "foo"; -import "foo-bar"; -import "./directory/foo-bar"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/expected.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/imports/expected.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/options.json deleted file mode 100644 index b074844829..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": "ignore" -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/actual.js deleted file mode 100644 index 1623f8b61e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -import "foo"; -import "foo-bar"; -import "./directory/foo-bar"; -import foo from "foo"; -import * as foo2 from "foo"; -import {bar} from "foo"; -import {foo as bar2} from "foo"; - -export {test}; -export var test2 = 5; - -export default test; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/expected.js deleted file mode 100644 index c9f1d0dc74..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/overview/expected.js +++ /dev/null @@ -1 +0,0 @@ -var test2 = 5; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/actual.js deleted file mode 100644 index 79c234d8ae..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -export var test = 2; -test = 5; -test++; - -(function () { - var test = 2; - test = 3; - test++; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/expected.js deleted file mode 100644 index 0c4ba585d3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-ignore/remap/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -var test = 2; -test = 5; -test++; - -(function () { - var test = 2; - test = 3; - test++; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/expected.js index 5083193ab3..233a3d1916 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-default/expected.js @@ -1,12 +1,12 @@ System.register([], function (_export) { - var _default, Foo; + _export("default", function () {}); - _export("default", foo); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + _export("default", class {}); function foo() {} + _export("default", foo); + return { setters: [], execute: function () { @@ -18,17 +18,7 @@ System.register([], function (_export) { _export("default", foo); - _export("default", function () {}); - - _default = function _default() { - _classCallCheck(this, _default); - }; - - _export("default", _default); - - Foo = function Foo() { - _classCallCheck(this, Foo); - }; + class Foo {} _export("default", Foo); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/expected.js index 2248f76927..2138d0b019 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-from/expected.js @@ -1,23 +1,21 @@ System.register(["foo"], function (_export) { - return { + return { setters: [function (_foo) { + var _exportObj = {}; + for (var _key in _foo) { - if (_key !== "default") _export(_key, _foo[_key]); + if (_key !== "default") _exportObj[_key] = _foo[_key]; } - _export("foo", _foo.foo); + _exportObj.foo = _foo.foo; + _exportObj.foo = _foo.foo; + _exportObj.bar = _foo.bar; + _exportObj.bar = _foo.foo; + _exportObj.default = _foo.foo; + _exportObj.default = _foo.foo; + _exportObj.bar = _foo.bar; - _export("foo", _foo.foo); - - _export("bar", _foo.bar); - - _export("bar", _foo.foo); - - _export("default", _foo.foo); - - _export("default", _foo.foo); - - _export("bar", _foo.bar); + _export(_exportObj); }], execute: function () {} }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js index f63db708e4..fa746cdbf5 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-named/expected.js @@ -1,5 +1,5 @@ System.register([], function (_export) { - return { + return { setters: [], execute: function () { _export("foo", foo); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js index 0ba18f899c..9cb480f5ab 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/exports-variable/expected.js @@ -1,40 +1,36 @@ System.register([], function (_export) { - var foo, foo2, foo3, foo4, foo5, foo6, foo8; - - _export("foo7", foo7); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - - function foo7() {} - return { setters: [], execute: function () { - foo = 1; + var foo = 1; _export("foo", foo); - foo2 = function foo2() {}; + var foo2 = function () {}; _export("foo2", foo2); + var foo3; + _export("foo3", foo3); - foo4 = 2; + let foo4 = 2; _export("foo4", foo4); - foo5 = undefined; + let foo5; _export("foo5", foo5); - foo6 = 3; + const foo6 = 3; _export("foo6", foo6); - foo8 = function foo8() { - _classCallCheck(this, foo8); - }; + function foo7() {} + + _export("foo7", foo7); + + class foo8 {} _export("foo8", foo8); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js index bfdb2cac03..0c17201579 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/get-module-name-option/expected.js @@ -1,5 +1,5 @@ System.register("my custom module name", [], function (_export) { - return { + return { setters: [], execute: function () {} }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js index bdcb01f7ed..35ddbbb7e9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/hoist-function-exports/expected.js @@ -1,18 +1,19 @@ System.register(["./evens"], function (_export) { - var isEven, p, a, i, j, isOdd; - - _export("nextOdd", nextOdd); - - function nextOdd(n) { - return _export("p", p = isEven(n) ? n + 1 : n + 2); - } - + var isEven, p, a, i, j, isOdd; return { setters: [function (_evens) { isEven = _evens.isEven; }], execute: function () { - p = 5; + function nextOdd(n) { + return _export("p", p = isEven(n) ? n + 1 : n + 2); + } + + _export("nextOdd", nextOdd); + + _export("n", n); + + _export("p", p = 5); _export("p", p); @@ -20,11 +21,11 @@ System.register(["./evens"], function (_export) { for (i = 0, j = 0;;); - isOdd = (function (isEven) { + _export("isOdd", isOdd = (function (isEven) { return function (n) { return !isEven(n); }; - })(isEven); + })(isEven)); _export("isOdd", isOdd); } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/expected.js index a8a7d62087..00ac1f0867 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-default/expected.js @@ -1,9 +1,9 @@ System.register(["foo"], function (_export) { - var foo, foo2; + var foo, foo2; return { setters: [function (_foo) { - foo = _foo["default"]; - foo2 = _foo["default"]; + foo = _foo.default; + foo2 = _foo.default; }], execute: function () {} }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js index 66701c9a26..6a4654fdbb 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-glob/expected.js @@ -1,5 +1,5 @@ System.register(["foo"], function (_export) { - var foo; + var foo; return { setters: [function (_foo) { foo = _foo; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js index e60d5fb75f..989ca23802 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-mixing/expected.js @@ -1,8 +1,8 @@ System.register(["foo"], function (_export) { - var foo, xyz; + var foo, xyz; return { setters: [function (_foo) { - foo = _foo["default"]; + foo = _foo.default; xyz = _foo.baz; }], execute: function () {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/expected.js index b74a9a19cf..838f000f86 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports-named/expected.js @@ -1,5 +1,5 @@ System.register(["foo"], function (_export) { - var bar, bar2, baz, baz2, baz3, xyz; + var bar, bar2, baz, baz2, baz3, xyz; return { setters: [function (_foo) { bar = _foo.bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/expected.js index d1dcb2a471..afe4e38091 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/imports/expected.js @@ -1,5 +1,5 @@ System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { - return { + return { setters: [function (_foo) {}, function (_fooBar) {}, function (_directoryFooBar) {}], execute: function () {} }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json index ee42d8e1c8..576c2a257c 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json @@ -1,3 +1,3 @@ { - "modules": "system" + "plugins": ["external-helpers", "transform-es2015-modules-systemjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/expected.js index c9afd43f8e..73c7a8ee26 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/overview/expected.js @@ -1,8 +1,8 @@ System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { - var foo, foo2, bar, bar2, test2; + var foo, foo2, bar, bar2, test2; return { setters: [function (_foo) { - foo = _foo["default"]; + foo = _foo.default; foo2 = _foo; bar = _foo.bar; bar2 = _foo.foo; @@ -10,7 +10,7 @@ System.register(["foo", "foo-bar", "./directory/foo-bar"], function (_export) { execute: function () { _export("test", test); - test2 = 5; + _export("test2", test2 = 5); _export("test2", test2); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/expected.js index 93bb4496c3..0df099b2a0 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/remap/expected.js @@ -1,14 +1,15 @@ System.register([], function (_export) { - var test, a, b, d; + var test, a, b, d; return { setters: [], execute: function () { - test = 2; + _export("test", test = 2); _export("test", test); _export("test", test = 5); - _export("test", test += 1); + + _export("test", test++); (function () { var test = 2; @@ -16,19 +17,19 @@ System.register([], function (_export) { test++; })(); - a = 2; + _export("a", a = 2); _export("a", a); _export("a", a = 3); - b = 2; + _export("c", b = 2); _export("c", b); _export("c", b = 3); - d = 3; + _export("f", _export("e", d = 3)); _export("e", d); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js index ae2b74d80c..a84e598cfd 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-default/expected.js @@ -1,40 +1,37 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "module"], factory); - } else if (typeof exports !== "undefined" && typeof module !== "undefined") { - factory(exports, module); + define(["exports"], factory); + } else if (typeof exports !== "undefined") { + factory(exports); } else { var mod = { exports: {} }; - factory(mod.exports, mod); + factory(mod.exports); global.actual = mod.exports; } -})(this, function (exports, module) { - module.exports = foo; - module.exports = 42; - module.exports = {}; - module.exports = []; - module.exports = foo; +})(this, function (exports) { + Object.defineProperty(exports, "__esModule", { + value: true + }); - module.exports = function () {}; + exports.default = function () {}; - var _default = function _default() { - babelHelpers.classCallCheck(this, _default); - }; - - module.exports = _default; + exports.default = foo; + exports.default = 42; + exports.default = {}; + exports.default = []; + exports.default = foo; + exports.default = class {}; function foo() {} - var Foo = function Foo() { - babelHelpers.classCallCheck(this, Foo); - }; + class Foo {} - module.exports = Foo; - module.exports = foo; + exports.default = Foo; + exports.default = foo; - module.exports = (function () { + exports.default = (function () { return "foo"; })(); }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js index 69b2a0a2a5..d0b034fc04 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-from/expected.js @@ -11,49 +11,59 @@ global.actual = mod.exports; } })(this, function (exports, _foo) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); - babelHelpers.defaults(exports, babelHelpers.interopExportWildcard(_foo, babelHelpers.defaults)); + + for (let _key in _foo) { + if (_key === "default") continue; + Object.defineProperty(exports, _key, { + enumerable: true, + get: function () { + return _foo[_key]; + } + }); + } + Object.defineProperty(exports, "foo", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "foo", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.bar; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "default", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "default", { enumerable: true, - get: function get() { + get: function () { return _foo.foo; } }); Object.defineProperty(exports, "bar", { enumerable: true, - get: function get() { + get: function () { return _foo.bar; } }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js index 77898e1f56..0b7b3b94be 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-named/expected.js @@ -11,14 +11,14 @@ global.actual = mod.exports; } })(this, function (exports) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); exports.foo = foo; exports.foo = foo; exports.bar = bar; exports.bar = foo; - exports["default"] = foo; - exports["default"] = foo; + exports.default = foo; + exports.default = foo; exports.bar = bar; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js index 4f6edb07ca..baeb2d58b4 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/exports-variable/expected.js @@ -11,32 +11,24 @@ global.actual = mod.exports; } })(this, function (exports) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); exports.foo7 = foo7; - var foo = 1; - exports.foo = foo; - var foo = 1, - bar = 2; - exports.foo = foo; - exports.bar = bar; - var foo2 = function foo2() {}; - exports.foo2 = foo2; - var foo3; - exports.foo3 = foo3; - var foo4 = 2; - exports.foo4 = foo4; - var foo5 = undefined; - exports.foo5 = foo5; - var foo6 = 3; - exports.foo6 = foo6; + var foo = exports.foo = 1; + var foo = exports.foo = 1, + bar = exports.bar = 2; + + var foo2 = exports.foo2 = function () {}; + + var foo3 = exports.foo3 = undefined; + let foo4 = exports.foo4 = 2; + let foo5 = exports.foo5 = undefined; + const foo6 = exports.foo6 = 3; function foo7() {} - var foo8 = function foo8() { - babelHelpers.classCallCheck(this, foo8); - }; + class foo8 {} exports.foo8 = foo8; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js index 6c3019bb18..775365ff70 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/get-module-name-option/expected.js @@ -1,15 +1,13 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define("my custom module name", ["exports"], factory); + define("my custom module name", [], factory); } else if (typeof exports !== "undefined") { - factory(exports); + factory(); } else { var mod = { exports: {} }; - factory(mod.exports); + factory(); global.myCustomModuleName = mod.exports; } -})(this, function (exports) { - "use strict"; -}); \ No newline at end of file +})(this, function () {}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js index 4c30b7fd35..a53e4af635 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/hoist-function-exports/expected.js @@ -11,19 +11,19 @@ global.actual = mod.exports; } })(this, function (exports, _evens) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); + exports.isOdd = undefined; exports.nextOdd = nextOdd; function nextOdd(n) { return (0, _evens.isEven)(n) ? n + 1 : n + 2; } - var isOdd = (function (isEven) { + var isOdd = exports.isOdd = (function (isEven) { return function (n) { return !isEven(n); }; })(_evens.isEven); - exports.isOdd = isOdd; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js index 540a33a0ca..e58e158cb5 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-default/expected.js @@ -1,20 +1,18 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "foo"], factory); + define(["foo"], factory); } else if (typeof exports !== "undefined") { - factory(exports, require("foo")); + factory(require("foo")); } else { var mod = { exports: {} }; - factory(mod.exports, global.foo); + factory(global.foo); global.actual = mod.exports; } -})(this, function (exports, _foo) { - var _foo2 = babelHelpers.interopRequireDefault(_foo); +})(this, function (_foo) { + var _foo2 = babelHelpers.interopRequireDefault(_foo); - var _foo22 = babelHelpers.interopRequireDefault(_foo); - - _foo2["default"]; - _foo22["default"]; + _foo2.default; + _foo2.default; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js index db716ced9f..31de90105f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-glob/expected.js @@ -1,15 +1,16 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "foo"], factory); + define(["foo"], factory); } else if (typeof exports !== "undefined") { - factory(exports, require("foo")); + factory(require("foo")); } else { var mod = { exports: {} }; - factory(mod.exports, global.foo); + factory(global.foo); global.actual = mod.exports; } -})(this, function (exports, _foo) { - _foo; +})(this, function (_foo) { + var foo = babelHelpers.interopRequireWildcard(_foo); + foo; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js index e446ec93ea..b7d62c6ca0 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-mixing/expected.js @@ -1,17 +1,17 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "foo"], factory); + define(["foo"], factory); } else if (typeof exports !== "undefined") { - factory(exports, require("foo")); + factory(require("foo")); } else { var mod = { exports: {} }; - factory(mod.exports, global.foo); + factory(global.foo); global.actual = mod.exports; } -})(this, function (exports, _foo) { - var _foo2 = babelHelpers.interopRequireDefault(_foo); +})(this, function (_foo) { + var _foo2 = babelHelpers.interopRequireDefault(_foo); _foo.baz; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js index 6d262b1f3c..de8aef3f6c 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports-named/expected.js @@ -1,17 +1,17 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "foo"], factory); + define(["foo"], factory); } else if (typeof exports !== "undefined") { - factory(exports, require("foo")); + factory(require("foo")); } else { var mod = { exports: {} }; - factory(mod.exports, global.foo); + factory(global.foo); global.actual = mod.exports; } -})(this, function (exports, _foo) { - _foo.bar; +})(this, function (_foo) { + _foo.bar; _foo.bar2; _foo.baz; _foo.bar; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/expected.js index ef4725dcb4..c35422d7b9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/imports/expected.js @@ -1,15 +1,13 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "foo", "foo-bar", "./directory/foo-bar"], factory); + define(["foo", "foo-bar", "./directory/foo-bar"], factory); } else if (typeof exports !== "undefined") { - factory(exports, require("foo"), require("foo-bar"), require("./directory/foo-bar")); + factory(require("foo"), require("foo-bar"), require("./directory/foo-bar")); } else { var mod = { exports: {} }; - factory(mod.exports, global.foo, global.fooBar, global.fooBar); + factory(global.foo, global.fooBar, global.fooBar); global.actual = mod.exports; } -})(this, function (exports, _foo, _fooBar, _directoryFooBar) { - "use strict"; -}); +})(this, function () {}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/expected.js index f7eb363ec6..2855ccd1ba 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-id/expected.js @@ -1,15 +1,15 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define("MyLib", ["exports"], factory); + define("MyLib", [], factory); } else if (typeof exports !== "undefined") { - factory(exports); + factory(); } else { var mod = { exports: {} }; - factory(mod.exports); + factory(); global.MyLib = mod.exports; } -})(this, function (exports) { - foobar(); +})(this, function () { + foobar(); }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/expected.js index a6c8848e4a..2b7ca8878c 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/module-name/expected.js @@ -1,15 +1,15 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define("es6.modules-umd/module-name/expected", ["exports"], factory); + define("es6.modules-umd/module-name/expected", [], factory); } else if (typeof exports !== "undefined") { - factory(exports); + factory(); } else { var mod = { exports: {} }; - factory(mod.exports); + factory(); global.es6ModulesUmdModuleNameExpected = mod.exports; } -})(this, function (exports) { - foobar(); +})(this, function () { + foobar(); }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js index 5ee1c4b1e4..8a80ab5648 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/non-default-imports/expected.js @@ -1,15 +1,13 @@ (function (global, factory) { if (typeof define === "function" && define.amd) { - define(["exports", "./lib/render"], factory); + define(["./lib/render"], factory); } else if (typeof exports !== "undefined") { - factory(exports, require("./lib/render")); + factory(require("./lib/render")); } else { var mod = { exports: {} }; - factory(mod.exports, global.render); + factory(global.render); global.actual = mod.exports; } -})(this, function (exports, _libRender) { - "use strict"; -}); +})(this, function (_render) {}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json index 61b3905da7..3b3cb76192 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json @@ -1,4 +1,3 @@ { - "plugins": ["external-helpers"], - "modules": "umd" + "plugins": ["external-helpers", "transform-es2015-modules-umd"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/expected.js index 1f06e7aaea..c66bd7da9f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/overview/expected.js @@ -7,22 +7,18 @@ var mod = { exports: {} }; - factory(mod.exports, global.foo2, global.fooBar, global.fooBar); + factory(mod.exports, global.foo, global.fooBar, global.fooBar); global.actual = mod.exports; } -})(this, function (exports, _foo, _fooBar, _directoryFooBar) { - Object.defineProperty(exports, "__esModule", { +})(this, function (exports, _foo) { + Object.defineProperty(exports, "__esModule", { value: true }); - - var _foo2 = babelHelpers.interopRequireDefault(_foo); - + exports.test2 = exports.test = undefined; + var foo2 = babelHelpers.interopRequireWildcard(_foo); exports.test = test; - var test2 = 5; - - exports.test2 = test2; - exports["default"] = test; - + var test2 = exports.test2 = 5; + exports.default = test; _foo.bar; _foo.foo; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/expected.js index 97dece8cc5..54aafe7c93 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/remap/expected.js @@ -11,11 +11,10 @@ global.actual = mod.exports; } })(this, function (exports) { - Object.defineProperty(exports, "__esModule", { + Object.defineProperty(exports, "__esModule", { value: true }); - var test = 2; - exports.test = test; + var test = exports.test = 2; exports.test = test = 5; exports.test = test += 1; @@ -27,17 +26,12 @@ var a = 2; exports.a = a; - exports.a = a = 3; - var b = 2; exports.c = b; - exports.c = b = 3; - var d = 3; exports.e = d; exports.f = d; - exports.f = exports.e = d = 4; }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/actual.js deleted file mode 100644 index 6affde40ac..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -bar(); - -// bar -export function foo() {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/expected.js deleted file mode 100644 index 111778b28a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/comments-explosion/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -export { foo }; -bar(); - -// bar - -function foo() {} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/actual.js deleted file mode 100644 index 6b7abe88c5..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -export function foo() { - console.log(1); - console.log(2); - console.log(3); -} - -export function bar() { - console.log(1); - console.log(2); - console.log(3); -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/expected.js deleted file mode 100644 index 2fac87fd6d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -"use strict";export { foo };export { bar };function foo() { - console.log(1); - console.log(2); - console.log(3);} - - -function bar() { - console.log(1); - console.log(2); - console.log(3);} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/options.json deleted file mode 100644 index 97925bbcb6..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/retain-lines/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "retainLines": true -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/spec/actual.js b/packages/babel-core/test/fixtures/transformation/es6.modules/spec/actual.js deleted file mode 100644 index 3e524643d3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/spec/actual.js +++ /dev/null @@ -1 +0,0 @@ -export var foo = ""; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/spec/expected.js b/packages/babel-core/test/fixtures/transformation/es6.modules/spec/expected.js deleted file mode 100644 index 48e42c9e77..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/spec/expected.js +++ /dev/null @@ -1,4 +0,0 @@ -var _null = null; -export { _null as __proto__ }; -var foo = ""; -export { foo }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules/spec/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules/spec/options.json deleted file mode 100644 index 3cefa67dc3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.modules/spec/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "optional": ["es6.spec.modules"] -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json b/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json index 019532b4f9..a1e544dbb8 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers", "transform-es2015-object-super"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/expected.js b/packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/expected.js index cfee4015ce..e2504935dd 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.object-super/statically-bound/expected.js @@ -1,7 +1,7 @@ var _obj; var o = _obj = { - m: function m() { + m() { return babelHelpers.get(Object.getPrototypeOf(_obj), "x", this); } }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/expected.js index fb8ada05e6..fd30010bce 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-before-last/expected.js @@ -1,3 +1,4 @@ -function foo(a, b) { - if (a === undefined) a = "foo"; +function foo() { + var a = arguments.length <= 0 || arguments[0] === undefined ? "foo" : arguments[0]; + var b = arguments[1]; } diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/expected.js index b20c12fa6d..5d7a1b41e0 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-multiple/expected.js @@ -1,11 +1,11 @@ -var t = function t() { +var t = function () { var e = arguments.length <= 0 || arguments[0] === undefined ? "foo" : arguments[0]; var f = arguments.length <= 1 || arguments[1] === undefined ? 5 : arguments[1]; return e + " bar " + f; }; -var a = function a(e) { +var a = function (e) { var f = arguments.length <= 1 || arguments[1] === undefined ? 5 : arguments[1]; return e + " bar " + f; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/expected.js index 4afa50f338..61ee0102e3 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/default-single/expected.js @@ -1,4 +1,4 @@ -var t = function t() { +var t = function () { var f = arguments.length <= 0 || arguments[0] === undefined ? "foo" : arguments[0]; return f + " bar"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json b/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json index 019532b4f9..bd67bd64db 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers", "syntax-flow", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-es2015-spread", "transform-es2015-classes", "transform-es2015-destructuring", "transform-es2015-arrow-functions", "syntax-async-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js index 76e62c3d36..62c2f6d931 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-arrow-functions/expected.js @@ -1,20 +1,20 @@ -var concat = function concat() { +var concat = function () { var x = arguments[0]; var y = arguments[1]; }; -var somefun = function somefun() { - var get2ndArg = function get2ndArg(a, b) { +var somefun = function () { + var get2ndArg = function (a, b) { var _b = arguments[2]; - var somef = function somef(x, y, z) { + var somef = function (x, y, z) { var _a = arguments[3]; }; - var somefg = function somefg(c, d, e, f) { + var somefg = function (c, d, e, f) { var _a = arguments[4]; }; var _d = arguments[3]; }; - var get1stArg = function get1stArg() { + var get1stArg = function () { return arguments[0]; }; }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js deleted file mode 100644 index 1bb83e3072..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -var fn = async (...rest) => rest; - -var fn = async (...rest) => { - if (true) { - rest; - } -}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js deleted file mode 100644 index 0d6e350e14..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-async-function/expected.js +++ /dev/null @@ -1,37 +0,0 @@ -var _this = this; - -var fn = function fn() { - for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) { - rest[_key] = arguments[_key]; - } - - return regeneratorRuntime.async(function fn$(context$1$0) { - while (1) switch (context$1$0.prev = context$1$0.next) { - case 0: - return context$1$0.abrupt("return", rest); - - case 1: - case "end": - return context$1$0.stop(); - } - }, null, _this); -}; - -var fn = function fn() { - for (var _len2 = arguments.length, rest = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - rest[_key2] = arguments[_key2]; - } - - return regeneratorRuntime.async(function fn$(context$1$0) { - while (1) switch (context$1$0.prev = context$1$0.next) { - case 0: - if (true) { - rest; - } - - case 1: - case "end": - return context$1$0.stop(); - } - }, null, _this); -}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js index 6b72b34994..80224dbe80 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-binding-deoptimisation/expected.js @@ -1,4 +1,4 @@ -var deepAssign = function deepAssign() { +const deepAssign = function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js deleted file mode 100644 index 22d0e1caef..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -function foo( - x: Object, - ...types -): { types: Array, x: Object } { - return { - types: types, - x: x, - }; -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js deleted file mode 100644 index 2f2a31c5bb..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-flow-parameter-reference/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -function foo(x) { - for (var _len = arguments.length, types = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - types[_key - 1] = arguments[_key]; - } - - return { - types: types, - x: x - }; -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js index 69c06843f0..56bad87ea3 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-deoptimisation/expected.js @@ -1,4 +1,4 @@ -var x = function x(foo) { +var x = function (foo) { for (var _len = arguments.length, bar = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { bar[_key - 1] = arguments[_key]; } @@ -6,7 +6,7 @@ var x = function x(foo) { console.log(bar); }; -var y = function y(foo) { +var y = function (foo) { for (var _len2 = arguments.length, bar = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { bar[_key2 - 1] = arguments[_key2]; } @@ -16,7 +16,7 @@ var y = function y(foo) { }; }; -var b = function b(x, y) { +var b = function (x, y) { for (var _len3 = arguments.length, args = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) { args[_key3 - 2] = arguments[_key3]; } @@ -26,17 +26,17 @@ var b = function b(x, y) { console.log(args[1]); }; -var z = function z(foo) { +var z = function (foo) { for (var _len4 = arguments.length, bar = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { bar[_key4 - 1] = arguments[_key4]; } - var x = function x() { + var x = function () { bar[1] = 5; }; }; -var a = function a(foo) { +var a = function (foo) { for (var _len5 = arguments.length, bar = Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) { bar[_key5 - 1] = arguments[_key5]; } @@ -44,7 +44,7 @@ var a = function a(foo) { return bar.join(","); }; -var b = function b(foo) { +var b = function (foo) { var join = "join"; for (var _len6 = arguments.length, bar = Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js index 3a9c5ab53c..dbae1250ad 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-member-expression-optimisation/expected.js @@ -1,4 +1,4 @@ -var t = function t() { +var t = function () { var x = arguments[0]; var y = arguments[1]; }; @@ -7,4 +7,3 @@ function t() { var x = arguments[0]; var y = arguments[1]; } - diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js index fcb6ad5ddf..1975c117ba 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-multiple/expected.js @@ -1,4 +1,4 @@ -var t = function t(f) { +var t = function (f) { var x = f; x = arguments[1]; x = arguments[2]; @@ -9,4 +9,3 @@ function t(f) { x = arguments[1]; x = arguments[2]; } - diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js index 5283750ede..a687304cae 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-nested-iife/expected.js @@ -1,26 +1,20 @@ function broken(x) { - for (var _len = arguments.length, foo = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - foo[_key - 1] = arguments[_key]; - } - if (true) { - var _ret = (function () { - var Foo = (function (_Bar) { - babelHelpers.inherits(Foo, _Bar); + var Foo = (function (_Bar) { + babelHelpers.inherits(Foo, _Bar); - function Foo() { - babelHelpers.classCallCheck(this, Foo); - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).apply(this, arguments); - } + function Foo() { + babelHelpers.classCallCheck(this, Foo); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).apply(this, arguments)); + } - return Foo; - })(Bar); + return Foo; + })(Bar); - return { - v: hello.apply(undefined, foo) - }; - })(); + for (var _len = arguments.length, foo = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + foo[_key - 1] = arguments[_key]; + } - if (typeof _ret === "object") return _ret.v; + return hello.apply(undefined, foo); } } diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js deleted file mode 100644 index d26dae5716..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -var foo = function (...[a, b]) { -}; diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js b/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js deleted file mode 100644 index fff6e2b5b4..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/rest-pattern/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -var foo = function foo() { - var a = arguments[0], - b = arguments[1]; -}; - diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json index 79da122a18..dfcf614a8f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json @@ -1,3 +1,3 @@ { - "loose": ["es6.properties.computed"] + "plugins": ["external-helpers", ["transform-es2015-computed-properties", { "loose": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js deleted file mode 100644 index bc8b2e0ffb..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/actual.js +++ /dev/null @@ -1,8 +0,0 @@ -var x = "y"; -var valueSet; -var obj = { - get [x] () { return 1 }, - set [x] (value) { valueSet = value } -}; -obj.y = "foo"; -obj.y === 1 && valueSet === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js deleted file mode 100644 index 86aeebf521..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/expected.js +++ /dev/null @@ -1,14 +0,0 @@ -var x = "y"; -var valueSet; -var obj = Object.defineProperties({}, babelHelpers.defineProperty({}, x, { - get: function get() { - return 1; - }, - set: function set(value) { - valueSet = value; - }, - configurable: true, - enumerable: true -})); -obj.y = "foo"; -obj.y === 1 && valueSet === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json deleted file mode 100644 index 019532b4f9..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-computed/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["external-helpers"] -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js index d4274143b3..874b21c6b9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/method-plain/expected.js @@ -1,5 +1,5 @@ var obj = { - method: function method() { + method: function () { return 5 + 5; } }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js index a3cca2f02e..26d4bae5c9 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js +++ b/packages/babel-core/test/fixtures/transformation/es6.properties.shorthand/shorthand-comments/actual.js @@ -1,4 +1,4 @@ -const A = "a"; -const o = { +var A = "a"; +var o = { A // comment }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/options.json b/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/options.json new file mode 100644 index 0000000000..b27ac458ff --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.regex.sticky/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-sticky-regex"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/options.json b/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/options.json new file mode 100644 index 0000000000..f52777ef8c --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.regex.unicode/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-unicode-regex"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js deleted file mode 100644 index bfc4f6e119..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/destructuring.js +++ /dev/null @@ -1,9 +0,0 @@ -function foo( - { x: { y: { z: a = b } = {}, w: b = 20 }, a: c = 30 } -) { - assert.equal(a, 10); - assert.equal(b, 20); - assert.equal(c, 30); -} - -foo({ x: {} }); diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json deleted file mode 100644 index 9bf3d7cd6e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-fail/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "optional": "es6.spec.blockScoping", - "throws": "is not defined - temporal dead zone" -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json deleted file mode 100644 index 37caa06731..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.block-scoping-pass/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "optional": "es6.spec.blockScoping" -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json index fdf82aa75a..d3913eecfa 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json @@ -1,4 +1,3 @@ { - "plugins": ["external-helpers"], - "optional": ["es6.spec.symbols"] + "plugins": ["external-helpers", "transform-es2015-typeof-symbol"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/options.json index 1abc0c551a..f59495d3a0 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.spec.template-literals/options.json @@ -1,3 +1,3 @@ { - "optional": ["es6.spec.templateLiterals"] + "plugins": [["transform-es2015-template-literals", { "spec": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/expected.js index bfb6ca25d1..09da80138e 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-array/expected.js @@ -1,5 +1,5 @@ function foo() { - return bar([].concat(babelHelpers.slice.call(arguments))); + return bar([].concat(Array.prototype.slice.call(arguments))); } function bar(one, two, three) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/expected.js index 6fc41df2fc..ad88551bc6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.spread/arguments-concat/expected.js @@ -1,5 +1,5 @@ function foo() { - return bar.apply(undefined, ["test"].concat(babelHelpers.slice.call(arguments))); + return bar.apply(undefined, ["test"].concat(Array.prototype.slice.call(arguments))); } function bar(one, two, three) { diff --git a/packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/expected.js index af203c87d1..a1abd3d74d 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es6.spread/new-expression/expected.js @@ -1,2 +1,2 @@ -new (babelHelpers.bind.apply(Numbers, [null].concat(babelHelpers.toConsumableArray(nums))))(); -new (babelHelpers.bind.apply(Numbers, [null].concat([1], babelHelpers.toConsumableArray(nums))))(); +new (Function.prototype.bind.apply(Numbers, [null].concat(babelHelpers.toConsumableArray(nums))))(); +new (Function.prototype.bind.apply(Numbers, [null].concat([1], babelHelpers.toConsumableArray(nums))))(); diff --git a/packages/babel-core/test/fixtures/transformation/es6.spread/options.json b/packages/babel-core/test/fixtures/transformation/es6.spread/options.json index db29d06ec6..ec7023caa2 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spread/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.spread/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-spread"] + "plugins": ["external-helpers", "transform-es2015-spread", "transform-es2015-parameters"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/actual.js deleted file mode 100755 index 9aefdea5cc..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/actual.js +++ /dev/null @@ -1,8 +0,0 @@ -(function f(n) { - if (n <= 0) { - console.log(this, arguments); - return "foo"; - } - - return Math.random() > 0.5 ? f.call(this, n - 1) : f.apply(this, [n - 1]); -})(1e6) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/expected.js deleted file mode 100755 index 3634614940..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/call-apply/expected.js +++ /dev/null @@ -1,26 +0,0 @@ -(function f(_x) { - var _this = this, - _arguments = arguments; - - var _again = true; - - _function: while (_again) { - var n = _x; - _again = false; - - if (n <= 0) { - console.log(_this, _arguments); - return "foo"; - } - - if (Math.random() > 0.5) { - _arguments = [_x = n - 1]; - _again = true; - continue _function; - } else { - _arguments = [_x = n - 1]; - _again = true; - continue _function; - } - } -})(1e6) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js deleted file mode 100644 index 4322fa1e05..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -function sum(a=1, b=2) { - if (b > 0) { - return sum(a + 1, b - 1); - } - return a; -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js deleted file mode 100644 index f7f9998032..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/default-parameters/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -function sum() { - var _arguments = arguments; - var _again = true; - - _function: while (_again) { - a = b = undefined; - var a = _arguments.length <= 0 || _arguments[0] === undefined ? 1 : _arguments[0]; - _again = false; - var b = _arguments.length <= 1 || _arguments[1] === undefined ? 2 : _arguments[1]; - - if (b > 0) { - _arguments = [a + 1, b - 1]; - _again = true; - continue _function; - } - return a; - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js deleted file mode 100644 index 0e0986168b..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -function f() { - if (true) {} - else return f() -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js deleted file mode 100644 index d31e15410c..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expression-consequent/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -function f() { - var _again = true; - - _function: while (_again) { - _again = false; - - if (true) {} else { - _again = true; - continue _function; - } - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/actual.js deleted file mode 100755 index 824fdf80d5..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -(function f(n) { - return n <= 0 ? "foo" : (doSmth(), getTrueValue() && (getFalseValue() || f(n - 1))); -})(1e6, true) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/expected.js deleted file mode 100755 index 92a92ecf49..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/expressions/expected.js +++ /dev/null @@ -1,27 +0,0 @@ -(function f(_x) { - var _left; - - var _again = true; - - _function: while (_again) { - var n = _x; - _again = false; - if (n <= 0) { - return "foo"; - } else { - doSmth(); - - if (!(_left = getTrueValue())) { - return _left; - } - - if (_left = getFalseValue()) { - return _left; - } - - _x = n - 1; - _again = true; - continue _function; - } - } -})(1e6, true) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/actual.js deleted file mode 100644 index 6078e67fda..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -function fact(n, acc = 1) { - return n > 1 ? fact(n - 1, acc * n) : acc; -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/expected.js deleted file mode 100644 index 456b29f725..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/factorial/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -function fact(_x2) { - var _arguments = arguments; - var _again = true; - - _function: while (_again) { - var n = _x2; - acc = undefined; - _again = false; - var acc = _arguments.length <= 1 || _arguments[1] === undefined ? 1 : _arguments[1]; - if (n > 1) { - _arguments = [_x2 = n - 1, acc * n]; - _again = true; - continue _function; - } else { - return acc; - } - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js deleted file mode 100644 index cfb6182a00..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -// we need to deopt `test` if it's reassigned as we can't be certain of it's -// state, ie. it could have been rebound or dereferenced - -function test(exit) { - if (exit) { - return this.x; - } - return test(true); -} - -test = test.bind({ x: "yay" }); - -console.log(test()); diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js deleted file mode 100644 index cfb6182a00..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/ignore-reassigned/expected.js +++ /dev/null @@ -1,13 +0,0 @@ -// we need to deopt `test` if it's reassigned as we can't be certain of it's -// state, ie. it could have been rebound or dereferenced - -function test(exit) { - if (exit) { - return this.x; - } - return test(true); -} - -test = test.bind({ x: "yay" }); - -console.log(test()); diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/actual.js deleted file mode 100644 index f616841038..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -var count = (i = 10) => { - if (!i) return; - return count(i - 1); -}; - -function count2(i = 10) { - if (!i) return; - return count2(i - 1); -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/expected.js deleted file mode 100644 index 30f534efc0..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/max-args/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -var count = function count() { - var _arguments = arguments; - var _again = true; - - _function: while (_again) { - i = undefined; - _again = false; - var i = _arguments.length <= 0 || _arguments[0] === undefined ? 10 : _arguments[0]; - - if (!i) return; - _arguments = [i - 1]; - _again = true; - continue _function; - } -}; - -function count2() { - var _arguments2 = arguments; - var _again2 = true; - - _function2: while (_again2) { - i = undefined; - _again2 = false; - var i = _arguments2.length <= 0 || _arguments2[0] === undefined ? 10 : _arguments2[0]; - - if (!i) return; - _arguments2 = [i - 1]; - _again2 = true; - continue _function2; - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js deleted file mode 100644 index 1887c13c91..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/actual.js +++ /dev/null @@ -1,15 +0,0 @@ -function foo(a, b) { - if (b) { - return foo(b); - } else { - return a; - } -} - -function foo(a, b) { - if (b) { - return foo("a", "b", "c"); - } else { - return a; - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js deleted file mode 100644 index 5053794f69..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/exec.js +++ /dev/null @@ -1,9 +0,0 @@ -function foo(a, b) { - if (b) { - return foo(b); - } else { - return a; - } -} - -assert.equal(foo("Michael", "Jackson"), "Jackson"); diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js deleted file mode 100644 index c0236f6b32..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/parameter-exceeds/expected.js +++ /dev/null @@ -1,26 +0,0 @@ -function foo(a, b) { - if (b) { - return foo(b); - } else { - return a; - } -} - -function foo(_x, _x2) { - var _again = true; - - _function: while (_again) { - var a = _x, - b = _x2; - _again = false; - - if (b) { - _x = "a"; - _x2 = "b"; - _again = true; - continue _function; - } else { - return a; - } - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/actual.js deleted file mode 100755 index 5f13765dd6..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/actual.js +++ /dev/null @@ -1,14 +0,0 @@ -(function f(n, m = getDefaultValue()) { - // `m` should be `getDefaultValue()` after first pass - if (n <= 0) { - return "foo"; - } - // `local1`-`local3` should be fresh on each pass - var local1; - let local2; - const local3 = 3; - // `g` should be function here on each pass - g = 123; - function g() {} - return f(n - 1); -})(1e6, true) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/expected.js deleted file mode 100755 index 7ed702bc92..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/recursion/expected.js +++ /dev/null @@ -1,28 +0,0 @@ -(function f(_x2) { - var _arguments = arguments; - var _again = true; - - _function: while (_again) { - var n = _x2; - m = local1 = local2 = local3 = undefined; - - var g = function g() {}; - - _again = false; - var m = _arguments.length <= 1 || _arguments[1] === undefined ? getDefaultValue() : _arguments[1]; - - // `m` should be `getDefaultValue()` after first pass - if (n <= 0) { - return "foo"; - } - // `local1`-`local3` should be fresh on each pass - var local1; - var local2 = undefined; - var local3 = 3; - // `g` should be function here on each pass - g = 123; - _arguments = [_x2 = n - 1]; - _again = true; - continue _function; - } -})(1e6, true) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/actual.js deleted file mode 100644 index 0b91223fe7..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/actual.js +++ /dev/null @@ -1,8 +0,0 @@ -(function(){ - var foo = () => { - this; - arguments; - return foo(); - }; - foo(); -}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/expected.js deleted file mode 100644 index 2417064bb7..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/shadow/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -(function () { - var _this = this, - _arguments2 = arguments; - - var foo = function foo() { - var _again = true; - - _function: while (_again) { - _again = false; - - _this; - _arguments2; - _again = true; - continue _function; - } - }; - foo(); -}); diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/actual.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/actual.js deleted file mode 100755 index 654f4ce709..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/actual.js +++ /dev/null @@ -1,43 +0,0 @@ -(function f(n) { - if (n <= 0) { - return "foo"; - } - - try { - return f(n - 1); - } catch (e) {} -})(1e6) === "foo"; - -(function f(n) { - if (n <= 0) { - return "foo"; - } - - try { - throw new Error(); - } catch (e) { - return f(n - 1); - } -})(1e6) === "foo"; - -(function f(n) { - if (n <= 0) { - return "foo"; - } - - try { - throw new Error(); - } catch (e) { - return f(n - 1); - } finally {} -})(1e6) === "foo"; - -(function f(n) { - if (n <= 0) { - return "foo"; - } - - try {} finally { - return f(n - 1); - } -})(1e6) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/expected.js b/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/expected.js deleted file mode 100755 index 2602d65a55..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es6.tail-call/try-catch/expected.js +++ /dev/null @@ -1,61 +0,0 @@ -(function f(n) { - if (n <= 0) { - return "foo"; - } - - try { - return f(n - 1); - } catch (e) {} -})(1e6) === "foo"; - -(function f(_x) { - var _again = true; - - _function: while (_again) { - var n = _x; - _again = false; - - if (n <= 0) { - return "foo"; - } - - try { - throw new Error(); - } catch (e) { - _x = n - 1; - _again = true; - continue _function; - } - } -})(1e6) === "foo"; - -(function f(n) { - if (n <= 0) { - return "foo"; - } - - try { - throw new Error(); - } catch (e) { - return f(n - 1); - } finally {} -})(1e6) === "foo"; - -(function f(_x2) { - var _again2 = true; - - _function2: while (_again2) { - var n = _x2; - _again2 = false; - - if (n <= 0) { - return "foo"; - } - - try {} finally { - _x2 = n - 1; - _again2 = true; - continue _function2; - } - } -})(1e6) === "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/options.json index 8b5e72ecbe..434ba0caa6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.template-literals/tag-loose/options.json @@ -1,3 +1,3 @@ { - "loose": ["es6.templateLiterals"] + "plugins": [["transform-es2015-template-literals", { "loose": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/exec.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/exec.js new file mode 100644 index 0000000000..6141a3f65e --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/exec.js @@ -0,0 +1,12 @@ +class Foo { + constructor() { + this.num = 1; + } + + call constructor() { + return { num: 2 }; + } +} + +assert.equal(new Foo().num, 1); +assert.equal(Foo().num, 2); diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/options.json new file mode 100644 index 0000000000..37e52d209d --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration-exec/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-class-constructor-call", "transform-es2015-classes", "transform-es2015-block-scoping", "transform-es2015-parameters"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/actual.js new file mode 100644 index 0000000000..1f8b64ef4a --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/actual.js @@ -0,0 +1,5 @@ +class Foo { + call constructor() { + foo(); + } +} diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/expected.js new file mode 100644 index 0000000000..32e55b668f --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/declaration/expected.js @@ -0,0 +1,16 @@ +let _Foo = class Foo {}; + +var _FooCall = function () { + foo(); +}; + +var Foo = function (...args) { + if (this instanceof Foo) { + return Reflect.construct(_Foo, args); + } else { + return _FooCall.apply(this, args); + } +}; + +Foo.__proto__ = _Foo; +Foo; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/actual.js new file mode 100644 index 0000000000..0663cd8a88 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/actual.js @@ -0,0 +1,5 @@ +(class { + call constructor() { + foo(); + } +}); diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/expected.js new file mode 100644 index 0000000000..5bedc84e65 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-completion-record/expected.js @@ -0,0 +1,16 @@ +let _class2 = class {}; + +var _classCall = function () { + foo(); +}; + +var _class = function (...args) { + if (this instanceof _class) { + return Reflect.construct(_class2, args); + } else { + return _classCall.apply(this, args); + } +}; + +_class.__proto__ = _class2; +_class; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/exec.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/exec.js new file mode 100644 index 0000000000..c276e23ab3 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/exec.js @@ -0,0 +1,12 @@ +let Foo = class { + constructor() { + this.num = 1; + } + + call constructor() { + return { num: 2 }; + } +}; + +assert.equal(new Foo().num, 1); +assert.equal(Foo().num, 2); diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/options.json new file mode 100644 index 0000000000..37e52d209d --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression-exec/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-class-constructor-call", "transform-es2015-classes", "transform-es2015-block-scoping", "transform-es2015-parameters"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/actual.js new file mode 100644 index 0000000000..0da72faf45 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/actual.js @@ -0,0 +1,5 @@ +let Foo = class { + call constructor() { + foo(); + } +}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/expected.js new file mode 100644 index 0000000000..07daf3dee2 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/expression/expected.js @@ -0,0 +1,18 @@ +let Foo = (function () { + let _class2 = class {}; + + var _classCall = function () { + foo(); + }; + + var _class = function (...args) { + if (this instanceof _class) { + return Reflect.construct(_class2, args); + } else { + return _classCall.apply(this, args); + } + }; + + _class.__proto__ = _class2; + return _class; +})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/options.json new file mode 100644 index 0000000000..98dd15ca98 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.class-constructor-call/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-class-constructor-call"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js index 3c4da0c5ac..12af37359c 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/constructor-collision/expected.js @@ -1,19 +1,13 @@ var foo = "bar"; -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); +var Foo = function Foo() { + babelHelpers.classCallCheck(this, Foo); - this.__initializeProperties(); + _initialiseProps.call(this); - var foo = "foo"; - } + var foo = "foo"; +}; - babelHelpers.createClass(Foo, [{ - key: "__initializeProperties", - value: function __initializeProperties() { - this.bar = foo; - } - }]); - return Foo; -})(); +var _initialiseProps = function () { + this.bar = foo; +}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/expected.js index 04ad4dc07d..09a524f94c 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/derived/expected.js @@ -1,10 +1,11 @@ var Foo = (function (_Bar) { babelHelpers.inherits(Foo, _Bar); - function Foo() { + function Foo(...args) { + var _temp, _this; + babelHelpers.classCallCheck(this, Foo); - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).apply(this, arguments); - this.bar = "foo"; + return babelHelpers.possibleConstructorReturn(_this, (_temp = (_this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).call(this, ...args)), _this), _this.bar = "foo", _temp)); } return Foo; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/actual.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/actual.js deleted file mode 100644 index a713784501..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -class Foo { - __initializeProperties() { - - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/options.json deleted file mode 100644 index ce3c3be3a2..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/method-collision/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "throws": "Illegal method name \"__initializeProperties\"" -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json index c4fd4ec0e4..1e03c15d4c 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-class-properties"] + "plugins": ["external-helpers", "transform-class-properties", "transform-es2015-classes", "transform-es2015-block-scoping", "syntax-class-properties"] } diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/expected.js index 2d68553c98..4d0c09379d 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/static/expected.js @@ -1,12 +1,5 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } +var Foo = function Foo() { + babelHelpers.classCallCheck(this, Foo); +}; - babelHelpers.createClass(Foo, null, [{ - key: "bar", - value: "foo", - enumerable: true - }]); - return Foo; -})(); +Foo.bar = "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/expected.js index e4eb6240d8..7eab2b7172 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-expression/expected.js @@ -2,11 +2,12 @@ var Foo = (function (_Bar) { babelHelpers.inherits(Foo, _Bar); function Foo() { - var _temp; + var _temp, _this; babelHelpers.classCallCheck(this, Foo); - foo((_temp = babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).call(this), this.bar = "foo", _temp)); + foo((_temp = (_this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).call(this)), _this), _this.bar = "foo", _temp)); + return _this; } return Foo; diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/expected.js b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/expected.js index 35b94e660a..fa87f118f1 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/super-statement/expected.js @@ -4,8 +4,10 @@ var Foo = (function (_Bar) { function Foo() { babelHelpers.classCallCheck(this, Foo); - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).call(this); - this.bar = "foo"; + var _this = babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).call(this)); + + _this.bar = "foo"; + return _this; } return Foo; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/actual.js deleted file mode 100644 index 5b07664e61..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -function add() { - return [for (i of nums) i * arguments[0]]; -} - -add(5); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/expected.js deleted file mode 100644 index f02ad56b61..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/arguments/expected.js +++ /dev/null @@ -1,35 +0,0 @@ -function add() { - var _arguments = arguments; - - return (function () { - var _ref = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = nums[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var i = _step.value; - - _ref.push(i * _arguments[0]); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _ref; - })(); -} - -add(5); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js deleted file mode 100644 index 4882336b9f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/actual.js +++ /dev/null @@ -1 +0,0 @@ -var arr = [for (i of [1, 2, 3]) if (i > 1) i * i]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js deleted file mode 100644 index 8bcbe9767d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single-if/expected.js +++ /dev/null @@ -1,14 +0,0 @@ -var arr = (function () { - var _arr = []; - var _arr2 = [1, 2, 3]; - - for (var _i = 0; _i < _arr2.length; _i++) { - var i = _arr2[_i]; - - if (i > 1) { - _arr.push(i * i); - } - } - - return _arr; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js deleted file mode 100644 index 2087ae351b..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/actual.js +++ /dev/null @@ -1 +0,0 @@ -var arr = [for (i of [1, 2, 3]) i * i]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js deleted file mode 100644 index b26a15eadd..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-expression-single/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -var arr = (function () { - var _arr = []; - var _arr2 = [1, 2, 3]; - - for (var _i = 0; _i < _arr2.length; _i++) { - var i = _arr2[_i]; - - _arr.push(i * i); - } - - return _arr; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js deleted file mode 100644 index 754bb7e894..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/actual.js +++ /dev/null @@ -1 +0,0 @@ -var seattlers = [for (customers of countries) for (c of customers) if (c.city == "Seattle") { name: c.name, age: c.age }]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js deleted file mode 100644 index 7036c1a738..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple-if/expected.js +++ /dev/null @@ -1,53 +0,0 @@ -var seattlers = (function () { - var _seattlers = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = countries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var customers = _step.value; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = customers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var c = _step2.value; - - if (c.city == "Seattle") { - _seattlers.push({ name: c.name, age: c.age }); - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"]) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _seattlers; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js deleted file mode 100644 index f0aaa63c27..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/actual.js +++ /dev/null @@ -1 +0,0 @@ -var arr = [for (x of "abcdefgh".split("")) for (y of "12345678".split("")) x + y]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js deleted file mode 100644 index 73311444e9..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-multiple/expected.js +++ /dev/null @@ -1,51 +0,0 @@ -var arr = (function () { - var _arr = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = "abcdefgh".split("")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var x = _step.value; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = "12345678".split("")[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var y = _step2.value; - - _arr.push(x + y); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"]) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _arr; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js deleted file mode 100644 index e2cf129386..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/actual.js +++ /dev/null @@ -1 +0,0 @@ -var arr = [for (i of nums) if (i > 1) i * i]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js deleted file mode 100644 index 4d4bc5e399..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single-if/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -var arr = (function () { - var _arr = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = nums[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var i = _step.value; - - if (i > 1) { - _arr.push(i * i); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _arr; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/actual.js deleted file mode 100644 index 9dda19048b..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/actual.js +++ /dev/null @@ -1 +0,0 @@ -var arr = [for (i of nums) i * i]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/expected.js deleted file mode 100644 index 70fa294f4f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-single/expected.js +++ /dev/null @@ -1,29 +0,0 @@ -var arr = (function () { - var _arr = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = nums[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var i = _step.value; - - _arr.push(i * i); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _arr; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/actual.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/actual.js deleted file mode 100644 index 5ae580c2d3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -function add() { - return [for (i of nums) i * this.multiplier]; -} - -add.call({ multiplier: 5 }); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/expected.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/expected.js deleted file mode 100644 index c207994ede..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/array-this/expected.js +++ /dev/null @@ -1,35 +0,0 @@ -function add() { - var _this = this; - - return (function () { - var _ref = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = nums[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var i = _step.value; - - _ref.push(i * _this.multiplier); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _ref; - })(); -} - -add.call({ multiplier: 5 }); diff --git a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/generator/exec.js b/packages/babel-core/test/fixtures/transformation/es7.comprehensions/generator/exec.js deleted file mode 100644 index dd7ef4da0a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.comprehensions/generator/exec.js +++ /dev/null @@ -1,6 +0,0 @@ -var nums = [1, 2, 3, 4, 5, 6]; -var multiples = (for (i of nums) if (i % 2) i * i); -assert.equal(multiples.next().value, 1); -assert.equal(multiples.next().value, 9); -assert.equal(multiples.next().value, 25); -assert.ok(multiples.next().done); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js deleted file mode 100644 index b0262c5699..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -class Foo { - @bar - get foo() { - - } - - @foo - set foo(bar) { - - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js deleted file mode 100644 index 590dba750a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter-and-setter/expected.js +++ /dev/null @@ -1,13 +0,0 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createDecoratedClass(Foo, [{ - key: "foo", - decorators: [bar, foo], - get: function get() {}, - set: function set(bar) {} - }]); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/actual.js deleted file mode 100644 index c09d8bfaf2..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -class Foo { - @bar - get foo() { - - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/expected.js deleted file mode 100644 index f1ab0064a3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-getter/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createDecoratedClass(Foo, [{ - key: "foo", - decorators: [bar], - get: function get() {} - }]); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js deleted file mode 100644 index 24d63020fd..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -class Foo { - @bar - foo = "Bar"; -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js deleted file mode 100644 index 03b00b8175..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/exec.js +++ /dev/null @@ -1,14 +0,0 @@ -function noop() {} - -class Foo { - @noop - bar = "foobar"; - - @noop - foo() { - return "bar"; - } -} - -assert.equal(new Foo().bar, "foobar"); -assert.equal(new Foo().foo(), "bar"); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js deleted file mode 100644 index 1160ef3561..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-instance-props/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -var Foo = (function () { - var _instanceInitializers = {}; - - function Foo() { - babelHelpers.classCallCheck(this, Foo); - babelHelpers.defineDecoratedPropertyDescriptor(this, "foo", _instanceInitializers); - } - - babelHelpers.createDecoratedClass(Foo, [{ - key: "foo", - decorators: [bar], - initializer: function initializer() { - return "Bar"; - }, - enumerable: true - }], null, _instanceInitializers); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js deleted file mode 100644 index 50ba1a8f7d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -class Foo { - @bar - static foo = "Bar"; -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js deleted file mode 100644 index a343d78640..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/exec.js +++ /dev/null @@ -1,14 +0,0 @@ -function noop() {} - -class Foo { - @noop - static bar = "foobar"; - - @noop - static foo() { - return "bar"; - } -} - -assert.equal(Foo.bar, "foobar"); -assert.equal(Foo.foo(), "bar"); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js deleted file mode 100644 index 029d2e94d3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-init-static-props/expected.js +++ /dev/null @@ -1,18 +0,0 @@ -var Foo = (function () { - var _staticInitializers = {}; - - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createDecoratedClass(Foo, null, [{ - key: "foo", - decorators: [bar], - initializer: function initializer() { - return "Bar"; - }, - enumerable: true - }], null, _staticInitializers); - babelHelpers.defineDecoratedPropertyDescriptor(Foo, "foo", _staticInitializers); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/actual.js deleted file mode 100644 index b2f8e63381..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -class Foo { - @bar - foo() { - - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/expected.js deleted file mode 100644 index 152db01c9d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-method/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createDecoratedClass(Foo, [{ - key: "foo", - decorators: [bar], - value: function foo() {} - }]); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/actual.js deleted file mode 100644 index 61173aa9a9..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -import foo from "foo"; - -@foo -export default class Foo { - -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/expected.js deleted file mode 100644 index 0ea1e37433..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-modules/expected.js +++ /dev/null @@ -1,20 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _foo = require("foo"); - -var _foo2 = babelHelpers.interopRequireDefault(_foo); - -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, _Foo); - } - - var _Foo = Foo; - Foo = (0, _foo2["default"])(Foo) || Foo; - return Foo; -})(); - -exports["default"] = Foo; -module.exports = exports["default"]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js deleted file mode 100644 index c739a74257..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -class Foo { - @bar - foo; -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js deleted file mode 100644 index 939e4d245d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-instance-props/expected.js +++ /dev/null @@ -1,16 +0,0 @@ -var Foo = (function () { - var _instanceInitializers = {}; - - function Foo() { - babelHelpers.classCallCheck(this, Foo); - babelHelpers.defineDecoratedPropertyDescriptor(this, "foo", _instanceInitializers); - } - - babelHelpers.createDecoratedClass(Foo, [{ - key: "foo", - decorators: [bar], - initializer: null, - enumerable: true - }], null, _instanceInitializers); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js deleted file mode 100644 index 45fe716ac4..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/actual.js +++ /dev/null @@ -1,4 +0,0 @@ -class Foo { - @bar - static foo; -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js deleted file mode 100644 index 641c2a3e49..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-no-init-static-props/expected.js +++ /dev/null @@ -1,16 +0,0 @@ -var Foo = (function () { - var _staticInitializers = {}; - - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createDecoratedClass(Foo, null, [{ - key: "foo", - decorators: [bar], - initializer: null, - enumerable: true - }], null, _staticInitializers); - babelHelpers.defineDecoratedPropertyDescriptor(Foo, "foo", _staticInitializers); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/actual.js deleted file mode 100644 index db86413764..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -class Foo { - @bar - set foo(arg) { - - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/expected.js deleted file mode 100644 index a7ddb37b63..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-setter/expected.js +++ /dev/null @@ -1,12 +0,0 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, Foo); - } - - babelHelpers.createDecoratedClass(Foo, [{ - key: "foo", - decorators: [bar], - set: function set(arg) {} - }]); - return Foo; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/actual.js deleted file mode 100644 index 14770c1129..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/actual.js +++ /dev/null @@ -1,12 +0,0 @@ -@bar -class Foo extends Bar { - constructor() { - super(); - } -} - -var Foo2 = @bar class extends Bar { - constructor() { - super(); - } -}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/expected.js deleted file mode 100644 index 0a55813a3f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class-super/expected.js +++ /dev/null @@ -1,27 +0,0 @@ -var Foo = (function (_Bar) { - babelHelpers.inherits(Foo, _Bar); - - function Foo() { - babelHelpers.classCallCheck(this, _Foo); - - babelHelpers.get(Object.getPrototypeOf(_Foo.prototype), "constructor", this).call(this); - } - - var _Foo = Foo; - Foo = bar(Foo) || Foo; - return Foo; -})(Bar); - -var Foo2 = (function (_Bar2) { - babelHelpers.inherits(Foo2, _Bar2); - - function Foo2() { - babelHelpers.classCallCheck(this, _Foo2); - - babelHelpers.get(Object.getPrototypeOf(_Foo2.prototype), "constructor", this).call(this); - } - - var _Foo2 = Foo2; - Foo2 = bar(Foo2) || Foo2; - return Foo2; -})(Bar); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class/actual.js deleted file mode 100644 index 96ced15a45..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class/actual.js +++ /dev/null @@ -1,21 +0,0 @@ -@foo -class Foo {} - -@foo -@bar -class Bar {} - -var Foo2 = @bar class Foo { - -}; - -var Bar2 = @foo @bar class Bar { - -}; - -@foo -class Baz{ - constructor(baz) { - this.baz = baz; - } -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/class/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/class/expected.js deleted file mode 100644 index ced98e9835..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/class/expected.js +++ /dev/null @@ -1,53 +0,0 @@ -var Foo = (function () { - function Foo() { - babelHelpers.classCallCheck(this, _Foo); - } - - var _Foo = Foo; - Foo = foo(Foo) || Foo; - return Foo; -})(); - -var Bar = (function () { - function Bar() { - babelHelpers.classCallCheck(this, _Bar); - } - - var _Bar = Bar; - Bar = bar(Bar) || Bar; - Bar = foo(Bar) || Bar; - return Bar; -})(); - -var Foo2 = (function () { - function Foo() { - babelHelpers.classCallCheck(this, _Foo2); - } - - var _Foo2 = Foo; - Foo = bar(Foo) || Foo; - return Foo; -})(); - -var Bar2 = (function () { - function Bar() { - babelHelpers.classCallCheck(this, _Bar2); - } - - var _Bar2 = Bar; - Bar = bar(Bar) || Bar; - Bar = foo(Bar) || Bar; - return Bar; -})(); - -var Baz = (function () { - function Baz(baz) { - babelHelpers.classCallCheck(this, _Baz); - - this.baz = baz; - } - - var _Baz = Baz; - Baz = foo(Baz) || Baz; - return Baz; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js deleted file mode 100644 index 01cdde6e01..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec-object-method-autobind.js +++ /dev/null @@ -1,20 +0,0 @@ -var autobind = function (target, name, descriptor) { - var fn = descriptor.value; - delete descriptor.value; - delete descriptor.writable; - descriptor.get = function () { - return fn.bind(this); - }; -}; - -var person = { - first: "Sebastian", - last: "McKenzie", - - @autobind - getName() { - return `${this.first} ${this.last}`; - } -} - -assert.equal(person.getName.call(null), "Sebastian McKenzie") diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js deleted file mode 100644 index 64b7e2df45..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/exec-class-method-autobind/exec.js +++ /dev/null @@ -1,22 +0,0 @@ -var autobind = function (target, name, descriptor) { - var fn = descriptor.value; - delete descriptor.value; - delete descriptor.writable; - descriptor.get = function () { - return fn.bind(this); - }; -}; - -class Person { - constructor() { - this.first = "Sebastian"; - this.last = "McKenzie"; - } - - @autobind - getName() { - return `${this.first} ${this.last}`; - } -} - -assert.equal(new Person().getName.call(null), "Sebastian McKenzie") diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/member-expressions/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/member-expressions/exec.js deleted file mode 100644 index 81bc4716a4..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/member-expressions/exec.js +++ /dev/null @@ -1,18 +0,0 @@ -var foo = { - bar: function () { assert.equal(this, foo); }, - foobar: { - bar: function () { assert.equal(this, foo.foobar); }, - } -}; - -(class { - @foo.bar - @foo.foobar.bar - bar() {} -}); - -({ - @foo.bar - @foo.foobar.bar - bar() {} -}); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js deleted file mode 100644 index 37a0b6a98f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/actual.js +++ /dev/null @@ -1,11 +0,0 @@ -var obj = { - @foo - get foo() { - - }, - - @foo - set foo(bar) { - - } -}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js deleted file mode 100644 index 8f48c08081..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter-and-setter/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -var obj = babelHelpers.createDecoratedObject([{ - key: "foo", - decorators: [foo, foo], - get: function get() {}, - set: function set(bar) {} -}]); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/actual.js deleted file mode 100644 index 632f156498..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -var obj = { - @foo - get foo() { - - } -}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/expected.js deleted file mode 100644 index f75059b079..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-getter/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -var obj = babelHelpers.createDecoratedObject([{ - key: "foo", - decorators: [foo], - get: function get() {} -}]); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/actual.js deleted file mode 100644 index 52eb95db88..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/actual.js +++ /dev/null @@ -1,6 +0,0 @@ -var obj = { - @foo - set foo(bar) { - - } -}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/expected.js deleted file mode 100644 index 4ad8956247..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object-setter/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -var obj = babelHelpers.createDecoratedObject([{ - key: "foo", - decorators: [foo], - set: function set(bar) {} -}]); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object/actual.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object/actual.js deleted file mode 100644 index 16a6041b30..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object/actual.js +++ /dev/null @@ -1,9 +0,0 @@ -var obj = { - @foo - bar() {}, - - @bar - foo: "lol", - - yes: "wow" -}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object/exec.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object/exec.js deleted file mode 100644 index 6868020f23..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object/exec.js +++ /dev/null @@ -1,15 +0,0 @@ -function override(target, key, descriptor) { - descriptor.initializer = function () { - return "lol"; - }; -} - -var obj = { - @override - foo: "bar", - - bar: "heh" -}; - -assert.equal(obj.foo, "lol"); -assert.equal(obj.bar, "heh"); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/object/expected.js b/packages/babel-core/test/fixtures/transformation/es7.decorators/object/expected.js deleted file mode 100644 index 0f5ebb8d1f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/object/expected.js +++ /dev/null @@ -1,16 +0,0 @@ -var obj = babelHelpers.createDecoratedObject([{ - key: "bar", - decorators: [foo], - value: function bar() {} -}, { - key: "foo", - decorators: [bar], - initializer: function initializer() { - return "lol"; - } -}, { - key: "yes", - initializer: function initializer() { - return "wow"; - } -}]); diff --git a/packages/babel-core/test/fixtures/transformation/es7.decorators/options.json b/packages/babel-core/test/fixtures/transformation/es7.decorators/options.json deleted file mode 100644 index d241add8f9..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.decorators/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["external-helpers", "transform-decorators", "transform-class-properties"] -} diff --git a/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/memoise-object/exec.js b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/memoise-object/exec.js new file mode 100644 index 0000000000..140551313e --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/memoise-object/exec.js @@ -0,0 +1,10 @@ +var counters = 0; +Object.defineProperty(global, "reader", { + get() { + counters += 1; + return { x: 2 }; + }, + configurable: true +}); +reader.x **= 2; +assert.ok(counters === 1); diff --git a/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/options.json b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/options.json new file mode 100644 index 0000000000..a6b3a4360b --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.exponentian-operator/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-exponentiation-operator"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js deleted file mode 100644 index 48783b0466..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/actual.js +++ /dev/null @@ -1 +0,0 @@ -export foo from "bar"; diff --git a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js deleted file mode 100644 index c704c59cb1..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/default-commonjs/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _bar = require("bar"); - -var _bar2 = babelHelpers.interopRequireDefault(_bar); - -exports.foo = _bar2["default"]; diff --git a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js deleted file mode 100644 index d9d78f9ccd..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/actual.js +++ /dev/null @@ -1 +0,0 @@ -export * as foo from "bar"; diff --git a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js deleted file mode 100644 index 00001a04dc..0000000000 --- a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/namespace-commonjs/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _bar = require("bar"); - -var _foo = babelHelpers.interopRequireWildcard(_bar); - -exports.foo = _foo; diff --git a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json index 1ecf20e277..26dfe134f4 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json +++ b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "export-extensions"] + "plugins": ["external-helpers", "transform-export-extensions"] } diff --git a/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/exec.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/exec.js index 5ee5f3f7d7..93ea455420 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/exec.js +++ b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/exec.js @@ -2,15 +2,17 @@ var operations = []; var lib = {}; -for (let key of ['f', 'g', 'h']) { - let func = () => operations.push(`lib.${key}()`); +['f', 'g', 'h'].forEach(function (key) { + var func = function () { + return operations.push("lib." + key + "()"); + }; Object.defineProperty(lib, key, { - get() { - operations.push(`get lib.${key}`); + get: function () { + operations.push("get lib." + key); return func; } }); -} +}); ({prop:'value'}) ::lib.f() diff --git a/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/expected.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/expected.js index f0178f069e..3a7acc97d3 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.function-bind/complex-call/expected.js @@ -1,11 +1,11 @@ var _context; -var _iterlib = require("iterlib"); +import { map, takeWhile, forEach } from "iterlib"; -(_context = (_context = (_context = getPlayers(), _iterlib.map).call(_context, function (x) { +(_context = (_context = (_context = getPlayers(), map).call(_context, function (x) { return x.character(); -}), _iterlib.takeWhile).call(_context, function (x) { +}), takeWhile).call(_context, function (x) { return x.strength > 100; -}), _iterlib.forEach).call(_context, function (x) { +}), forEach).call(_context, function (x) { return console.log(x); }); diff --git a/packages/babel-core/test/fixtures/transformation/es7.function-bind/options.json b/packages/babel-core/test/fixtures/transformation/es7.function-bind/options.json index 6661827d54..aa1fdfe370 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.function-bind/options.json +++ b/packages/babel-core/test/fixtures/transformation/es7.function-bind/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-function-bind"] + "plugins": ["transform-function-bind", "transform-es2015-arrow-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js b/packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js index 0a23379d35..191e73ffb8 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.function-bind/static-contexts/expected.js @@ -1,4 +1,4 @@ -var bar = function bar() {}; +var bar = function () {}; bar.bind(foo); var foo = {}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/expected.js index 8d12badcab..5e42763fce 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.object-spread/assignment/expected.js @@ -1,3 +1,3 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; -z = _extends({ x: x }, y); +z = _extends({ x }, y); diff --git a/packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/expected.js b/packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/expected.js index 4851fe7dfc..b7f307cb75 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.object-spread/expression/expected.js @@ -1,3 +1,3 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; -_extends({ x: x }, y, { a: a }, b, { c: c }); +_extends({ x }, y, { a }, b, { c }); diff --git a/packages/babel-core/test/fixtures/transformation/es7.object-spread/options.json b/packages/babel-core/test/fixtures/transformation/es7.object-spread/options.json new file mode 100644 index 0000000000..85af630bdd --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es7.object-spread/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-object-rest-spread"] +} diff --git a/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js index cf585a0a16..5b8bd230b7 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js +++ b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/arrow-function/expected.js @@ -1 +1 @@ -(function (x, y) {}); +(x, y) => {}; diff --git a/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/options.json b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/options.json index 43dbbaddde..db2590b82a 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/options.json +++ b/packages/babel-core/test/fixtures/transformation/es7.trailing-function-commas/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-trailing-function-commas"] + "plugins": ["syntax-trailing-function-commas"] } diff --git a/packages/babel-core/test/fixtures/transformation/flow/options.json b/packages/babel-core/test/fixtures/transformation/flow/options.json new file mode 100644 index 0000000000..445f44effc --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/flow/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-flow-strip-types", "syntax-async-functions"] +} diff --git a/packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/expected.js b/packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/expected.js index 6a52c762fc..62bf507aae 100644 --- a/packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/expected.js +++ b/packages/babel-core/test/fixtures/transformation/flow/strip-type-annotations/expected.js @@ -1,5 +1,3 @@ -import type from "foo"; -import type2, { foo3 } from "bar"; function foo(numVal) {} function foo(numVal) {} function foo(numVal, strVal) {} @@ -89,3 +87,6 @@ var a; var a; var identity; var identity; + +import type from "foo"; +import type2, { foo3 } from "bar"; diff --git a/packages/babel-core/test/fixtures/transformation/jscript/options.json b/packages/babel-core/test/fixtures/transformation/jscript/options.json index 0c7fdca5db..8f02d5f9f9 100644 --- a/packages/babel-core/test/fixtures/transformation/jscript/options.json +++ b/packages/babel-core/test/fixtures/transformation/jscript/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-jscript"] + "plugins": ["external-helpers", "transform-es2015-block-scoping", "transform-es2015-classes", "transform-jscript"] } diff --git a/packages/babel-core/test/fixtures/transformation/jscript/simple-class/options.json b/packages/babel-core/test/fixtures/transformation/jscript/simple-class/options.json deleted file mode 100644 index 019532b4f9..0000000000 --- a/packages/babel-core/test/fixtures/transformation/jscript/simple-class/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["external-helpers"] -} diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js deleted file mode 100644 index 9a47e69365..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -for (var key in foo) { - break; - foo(); -} - -function bar() { - yes(); - bar(); - return "wow"; - nomore(); -} - -bar(); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js deleted file mode 100644 index 2e07e00fe7..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/completion-statements/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -for (var key in foo) { - break; -} - -function bar() { - yes(); - bar(); - return "wow"; -} - -bar(); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js deleted file mode 100644 index fbb2e76a40..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -class A { - constructor() { this.value = 12345; } -} - -export default new A(); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js deleted file mode 100644 index 7a05c7e901..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/exec.js +++ /dev/null @@ -1,3 +0,0 @@ -import aInstance from './imported'; - -assert.equal(aInstance.value, 12345); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js deleted file mode 100644 index b98c313051..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/expected.js +++ /dev/null @@ -1,9 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports["default"] = new function A() { - babelHelpers.classCallCheck(this, A); - this.value = 12345; -}(); -module.exports = exports["default"]; - diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js deleted file mode 100644 index a26cd32237..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1408/imported.js +++ /dev/null @@ -1,4 +0,0 @@ -class A { - constructor() { this.value = 12345; } -} -export default new A(); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js deleted file mode 100644 index 73517de562..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -class A { - f() { return 1235; } -} - -let a = new A(); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js deleted file mode 100644 index e056f09112..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/exec.js +++ /dev/null @@ -1,5 +0,0 @@ -class A { - k() { return 12345; } -} - -assert.equal((new A()).k(), 12345); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js deleted file mode 100644 index 9c82b8eae8..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1409/expected.js +++ /dev/null @@ -1,13 +0,0 @@ -var a = new ((function () { - function A() { - babelHelpers.classCallCheck(this, A); - } - - babelHelpers.createClass(A, [{ - key: "f", - value: function f() { - return 1235; - } - }]); - return A; -})())(); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js deleted file mode 100644 index e822acb53a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/actual.js +++ /dev/null @@ -1 +0,0 @@ -import x from 'y'; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js deleted file mode 100644 index 4084f8b09d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1520/expected.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -var _y = require('y'); - -var _y2 = babelHelpers.interopRequireDefault(_y); - diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js deleted file mode 100644 index 7d956cc75f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -import x from 'y'; - -x.foo = function (err) {}; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js deleted file mode 100644 index 95af2bcca8..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/exec.js +++ /dev/null @@ -1,5 +0,0 @@ -import x from 'y'; - -x.z = function (a) { return 1 + a; }; - -assert(x.z(x.value), 43); diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js deleted file mode 100644 index b18afb0a1c..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/expected.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var _y = require('y'); - -var _y2 = babelHelpers.interopRequireDefault(_y); - -_y2['default'].foo = function (err) {}; - diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js deleted file mode 100644 index 4f845d4abd..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1522/y.js +++ /dev/null @@ -1,2 +0,0 @@ -let y = { value: 42 }; -export default y; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js deleted file mode 100644 index ea435467bc..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -function f(a) { - return !a; -} - -export { f }; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js deleted file mode 100644 index 0f1e0eca71..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1523/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); - -exports.f = function f(a) { - return !a; -}; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js deleted file mode 100644 index 4b383f4a88..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/actual.js +++ /dev/null @@ -1,13 +0,0 @@ -function* x() { - for (let a of []) { - for (let b of a) { - yield 1; - } - } -} - -function y() { - return [...x()]; -} - -export { y }; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js deleted file mode 100644 index c8f6caca10..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1524/expected.js +++ /dev/null @@ -1,38 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); -function* x() { - var _arr = []; - - for (var _i = 0; _i < _arr.length; _i++) { - var a = _arr[_i];var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = a[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var b = _step.value; - - yield 1; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - } -} - -exports.y = function y() { - return [].concat(babelHelpers.toConsumableArray(x())); -}; - diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js deleted file mode 100644 index c9b8f7c317..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/actual.js +++ /dev/null @@ -1,7 +0,0 @@ -class X { - Y() { - return new X(); - } -} - -export { X }; diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js deleted file mode 100644 index 1c0b12e5f2..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/issue-1546/expected.js +++ /dev/null @@ -1,20 +0,0 @@ -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var X = (function () { - function X() { - babelHelpers.classCallCheck(this, X); - } - - babelHelpers.createClass(X, [{ - key: "Y", - value: function Y() { - return new X(); - } - }]); - return X; -})(); - -exports.X = X; - diff --git a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/options.json b/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/options.json deleted file mode 100644 index a6d8f9c810..0000000000 --- a/packages/babel-core/test/fixtures/transformation/minification.dead-code-elimination/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["external-helpers", "transform-dead-code-elimination"] -} diff --git a/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js b/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js index 8be9950ce5..2a6c93164c 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js +++ b/packages/babel-core/test/fixtures/transformation/misc/enforce-newline-modules-blacklist/expected.js @@ -1,6 +1,3 @@ -export { foo }; -export { bar }; +export function foo() {} -function foo() {} - -function bar() {} +export function bar() {} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1130/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1130/options.json new file mode 100644 index 0000000000..014f199cef --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1130/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/expected.js index 5d5654c193..52cba9f323 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/expected.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/expected.js @@ -8,7 +8,7 @@ var Foo = (function (_Bar) { parentOptions.init = function () { this; }; - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).call(this, parentOptions); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Foo).call(this, parentOptions)); } return Foo; diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json new file mode 100644 index 0000000000..a80812953e --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-classes", "external-helpers", "transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json new file mode 100644 index 0000000000..bf2c8e1456 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1168/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["syntax-flow", "transform-flow-strip-types", "transform-es2015-parameters", "transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1169/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/expected.js index d0e160e237..52350f484a 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1169/expected.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/expected.js @@ -1,5 +1,3 @@ -'use strict'; - function foo() { var input = ['a', 'b', 'c']; var output = {}; @@ -12,16 +10,16 @@ function foo() { for (var _iterator = input[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var c = _step.value; - var _name = c; - output[_name] = _name; + var name = c; + output[name] = name; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator['return']) { - _iterator['return'](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1169/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/options.json new file mode 100644 index 0000000000..f3f0e39508 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1169/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-block-scoping", "transform-es2015-for-of"] +} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1199/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1199/expected.js index 095bcf9a2c..7d278a3a8c 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1199/expected.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1199/expected.js @@ -1,4 +1,4 @@ -var bug = 1; +const bug = 1; function foo() {} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1489/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1489/actual.js deleted file mode 100644 index 9fa4842a8e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1489/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -import toString from "foo"; -toString; diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1489/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1489/expected.js deleted file mode 100644 index 695d6fd8bb..0000000000 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1489/expected.js +++ /dev/null @@ -1,11 +0,0 @@ -System.register(["foo"], function (_export) { - var toString; - return { - setters: [function (_foo) { - toString = _foo["default"]; - }], - execute: function () { - toString; - } - }; -}); diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1489/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1489/options.json deleted file mode 100644 index ee42d8e1c8..0000000000 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1489/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": "system" -} diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js b/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js deleted file mode 100644 index 9fa4842a8e..0000000000 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -import toString from "foo"; -toString; diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js b/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js deleted file mode 100644 index 2c83e5660f..0000000000 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-lodash-tostring-import/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -var _foo = require("foo"); - -var _foo2 = babelHelpers.interopRequireDefault(_foo); - -_foo2["default"]; diff --git a/packages/babel-core/test/fixtures/transformation/misc/shebang/expected.js b/packages/babel-core/test/fixtures/transformation/misc/shebang/expected.js index ef3bea62ac..bbfcec5998 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/shebang/expected.js +++ b/packages/babel-core/test/fixtures/transformation/misc/shebang/expected.js @@ -1,2 +1,3 @@ #!/usr/bin/env node + foobar(); diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/options.json deleted file mode 100644 index 4609d2a157..0000000000 --- a/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/options.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "modules": "system", - "optional": ["optimisation.modules.system"] -} diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/actual.js b/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/actual.js deleted file mode 100644 index 9dcc9094ea..0000000000 --- a/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/actual.js +++ /dev/null @@ -1,8 +0,0 @@ -export * from "foo"; -export {foo} from "foo"; -export {foo, bar} from "foo"; -export {foo as bar} from "bar"; -export {foo as default} from "bar"; -export {foo as default, bar} from "bar"; - -export var foo, bar; diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/expected.js deleted file mode 100644 index 925b06f414..0000000000 --- a/packages/babel-core/test/fixtures/transformation/optimisation.modules.system/setters/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -System.register(["foo", "bar"], function (_export) { - var foo, bar; - return { - setters: [function (_foo) { - var _exportObj = {}; - - for (var _key in _foo) { - if (_key !== "default") _exportObj[_key] = _foo[_key]; - } - - _exportObj["foo"] = _foo.foo; - _exportObj["foo"] = _foo.foo; - _exportObj["bar"] = _foo.bar; - - _export(_exportObj); - }, function (_bar) { - var _exportObj2 = {}; - _exportObj2["bar"] = _bar.foo; - _exportObj2["default"] = _bar.foo; - _exportObj2["default"] = _bar.foo; - _exportObj2["bar"] = _bar.bar; - - _export(_exportObj2); - }], - execute: function () { - _export("foo", foo); - - _export("bar", bar); - } - }; -}); diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js index 305d415c2c..3b37338633 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/expected.js @@ -1,8 +1,12 @@ +var _typeofReactElement = typeof Symbol === "function" && Symbol.for && Symbol.for("react.element") || 0xeac7; + var _ref = { + $$typeof: _typeofReactElement, type: "foo", + key: null, ref: null, props: {}, - key: null + _owner: null }; function render() { return _ref; @@ -11,12 +15,14 @@ function render() { function render() { var text = getText(); var _ref2 = { + $$typeof: _typeofReactElement, type: "foo", + key: null, ref: null, props: { children: text }, - key: null + _owner: null }; return function () { return _ref2; diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json index 70bf9c0276..533a4539e5 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.constant-elements/inline-elements/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-react-constant-elements", "transform-react-inline-elements"] + "plugins": ["transform-react-constant-elements", "transform-react-inline-elements", "syntax-jsx"] } diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js index 172f34cb43..83084ab60d 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component-with-props/expected.js @@ -1,8 +1,10 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Baz, + key: null, ref: null, props: babelHelpers.defaultProps(Baz.defaultProps, { foo: "bar" }), - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js index d88aac9167..ecdf28d80c 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/component/expected.js @@ -1,6 +1,8 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Baz, + key: null, ref: null, props: babelHelpers.defaultProps(Baz.defaultProps, {}), - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js index c46eda8cea..ebca291106 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element-with-props/expected.js @@ -1,8 +1,10 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: "foo", + key: null, ref: null, props: { bar: "foo" }, - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js index c629f1d832..ddeb8c32e4 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/html-element/expected.js @@ -1,6 +1,8 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: "foo", + key: null, ref: null, props: {}, - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js index c594684752..bd4e4b0ae2 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/key/expected.js @@ -1,6 +1,8 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Foo, + key: "foo", ref: null, props: babelHelpers.defaultProps(Foo.defaultProps, {}), - key: "foo" -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js index c3c428db2b..ad2ed9f4e5 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-components/expected.js @@ -1,14 +1,18 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Foo, + key: null, ref: null, props: babelHelpers.defaultProps(Foo.defaultProps, { children: [bar, { + $$typeof: babelHelpers.typeofReactElement, type: Baz, + key: "baz", ref: null, props: babelHelpers.defaultProps(Baz.defaultProps, {}), - key: "baz" + _owner: null }], className: "foo" }), - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js index 57ff15a14f..729c3ca5d3 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested-html-elements/expected.js @@ -1,9 +1,11 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: "div", + key: null, ref: null, props: { children: bar, className: "foo" }, - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js index f404194711..c95b63f592 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/nested/expected.js @@ -1,14 +1,18 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: "div", + key: null, ref: null, props: { children: [bar, { + $$typeof: babelHelpers.typeofReactElement, type: Baz, + key: "baz", ref: null, props: babelHelpers.defaultProps(Baz.defaultProps, {}), - key: "baz" + _owner: null }], className: "foo" }, - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js index 172f34cb43..83084ab60d 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component-with-props/expected.js @@ -1,8 +1,10 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Baz, + key: null, ref: null, props: babelHelpers.defaultProps(Baz.defaultProps, { foo: "bar" }), - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js index d88aac9167..ecdf28d80c 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-component/expected.js @@ -1,6 +1,8 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Baz, + key: null, ref: null, props: babelHelpers.defaultProps(Baz.defaultProps, {}), - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js index c46eda8cea..ebca291106 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element-with-props/expected.js @@ -1,8 +1,10 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: "foo", + key: null, ref: null, props: { bar: "foo" }, - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js index c629f1d832..ddeb8c32e4 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/self-closing-html-element/expected.js @@ -1,6 +1,8 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: "foo", + key: null, ref: null, props: {}, - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js index e756d2370f..ce4365ed6d 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/shorthand-attributes/expected.js @@ -1,8 +1,10 @@ ({ + $$typeof: babelHelpers.typeofReactElement, type: Foo, + key: null, ref: null, props: babelHelpers.defaultProps(Foo.defaultProps, { bar: true }), - key: null -}); + _owner: null +}); \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js b/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/actual.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/actual.js rename to packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/actual.js diff --git a/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js b/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/expected.js similarity index 100% rename from packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/expected.js rename to packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/expected.js diff --git a/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json b/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json new file mode 100644 index 0000000000..df22ce44b7 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-react-constant-elements", "transform-es2015-classes", "syntax-jsx"] +} diff --git a/packages/babel-core/test/fixtures/transformation/react/arrow-functions/expected.js b/packages/babel-core/test/fixtures/transformation/react/arrow-functions/expected.js index eca0547917..dc9fe71161 100644 --- a/packages/babel-core/test/fixtures/transformation/react/arrow-functions/expected.js +++ b/packages/babel-core/test/fixtures/transformation/react/arrow-functions/expected.js @@ -1,4 +1,4 @@ -var foo = function foo() { +var foo = function () { var _this = this; return function () { @@ -6,10 +6,10 @@ var foo = function foo() { }; }; -var bar = function bar() { +var bar = function () { var _this2 = this; return function () { return React.createElement(_this2.foo, null); }; -}; \ No newline at end of file +}; diff --git a/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json index f06ff74164..f668e3e74e 100644 --- a/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json +++ b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-comment-if-jsx-pragma-option-set/options.json @@ -1,3 +1,3 @@ { - "jsxPragma": "foo.bar" + "plugins": [["transform-react-jsx", "foo.bar"]] } diff --git a/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json index 223d2362fc..2aae85c034 100644 --- a/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json +++ b/packages/babel-core/test/fixtures/transformation/react/honor-custom-jsx-pragma-option/options.json @@ -1,3 +1,3 @@ { - "jsxPragma": "dom" + "plugins": [["transform-react-jsx", { "pragma": "dom" }]] } diff --git a/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json b/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json deleted file mode 100644 index a152fb584d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/react/optimisation.react.constant-elements/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["transform-react-constant-lements"] -} diff --git a/packages/babel-core/test/fixtures/transformation/react/options.json b/packages/babel-core/test/fixtures/transformation/react/options.json index b241ab3574..6063cc9468 100644 --- a/packages/babel-core/test/fixtures/transformation/react/options.json +++ b/packages/babel-core/test/fixtures/transformation/react/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "syntax-jsx", "transform-react-jsx", "transform-react-display-name"] + "plugins": ["external-helpers", "syntax-jsx", "transform-react-jsx", "transform-react-display-name", "transform-es2015-arrow-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/regenerator/options.json b/packages/babel-core/test/fixtures/transformation/regenerator/options.json new file mode 100644 index 0000000000..6e83ffcc45 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/regenerator/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-destructuring", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-regenerator"] +} diff --git a/packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/expected.js index 5504aca34c..af27e0f321 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/aliased-constructors/expected.js @@ -1,9 +1,6 @@ -var _Promise = require("babel-runtime/core-js/promise")["default"]; - -var _Symbol = require("babel-runtime/core-js/symbol")["default"]; - -var _Map = require("babel-runtime/core-js/map")["default"]; - +import _Map from "babel-runtime/core-js/map"; +import _Symbol from "babel-runtime/core-js/symbol"; +import _Promise from "babel-runtime/core-js/promise"; obj.constructor === Object; obj.constructor === _Promise; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/catch-all/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/catch-all/expected.js index 2d6f5c07d6..97b8bf8e3b 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/catch-all/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/catch-all/expected.js @@ -1,3 +1,2 @@ -var _Promise = require("babel-runtime/core-js/promise")["default"]; - +import _Promise from "babel-runtime/core-js/promise"; _Promise.resolve; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/expected.js index 439dc62190..6ad474d512 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/expected.js @@ -1,5 +1,4 @@ -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - +import _getIterator from "babel-runtime/core-js/get-iterator"; var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; @@ -13,8 +12,8 @@ try { _iteratorError = err; } finally { try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); } } finally { if (_didIteratorError) { diff --git a/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/options.json b/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/options.json new file mode 100644 index 0000000000..439eb3f913 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/runtime/es6-for-of/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-for-of", "transform-runtime"] +} diff --git a/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js deleted file mode 100644 index 9dda19048b..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/actual.js +++ /dev/null @@ -1 +0,0 @@ -var arr = [for (i of nums) i * i]; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js deleted file mode 100644 index f9e6def935..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/es7-array-comprehensions/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -var _getIterator = require("babel-runtime/core-js/get-iterator")["default"]; - -var arr = (function () { - var _arr = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = _getIterator(nums), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var i = _step.value; - - _arr.push(i * i); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"]) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return _arr; -})(); diff --git a/packages/babel-core/test/fixtures/transformation/runtime/full/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/full/actual.js index 9929f3e967..0340999129 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/full/actual.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/full/actual.js @@ -5,6 +5,5 @@ export function* giveWord () { yield myWord; } - foo; bar; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/full/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/full/expected.js index 26ff47d328..f6aaa4e30b 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/full/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/full/expected.js @@ -1,39 +1,24 @@ -var _regeneratorRuntime = require("babel-runtime/regenerator")["default"]; +import _regeneratorRuntime from "babel-runtime/regenerator"; +import _Symbol from "babel-runtime/core-js/symbol"; -var _Symbol = require("babel-runtime/core-js/symbol")["default"]; +var _marked = [giveWord].map(_regeneratorRuntime.mark); -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; +import foo, * as bar from "someModule"; -var _interopRequireWildcard = require("babel-runtime/helpers/interop-require-wildcard")["default"]; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.giveWord = giveWord; -var marked0$0 = [giveWord].map(_regeneratorRuntime.mark); - -var _someModule = require("someModule"); - -var _someModule2 = _interopRequireDefault(_someModule); - -var bar = _interopRequireWildcard(_someModule); - -var myWord = _Symbol("abc"); -exports.myWord = myWord; - -function giveWord() { - return _regeneratorRuntime.wrap(function giveWord$(context$1$0) { - while (1) switch (context$1$0.prev = context$1$0.next) { +export const myWord = _Symbol("abc"); +export function giveWord() { + return regeneratorRuntime.wrap(function giveWord$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: - context$1$0.next = 2; + _context.next = 2; return myWord; case 2: case "end": - return context$1$0.stop(); + return _context.stop(); } - }, marked0$0[0], this); + }, _marked[0], this); } -_someModule2["default"]; +foo; bar; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/actual.js deleted file mode 100644 index 8630daffa6..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/actual.js +++ /dev/null @@ -1,2 +0,0 @@ -import foo from "foo"; -foo; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/expected.js deleted file mode 100644 index 2562ab4e46..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/expected.js +++ /dev/null @@ -1,5 +0,0 @@ -define(["exports", "foo", "babel-runtime/helpers/interop-require-default"], function (exports, _foo, _babelRuntimeHelpersInteropRequireDefault) { - var _foo2 = (0, _babelRuntimeHelpersInteropRequireDefault["default"])(_foo); - - _foo2["default"]; -}); diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/options.json b/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/options.json deleted file mode 100644 index b76b119f33..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-amd/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": "amd" -} diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-common/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-common/actual.js deleted file mode 100644 index 44567cb185..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-common/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -import foo from "foo"; - -foo; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-common/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-common/expected.js deleted file mode 100644 index 3fb442c27b..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-common/expected.js +++ /dev/null @@ -1,7 +0,0 @@ -var _interopRequireDefault = require("babel-runtime/helpers/interop-require-default")["default"]; - -var _foo = require("foo"); - -var _foo2 = _interopRequireDefault(_foo); - -_foo2["default"]; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-system/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-system/actual.js deleted file mode 100644 index 34353bc650..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-system/actual.js +++ /dev/null @@ -1,5 +0,0 @@ -foo(...bar); - -export function* generator() { - yield 1; -} diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-system/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-system/expected.js deleted file mode 100644 index 72abbffce3..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-system/expected.js +++ /dev/null @@ -1,31 +0,0 @@ -System.register(["babel-runtime/helpers/to-consumable-array", "babel-runtime/regenerator"], function (_export) { - var _toConsumableArray, _regeneratorRuntime, marked0$0; - - function generator() { - return _regeneratorRuntime.wrap(function generator$(context$1$0) { - while (1) switch (context$1$0.prev = context$1$0.next) { - case 0: - context$1$0.next = 2; - return 1; - - case 2: - case "end": - return context$1$0.stop(); - } - }, marked0$0[0], this); - } - - return { - setters: [function (_babelRuntimeHelpersToConsumableArray) { - _toConsumableArray = _babelRuntimeHelpersToConsumableArray["default"]; - }, function (_babelRuntimeRegenerator) { - _regeneratorRuntime = _babelRuntimeRegenerator["default"]; - }], - execute: function () { - _export("generator", generator); - - marked0$0 = [generator].map(_regeneratorRuntime.mark); - foo.apply(undefined, _toConsumableArray(bar)); - } - }; -}); diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-system/options.json b/packages/babel-core/test/fixtures/transformation/runtime/modules-system/options.json deleted file mode 100644 index ee42d8e1c8..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-system/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": "system" -} diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/actual.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/actual.js deleted file mode 100644 index 8d1420050a..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/actual.js +++ /dev/null @@ -1 +0,0 @@ -import foo from "foo"; diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/expected.js deleted file mode 100644 index ec9eb3d64d..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/expected.js +++ /dev/null @@ -1,15 +0,0 @@ -(function (global, factory) { - if (typeof define === "function" && define.amd) { - define(["exports", "foo", "babel-runtime/helpers/interop-require-default"], factory); - } else if (typeof exports !== "undefined") { - factory(exports, require("foo"), require("babel-runtime/helpers/interop-require-default")); - } else { - var mod = { - exports: {} - }; - factory(mod.exports, global.foo, global._interopRequireDefault); - global.actual = mod.exports; - } -})(this, function (exports, _foo, _babelRuntimeHelpersInteropRequireDefault) { - var _foo2 = (0, _babelRuntimeHelpersInteropRequireDefault["default"])(_foo); -}); diff --git a/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/options.json b/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/options.json deleted file mode 100644 index 1683480119..0000000000 --- a/packages/babel-core/test/fixtures/transformation/runtime/modules-umd/options.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "modules": "umd" -} diff --git a/packages/babel-core/test/fixtures/transformation/runtime/options.json b/packages/babel-core/test/fixtures/transformation/runtime/options.json index a813a0a347..b987a67bba 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/options.json +++ b/packages/babel-core/test/fixtures/transformation/runtime/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-runtime"] + "plugins": ["transform-runtime", "transform-regenerator"] } diff --git a/packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/expected.js index ccabc7aaf6..3ba21d10de 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/regenerator-runtime/expected.js @@ -1,11 +1,10 @@ -var _regeneratorRuntime = require("babel-runtime/regenerator")["default"]; - -void _regeneratorRuntime.mark(function callee$0$0() { - return _regeneratorRuntime.wrap(function callee$0$0$(context$1$0) { - while (1) switch (context$1$0.prev = context$1$0.next) { +import _regeneratorRuntime from "babel-runtime/regenerator"; +void _regeneratorRuntime.mark(function _callee() { + return _regeneratorRuntime.wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { case 0: case "end": - return context$1$0.stop(); + return _context.stop(); } - }, callee$0$0, this); + }, _callee, this); }); diff --git a/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js index bbf2f2f0d1..3468aae656 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator-in/expected.js @@ -1,3 +1,2 @@ -var _isIterable = require("babel-runtime/core-js/is-iterable")["default"]; - +import _isIterable from "babel-runtime/core-js/is-iterable"; _isIterable(Object(arr)); diff --git a/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/expected.js b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/expected.js index c5a7e133dd..5b72708826 100644 --- a/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/expected.js +++ b/packages/babel-core/test/fixtures/transformation/runtime/symbol-iterator/expected.js @@ -1,3 +1,2 @@ -var _Symbol$iterator = require("babel-runtime/core-js/symbol/iterator")["default"]; - +import _Symbol$iterator from "babel-runtime/core-js/symbol/iterator"; _Symbol$iterator; diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json new file mode 100644 index 0000000000..d594536c39 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-arrow-functions", "transform-es2015-function-name"] +} diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json index c68273d12c..a1d1d31e4a 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/arrow-function/source-mappings.json @@ -4,7 +4,7 @@ "column": 14 }, "generated": { - "line": 4, + "line": 2, "column": 10 } }] diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/expected.js b/packages/babel-core/test/fixtures/transformation/source-maps/class/expected.js index 1feba14c2f..2a5d6b6276 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/expected.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/expected.js @@ -5,7 +5,7 @@ var Test = (function () { babelHelpers.createClass(Test, [{ key: "bar", - get: function get() { + get: function () { throw new Error("wow"); } }]); diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json new file mode 100644 index 0000000000..53a40720bc --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-classes", "transform-es2015-block-scoping"] +} diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json index 5d8c4d8816..16239daa2c 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/source-mappings.json @@ -4,7 +4,7 @@ "column": 10 }, "generated": { - "line": 11, + "line": 9, "column": 15 } }] diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/full/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/full/options.json new file mode 100644 index 0000000000..fc3d742263 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/source-maps/full/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-es2015-arrow-functions"] +} diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json b/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json index 81d70ba9d8..b2b351d8bb 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/full/source-map.json @@ -3,6 +3,6 @@ "file": "source-maps/full/expected.js", "sources": ["source-maps/full/actual.js"], "names": [], - "mappings": ";;AAAA,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC;SAAI,CAAC,GAAG,CAAC;CAAA,CAAC,CAAC", + "mappings": "AAAA,GAAG,CAAC,GAAG,CAAC,UAAA,CAAC;SAAI,CAAC,GAAG,CAAC;CAAA,CAAC,CAAC", "sourcesContent": ["arr.map(x => x * x);"] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/inline/expected.js b/packages/babel-core/test/fixtures/transformation/source-maps/inline/expected.js index 428d65efea..f93d2fbb34 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/inline/expected.js +++ b/packages/babel-core/test/fixtures/transformation/source-maps/inline/expected.js @@ -1,4 +1,4 @@ arr.map(function (x) { return x * x; }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXBzL2lubGluZS9hY3R1YWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQUEsQ0FBQztTQUFJLENBQUMsR0FBRyxDQUFDO0NBQUEsQ0FBQyxDQUFDIiwiZmlsZSI6InNvdXJjZS1tYXBzL2lubGluZS9leHBlY3RlZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImFyci5tYXAoeCA9PiB4ICogeCk7Il19 +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXBzL2lubGluZS9hY3R1YWwuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUM7U0FBSSxDQUFDLEdBQUcsQ0FBQztDQUFBLENBQUMsQ0FBQyIsImZpbGUiOiJzb3VyY2UtbWFwcy9pbmxpbmUvZXhwZWN0ZWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJhcnIubWFwKHggPT4geCAqIHgpOyJdfQ== diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/inline/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/inline/options.json index 5907a8b5cc..3113ddc9e9 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/inline/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/inline/options.json @@ -1,3 +1,4 @@ { + "plugins": ["transform-es2015-arrow-functions"], "sourceMap": "inline" } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/exec.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/.smoke/exec.js similarity index 88% rename from packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/exec.js rename to packages/babel-core/test/fixtures/transformation/spec.function-name/.smoke/exec.js index 593aef207e..179d59d7e5 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/exec.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/.smoke/exec.js @@ -19,5 +19,5 @@ var obj = { @noop foo() {} }; assert.equal(obj.foo.name, "foo"); -var obj = { @noop foo: function () {} }; +var obj = { @noop foo: function () { return "foo"; } }; assert.equal(obj.foo.name, "foo"); diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/.smoke/options.json similarity index 100% rename from packages/babel-core/test/fixtures/transformation/spec.function-name/smoke/options.json rename to packages/babel-core/test/fixtures/transformation/spec.function-name/.smoke/options.json diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/expected.js index 54facec2e2..f4919f370a 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/assignment/expected.js @@ -3,10 +3,7 @@ var _i = function i() { }; var _j = function j() { - var _ = 5; - _j = _.j; - var _2 = 5; - _j = _2.y; - + ({ j: _j } = 5); + ({ y: _j } = 5); ; }; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/expected.js index d0975aa817..b437bcd715 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/class-method/expected.js @@ -1,4 +1,4 @@ -var Foo = (function () { +let Foo = (function () { function Foo() { babelHelpers.classCallCheck(this, Foo); } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/expected.js index 0e816c3c56..5fbe7cfa81 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/collisions/expected.js @@ -1,13 +1,9 @@ var obj = { - search: function search(_ref) { - var _search = _ref.search; - + search: function search({ search: _search }) { console.log(_search); } }; -function search(_ref2) { - var search = _ref2.search; - +function search({ search }) { console.log(search); } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/eval/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/eval/actual.js index 81c171ff4b..0a00dbf31d 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/eval/actual.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/eval/actual.js @@ -1,5 +1,5 @@ var a = { - eval(){ + eval: function () { return eval; } }; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/export/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/actual.js index cfc8bd19d4..e1a034b8e1 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/export/actual.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/actual.js @@ -1,7 +1,19 @@ -export var foo = "yes"; +export var foo = "yes", foob = "no"; + +export function whatever() {} + +export default function wowzers() {} var bar = { foo: function () { foo; + }, + + whatever: function () { + whatever; + }, + + wowzers: function () { + wowzers; } }; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/export/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/expected.js index fce5e95164..0d53fa7d4c 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/export/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/export/expected.js @@ -1,8 +1,23 @@ -var _foo = "yes"; +export { _whatever as whatever }; +export { _wowzers as default }; +var _foo = "yes", + foob = "no"; + +export { _foo as foo, foob }; +function _whatever() {} + +function _wowzers() {} -export { _foo as foo }; var bar = { foo: function foo() { _foo; + }, + + whatever: function whatever() { + _whatever; + }, + + wowzers: function wowzers() { + _wowzers; } }; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/actual.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/actual.js new file mode 100644 index 0000000000..7f00f96e17 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/actual.js @@ -0,0 +1,19 @@ +function f() { + f; +} + +{ + let obj = { + f: function () { + f; + } + }; +} + +(function b() { + var obj = { + b: function () { + b; + } + }; +}); diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/expected.js new file mode 100644 index 0000000000..974eed70f6 --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/function-collision/expected.js @@ -0,0 +1,19 @@ +function _f() { + _f; +} + +{ + let obj = { + f: function f() { + _f; + } + }; +} + +(function _b() { + var obj = { + b: function b() { + _b; + } + }; +}); diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/expected.js index de9fcf4b71..cbb70ef1c4 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/expected.js @@ -2,11 +2,11 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _lodashArrayLast = require("lodash/array/last"); +var _last2 = require("lodash/array/last"); -var _lodashArrayLast2 = babelHelpers.interopRequireDefault(_lodashArrayLast); +var _last3 = babelHelpers.interopRequireDefault(_last2); -var Container = (function () { +let Container = (function () { function Container() { babelHelpers.classCallCheck(this, Container); } @@ -18,11 +18,10 @@ var Container = (function () { return; } - return (0, _lodashArrayLast2["default"])(this.tokens.get(key)); + return (0, _last3.default)(this.tokens.get(key)); } }]); return Container; })(); -exports["default"] = Container; -module.exports = exports["default"]; +exports.default = Container; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json new file mode 100644 index 0000000000..ae79e8a72f --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-decorators", "transform-es2015-modules-commonjs"] +} diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/expected.js index e28e0d7450..75097d561c 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/expected.js @@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", { var _store = require("./store"); -var Login = (function (_React$Component) { +let Login = (function (_React$Component) { babelHelpers.inherits(Login, _React$Component); function Login() { babelHelpers.classCallCheck(this, Login); - babelHelpers.get(Object.getPrototypeOf(Login.prototype), "constructor", this).apply(this, arguments); + return babelHelpers.possibleConstructorReturn(this, Object.getPrototypeOf(Login).apply(this, arguments)); } babelHelpers.createClass(Login, [{ @@ -21,5 +21,4 @@ var Login = (function (_React$Component) { return Login; })(React.Component); -exports["default"] = Login; -module.exports = exports["default"]; +exports.default = Login; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json new file mode 100644 index 0000000000..3eb095ef7c --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-modules-commonjs", "transform-es2015-classes", "transform-decorators"] +} diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/expected.js index 5eac050fff..82cdf7a485 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/expected.js @@ -2,7 +2,7 @@ var _events2 = require("events"); var _events3 = babelHelpers.interopRequireDefault(_events2); -var Template = (function () { +let Template = (function () { function Template() { babelHelpers.classCallCheck(this, Template); } @@ -10,7 +10,7 @@ var Template = (function () { babelHelpers.createClass(Template, [{ key: "events", value: function events() { - return _events3["default"]; + return _events3.default; } }]); return Template; diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json new file mode 100644 index 0000000000..3eb095ef7c --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-modules-commonjs", "transform-es2015-classes", "transform-decorators"] +} diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json index 019532b4f9..bd531041dc 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-decorators"] } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js b/packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js index deba662519..3ef494a094 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/shorthand-property/expected.js @@ -2,7 +2,7 @@ var Utils = { get: function get() {} }; -var _get = Utils.get; +var { get: _get } = Utils; var bar = { get: function get(arg) { @@ -10,11 +10,7 @@ var bar = { } }; -var f = function f(_ref) { - var _ref$foo = _ref.foo; - - var _foo = _ref$foo === undefined ? "bar" : _ref$foo; - +var f = function f({ foo: _foo = "bar" }) { var obj = { // same name as parameter foo: function foo() { diff --git a/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/actual.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/actual.js deleted file mode 100644 index 9b78abd703..0000000000 --- a/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/actual.js +++ /dev/null @@ -1,3 +0,0 @@ -class Foo extends Bar { - -} diff --git a/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/expected.js b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/expected.js deleted file mode 100644 index cd76510ab1..0000000000 --- a/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/class/expected.js +++ /dev/null @@ -1,10 +0,0 @@ -var Foo = (function (_Bar) { - babelHelpers.inherits(Foo, _Bar); - - function Foo() { - babelHelpers.classCallCheck(this, Foo); - babelHelpers.get(Object.getPrototypeOf(Foo.prototype), "constructor", this).apply(this, arguments); - } - - return Foo; -})(Bar); diff --git a/packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js b/packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js index 22c2f1d2ff..b7b3a6dec2 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/leading-comments-with-existing/expected.js @@ -1,2 +1,4 @@ +"use strict"; + // comments module.exports = {}; diff --git a/packages/babel-core/test/fixtures/transformation/strict/leading-comments/expected.js b/packages/babel-core/test/fixtures/transformation/strict/leading-comments/expected.js index 51a1ff892d..569e4c24fc 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/leading-comments/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/leading-comments/expected.js @@ -1,3 +1,5 @@ +"use strict"; + // comments module.exports = {}; diff --git a/packages/babel-core/test/fixtures/transformation/strict/options.json b/packages/babel-core/test/fixtures/transformation/strict/options.json new file mode 100644 index 0000000000..51bfaafbee --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/strict/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["transform-strict-mode", "transform-es2015-modules-commonjs"] +} diff --git a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js index 44969b368a..10d0543e43 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-arrow-function/expected.js @@ -1,3 +1,3 @@ -var foo = function foo() { - return undefined; -}; +"use strict"; + +var foo = () => undefined; diff --git a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/expected.js index df77c0a95d..d6cbc49983 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-call/expected.js @@ -1 +1,3 @@ +"use strict"; + undefined.foo(); diff --git a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js index 378357c3bf..1d38c9f2b9 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-declaration/expected.js @@ -1 +1,3 @@ +"use strict"; + var self = undefined; diff --git a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js index c2ca02c0e2..ca6800354f 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/undefined-this-root-reference/expected.js @@ -1 +1,3 @@ +"use strict"; + undefined; diff --git a/packages/babel-core/test/fixtures/transformation/strict/use-strict-add/expected.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-add/expected.js index a280f9a5cc..78e7c81229 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/use-strict-add/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/use-strict-add/expected.js @@ -1 +1,3 @@ +"use strict"; + foo(); diff --git a/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/actual.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/actual.js index a280f9a5cc..efbccabf76 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/actual.js +++ b/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/actual.js @@ -1 +1,2 @@ +"use strict"; foo(); diff --git a/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/expected.js b/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/expected.js index a280f9a5cc..78e7c81229 100644 --- a/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/expected.js +++ b/packages/babel-core/test/fixtures/transformation/strict/use-strict-exists/expected.js @@ -1 +1,3 @@ +"use strict"; + foo(); diff --git a/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/options.json b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/options.json index 23d07f9075..9aad0a18e2 100644 --- a/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/options.json +++ b/packages/babel-core/test/fixtures/transformation/validation.undeclared-variable-check/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-undeclared-variables-check"] + "plugins": ["undeclared-variables-check"] } diff --git a/packages/babel-core/test/generation.js b/packages/babel-core/test/generation.js deleted file mode 100644 index b0534ab7a1..0000000000 --- a/packages/babel-core/test/generation.js +++ /dev/null @@ -1,48 +0,0 @@ -var generate = require("babel-generator"); -var fixtures = require("mocha-fixtures"); -var assert = require("assert"); -var parse = require("../lib/helpers/parse"); -var chai = require("chai"); -var t = require("babel-types"); -var _ = require("lodash"); - -suite("generation", function () { - test("completeness", function () { - _.each(t.VISITOR_KEYS, function (keys, type) { - assert.ok(!!generate.CodeGenerator.prototype[type], type + " should exist"); - }); - - _.each(generate.CodeGenerator.prototype, function (fn, type) { - if (!/[A-Z]/.test(type[0])) return; - assert.ok(t.VISITOR_KEYS[type], type + " should not exist"); - }); - }); -}); - -_.each(require("./_transformation-helper").fixtures.generation, function (testSuite) { - suite("generation/" + testSuite.title, function () { - _.each(testSuite.tests, function (task) { - test(task.title, !task.disabled && function () { - var expect = task.expect; - var actual = task.actual; - - var actualAst = parse(actual.code, { - filename: actual.loc, - nonStandard: true, - strictMode: false, - sourceType: "module", - features: { - "es7.decorators": true, - "es7.comprehensions": true, - "es7.asyncFunctions": true, - "es7.exportExtensions": true, - "es7.functionBind": true - } - }); - - var actualCode = generate(actualAst, task.options, actual.code).code; - chai.expect(actualCode).to.equal(expect.code, actual.loc + " !== " + expect.loc); - }); - }); - }); -}); diff --git a/packages/babel-core/test/path.js b/packages/babel-core/test/path.js index e203c55c9d..0bff81c7bd 100644 --- a/packages/babel-core/test/path.js +++ b/packages/babel-core/test/path.js @@ -8,11 +8,10 @@ suite("traversal path", function () { var expectCode = "function foo() {}"; var actualCode = transform(expectCode, { - blacklist: "strict", - plugins: [new Plugin("foobar", { + plugins: [new Plugin({ visitor: { - FunctionDeclaration: function () { - this.replaceWithSourceString("console.whatever()"); + FunctionDeclaration: function (path) { + path.replaceWithSourceString("console.whatever()"); } } })] diff --git a/packages/babel-core/test/traceur.js b/packages/babel-core/test/traceur.js index d2e8fdf7d8..c3a2071df8 100644 --- a/packages/babel-core/test/traceur.js +++ b/packages/babel-core/test/traceur.js @@ -22,6 +22,11 @@ require("./_transformation-helper").run("traceur", { "Yield/ObjectModel", "Yield/ReturnGenerator", + // yield as an identifier + "Yield/YieldIdentifier", + "Syntax/StrictKeywords", + "Syntax/IsValidSimpleAssignmentTarget", + // TODO: core-js fails these "Collections/Map", "Collections/Set", @@ -74,7 +79,9 @@ require("./_transformation-helper").run("traceur", { }, { }, function (opts, task) { - if (!_.contains(task.exec.loc, "module.js")) { - opts.blacklist = ["strict"]; + if (_.contains(task.exec.loc, "module.js")) { + opts.plugins.push("transform-es2015-modules-commonjs"); + } else { + opts.sourceType = "script"; } }); diff --git a/packages/babel-core/test/types.js b/packages/babel-core/test/types.js deleted file mode 100644 index de6fd42499..0000000000 --- a/packages/babel-core/test/types.js +++ /dev/null @@ -1,3 +0,0 @@ -suite("types", function () { - -}); diff --git a/packages/babel-core/test/util.js b/packages/babel-core/test/util.js index 67a51b4d5d..729eb7361f 100644 --- a/packages/babel-core/test/util.js +++ b/packages/babel-core/test/util.js @@ -4,28 +4,6 @@ var parse = require("../lib/helpers/parse"); var t = require("babel-types"); suite("util", function () { - test("invalid template", function () { - assert.throws(function () { - util.template("invalid template"); - }, /unknown template/); - }); - - test("templates do not recurse", function () { - var key = __filename; - var KEY = parse("replacedKey").program.body[0].expression; - var VALUE = parse("+KEY").program.body[0].expression; - - util.templates[key] = util.parseTemplate(key, "KEY = VALUE;"); - var result = util.template(key, { KEY: KEY, VALUE: VALUE }); - delete util.templates[key]; - - assert.strictEqual( - result.right.argument.name, - "KEY", - "template should not recurse into replaced nodes, replacing KEY inside VALUE" - ); - }); - test("canCompile", function () { assert.ok(util.canCompile("test.js")); assert.ok(util.canCompile("/test.js")); @@ -103,7 +81,6 @@ suite("util", function () { }); test("toIdentifier", function () { - assert.equal(t.toIdentifier(t.identifier("swag")), "swag"); assert.equal(t.toIdentifier("swag-lord"), "swagLord"); }); diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json index fdafee3b9d..1b709802a6 100644 --- a/packages/babel-generator/package.json +++ b/packages/babel-generator/package.json @@ -1,6 +1,6 @@ { "name": "babel-generator", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,9 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-messages": "^5.8.22", - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.22", + "babel-messages": "^5.10.32", + "babel-runtime": "^5.10.32", + "babel-types": "^5.10.32", "detect-indent": "^3.0.1", "is-integer": "^1.0.4", "lodash": "^3.10.1", @@ -21,4 +21,4 @@ "devDependencies": { "babel-helper-fixtures": "^1.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-generator/src/buffer.js b/packages/babel-generator/src/buffer.js index 7d521f9ef1..a0a0a7b550 100644 --- a/packages/babel-generator/src/buffer.js +++ b/packages/babel-generator/src/buffer.js @@ -10,6 +10,7 @@ import trimRight from "trim-right"; export default class Buffer { constructor(position: Position, format: Object) { + this.printedCommentStarts = {}; this.parenPushNewlineState = null; this.position = position; this._indent = format.indent.base; @@ -102,6 +103,7 @@ export default class Buffer { rightBrace() { this.newline(true); + //if (this.format.compact) this._removeLast(";"); this.push("}"); } @@ -132,8 +134,11 @@ export default class Buffer { removeLast(cha: string) { if (this.format.compact) return; - if (!this.isLast(cha)) return; + return this._removeLast(cha); + } + _removeLast(cha: string) { + if (!this._isLast(cha)) return; this.buf = this.buf.substr(0, this.buf.length - 1); this.position.unshift(cha); } @@ -316,7 +321,10 @@ export default class Buffer { isLast(cha: string) { if (this.format.compact) return false; + return this._isLast(cha); + } + _isLast(cha: string) { let buf = this.buf; let last = buf[buf.length - 1]; diff --git a/packages/babel-generator/src/generators/base.js b/packages/babel-generator/src/generators/base.js index f1ee541a26..d9f9ea2664 100644 --- a/packages/babel-generator/src/generators/base.js +++ b/packages/babel-generator/src/generators/base.js @@ -6,7 +6,10 @@ export function File(node: Object) { export function Program(node: Object) { this.printInnerComments(node, false); + this.printSequence(node.directives, node); + if (node.directives && node.directives.length) this.newline(); + this.printSequence(node.body, node); } @@ -15,7 +18,10 @@ export function BlockStatement(node: Object) { this.printInnerComments(node); if (node.body.length) { this.newline(); + this.printSequence(node.directives, node, { indent: true }); + if (node.directives && node.directives.length) this.newline(); + this.printSequence(node.body, node, { indent: true }); if (!this.format.retainLines) this.removeLast("\n"); this.rightBrace(); diff --git a/packages/babel-generator/src/generators/classes.js b/packages/babel-generator/src/generators/classes.js index f692bc10a4..c1bb4cf0f3 100644 --- a/packages/babel-generator/src/generators/classes.js +++ b/packages/babel-generator/src/generators/classes.js @@ -59,12 +59,16 @@ export function ClassProperty(node: Object) { this.semicolon(); } -export function MethodDefinition(node: Object) { +export function ClassMethod(node: Object) { this.printJoin(node.decorators, node, { separator: "" }); if (node.static) { this.push("static "); } + if (node.kind === "constructorCall") { + this.push("call "); + } + this._method(node); } diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index ea51bacc65..b3c1052335 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -3,6 +3,7 @@ import isInteger from "is-integer"; import isNumber from "lodash/lang/isNumber"; import * as t from "babel-types"; +import n from "../node"; const SCIENTIFIC_NOTATION = /e/i; @@ -107,7 +108,7 @@ export function CallExpression(node: Object) { this.push(")"); } -function buildYieldAwait(keyword) { +function buildYieldAwait(keyword: string) { return function (node: Object) { this.push(keyword); @@ -142,7 +143,16 @@ export function AssignmentPattern(node: Object) { this.print(node.right, node); } -export function AssignmentExpression(node: Object) { +export function AssignmentExpression(node: Object, parent: Object) { + // Somewhere inside a for statement `init` node but doesn't usually + // needs a paren except for `in` expressions: `for (a in b ? a : b;;)` + let parens = this._inForStatementInit && node.operator === "in" && + !n.needsParens(node, parent); + + if (parens) { + this.push("("); + } + this.print(node.left, node); let spaces = !this.format.compact || node.operator === "in" || node.operator === "instanceof"; @@ -162,6 +172,10 @@ export function AssignmentExpression(node: Object) { if (spaces) this.push(" "); this.print(node.right, node); + + if (parens) { + this.push(")"); + } } export function BindExpression(node: Object) { @@ -193,7 +207,7 @@ export function MemberExpression(node: Object) { this.push("]"); } else { if (t.isLiteral(node.object)) { - let val = this._stringLiteral(node.object); + let val = this.getPossibleRaw(node.object) || this._stringLiteral(node.object); if (isInteger(+val) && !SCIENTIFIC_NOTATION.test(val) && !this.endsWith(".")) { this.push("."); } diff --git a/packages/babel-generator/src/generators/methods.js b/packages/babel-generator/src/generators/methods.js index a78d7ce927..cb5cf36e29 100644 --- a/packages/babel-generator/src/generators/methods.js +++ b/packages/babel-generator/src/generators/methods.js @@ -19,12 +19,11 @@ export function _params(node: Object) { } export function _method(node: Object) { - let value = node.value; - let kind = node.kind; - let key = node.key; + let kind = node.kind; + let key = node.key; if (kind === "method" || kind === "init") { - if (value.generator) { + if (node.generator) { this.push("*"); } } @@ -33,7 +32,7 @@ export function _method(node: Object) { this.push(kind + " "); } - if (value.async) this.push("async "); + if (node.async) this.push("async "); if (node.computed) { this.push("["); @@ -43,9 +42,9 @@ export function _method(node: Object) { this.print(key, node); } - this._params(value); + this._params(node); this.space(); - this.print(value.body, value); + this.print(node.body, node); } export function FunctionExpression(node: Object) { diff --git a/packages/babel-generator/src/generators/modules.js b/packages/babel-generator/src/generators/modules.js index 860b720c87..87aace643f 100644 --- a/packages/babel-generator/src/generators/modules.js +++ b/packages/babel-generator/src/generators/modules.js @@ -64,13 +64,18 @@ function ExportDeclaration(node: Object) { let specifiers = node.specifiers.slice(0); - let first = specifiers[0]; + // print "special" specifiers first let hasSpecial = false; - if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) { - hasSpecial = true; - this.print(specifiers.shift(), node); - if (specifiers.length) { - this.push(", "); + while (true) { + let first = specifiers[0]; + if (t.isExportDefaultSpecifier(first) || t.isExportNamespaceSpecifier(first)) { + hasSpecial = true; + this.print(specifiers.shift(), node); + if (specifiers.length) { + this.push(", "); + } + } else { + break; } } @@ -102,11 +107,16 @@ export function ImportDeclaration(node: Object) { let specifiers = node.specifiers.slice(0); if (specifiers && specifiers.length) { - let first = specifiers[0]; - if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) { - this.print(specifiers.shift(), node); - if (specifiers.length) { - this.push(", "); + // print "special" specifiers first + while (true) { + let first = specifiers[0]; + if (t.isImportDefaultSpecifier(first) || t.isImportNamespaceSpecifier(first)) { + this.print(specifiers.shift(), node); + if (specifiers.length) { + this.push(", "); + } + } else { + break; } } diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index 508a00ab59..1f1648b139 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -31,7 +31,9 @@ export function ForStatement(node: Object) { this.keyword("for"); this.push("("); + this._inForStatementInit = true; this.print(node.init, node); + this._inForStatementInit = false; this.push(";"); if (node.test) { diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index a4c6881e07..0c0a29c5ae 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -36,38 +36,39 @@ export function ObjectExpression(node: Object) { export { ObjectExpression as ObjectPattern }; -export function Property(node: Object) { +export function ObjectMethod(node: Object) { + this.printJoin(node.decorators, node, { separator: "" }); + this._method(node); +} + +export function ObjectProperty(node: Object) { this.printJoin(node.decorators, node, { separator: "" }); - if (node.method || node.kind === "get" || node.kind === "set") { - this._method(node); + if (node.computed) { + this.push("["); + this.print(node.key, node); + this.push("]"); } else { - if (node.computed) { - this.push("["); - this.print(node.key, node); - this.push("]"); - } else { - // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});` - if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) { - this.print(node.value, node); - return; - } - - this.print(node.key, node); - - // shorthand! - if (node.shorthand && - (t.isIdentifier(node.key) && - t.isIdentifier(node.value) && - node.key.name === node.value.name)) { - return; - } + // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});` + if (t.isAssignmentPattern(node.value) && t.isIdentifier(node.key) && node.key.name === node.value.left.name) { + this.print(node.value, node); + return; } - this.push(":"); - this.space(); - this.print(node.value, node); + this.print(node.key, node); + + // shorthand! + if (node.shorthand && + (t.isIdentifier(node.key) && + t.isIdentifier(node.value) && + node.key.name === node.value.name)) { + return; + } } + + this.push(":"); + this.space(); + this.print(node.value, node); } export function ArrayExpression(node: Object) { diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index a9a9a1783f..c76f7ee864 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -39,6 +39,7 @@ export class CodeGenerator extends Printer { shouldPrintComment: boolean; retainLines: boolean; comments: boolean; + auxiliaryComment: string; compact: boolean | "auto"; quotes: "single" | "double"; concise: boolean; @@ -49,6 +50,7 @@ export class CodeGenerator extends Printer { } }; + auxiliaryComment: string; whitespace: Whitespace; position: Position; map: SourceMap; @@ -72,6 +74,7 @@ export class CodeGenerator extends Printer { } let format = { + auxiliaryComment: opts.auxiliaryComment, shouldPrintComment: opts.shouldPrintComment, retainLines: opts.retainLines, comments: opts.comments == null || opts.comments, diff --git a/packages/babel-generator/src/node/parentheses.js b/packages/babel-generator/src/node/parentheses.js index 685ed247a2..c0f55c498e 100644 --- a/packages/babel-generator/src/node/parentheses.js +++ b/packages/babel-generator/src/node/parentheses.js @@ -82,7 +82,8 @@ export function Binary(node: Object, parent: Object): boolean { return true; } - if (parentPos === nodePos && parent.right === node) { + // Logical expressions with the same precedence don't need parens. + if (parentPos === nodePos && parent.right === node && !t.isLogicalExpression(parent)) { return true; } } @@ -119,6 +120,10 @@ export function SequenceExpression(node: Object, parent: Object): boolean { return false; } + if (t.isReturnStatement(parent)) { + return false; + } + // Otherwise err on the side of overparenthesization, adding // explicit exceptions above if this proves overzealous. return true; diff --git a/packages/babel-generator/src/node/whitespace.js b/packages/babel-generator/src/node/whitespace.js index b9ac11f2e8..0866d4e23e 100644 --- a/packages/babel-generator/src/node/whitespace.js +++ b/packages/babel-generator/src/node/whitespace.js @@ -163,7 +163,8 @@ exports.nodes = { * Test if Property or SpreadProperty needs whitespace. */ -exports.nodes.Property = +exports.nodes.ObjectProperty = +exports.nodes.ObjectMethod = exports.nodes.SpreadProperty = function (node, parent) { if (parent.properties[0] === node) { return { diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index 949d1dc3eb..e55fe33e30 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -6,6 +6,11 @@ import n from "./node"; import * as t from "babel-types"; export default class Printer extends Buffer { + constructor(...args) { + super(...args); + this.insideAux = false; + } + print(node, parent, opts = {}) { if (!node) return; @@ -13,6 +18,9 @@ export default class Printer extends Buffer { node._compact = true; } + let oldInAux = this.insideAux; + this.insideAux = !node.loc; + let oldConcise = this.format.concise; if (node._compact) { this.format.concise = true; @@ -23,6 +31,8 @@ export default class Printer extends Buffer { throw new ReferenceError(`unknown node of type ${JSON.stringify(node.type)} with constructor ${JSON.stringify(node && node.constructor.name)}`); } + this.printAuxComment(oldInAux); + let needsParens = n.needsParens(node, parent); if (needsParens) this.push("("); @@ -33,28 +43,47 @@ export default class Printer extends Buffer { this._printNewline(true, node, parent, opts); if (opts.before) opts.before(); + this.map.mark(node, "start"); - // this._print(node, parent); + this.printTrailingComments(node, parent); + if (needsParens) this.push(")"); + // end this.map.mark(node, "end"); if (opts.after) opts.after(); this.format.concise = oldConcise; + this.insideAux = oldInAux; this._printNewline(false, node, parent, opts); + } - this.printTrailingComments(node, parent); + printAuxComment(wasInAux) { + let comment = this.format.auxiliaryComment; + if (comment && !wasInAux && this.insideAux) { + this.printComment({ + type: "CommentBlock", + value: comment + }); + } + } + + getPossibleRaw(node) { + let extra = node.extra; + if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) { + return extra.raw; + } } _print(node, parent) { - let extra = node.extra; - if (extra && extra.raw != null && extra.rawValue != null && node.value === extra.rawValue) { + let extra = this.getPossibleRaw(node); + if (extra) { this.push(""); - this._push(extra.raw); + this._push(extra); } else { let printMethod = this[node.type]; printMethod.call(this, node, parent); @@ -119,17 +148,17 @@ export default class Printer extends Buffer { } printTrailingComments(node, parent) { - this._printComments(this.getComments("trailingComments", node, parent)); + this.printComments(this.getComments("trailingComments", node, parent)); } printLeadingComments(node, parent) { - this._printComments(this.getComments("leadingComments", node, parent)); + this.printComments(this.getComments("leadingComments", node, parent)); } printInnerComments(node, indent = true) { if (!node.innerComments) return; if (indent) this.indent(); - this._printComments(node.innerComments); + this.printComments(node.innerComments); if (indent) this.dedent(); } @@ -177,26 +206,7 @@ export default class Printer extends Buffer { this.newline(lines); } - getComments(key, node, parent) { - if (t.isExpressionStatement(parent)) { - return []; - } - - let comments = []; - let nodes: Array = [node]; - - if (t.isExpressionStatement(node)) { - nodes.push(node.argument); - } - - for (let node of nodes) { - comments = comments.concat(this._getComments(key, node)); - } - - return comments; - } - - _getComments(key, node) { + getComments(key, node) { return (node && node[key]) || []; } @@ -212,54 +222,64 @@ export default class Printer extends Buffer { } } - _printComments(comments) { + printComment(comment) { + if (!this.shouldPrintComment(comment)) return; + + if (comment.ignore) return; + comment.ignore = true; + + if (comment.start != null) { + if (this.printedCommentStarts[comment.start]) return; + this.printedCommentStarts[comment.start] = true; + } + + this.catchUp(comment); + + // whitespace before + this.newline(this.whitespace.getNewlinesBefore(comment)); + + let column = this.position.column; + let val = this.generateComment(comment); + + if (column && !this.isLast(["\n", " ", "[", "{"])) { + this._push(" "); + column++; + } + + // + if (comment.type === "CommentBlock" && this.format.indent.adjustMultilineComment) { + let offset = comment.loc && comment.loc.start.column; + if (offset) { + let newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); + val = val.replace(newlineRegex, "\n"); + } + + let indent = Math.max(this.indentSize(), column); + val = val.replace(/\n/g, `\n${repeating(" ", indent)}`); + } + + if (column === 0) { + val = this.getIndent() + val; + } + + // force a newline for line comments when retainLines is set in case the next printed node + // doesn't catch up + if ((this.format.compact || this.format.retainLines) && comment.type === "CommentLine") { + val += "\n"; + } + + // + this._push(val); + + // whitespace after + this.newline(this.whitespace.getNewlinesAfter(comment)); + } + + printComments(comments?: Array) { if (!comments || !comments.length) return; - for (let comment of (comments: Array)) { - if (!this.shouldPrintComment(comment)) continue; - if (comment._displayed) continue; - comment._displayed = true; - - this.catchUp(comment); - - // whitespace before - this.newline(this.whitespace.getNewlinesBefore(comment)); - - let column = this.position.column; - let val = this.generateComment(comment); - - if (column && !this.isLast(["\n", " ", "[", "{"])) { - this._push(" "); - column++; - } - - // - if (comment.type === "CommentBlock" && this.format.indent.adjustMultilineComment) { - let offset = comment.loc && comment.loc.start.column; - if (offset) { - let newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); - val = val.replace(newlineRegex, "\n"); - } - - let indent = Math.max(this.indentSize(), column); - val = val.replace(/\n/g, `\n${repeating(" ", indent)}`); - } - - if (column === 0) { - val = this.getIndent() + val; - } - - // force a newline for line comments when retainLines is set in case the next printed node - // doesn't catch up - if ((this.format.compact || this.format.retainLines) && comment.type === "CommentLine") { - val += "\n"; - } - - // - this._push(val); - - // whitespace after - this.newline(this.whitespace.getNewlinesAfter(comment)); + for (let comment of comments) { + this.printComment(comment); } } } diff --git a/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js index d6802cba24..f37f446d86 100644 --- a/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js +++ b/packages/babel-generator/test/fixtures/comments/function-block-line-comment/expected.js @@ -1,6 +1,6 @@ -!function () {}, // -42; -!{ get 42() {}, // - foo: 42 }; -(function () {}); -// +!function () {} // +, 42; +!{ get 42() {} // + , foo: 42 }; +(function () {} // +); diff --git a/packages/babel-generator/test/fixtures/compact/no-semicolon/actual.js b/packages/babel-generator/test/fixtures/compact/no-semicolon/actual.js new file mode 100644 index 0000000000..85240b60d1 --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/no-semicolon/actual.js @@ -0,0 +1,6 @@ +function foo() { + if (bar) { + baz(); + } + return; +} diff --git a/packages/babel-generator/test/fixtures/compact/no-semicolon/expected.js b/packages/babel-generator/test/fixtures/compact/no-semicolon/expected.js new file mode 100644 index 0000000000..0fdf371f55 --- /dev/null +++ b/packages/babel-generator/test/fixtures/compact/no-semicolon/expected.js @@ -0,0 +1 @@ +function foo(){if(bar){baz();}return;} diff --git a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js index f84b95ae6b..e454ee16a4 100644 --- a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js +++ b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/actual.js @@ -1,9 +1,9 @@ -for (var i = (1 in []) in []); -for (var i = 1 in [] in []); -for (var i = (10 * 10 in []) in []); -for (var i = (10 + 10 in []) in []); -for (var i = 10 + (10 in []) in []); -for (var i = 10 + 10 in [] in []); +//for (var i = (1 in []) in []); +//for (var i = 1 in [] in []); +//for (var i = (10 * 10 in []) in []); +//for (var i = (10 + 10 in []) in []); +//for (var i = 10 + (10 in []) in []); +//for (var i = 10 + 10 in [] in []); for (var i = (1 in []);;); for ((1 in []);;); for (1 * (1 in []);;); diff --git a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js index 029b11e515..eccabee07d 100644 --- a/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js +++ b/packages/babel-generator/test/fixtures/edgecase/for-in-no-in/expected.js @@ -1,9 +1,9 @@ -for (var i = (1 in []) in []); -for (var i = 1 in ([] in [])); -for (var i = (10 * 10 in []) in []); -for (var i = (10 + 10 in []) in []); -for (var i = 10 + (10 in []) in []); -for (var i = 10 + 10 in ([] in [])); +//for (var i = (1 in []) in []); +//for (var i = 1 in [] in []); +//for (var i = (10 * 10 in []) in []); +//for (var i = (10 + 10 in []) in []); +//for (var i = 10 + (10 in []) in []); +//for (var i = 10 + 10 in [] in []); for (var i = (1 in []);;); for ((1 in []);;); for (1 * (1 in []);;); diff --git a/packages/babel-generator/test/fixtures/edgecase/for-loop-in/actual.js b/packages/babel-generator/test/fixtures/edgecase/for-loop-in/actual.js new file mode 100644 index 0000000000..da5079a95f --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/for-loop-in/actual.js @@ -0,0 +1 @@ +for ((a in b) ? a : b; i;); diff --git a/packages/babel-generator/test/fixtures/edgecase/for-loop-in/expected.js b/packages/babel-generator/test/fixtures/edgecase/for-loop-in/expected.js new file mode 100644 index 0000000000..da5079a95f --- /dev/null +++ b/packages/babel-generator/test/fixtures/edgecase/for-loop-in/expected.js @@ -0,0 +1 @@ +for ((a in b) ? a : b; i;); diff --git a/packages/babel-generator/test/fixtures/parentheses/expression/actual.js b/packages/babel-generator/test/fixtures/parentheses/expression/actual.js new file mode 100644 index 0000000000..8a2b727e0e --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/expression/actual.js @@ -0,0 +1 @@ +a && (a.b && a.b.c()); diff --git a/packages/babel-generator/test/fixtures/parentheses/expression/expected.js b/packages/babel-generator/test/fixtures/parentheses/expression/expected.js new file mode 100644 index 0000000000..56580c5211 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/expression/expected.js @@ -0,0 +1 @@ +a && a.b && a.b.c(); diff --git a/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js b/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js index 404a7c2e64..338c84b966 100644 --- a/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js +++ b/packages/babel-generator/test/fixtures/types/ReturnStatement/actual.js @@ -5,3 +5,7 @@ function foo() { function bar() { return "foo"; } + +function foo() { + return 1, "foo"; +} diff --git a/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js b/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js index 404a7c2e64..338c84b966 100644 --- a/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js +++ b/packages/babel-generator/test/fixtures/types/ReturnStatement/expected.js @@ -5,3 +5,7 @@ function foo() { function bar() { return "foo"; } + +function foo() { + return 1, "foo"; +} diff --git a/packages/babel-generator/test/index.js b/packages/babel-generator/test/index.js index 2eb653eea9..aafeb00e5a 100644 --- a/packages/babel-generator/test/index.js +++ b/packages/babel-generator/test/index.js @@ -36,6 +36,7 @@ suites.forEach(function (testSuite) { "asyncFunctions", "exportExtensions", "functionBind", + "classConstructorCall", ], strictMode: false, sourceType: "module", diff --git a/packages/babel-helper-bindify-decorators/README.md b/packages/babel-helper-bindify-decorators/README.md new file mode 100644 index 0000000000..c9852822df --- /dev/null +++ b/packages/babel-helper-bindify-decorators/README.md @@ -0,0 +1,5 @@ +# babel-helper-bindify-decorators + +## Usage + +TODO diff --git a/packages/babel-helper-bindify-decorators/package.json b/packages/babel-helper-bindify-decorators/package.json new file mode 100644 index 0000000000..68b40a836b --- /dev/null +++ b/packages/babel-helper-bindify-decorators/package.json @@ -0,0 +1,13 @@ +{ + "name": "babel-helper-bindify-decorators", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-traverse": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-helper-bindify-decorators/src/index.js b/packages/babel-helper-bindify-decorators/src/index.js new file mode 100644 index 0000000000..564126fbe3 --- /dev/null +++ b/packages/babel-helper-bindify-decorators/src/index.js @@ -0,0 +1,36 @@ +import type { NodePath } from "babel-traverse" +import * as t from "babel-types"; + +export default function bindifyDecorators(decorators: Array): Array { + for (let decoratorPath of decorators) { + let decorator = decoratorPath.node; + let expression = decorator.expression; + if (!t.isMemberExpression(expression)) continue; + + let temp = decoratorPath.scope.maybeGenerateMemoised(expression.object); + let ref; + + let nodes = []; + + if (temp) { + ref = temp; + nodes.push(t.assignmentExpression("=", temp, expression.object)); + } else { + ref = expression.object; + } + + nodes.push(t.callExpression( + t.memberExpression( + t.memberExpression(ref, expression.property, expression.computed), + t.identifier("bind") + ), + [ref] + )); + + if (nodes.length === 1) { + decorator.expression = nodes[0]; + } else { + decorator.expression = t.sequenceExpression(nodes); + } + } +} diff --git a/packages/babel-helper-builder-binary-assignment-operator-visitor/README.md b/packages/babel-helper-builder-binary-assignment-operator-visitor/README.md new file mode 100644 index 0000000000..812f886e6d --- /dev/null +++ b/packages/babel-helper-builder-binary-assignment-operator-visitor/README.md @@ -0,0 +1,5 @@ +# babel-helper-builder-binary-assignment-operator-visitor + +## Usage + +TODO diff --git a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json new file mode 100644 index 0000000000..84d8d423b9 --- /dev/null +++ b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json @@ -0,0 +1,13 @@ +{ + "name": "babel-helper-builder-binary-assignment-operator-visitor", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-helper-explode-assignable-expression": "^5.8.20", + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js b/packages/babel-helper-builder-binary-assignment-operator-visitor/src/index.js similarity index 59% rename from packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js rename to packages/babel-helper-builder-binary-assignment-operator-visitor/src/index.js index 689d3467f8..810451fc62 100644 --- a/packages/babel-core/src/transformation/helpers/build-binary-assignment-operator-transformer.js +++ b/packages/babel-helper-builder-binary-assignment-operator-visitor/src/index.js @@ -1,23 +1,23 @@ /* @flow */ -import explode from "./explode-assignable-expression"; +import explode from "babel-helper-explode-assignable-expression"; import * as t from "babel-types"; export default function (opts: { build: Function; operator: string; }): Object { - let exports = {}; + let visitor = {}; - let isAssignment = function (node) { + function isAssignment(node) { return node.operator === opts.operator + "="; - }; + } - let buildAssignment = function (left, right) { + function buildAssignment(left, right) { return t.assignmentExpression("=", left, right); - }; + } - exports.ExpressionStatement = function (path, file) { + visitor.ExpressionStatement = function (path, file) { // hit the `AssignmentExpression` one below if (path.isCompletionRecord()) return; @@ -31,22 +31,25 @@ export default function (opts: { buildAssignment(exploded.ref, opts.build(exploded.uid, expr.right)) )); - return nodes; + path.replaceWithMultiple(nodes); }; - exports.AssignmentExpression = function ({ node, scope }, file) { + visitor.AssignmentExpression = function (path, file) { + let { node, scope } = path; if (!isAssignment(node)) return; let nodes = []; let exploded = explode(node.left, nodes, file, scope); nodes.push(buildAssignment(exploded.ref, opts.build(exploded.uid, node.right))); - return nodes; + path.replaceWithMultiple(nodes); }; - exports.BinaryExpression = function ({ node }) { - if (node.operator !== opts.operator) return; - return opts.build(node.left, node.right); + visitor.BinaryExpression = function (path) { + let { node } = path; + if (node.operator === opts.operator) { + path.replaceWith(opts.build(node.left, node.right)); + } }; - return exports; + return visitor; } diff --git a/packages/babel-helper-builder-conditional-assignment-operator-visitor/README.md b/packages/babel-helper-builder-conditional-assignment-operator-visitor/README.md new file mode 100644 index 0000000000..f9d44147c3 --- /dev/null +++ b/packages/babel-helper-builder-conditional-assignment-operator-visitor/README.md @@ -0,0 +1,5 @@ +# babel-helper-builder-conditional-assignment-operator-visitor + +## Usage + +TODO diff --git a/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json b/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json new file mode 100644 index 0000000000..aa809e85cc --- /dev/null +++ b/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json @@ -0,0 +1,13 @@ +{ + "name": "babel-helper-builder-conditional-assignment-operator-visitor", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-helper-explode-assignable-expression": "^5.8.20", + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js b/packages/babel-helper-builder-conditional-assignment-operator-visitor/src/index.js similarity index 94% rename from packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js rename to packages/babel-helper-builder-conditional-assignment-operator-visitor/src/index.js index b8172ef5e3..1c54314a60 100644 --- a/packages/babel-core/src/transformation/helpers/build-conditional-assignment-operator-transformer.js +++ b/packages/babel-helper-builder-conditional-assignment-operator-visitor/src/index.js @@ -1,6 +1,6 @@ /* @flow */ -import explode from "./explode-assignable-expression"; +import explode from "babel-helper-explode-assignable-expression"; import * as t from "babel-types"; export default function ( diff --git a/packages/babel-plugin-builder-react-jsx/README.md b/packages/babel-helper-builder-react-jsx/README.md similarity index 64% rename from packages/babel-plugin-builder-react-jsx/README.md rename to packages/babel-helper-builder-react-jsx/README.md index 41fa28bf58..895857ec4c 100644 --- a/packages/babel-plugin-builder-react-jsx/README.md +++ b/packages/babel-helper-builder-react-jsx/README.md @@ -1,4 +1,4 @@ -# babel-plugin-builder-react-jsx +# babel-helper-builder-react-jsx ## Usage @@ -8,9 +8,11 @@ type ElementState = { tagName: string; // raw string tag name args: Array; // array of call arguments call?: Object; // optional call property that can be set to override the call expression returned + pre?: Function; // function called with (state: ElementState) before building attribs + post?: Function; // function called with (state: ElementState) after building attribs }; -require("babel-plugin-builder-react-jsx")({ +require("babel-helper-builder-react-jsx")({ pre: function (state: ElementState) { // called before building the element }, diff --git a/packages/babel-plugin-builder-react-jsx/package.json b/packages/babel-helper-builder-react-jsx/package.json similarity index 75% rename from packages/babel-plugin-builder-react-jsx/package.json rename to packages/babel-helper-builder-react-jsx/package.json index 2ff46f80bc..6e57234438 100644 --- a/packages/babel-plugin-builder-react-jsx/package.json +++ b/packages/babel-helper-builder-react-jsx/package.json @@ -1,5 +1,5 @@ { - "name": "babel-plugin-builder-react-jsx", + "name": "babel-helper-builder-react-jsx", "version": "1.0.0", "description": "", "repository": "babel/babel", @@ -7,6 +7,7 @@ "main": "lib/index.js", "dependencies": { "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20", "esutils": "^2.0.0", "lodash": "^3.10.0" } diff --git a/packages/babel-plugin-builder-react-jsx/src/index.js b/packages/babel-helper-builder-react-jsx/src/index.js similarity index 67% rename from packages/babel-plugin-builder-react-jsx/src/index.js rename to packages/babel-helper-builder-react-jsx/src/index.js index 7eb9f43691..645c44a6da 100644 --- a/packages/babel-plugin-builder-react-jsx/src/index.js +++ b/packages/babel-helper-builder-react-jsx/src/index.js @@ -1,8 +1,20 @@ +/* @flow */ + import isString from "lodash/lang/isString"; import esutils from "esutils"; +import * as t from "babel-types"; -export default function (t, opts) { - var visitor = {}; +type ElementState = { + tagExpr: Object; // tag node + tagName: string; // raw string tag name + args: Array; // array of call arguments + call?: Object; // optional call property that can be set to override the call expression returned + pre?: Function; // function called with (state: ElementState) before building attribs + post?: Function; // function called with (state: ElementState) after building attribs +}; + +export default function (opts) { + let visitor = {}; visitor.JSXNamespacedName = function (path) { throw path.buildCodeFrameError("Namespace tags are not supported. ReactJSX is not XML."); @@ -10,7 +22,7 @@ export default function (t, opts) { visitor.JSXElement = { exit(path, file) { - var callExpr = buildElementCall(path.get("openingElement"), file); + let callExpr = buildElementCall(path.get("openingElement"), file); callExpr.arguments = callExpr.arguments.concat(path.node.children); @@ -18,26 +30,26 @@ export default function (t, opts) { callExpr._prettyCall = true; } - return t.inherits(callExpr, path.node); + path.replaceWith(t.inherits(callExpr, path.node)); } }; return visitor; - function convertFunctionName(path) { - var { node } = path; - - if (path.isJSXIdentifier()) { - if (node.name === "this" && path.isReferenced()) { + function convertJSXIdentifier(node, parent) { + if (t.isJSXIdentifier(node)) { + if (node.name === "this" && t.isReferenced(node, parent)) { return t.thisExpression(); } else if (esutils.keyword.isIdentifierNameES6(node.name)) { node.type = "Identifier"; } else { return t.stringLiteral(node.name); } - } else if (path.isJSXMemberExpression()) { - node.computed = t.isLiteral(node.property); - node.type = "MemberExpression"; + } else if (t.isJSXMemberExpression(node)) { + return t.memberExpression( + convertJSXIdentifier(node.object, node), + convertJSXIdentifier(node.property, node) + ); } return node; @@ -52,7 +64,7 @@ export default function (t, opts) { } function convertAttribute(node) { - var value = convertAttributeValue(node.value || t.booleanLiteral(true)); + let value = convertAttributeValue(node.value || t.booleanLiteral(true)); if (t.isLiteral(value) && isString(value.value)) { value.value = value.value.replace(/\n\s+/g, " "); @@ -60,23 +72,23 @@ export default function (t, opts) { node.name.type = "Identifier"; - return t.inherits(t.property("init", node.name, value), node); + return t.inherits(t.objectProperty(node.name, value), node); } function buildElementCall(path, file) { path.parent.children = t.react.buildChildren(path.parent); - var tagExpr = convertFunctionName(path.get("name")); - var args = []; + let tagExpr = convertJSXIdentifier(path.node.name, path.node); + let args = []; - var tagName; + let tagName; if (t.isIdentifier(tagExpr)) { tagName = tagExpr.name; } else if (t.isLiteral(tagExpr)) { tagName = tagExpr.value; } - var state = { + let state: ElementState = { tagExpr: tagExpr, tagName: tagName, args: args @@ -86,7 +98,7 @@ export default function (t, opts) { opts.pre(state, file); } - var attribs = path.node.attributes; + let attribs = path.node.attributes; if (attribs.length) { attribs = buildOpeningElementAttributes(attribs, file); } else { @@ -110,8 +122,8 @@ export default function (t, opts) { */ function buildOpeningElementAttributes(attribs, file) { - var _props = []; - var objs = []; + let _props = []; + let objs = []; function pushProps() { if (!_props.length) return; @@ -121,7 +133,7 @@ export default function (t, opts) { } while (attribs.length) { - var prop = attribs.shift(); + let prop = attribs.shift(); if (t.isJSXSpreadAttribute(prop)) { pushProps(); objs.push(prop.argument); diff --git a/packages/babel-helper-call-delegate/README.md b/packages/babel-helper-call-delegate/README.md new file mode 100644 index 0000000000..0841d07342 --- /dev/null +++ b/packages/babel-helper-call-delegate/README.md @@ -0,0 +1,5 @@ +# babel-helper-call-delegate + +## Usage + +TODO diff --git a/packages/babel-helper-call-delegate/package.json b/packages/babel-helper-call-delegate/package.json new file mode 100644 index 0000000000..903216a522 --- /dev/null +++ b/packages/babel-helper-call-delegate/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-helper-call-delegate", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-traverse": "^5.8.20", + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20", + "babel-helper-hoist-variables": "^5.0.0" + } +} diff --git a/packages/babel-helper-call-delegate/src/index.js b/packages/babel-helper-call-delegate/src/index.js new file mode 100644 index 0000000000..185fae47a0 --- /dev/null +++ b/packages/babel-helper-call-delegate/src/index.js @@ -0,0 +1,58 @@ +/* @flow */ + +import hoistVariables from "babel-helper-hoist-variables"; +import type { NodePath } from "babel-traverse"; +import * as t from "babel-types"; + +let visitor = { + enter(path, state) { + if (path.isThisExpression()) { + state.foundThis = true; + } + + if (path.isReferencedIdentifier({ name: "arguments" })) { + state.foundArguments = true; + } + }, + + Function(path) { + path.skip(); + } +}; + +export default function (path: NodePath, scope = path.scope) { + let { node } = path; + let container = t.functionExpression(null, [], node.body, node.generator, node.async); + + let callee = container; + let args = []; + + // todo: only hoist if necessary + hoistVariables(path, id => scope.push({ id })); + + let state = { + foundThis: false, + foundArguments: false + }; + + path.traverse(visitor, state); + + if (state.foundArguments) { + callee = t.memberExpression(container, t.identifier("apply")); + args = []; + + if (state.foundThis) { + args.push(t.thisExpression()); + } + + if (state.foundArguments) { + if (!state.foundThis) args.push(t.nullLiteral()); + args.push(t.identifier("arguments")); + } + } + + let call = t.callExpression(callee, args); + if (node.generator) call = t.yieldExpression(call, true); + + return t.returnStatement(call); +} diff --git a/packages/babel-helper-define-map/README.md b/packages/babel-helper-define-map/README.md new file mode 100644 index 0000000000..381835187f --- /dev/null +++ b/packages/babel-helper-define-map/README.md @@ -0,0 +1,5 @@ +# babel-helper-define-map + +## Usage + +TODO diff --git a/packages/babel-helper-define-map/package.json b/packages/babel-helper-define-map/package.json new file mode 100644 index 0000000000..a49e603edc --- /dev/null +++ b/packages/babel-helper-define-map/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-helper-define-map", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "lodash": "^3.10.0", + "babel-types": "^5.8.20", + "babel-helper-function-name": "^5.0.0" + } +} diff --git a/packages/babel-core/src/transformation/helpers/define-map.js b/packages/babel-helper-define-map/src/index.js similarity index 58% rename from packages/babel-core/src/transformation/helpers/define-map.js rename to packages/babel-helper-define-map/src/index.js index 21b4536df0..01a44195d5 100644 --- a/packages/babel-core/src/transformation/helpers/define-map.js +++ b/packages/babel-helper-define-map/src/index.js @@ -1,11 +1,21 @@ /* @flow */ -import type File from "../file"; +import nameFunction from "babel-helper-function-name"; import each from "lodash/collection/each"; import has from "lodash/object/has"; import * as t from "babel-types"; -export function push(mutatorMap: Object, node: Object, kind: string, file: File): Object { +function toKind(node: Object) { + if (t.isClassMethod(node) || t.isObjectMethod(node)) { + if (node.kind === "get" || node.kind === "set") { + return node.kind; + } + } + + return "value"; +} + +export function push(mutatorMap: Object, node: Object, kind: string, file, scope?): Object { let alias = t.toKeyAlias(node); // @@ -34,13 +44,32 @@ export function push(mutatorMap: Object, node: Object, kind: string, file: File) throw file.buildCodeFrameError(node, "Key conflict with sibling node"); } - if (node.value) { - if (node.kind === "init") kind = "value"; - if (node.kind === "get") kind = "get"; - if (node.kind === "set") kind = "set"; + let key, value; - t.inheritsComments(node.value, node); - map[kind] = node.value; + // save the key so we can possibly do function name inferences + if (t.isObjectProperty(node) || t.isObjectMethod(node) || t.isClassMethod(node)) { + key = t.toComputedKey(node, node.key); + } + + if (t.isObjectProperty(node) || t.isClassProperty(node)) { + value = node.value; + } else if (t.isObjectMethod(node) || t.isClassMethod(node)) { + value = t.functionExpression(null, node.params, node.body, node.generator, node.async); + } + + let inheritedKind = toKind(node); + if (!kind || inheritedKind !== "value") { + kind = inheritedKind; + } + + // infer function name + if (scope && t.isStringLiteral(key) && (kind === "value" || kind === "initializer") && t.isFunctionExpression(value)) { + value = nameFunction({ id: key, node: value, scope }); + } + + if (value) { + t.inheritsComments(value, node); + map[kind] = value; } return map; @@ -61,7 +90,7 @@ export function toComputedObjectFromClass(obj: Object): Object { for (let i = 0; i < obj.properties.length; i++) { let prop = obj.properties[i]; let val = prop.value; - val.properties.unshift(t.property("init", t.identifier("key"), t.toComputedKey(prop))); + val.properties.unshift(t.objectProperty(t.identifier("key"), t.toComputedKey(prop))); objExpr.elements.push(val); } @@ -74,15 +103,15 @@ export function toClassObject(mutatorMap: Object): Object { each(mutatorMap, function (map) { let mapNode = t.objectExpression([]); - let propNode = t.property("init", map._key, mapNode, map._computed); + let propNode = t.objectProperty(map._key, mapNode, map._computed); each(map, function (node, key) { if (key[0] === "_") return; let inheritNode = node; - if (t.isMethodDefinition(node) || t.isClassProperty(node)) node = node.value; + if (t.isClassMethod(node) || t.isClassProperty(node)) node = node.value; - let prop = t.property("init", t.identifier(key), node); + let prop = t.objectProperty(t.identifier(key), node); t.inheritsComments(prop, inheritNode); t.removeComments(inheritNode); diff --git a/packages/babel-helper-explode-assignable-expression/README.md b/packages/babel-helper-explode-assignable-expression/README.md new file mode 100644 index 0000000000..d8d90aeb8c --- /dev/null +++ b/packages/babel-helper-explode-assignable-expression/README.md @@ -0,0 +1,5 @@ +# babel-helper-explode-assignable-expression + +## Usage + +TODO diff --git a/packages/babel-helper-explode-assignable-expression/package.json b/packages/babel-helper-explode-assignable-expression/package.json new file mode 100644 index 0000000000..81fd1e3c9b --- /dev/null +++ b/packages/babel-helper-explode-assignable-expression/package.json @@ -0,0 +1,13 @@ +{ + "name": "babel-helper-explode-assignable-expression", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-traverse": "^5.8.20", + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js b/packages/babel-helper-explode-assignable-expression/src/index.js similarity index 94% rename from packages/babel-core/src/transformation/helpers/explode-assignable-expression.js rename to packages/babel-helper-explode-assignable-expression/src/index.js index 5a97200499..aec842aa9c 100644 --- a/packages/babel-core/src/transformation/helpers/explode-assignable-expression.js +++ b/packages/babel-helper-explode-assignable-expression/src/index.js @@ -1,7 +1,6 @@ /* @flow */ import type { Scope } from "babel-traverse"; -import type File from "../file"; import * as t from "babel-types"; function getObjRef(node, nodes, file, scope) { @@ -20,7 +19,7 @@ function getObjRef(node, nodes, file, scope) { } else if (t.isMemberExpression(node)) { ref = node.object; - if (t.isIdentifier(ref) && scope.hasGlobal(ref.name)) { + if (t.isIdentifier(ref) && scope.hasBinding(ref.name)) { // the object reference that we need to save is locally declared // so as per the previous comment we can be 100% sure evaluating // it multiple times will be safe @@ -52,7 +51,7 @@ function getPropRef(node, nodes, file, scope) { export default function ( node: Object, nodes: Array, - file: File, + file, scope: Scope, allowedSingleIdent?: boolean, ): { diff --git a/packages/babel-helper-explode-class/README.md b/packages/babel-helper-explode-class/README.md new file mode 100644 index 0000000000..cb4474ab5b --- /dev/null +++ b/packages/babel-helper-explode-class/README.md @@ -0,0 +1,5 @@ +# babel-helper-explode-class + +## Usage + +TODO diff --git a/packages/babel-helper-explode-class/package.json b/packages/babel-helper-explode-class/package.json new file mode 100644 index 0000000000..72590d9023 --- /dev/null +++ b/packages/babel-helper-explode-class/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-helper-explode-class", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-traverse": "^5.8.20", + "babel-types": "^5.8.20", + "babel-helper-bindify-decorators": "^5.0.0" + } +} diff --git a/packages/babel-helper-explode-class/src/index.js b/packages/babel-helper-explode-class/src/index.js new file mode 100644 index 0000000000..561ea63633 --- /dev/null +++ b/packages/babel-helper-explode-class/src/index.js @@ -0,0 +1,49 @@ +import bindifyDecorators from "babel-helper-bindify-decorators"; +import type { NodePath } from "babel-traverse" +import * as t from "babel-types"; + +export default function (classPath) { + classPath.assertClass(); + + let memoisedExpressions = []; + + function maybeMemoise(path) { + if (!path.node || path.isPure()) return; + + let uid = classPath.scope.generateDeclaredUidIdentifier(); + memoisedExpressions.push(t.assignmentExpression("=", uid, path.node)); + path.replaceWith(uid); + } + + function memoiseDecorators(paths: Array) { + if (!Array.isArray(paths) || !paths.length) return; + + // ensure correct evaluation order of decorators + paths = paths.reverse(); + + // bind decorators if they're member expressions + bindifyDecorators(paths); + + for (let path of paths) { + maybeMemoise(path); + } + } + + maybeMemoise(classPath.get("superClass")); + memoiseDecorators(classPath.get("decorators"), true); + + let methods: Array = classPath.get("body.body"); + for (let methodPath of methods) { + if (methodPath.is("computed")) { + maybeMemoise(methodPath.get("key")); + } + + if (methodPath.has("decorators")) { + memoiseDecorators(classPath.get("decorators")); + } + } + + if (memoisedExpressions) { + classPath.insertBefore(memoisedExpressions.map((expr) => t.expressionStatement(expr))); + } +} diff --git a/packages/babel-helper-fixtures/README.md b/packages/babel-helper-fixtures/README.md new file mode 100644 index 0000000000..57107d89f5 --- /dev/null +++ b/packages/babel-helper-fixtures/README.md @@ -0,0 +1 @@ +# babel-helper-fixtures diff --git a/packages/babel-helper-fixtures/package.json b/packages/babel-helper-fixtures/package.json new file mode 100644 index 0000000000..ce00f260b7 --- /dev/null +++ b/packages/babel-helper-fixtures/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-helper-fixtures", + "version": "1.0.9", + "description": "", + "author": "Sebastian McKenzie ", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "lodash": "^3.10.0", + "path-exists": "^1.0.0", + "trim-right": "^1.0.1", + "try-resolve": "^1.0.0" + } +} diff --git a/packages/babel-helper-fixtures/src/index.js b/packages/babel-helper-fixtures/src/index.js new file mode 100644 index 0000000000..11cf8fd3eb --- /dev/null +++ b/packages/babel-helper-fixtures/src/index.js @@ -0,0 +1,135 @@ +import pathExists from "path-exists"; +import trimRight from "trim-right"; +import resolve from "try-resolve"; +import path from "path"; +import fs from "fs"; +import _ from "lodash"; + +function humanize(val, noext) { + if (noext) val = path.basename(val, path.extname(val)); + return val.replace(/-/g, " "); +} + +export default function get(entryLoc) { + let suites = []; + + let rootOpts = {}; + let rootOptsLoc = resolve(entryLoc + "/options"); + if (rootOptsLoc) rootOpts = require(rootOptsLoc); + + _.each(fs.readdirSync(entryLoc), function (suiteName) { + if (suiteName[0] === ".") return; + + let suite = { + options: _.clone(rootOpts), + tests: [], + title: humanize(suiteName), + filename: entryLoc + "/" + suiteName + }; + suites.push(suite); + + let suiteOptsLoc = resolve(suite.filename + "/options"); + if (suiteOptsLoc) suite.options = require(suiteOptsLoc); + + if (fs.statSync(suite.filename).isFile()) { + push(suiteName, suite.filename); + } else { + _.each(fs.readdirSync(suite.filename), function (taskName) { + let taskDir = suite.filename + "/" + taskName; + push(taskName, taskDir); + }); + } + + function push(taskName, taskDir) { + // tracuer error tests + if (taskName.indexOf("Error_") >= 0) return; + + let actualLocAlias = suiteName + "/" + taskName + "/actual.js"; + let expectLocAlias = suiteName + "/" + taskName + "/expected.js"; + let execLocAlias = suiteName + "/" + taskName + "/exec.js"; + + let actualLoc = taskDir + "/actual.js"; + let expectLoc = taskDir + "/expected.js"; + let execLoc = taskDir + "/exec.js"; + + if (resolve.relative(expectLoc + "on")) { + expectLoc += "on"; + expectLocAlias += "on"; + } + + if (fs.statSync(taskDir).isFile()) { + let ext = path.extname(taskDir); + if (ext !== ".js" && ext !== ".module.js") return; + + execLoc = taskDir; + } + + let taskOpts = _.merge({ + filenameRelative: expectLocAlias, + sourceFileName: actualLocAlias, + sourceMapName: expectLocAlias + }, _.cloneDeep(suite.options)); + + let taskOptsLoc = resolve(taskDir + "/options"); + if (taskOptsLoc) _.merge(taskOpts, require(taskOptsLoc)); + + let test = { + title: humanize(taskName, true), + disabled: taskName[0] === ".", + options: taskOpts, + exec: { + loc: execLoc, + code: readFile(execLoc), + filename: execLocAlias, + }, + actual: { + loc: actualLoc, + code: readFile(actualLoc), + filename: actualLocAlias, + }, + expect: { + loc: expectLoc, + code: readFile(expectLoc), + filename: expectLocAlias + } + }; + + // traceur checks + + let shouldSkip = function (code) { + return code.indexOf("// Error:") >= 0 || code.indexOf("// Skip.") >= 0; + }; + + if (shouldSkip(test.actual.code) || shouldSkip(test.exec.code)) { + return; + } else if (test.exec.code.indexOf("// Async.") >= 0) { + //test.options.asyncExec = true; + return; + } + + suite.tests.push(test); + + let sourceMappingsLoc = taskDir + "/source-mappings.json"; + if (pathExists.sync(sourceMappingsLoc)) { + test.sourceMappings = JSON.parse(readFile(sourceMappingsLoc)); + } + + let sourceMapLoc = taskDir + "/source-map.json"; + if (pathExists.sync(sourceMapLoc)) { + test.sourceMap = JSON.parse(readFile(sourceMapLoc)); + } + } + }); + + return suites; +} + +function readFile(filename) { + if (pathExists.sync(filename)) { + let file = trimRight(fs.readFileSync(filename, "utf8")); + file = file.replace(/\r\n/g, "\n"); + return file; + } else { + return ""; + } +} diff --git a/packages/babel-helper-function-name/README.md b/packages/babel-helper-function-name/README.md new file mode 100644 index 0000000000..96a4c65446 --- /dev/null +++ b/packages/babel-helper-function-name/README.md @@ -0,0 +1,5 @@ +# babel-helper-function-name + +## Usage + +TODO diff --git a/packages/babel-helper-function-name/package.json b/packages/babel-helper-function-name/package.json new file mode 100644 index 0000000000..5e2e7815db --- /dev/null +++ b/packages/babel-helper-function-name/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel-helper-function-name", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20", + "babel-traverse": "^5.8.20", + "babel-helper-get-function-arity": "^5.8.20", + "babel-template": "^5.0.0" + } +} diff --git a/packages/babel-core/src/transformation/helpers/name-method.js b/packages/babel-helper-function-name/src/index.js similarity index 75% rename from packages/babel-core/src/transformation/helpers/name-method.js rename to packages/babel-helper-function-name/src/index.js index 034a825605..846b60af31 100644 --- a/packages/babel-core/src/transformation/helpers/name-method.js +++ b/packages/babel-helper-function-name/src/index.js @@ -1,11 +1,37 @@ /* @flow */ -import type { Scope } from "babel-traverse"; -import type File from "../file"; -import getFunctionArity from "./get-function-arity"; -import * as util from "../../util"; +import getFunctionArity from "babel-helper-get-function-arity"; +import template from "babel-template"; import * as t from "babel-types"; +let buildPropertyMethodAssignmentWrapper = template(` + (function (FUNCTION_KEY) { + function FUNCTION_ID() { + return FUNCTION_KEY.apply(this, arguments); + } + + FUNCTION_ID.toString = function () { + return FUNCTION_KEY.toString(); + } + + return FUNCTION_ID; + })(FUNCTION) +`); + +let buldGeneratorPropertyMethodAssignmentWrapper = template(` + (function (FUNCTION_KEY) { + function* FUNCTION_ID() { + return yield* FUNCTION_KEY.apply(this, arguments); + } + + FUNCTION_ID.toString = function () { + return FUNCTION_KEY.toString(); + }; + + return FUNCTION_ID; + })(FUNCTION) +`); + let visitor = { "ReferencedIdentifier|BindingIdentifier"(path, state) { // check if this node matches our function id @@ -28,15 +54,15 @@ function wrap(state, method, id, scope) { scope.rename(id.name); } else { // need to add a wrapper since we can't change the references - let templateName = "property-method-assignment-wrapper"; - if (method.generator) templateName += "-generator"; - let template = util.template(templateName, { + let build = buildPropertyMethodAssignmentWrapper; + if (method.generator) build = buldGeneratorPropertyMethodAssignmentWrapper; + let template = build({ FUNCTION: method, FUNCTION_ID: id, FUNCTION_KEY: scope.generateUidIdentifier(id.name) - }); + }).expression; template.callee._skipModulesRemap = true; - + // shim in dummy params to retain function arity, if you try to read the // source then you'll get the original since it's proxied so it's all good let params = template.callee.body.body[0].params; @@ -98,29 +124,11 @@ function visit(node, name, scope) { return state; } -export function custom(node: Object, id: Object, scope: Scope) { - let state = visit(node, id.name, scope); - return wrap(state, node, id, scope); -} - -export function property(node: Object, file: File, scope: Scope) { - let key = t.toComputedKey(node, node.key); - if (!t.isLiteral(key)) return; // we can't set a function id with this - - let name = t.toBindingIdentifierName(key.value); - let id = t.identifier(name); - - let method = node.value; - let state = visit(method, name, scope); - node.value = wrap(state, method, id, scope) || method; -} - -export function bare(node: Object, parent: Object, scope: Scope) { +export default function ({ node, parent, scope, id }) { // has an `id` so we don't need to infer one if (node.id) return; - let id; - if (t.isProperty(parent) && parent.kind === "init" && (!parent.computed || t.isLiteral(parent.key))) { + if ((t.isObjectProperty(parent) || t.isObjectMethod(parent, { kind: "method" })) && (!parent.computed || t.isLiteral(parent.key))) { // { foo() {} }; id = parent.key; } else if (t.isVariableDeclarator(parent)) { @@ -135,7 +143,7 @@ export function bare(node: Object, parent: Object, scope: Scope) { return; } } - } else { + } else if (!id) { return; } @@ -152,5 +160,5 @@ export function bare(node: Object, parent: Object, scope: Scope) { id = t.identifier(name); let state = visit(node, name, scope); - return wrap(state, node, id, scope); + return wrap(state, node, id, scope) || node; } diff --git a/packages/babel-helper-get-function-arity/README.md b/packages/babel-helper-get-function-arity/README.md new file mode 100644 index 0000000000..2263230cd6 --- /dev/null +++ b/packages/babel-helper-get-function-arity/README.md @@ -0,0 +1,5 @@ +# babel-helper-get-function-arity + +## Usage + +TODO diff --git a/packages/babel-helper-get-function-arity/package.json b/packages/babel-helper-get-function-arity/package.json new file mode 100644 index 0000000000..ef787ea370 --- /dev/null +++ b/packages/babel-helper-get-function-arity/package.json @@ -0,0 +1,12 @@ +{ + "name": "babel-helper-get-function-arity", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-core/src/transformation/helpers/get-function-arity.js b/packages/babel-helper-get-function-arity/src/index.js similarity index 73% rename from packages/babel-core/src/transformation/helpers/get-function-arity.js rename to packages/babel-helper-get-function-arity/src/index.js index 581e695c42..2ad9bfbe6d 100644 --- a/packages/babel-core/src/transformation/helpers/get-function-arity.js +++ b/packages/babel-helper-get-function-arity/src/index.js @@ -2,7 +2,8 @@ import * as t from "babel-types"; -export default function ({ params }: { params: Array }): number { +export default function (node): number { + let params: Array = node.params; for (let i = 0; i < params.length; i++) { let param = params[i]; if (t.isAssignmentPattern(param) || t.isRestElement(param)) { diff --git a/packages/babel-helper-hoist-variables/README.md b/packages/babel-helper-hoist-variables/README.md new file mode 100644 index 0000000000..5b850971c8 --- /dev/null +++ b/packages/babel-helper-hoist-variables/README.md @@ -0,0 +1,5 @@ +# babel-helper-hoist-variables + +## Usage + +TODO diff --git a/packages/babel-helper-hoist-variables/package.json b/packages/babel-helper-hoist-variables/package.json new file mode 100644 index 0000000000..717f77ec36 --- /dev/null +++ b/packages/babel-helper-hoist-variables/package.json @@ -0,0 +1,12 @@ +{ + "name": "babel-helper-hoist-variables", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-helper-hoist-variables/src/index.js b/packages/babel-helper-hoist-variables/src/index.js new file mode 100644 index 0000000000..de36a3f591 --- /dev/null +++ b/packages/babel-helper-hoist-variables/src/index.js @@ -0,0 +1,45 @@ +import * as t from "babel-types"; + +let visitor = { + Scope(path, state) { + if (state.kind === "let") path.skip(); + }, + + Function(path) { + path.skip(); + }, + + VariableDeclaration(path, state) { + if (state.kind && path.node.kind !== state.kind) return; + + let nodes = []; + + let declarations: Array = path.get("declarations"); + let firstId; + + for (let declar of declarations) { + firstId = declar.node.id; + + if (declar.node.init) { + nodes.push(t.expressionStatement( + t.assignmentExpression("=", declar.node.id, declar.node.init) + )); + } + + for (let name in declar.getBindingIdentifiers()) { + state.emit(t.identifier(name), name); + } + } + + // for (var i in test) + if (path.parentPath.isFor({ left: path.node })) { + path.replaceWith(firstId); + } else { + path.replaceWithMultiple(nodes); + } + } +}; + +export default function (path, emit: Function, kind: "var" | "let" = "var") { + path.traverse(visitor, { kind, emit }); +} diff --git a/packages/babel-helper-optimise-call-expression/README.md b/packages/babel-helper-optimise-call-expression/README.md new file mode 100644 index 0000000000..f6847bf00b --- /dev/null +++ b/packages/babel-helper-optimise-call-expression/README.md @@ -0,0 +1,5 @@ +# babel-helper-optimise-call-expression + +## Usage + +TODO diff --git a/packages/babel-helper-optimise-call-expression/package.json b/packages/babel-helper-optimise-call-expression/package.json new file mode 100644 index 0000000000..5ed05d3b79 --- /dev/null +++ b/packages/babel-helper-optimise-call-expression/package.json @@ -0,0 +1,12 @@ +{ + "name": "babel-helper-optimise-call-expression", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-helper-optimise-call-expression/src/index.js b/packages/babel-helper-optimise-call-expression/src/index.js new file mode 100644 index 0000000000..75e26658fb --- /dev/null +++ b/packages/babel-helper-optimise-call-expression/src/index.js @@ -0,0 +1,16 @@ +import * as t from "babel-types"; + +export default function (callee, thisNode, args) { + if (args.length === 1 && t.isSpreadElement(args[0]) && t.isIdentifier(args[0].argument, { name: "arguments" })) { + // eg. super(...arguments); + return t.callExpression( + t.memberExpression(callee, t.identifier("apply")), + [thisNode, args[0].argument] + ); + } else { + return t.callExpression( + t.memberExpression(callee, t.identifier("call")), + [thisNode, ...args] + ); + } +} diff --git a/packages/babel-helper-regex/README.md b/packages/babel-helper-regex/README.md new file mode 100644 index 0000000000..bcdfccba94 --- /dev/null +++ b/packages/babel-helper-regex/README.md @@ -0,0 +1,5 @@ +# babel-helper-regex + +## Usage + +TODO diff --git a/packages/babel-helper-regex/package.json b/packages/babel-helper-regex/package.json new file mode 100644 index 0000000000..1563e36317 --- /dev/null +++ b/packages/babel-helper-regex/package.json @@ -0,0 +1,13 @@ +{ + "name": "babel-helper-regex", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.8.20", + "lodash": "^3.10.0", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-core/src/transformation/helpers/regex.js b/packages/babel-helper-regex/src/index.js similarity index 100% rename from packages/babel-core/src/transformation/helpers/regex.js rename to packages/babel-helper-regex/src/index.js diff --git a/packages/babel-helper-remap-async-to-generator/package.json b/packages/babel-helper-remap-async-to-generator/package.json index 04fc955d16..74d8cb1684 100644 --- a/packages/babel-helper-remap-async-to-generator/package.json +++ b/packages/babel-helper-remap-async-to-generator/package.json @@ -1,15 +1,14 @@ { "name": "babel-helper-remap-async-to-generator", - "version": "1.0.0", + "version": "5.10.32", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20", - "babel-traverse": "^5.8.20", - "babel-helper-explode-class": "^5.0.0", + "babel-runtime": "^5.10.32", + "babel-types": "^5.10.32", + "babel-traverse": "^5.10.32", "babel-helper-function-name": "^5.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-remap-async-to-generator/src/index.js b/packages/babel-helper-remap-async-to-generator/src/index.js index 2a42feabdf..53f7b4811b 100644 --- a/packages/babel-helper-remap-async-to-generator/src/index.js +++ b/packages/babel-helper-remap-async-to-generator/src/index.js @@ -1,8 +1,7 @@ /* @flow */ import type { NodePath } from "babel-traverse"; -import explodeClass from "babel-helper-explode-class"; -import { bare as nameMethod } from "babel-helper-function-name"; +import nameFunction from "babel-helper-function-name"; import * as t from "babel-types"; let awaitVisitor = { @@ -15,54 +14,45 @@ let awaitVisitor = { } }; -let referenceVisitor = { - ReferencedIdentifier({ node, scope }, state) { - let name = state.id.name; - if (node.name === name && scope.bindingIdentifierEquals(name, state.id)) { - return state.ref = state.ref || scope.generateUidIdentifier(name); - } - } -}; - export default function (path: NodePath, callId: Object) { let node = path.node; if (node.generator) return; + if (path.isClassMethod()) { + node.async = false; + + let body = node.body; + + let container = t.functionExpression(null, [], t.blockStatement(body.body), true); + container.shadow = true; + body.body = [t.returnStatement(t.callExpression(t.callExpression(callId, [container]), []))]; + return; + } + node.async = false; node.generator = true; path.traverse(awaitVisitor); let container = t.functionExpression(null, [], t.blockStatement([ - t.returnStatement(t.callExpression(callId, [node])) + t.returnStatement(t.callExpression(t.callExpression(callId, [node]), [])) ])); node.shadow = container; if (path.isFunctionDeclaration()) { let declar = t.variableDeclaration("let", [ - t.variableDeclarator(id, container) + t.variableDeclarator(t.identifier(node.id.name), container) ]); declar._blockHoist = true; - nameMethod({ + nameFunction({ node: container, parent: declar.declarations[0], scope: path.scope }); - + path.replaceWith(declar); } else { - node.type = "FunctionExpression"; - - if (path.parentPath.isMethodDefinition({ value: node })) { - // we're a class method - let classPath = path.parentPath.parentPath.parentPath; - explodeClass(classPath); - - // remove method since we've injected ourselves already - path.parentPath.remove(); - } else { - path.replaceWith(container); - } + path.replaceWith(container); } } diff --git a/packages/babel-helper-replace-supers/README.md b/packages/babel-helper-replace-supers/README.md new file mode 100644 index 0000000000..a6515daed4 --- /dev/null +++ b/packages/babel-helper-replace-supers/README.md @@ -0,0 +1,5 @@ +# babel-helper-replace-supers + +## Usage + +TODO diff --git a/packages/babel-helper-replace-supers/package.json b/packages/babel-helper-replace-supers/package.json new file mode 100644 index 0000000000..4c0c7dee57 --- /dev/null +++ b/packages/babel-helper-replace-supers/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-helper-replace-supers", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-helper-optimise-call-expression": "^5.8.20", + "babel-runtime": "^5.8.20", + "babel-traverse": "^5.8.20", + "babel-messages": "^5.8.20", + "babel-template": "^5.8.20", + "babel-types": "^5.8.20" + } +} diff --git a/packages/babel-core/src/transformation/helpers/replace-supers.js b/packages/babel-helper-replace-supers/src/index.js similarity index 58% rename from packages/babel-core/src/transformation/helpers/replace-supers.js rename to packages/babel-helper-replace-supers/src/index.js index 11e6eab71f..ca6793b658 100644 --- a/packages/babel-core/src/transformation/helpers/replace-supers.js +++ b/packages/babel-helper-replace-supers/src/index.js @@ -1,10 +1,13 @@ /* @flow */ -import type File from "../file"; import type { NodePath, Scope } from "babel-traverse"; +import optimiseCall from "babel-helper-optimise-call-expression"; import * as messages from "babel-messages"; import * as t from "babel-types"; +// ✌️ +let HARDCORE_THIS_REF = Symbol(); + function isIllegalBareSuper(node, parent) { if (!t.isSuper(node)) return false; if (t.isMemberExpression(parent, { computed: false })) return false; @@ -17,39 +20,61 @@ function isMemberExpressionSuper(node) { } let visitor = { + "ObjectMethod|ClassMethod"(path) { + path.skip(); + }, + + "FunctionDeclaration|FunctionExpression"(path) { + if (!path.inShadow("this")) { + path.skip(); + } + }, + + ReturnStatement(path, state) { + if (!path.inShadow("this")) { + state.returns.push(path); + } + }, + + ThisExpression(path, state) { + if (!path.node[HARDCORE_THIS_REF]) { + state.thises.push(path); + } + }, + enter(path, state) { - let topLevel = state.topLevel; - let self = state.self; + let callback = state.specHandle; + if (state.isLoose) callback = state.looseHandle; - if (path.isFunction() && !path.isArrowFunctionExpression()) { - // we need to call traverseLevel again so we're context aware - self.traverseLevel(path, false); - return path.skip(); + let isBareSuper = path.isCallExpression() && path.get("callee").isSuper(); + + let result = callback.call(state, path); + + if (result) { + state.hasSuper = true; } - if (path.isProperty({ method: true }) || path.isMethodDefinition()) { - // break on object methods - return path.skip(); + if (isBareSuper) { + state.bareSupers.push(path); } - let getThisReference = topLevel ? - // top level so `this` is the instance - t.thisExpression : - // not in the top level so we need to create a reference - self.getThisReference.bind(self); + if (result === true) { + path.requeue(); + } - let callback = self.specHandle; - if (self.isLoose) callback = self.looseHandle; - let result = callback.call(self, path, getThisReference); - if (result) path.hasSuper = true; - if (result === true) return; - return result; + if (result !== true && result) { + if (Array.isArray(result)) { + path.replaceWithMultiple(result); + } else { + path.replaceWith(result); + } + } } }; export default class ReplaceSupers { constructor(opts: Object, inClass?: boolean = false) { - this.topLevelThisReference = opts.topLevelThisReference; + this.forceSuperMemoisation = opts.forceSuperMemoisation; this.methodPath = opts.methodPath; this.methodNode = opts.methodNode; this.superRef = opts.superRef; @@ -57,12 +82,16 @@ export default class ReplaceSupers { this.hasSuper = false; this.inClass = inClass; this.isLoose = opts.isLoose; - this.scope = opts.scope; + this.scope = this.methodPath.scope; this.file = opts.file; this.opts = opts; + + this.bareSupers = []; + this.returns = []; + this.thises = []; } - topLevelThisReference: ?Object; + forceSuperMemoisation: boolean; methodPath: NodePath; methodNode: Object; superRef: Object; @@ -71,17 +100,16 @@ export default class ReplaceSupers { inClass: boolean; isLoose: boolean; scope: Scope; - file: File; + file; opts: { + forceSuperMemoisation: boolean; getObjetRef: Function; - topLevelThisReference: Object; methodPath: NodePath; methodNode: Object; superRef: Object; isStatic: boolean; isLoose: boolean; - scope: Scope; - file: File; + file: any; }; getObjectRef() { @@ -97,7 +125,7 @@ export default class ReplaceSupers { * */ - setSuperProperty(property: Object, value: Object, isComputed: boolean, thisExpression: Object): Object { + setSuperProperty(property: Object, value: Object, isComputed: boolean): Object { return t.callExpression( this.file.addHelper("set"), [ @@ -109,7 +137,7 @@ export default class ReplaceSupers { ), isComputed ? property : t.stringLiteral(property.name), value, - thisExpression + t.thisExpression() ] ); } @@ -123,7 +151,7 @@ export default class ReplaceSupers { * */ - getSuperProperty(property: Object, isComputed: boolean, thisExpression: Object): Object { + getSuperProperty(property: Object, isComputed: boolean): Object { return t.callExpression( this.file.addHelper("get"), [ @@ -134,63 +162,23 @@ export default class ReplaceSupers { ] ), isComputed ? property : t.stringLiteral(property.name), - thisExpression + t.thisExpression() ] ); } replace() { - this.traverseLevel(this.methodPath.get("value"), true); - } - - traverseLevel(path: NodePath, topLevel: boolean) { - let state = { self: this, topLevel: topLevel }; - path.traverse(visitor, state); - } - - getThisReference() { - if (this.topLevelThisReference) { - return this.topLevelThisReference; - } else { - let ref = this.topLevelThisReference = this.scope.generateUidIdentifier("this"); - this.methodNode.value.body.body.unshift(t.variableDeclaration("var", [ - t.variableDeclarator(this.topLevelThisReference, t.thisExpression()) - ])); - return ref; - } + this.methodPath.traverse(visitor, this); } getLooseSuperProperty(id: Object, parent: Object) { let methodNode = this.methodNode; - let methodName = methodNode.key; let superRef = this.superRef || t.identifier("Function"); if (parent.property === id) { return; } else if (t.isCallExpression(parent, { callee: id })) { - // super(); -> objectRef.prototype.MethodName.call(this); - parent.arguments.unshift(t.thisExpression()); - - if (methodName.name === "constructor") { - // constructor() { super(); } - if (parent.arguments.length === 2 && t.isSpreadElement(parent.arguments[1]) && t.isIdentifier(parent.arguments[1].argument, { name: "arguments" })) { - // special case single arguments spread - parent.arguments[1] = parent.arguments[1].argument; - return t.memberExpression(superRef, t.identifier("apply")); - } else { - return t.memberExpression(superRef, t.identifier("call")); - } - } else { - id = superRef; - - // foo() { super(); } - if (!methodNode.static) { - id = t.memberExpression(id, t.identifier("prototype")); - } - - id = t.memberExpression(id, methodName, methodNode.computed); - return t.memberExpression(id, t.identifier("call")); - } + return; } else if (t.isMemberExpression(parent) && !methodNode.static) { // super.test -> objectRef.prototype.test return t.memberExpression(superRef, t.identifier("prototype")); @@ -199,7 +187,7 @@ export default class ReplaceSupers { } } - looseHandle(path: NodePath, getThisReference: Function) { + looseHandle(path: NodePath) { let node = path.node; if (path.isSuper()) { return this.getLooseSuperProperty(node, path.parent); @@ -210,15 +198,15 @@ export default class ReplaceSupers { // super.test(); -> objectRef.prototype.MethodName.call(this); t.appendToMemberExpression(callee, t.identifier("call")); - node.arguments.unshift(getThisReference()); + node.arguments.unshift(t.thisExpression()); return true; } } - specHandleAssignmentExpression(ref, path, node, getThisReference) { + specHandleAssignmentExpression(ref, path, node) { if (node.operator === "=") { // super.name = "val"; -> _set(Object.getPrototypeOf(objectRef.prototype), "name", this); - return this.setSuperProperty(node.left.property, node.right, node.left.computed, getThisReference()); + return this.setSuperProperty(node.left.property, node.right, node.left.computed); } else { // super.age += 2; -> let _ref = super.age; super.age = _ref + 2; ref = ref || path.scope.generateUidIdentifier("ref"); @@ -233,8 +221,7 @@ export default class ReplaceSupers { } } - specHandle(path: NodePath, getThisReference: Function) { - let methodNode = this.methodNode; + specHandle(path: NodePath) { let property; let computed; let args; @@ -250,18 +237,7 @@ export default class ReplaceSupers { if (t.isCallExpression(node)) { let callee = node.callee; if (t.isSuper(callee)) { - // super(); -> _get(Object.getPrototypeOf(objectRef), "MethodName", this).call(this); - property = methodNode.key; - computed = methodNode.computed; - args = node.arguments; - - // bare `super` call is illegal inside non-constructors - // - https://esdiscuss.org/topic/super-call-in-methods - // - https://twitter.com/wycats/status/544553184396836864 - if (methodNode.key.name !== "constructor" || !this.inClass) { - let methodName = methodNode.key.name || "METHOD_NAME"; - throw this.file.buildCodeFrameError(node, messages.get("classesIllegalSuperCall", methodName)); - } + return; } else if (isMemberExpressionSuper(callee)) { // super.test(); -> _get(Object.getPrototypeOf(objectRef.prototype), "test", this).call(this); property = callee.property; @@ -276,35 +252,30 @@ export default class ReplaceSupers { let binary = t.binaryExpression(node.operator[0], node.argument, t.numberLiteral(1)); if (node.prefix) { // ++super.foo; -> super.foo += 1; - return this.specHandleAssignmentExpression(null, path, binary, getThisReference); + return this.specHandleAssignmentExpression(null, path, binary); } else { // super.foo++; -> let _ref = super.foo; super.foo = _ref + 1; let ref = path.scope.generateUidIdentifier("ref"); - return this.specHandleAssignmentExpression(ref, path, binary, getThisReference).concat(t.expressionStatement(ref)); + return this.specHandleAssignmentExpression(ref, path, binary).concat(t.expressionStatement(ref)); } } else if (t.isAssignmentExpression(node) && isMemberExpressionSuper(node.left)) { - return this.specHandleAssignmentExpression(null, path, node, getThisReference); + return this.specHandleAssignmentExpression(null, path, node); } if (!property) return; - thisReference = getThisReference(); let superProperty = this.getSuperProperty(property, computed, thisReference); + if (args) { - if (args.length === 1 && t.isSpreadElement(args[0])) { - // super(...arguments); - return t.callExpression( - t.memberExpression(superProperty, t.identifier("apply")), - [thisReference, args[0].argument] - ); - } else { - return t.callExpression( - t.memberExpression(superProperty, t.identifier("call")), - [thisReference, ...args] - ); - } + return this.optimiseCall(superProperty, args); } else { return superProperty; } } + + optimiseCall(callee, args) { + let thisNode = t.thisExpression(); + thisNode[HARDCORE_THIS_REF] = true; + return optimiseCall(callee, thisNode, args); + } } diff --git a/packages/babel-helpers/README.md b/packages/babel-helpers/README.md new file mode 100644 index 0000000000..77541b612a --- /dev/null +++ b/packages/babel-helpers/README.md @@ -0,0 +1 @@ +# babel-helpers diff --git a/packages/babel-helpers/package.json b/packages/babel-helpers/package.json new file mode 100644 index 0000000000..de46139c06 --- /dev/null +++ b/packages/babel-helpers/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-helpers", + "version": "6.0.6", + "description": "", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^6.0.6", + "babel-template": "^6.0.6" + } +} diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js new file mode 100644 index 0000000000..82353df622 --- /dev/null +++ b/packages/babel-helpers/src/helpers.js @@ -0,0 +1,389 @@ +import template from "babel-template"; + +export let _typeof = template(` + (function (obj) { + return obj && obj.constructor === Symbol ? "symbol" : typeof obj; + }); +`); + +export let typeofReactElement = template(` + (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7; +`); + +export let asyncToGenerator = template(` + (function (fn) { + return function () { + var gen = fn.apply(this, arguments); + + return new Promise(function (resolve, reject) { + var callNext = step.bind(null, "next"); + var callThrow = step.bind(null, "throw"); + + function step(key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + + if (info.done) { + resolve(value); + } else { + Promise.resolve(value).then(callNext, callThrow); + } + } + + callNext(); + }); + }; + }) +`); + + +export let classCallCheck = template(` + (function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }); +`); + +export let createClass = template(` + (function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i ++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + })() +`); + +export let defaultProps = template(` + (function (defaultProps, props) { + if (defaultProps) { + for (var propName in defaultProps) { + if (typeof props[propName] === "undefined") { + props[propName] = defaultProps[propName]; + } + } + } + return props; + }) +`); + + +export let defaults = template(` + (function (obj, defaults) { + var keys = Object.getOwnPropertyNames(defaults); + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + var value = Object.getOwnPropertyDescriptor(defaults, key); + if (value && value.configurable && obj[key] === undefined) { + Object.defineProperty(obj, key, value); + } + } + return obj; + }) +`); + +export let defineProperty = template(` + (function (obj, key, value) { + // Shortcircuit the slow defineProperty path when possible. + // We are trying to avoid issues where setters defined on the + // prototype cause side effects under the fast path of simple + // assignment. By checking for existence of the property with + // the in operator, we can optimize most of this overhead away. + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + }); +`); + +export let _extends = template(` + Object.assign || (function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + return target; + }) +`); + +export let get = template(` + (function get(object, property, receiver) { + if (object === null) object = Function.prototype; + + var desc = Object.getOwnPropertyDescriptor(object, property); + + if (desc === undefined) { + var parent = Object.getPrototypeOf(object); + + if (parent === null) { + return undefined; + } else { + return get(parent, property, receiver); + } + } else if ("value" in desc) { + return desc.value; + } else { + var getter = desc.get; + + if (getter === undefined) { + return undefined; + } + + return getter.call(receiver); + } + }); +`); + + +export let inherits = template(` + (function (subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + }) +`); + +export let _instanceof = template(` + (function (left, right) { + if (right != null && right[Symbol.hasInstance]) { + return right[Symbol.hasInstance](left); + } else { + return left instanceof right; + } + }); +`); + + +export let interopRequireDefault = template(` + (function (obj) { + return obj && obj.__esModule ? obj : { default: obj }; + }) +`); + +export let interopRequireWildcard = template(` + (function (obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; + } + } + newObj.default = obj; + return newObj; + } + }) +`); + +export let newArrowCheck = template(` + (function (innerThis, boundThis) { + if (innerThis !== boundThis) { + throw new TypeError("Cannot instantiate an arrow function"); + } + }); +`); + +export let objectDestructuringEmpty = template(` + (function (obj) { + if (obj == null) throw new TypeError("Cannot destructure undefined"); + }); +`); + +export let objectWithoutProperties = template(` + (function (obj, keys) { + var target = {}; + for (var i in obj) { + if (keys.indexOf(i) >= 0) continue; + if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; + target[i] = obj[i]; + } + return target; + }) +`); + +export let possibleConstructorReturn = template(` + (function (self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return call && (typeof call === "object" || typeof call === "function") ? call : self; + }); +`); + +export let selfGlobal = template(` + typeof global === "undefined" ? self : global +`); + +export let set = template(` + (function set(object, property, value, receiver) { + var desc = Object.getOwnPropertyDescriptor(object, property); + + if (desc === undefined) { + var parent = Object.getPrototypeOf(object); + + if (parent !== null) { + set(parent, property, value, receiver); + } + } else if ("value" in desc && desc.writable) { + desc.value = value; + } else { + var setter = desc.set; + + if (setter !== undefined) { + setter.call(receiver, value); + } + } + + return value; + }); +`); + +export let slicedToArray = template(` + (function () { + // Broken out into a separate function to avoid deoptimizations due to the try/catch for the + // array iterator case. + function sliceIterator(arr, i) { + // this is an expanded form of \`for...of\` that properly supports abrupt completions of + // iterators etc. variable names have been minimised to reduce the size of this massive + // helper. sometimes spec compliancy is annoying :( + // + // _n = _iteratorNormalCompletion + // _d = _didIteratorError + // _e = _iteratorError + // _i = _iterator + // _s = _step + + var _arr = []; + var _n = true; + var _d = false; + var _e = undefined; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"]) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + + return function (arr, i) { + if (Array.isArray(arr)) { + return arr; + } else if (Symbol.iterator in Object(arr)) { + return sliceIterator(arr, i); + } else { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + }; + })(); +`); + +export let slicedToArrayLoose = template(` + (function (arr, i) { + if (Array.isArray(arr)) { + return arr; + } else if (Symbol.iterator in Object(arr)) { + var _arr = []; + for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) { + _arr.push(_step.value); + if (i && _arr.length === i) break; + } + return _arr; + } else { + throw new TypeError("Invalid attempt to destructure non-iterable instance"); + } + }); +`); + +export let taggedTemplateLiteral = template(` + (function (strings, raw) { + return Object.freeze(Object.defineProperties(strings, { + raw: { value: Object.freeze(raw) } + })); + }); +`); + +export let taggedTemplateLiteralLoose = template(` + (function (strings, raw) { + strings.raw = raw; + return strings; + }); +`); + +export let temporalRef = template(` + (function (val, name, undef) { + if (val === undef) { + throw new ReferenceError(name + " is not defined - temporal dead zone"); + } else { + return val; + } + }) +`); + +export let temporalUndefined = template(` + ({}) +`); + +export let toArray = template(` + (function (arr) { + return Array.isArray(arr) ? arr : Array.from(arr); + }); +`); + +export let toConsumableArray = template(` + (function (arr) { + if (Array.isArray(arr)) { + for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; + return arr2; + } else { + return Array.from(arr); + } + }); +`); diff --git a/packages/babel-helpers/src/index.js b/packages/babel-helpers/src/index.js new file mode 100644 index 0000000000..7a83143ccc --- /dev/null +++ b/packages/babel-helpers/src/index.js @@ -0,0 +1,12 @@ +import * as helpers from "./helpers"; + +export function get(name) { + let fn = helpers[name] || helpers[`_${name}`]; + if (!fn) throw ReferenceError; + + return fn().expression; +} + +export let list = Object.keys(helpers).filter(name => name !== "__esModule"); + +export default get; diff --git a/packages/babel-messages/README.md b/packages/babel-messages/README.md new file mode 100644 index 0000000000..5307081ff3 --- /dev/null +++ b/packages/babel-messages/README.md @@ -0,0 +1 @@ +# babel-messages diff --git a/packages/babel-messages/package.json b/packages/babel-messages/package.json index a3a0c3c318..3fff027f91 100644 --- a/packages/babel-messages/package.json +++ b/packages/babel-messages/package.json @@ -1,10 +1,13 @@ { "name": "babel-messages", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", "license": "MIT", "repository": "babel/babel", - "main": "lib/index.js" -} + "main": "lib/index.js", + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-messages/src/index.js b/packages/babel-messages/src/index.js index 59a7c3e20c..53a769f1b1 100644 --- a/packages/babel-messages/src/index.js +++ b/packages/babel-messages/src/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import * as util from "util"; /** @@ -7,7 +9,6 @@ import * as util from "util"; export const MESSAGES = { tailCallReassignmentDeopt: "Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence", - JSXNamespacedTags: "Namespace tags are not supported. ReactJSX is not XML.", classesIllegalBareSuper: "Illegal use of bare super", classesIllegalSuperCall: "Direct super call is illegal in non-constructor, use super.$1() instead", scopeDuplicateDeclaration: "Duplicate declaration $1", @@ -36,23 +37,10 @@ export const MESSAGES = { traverseVerifyVisitorProperty: "You passed `traverse()` a visitor object with the property $1 that has the invalid property $2", traverseVerifyNodeType: "You gave us a visitor for the node type $1 but it's not a valid type", - pluginIllegalKind: "Illegal kind $1 for plugin $2", - pluginIllegalPosition: "Illegal position $1 for plugin $2", - pluginKeyCollision: "The plugin $1 collides with another of the same name", - pluginNotTransformer: "The plugin $1 didn't export a Plugin instance", - pluginUnknown: "Unknown plugin $1", - - pluginNotFile: "Plugin $1 is resolving to a different Babel version than what is performing the transformation.", - - pluginInvalidProperty: "Plugin $1 provided an invalid property of $2.", - pluginInvalidPropertyVisitor: `Define your visitor methods inside a \`visitor\` property like so: - - new Plugin("foobar", { - visitor: { - // define your visitor methods here! - } - }); -` + pluginNotObject: "Plugin $2 specified in $1 was expected to return an object when invoked but returned $3", + pluginNotFunction: "Plugin $2 specified in $1 was expected to return a function but returned $3", + pluginUnknown: "Unknown plugin $1 specified in $2 at $3", + pluginInvalidProperty: "Plugin $2 specified in $1 provided an invalid property of $3" }; /** @@ -60,7 +48,7 @@ export const MESSAGES = { */ export function get(key: string, ...args): string { - var msg = MESSAGES[key]; + let msg = MESSAGES[key]; if (!msg) throw new ReferenceError(`Unknown message ${JSON.stringify(key)}`); // stringify args diff --git a/packages/babel-plugin-external-helpers/package.json b/packages/babel-plugin-external-helpers/package.json index 61bc719e42..93cb2c7867 100644 --- a/packages/babel-plugin-external-helpers/package.json +++ b/packages/babel-plugin-external-helpers/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-external-helpers", - "version": "1.0.0", + "version": "5.10.32", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-async-functions/package.json b/packages/babel-plugin-syntax-async-functions/package.json index 9fce60af41..f6f0d06995 100644 --- a/packages/babel-plugin-syntax-async-functions/package.json +++ b/packages/babel-plugin-syntax-async-functions/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-async-functions", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of async functions", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-async-generators/README.md b/packages/babel-plugin-syntax-async-generators/README.md new file mode 100644 index 0000000000..330f8e2079 --- /dev/null +++ b/packages/babel-plugin-syntax-async-generators/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-async-generators + +Allow parsing of async generator functions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-async-generators +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-async-generators"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-async-generators script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-async-generators"] +}); +``` diff --git a/packages/babel-plugin-syntax-async-generators/package.json b/packages/babel-plugin-syntax-async-generators/package.json new file mode 100644 index 0000000000..e441079cee --- /dev/null +++ b/packages/babel-plugin-syntax-async-generators/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-plugin-syntax-async-generators", + "version": "1.0.0", + "description": "Allow parsing of async generator functions", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ], + "dependencies": { + "babel-runtime": "^5.8.20" + } +} diff --git a/packages/babel-plugin-syntax-async-generators/src/index.js b/packages/babel-plugin-syntax-async-generators/src/index.js new file mode 100644 index 0000000000..4064178ff1 --- /dev/null +++ b/packages/babel-plugin-syntax-async-generators/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("asyncGenerators"); + } + }; +} diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/.npmignore b/packages/babel-plugin-syntax-class-constructor-call/.npmignore similarity index 100% rename from packages/babel-plugin-transform-async-to-bluebird-coroutines/.npmignore rename to packages/babel-plugin-syntax-class-constructor-call/.npmignore diff --git a/packages/babel-plugin-syntax-class-constructor-call/README.md b/packages/babel-plugin-syntax-class-constructor-call/README.md new file mode 100644 index 0000000000..7ab9617ce2 --- /dev/null +++ b/packages/babel-plugin-syntax-class-constructor-call/README.md @@ -0,0 +1,35 @@ +# babel-plugin-syntax-class-construtor-call + +Allow parsing of do expressions. + +## Installation + +```sh +$ npm install babel-plugin-syntax-class-construtor-call +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["syntax-class-construtor-call"] +} +``` + +### Via CLI + +```sh +$ babel --plugins syntax-class-construtor-call script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["syntax-class-construtor-call"] +}); +``` diff --git a/packages/babel-plugin-syntax-class-constructor-call/package.json b/packages/babel-plugin-syntax-class-constructor-call/package.json new file mode 100644 index 0000000000..e35b99601e --- /dev/null +++ b/packages/babel-plugin-syntax-class-constructor-call/package.json @@ -0,0 +1,14 @@ +{ + "name": "babel-plugin-syntax-class-constructor-call", + "version": "1.0.0", + "description": "Allow parsing of class constructor calls", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ], + "dependencies": { + "babel-runtime": "^5.8.20" + } +} diff --git a/packages/babel-plugin-syntax-class-constructor-call/src/index.js b/packages/babel-plugin-syntax-class-constructor-call/src/index.js new file mode 100644 index 0000000000..d3839a279c --- /dev/null +++ b/packages/babel-plugin-syntax-class-constructor-call/src/index.js @@ -0,0 +1,7 @@ +export default function () { + return { + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("classConstructorCall"); + } + }; +} diff --git a/packages/babel-plugin-syntax-class-properties/package.json b/packages/babel-plugin-syntax-class-properties/package.json index edf59c1d57..00746a70c2 100644 --- a/packages/babel-plugin-syntax-class-properties/package.json +++ b/packages/babel-plugin-syntax-class-properties/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-class-properties", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of class properties", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-decorators/package.json b/packages/babel-plugin-syntax-decorators/package.json index 402281dcb8..8b65d57835 100644 --- a/packages/babel-plugin-syntax-decorators/package.json +++ b/packages/babel-plugin-syntax-decorators/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-decorators", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of decorators", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-do-expressions/package.json b/packages/babel-plugin-syntax-do-expressions/package.json index 2545e296aa..49e00f01ee 100644 --- a/packages/babel-plugin-syntax-do-expressions/package.json +++ b/packages/babel-plugin-syntax-do-expressions/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-do-expressions", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of do expressions", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-exponentiation-operator/package.json b/packages/babel-plugin-syntax-exponentiation-operator/package.json index f12524f751..31a8b38a96 100644 --- a/packages/babel-plugin-syntax-exponentiation-operator/package.json +++ b/packages/babel-plugin-syntax-exponentiation-operator/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-exponentiation-operator", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of the exponentiation operator", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-export-extensions/package.json b/packages/babel-plugin-syntax-export-extensions/package.json index 9b9a06bfbf..fb65a9721a 100644 --- a/packages/babel-plugin-syntax-export-extensions/package.json +++ b/packages/babel-plugin-syntax-export-extensions/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-export-extensions", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of export extensions", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-flow/package.json b/packages/babel-plugin-syntax-flow/package.json index ce8a7e48a3..3fd06a2d7a 100644 --- a/packages/babel-plugin-syntax-flow/package.json +++ b/packages/babel-plugin-syntax-flow/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-flow", - "version": "1.0.0", + "version": "5.10.32", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-function-bind/package.json b/packages/babel-plugin-syntax-function-bind/package.json index f71a332476..55db548815 100644 --- a/packages/babel-plugin-syntax-function-bind/package.json +++ b/packages/babel-plugin-syntax-function-bind/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-function-bind", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of function bind", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-jsx/package.json b/packages/babel-plugin-syntax-jsx/package.json index 144fe23dcd..25c10f2c69 100644 --- a/packages/babel-plugin-syntax-jsx/package.json +++ b/packages/babel-plugin-syntax-jsx/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-jsx", - "version": "1.0.0", + "version": "5.10.32", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-object-rest-spread/package.json b/packages/babel-plugin-syntax-object-rest-spread/package.json index 474bd23447..67b6f0cb55 100644 --- a/packages/babel-plugin-syntax-object-rest-spread/package.json +++ b/packages/babel-plugin-syntax-object-rest-spread/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-object-rest-spread", - "version": "1.0.0", + "version": "5.10.32", "description": "Allow parsing of object rest/spread", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-trailing-function-commas/package.json b/packages/babel-plugin-syntax-trailing-function-commas/package.json index a97ab921e0..ff1eda374b 100644 --- a/packages/babel-plugin-syntax-trailing-function-commas/package.json +++ b/packages/babel-plugin-syntax-trailing-function-commas/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-syntax-trailing-function-commas", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile trailing function commas to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-functions/package.json b/packages/babel-plugin-transform-async-functions/package.json index c78d4154f7..0145bf01cc 100644 --- a/packages/babel-plugin-transform-async-functions/package.json +++ b/packages/babel-plugin-transform-async-functions/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-async-functions", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile async functions to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-async-functions": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-functions/src/index.js b/packages/babel-plugin-transform-async-functions/src/index.js index 6845446a11..abe7b8a0f7 100644 --- a/packages/babel-plugin-transform-async-functions/src/index.js +++ b/packages/babel-plugin-transform-async-functions/src/index.js @@ -1,7 +1,5 @@ export default function () { return { - visitor: { - // your visitor methods go here - } + inherits: require("babel-plugin-syntax-async-functions") }; } diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md b/packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md deleted file mode 100644 index 6cf96b4373..0000000000 --- a/packages/babel-plugin-transform-async-to-bluebird-coroutines/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-async-to-bluebird-coroutines - -Turn async functions into a Bluebird coroutine - -## Installation - -```sh -$ npm install babel-plugin-transform-async-to-bluebird-coroutines -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-async-to-bluebird-coroutines"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-async-to-bluebird-coroutines script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-async-to-bluebird-coroutines"] -}); -``` diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json b/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json deleted file mode 100644 index 1a389fdebe..0000000000 --- a/packages/babel-plugin-transform-async-to-bluebird-coroutines/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "babel-plugin-transform-async-to-bluebird-coroutines", - "version": "1.0.0", - "description": "Turn async functions into a Bluebird coroutine", - "repository": "babel/babel", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" - ], - "dependencies": { - "babel-helper-remap-async-to-generator": "^5.0.0", - "babel-types": "^5.0.0" - } -} diff --git a/packages/babel-plugin-transform-async-to-generator/package.json b/packages/babel-plugin-transform-async-to-generator/package.json index 760520838c..0ee3c76258 100644 --- a/packages/babel-plugin-transform-async-to-generator/package.json +++ b/packages/babel-plugin-transform-async-to-generator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-to-generator", - "version": "1.0.0", + "version": "5.10.32", "description": "Turn async functions into ES2015 generators", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-remap-async-to-generator": "^5.0.0" + "babel-helper-remap-async-to-generator": "^5.10.32", + "babel-plugin-syntax-async-functions": "^5.10.32", + "babel-runtime": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-to-generator/src/index.js b/packages/babel-plugin-transform-async-to-generator/src/index.js index 63b1e3888b..ac28f6aae4 100644 --- a/packages/babel-plugin-transform-async-to-generator/src/index.js +++ b/packages/babel-plugin-transform-async-to-generator/src/index.js @@ -2,15 +2,13 @@ import remapAsyncToGenerator from "babel-helper-remap-async-to-generator"; export default function () { return { - manipulateOptions(opts, parserOpts) { - parserOpts.plugins.push("asyncFunctions"); - }, + inherits: require("babel-plugin-syntax-async-functions"), visitor: { Function(path, state) { if (!path.node.async || path.node.generator) return; - remapAsyncToGenerator(path, state.addHelper("async-to-generator")); + remapAsyncToGenerator(path, state.addHelper("asyncToGenerator")); } } }; diff --git a/packages/babel-plugin-transform-comprehensions/.npmignore b/packages/babel-plugin-transform-async-to-module-method/.npmignore similarity index 100% rename from packages/babel-plugin-transform-comprehensions/.npmignore rename to packages/babel-plugin-transform-async-to-module-method/.npmignore diff --git a/packages/babel-plugin-transform-async-to-module-method/README.md b/packages/babel-plugin-transform-async-to-module-method/README.md new file mode 100644 index 0000000000..08179cebee --- /dev/null +++ b/packages/babel-plugin-transform-async-to-module-method/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-async-to-module-method + +Turn async functions into a Bluebird coroutine + +## Installation + +```sh +$ npm install babel-plugin-transform-async-to-module-method +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-async-to-module-method"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-async-to-module-method script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-async-to-module-method"] +}); +``` diff --git a/packages/babel-plugin-transform-async-to-module-method/package.json b/packages/babel-plugin-transform-async-to-module-method/package.json new file mode 100644 index 0000000000..82c36dc177 --- /dev/null +++ b/packages/babel-plugin-transform-async-to-module-method/package.json @@ -0,0 +1,17 @@ +{ + "name": "babel-plugin-transform-async-to-module-method", + "version": "1.0.0", + "description": "Turn async functions into a module method", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ], + "dependencies": { + "babel-plugin-syntax-async-functions": "^5.0.0", + "babel-helper-remap-async-to-generator": "^5.0.0", + "babel-types": "^5.0.0", + "babel-runtime": "^5.8.20" + } +} diff --git a/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js b/packages/babel-plugin-transform-async-to-module-method/src/index.js similarity index 56% rename from packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js rename to packages/babel-plugin-transform-async-to-module-method/src/index.js index cb9edf5203..3b8039bffe 100644 --- a/packages/babel-plugin-transform-async-to-bluebird-coroutines/src/index.js +++ b/packages/babel-plugin-transform-async-to-module-method/src/index.js @@ -1,11 +1,8 @@ import remapAsyncToGenerator from "babel-helper-remap-async-to-generator"; -import * as t from "babel-types"; export default function () { return { - manipulateOptions(opts, parserOpts) { - parserOpts.plugins.push("asyncFunctions"); - }, + inherits: require("babel-plugin-syntax-async-functions"), visitor: { Function(path, state) { @@ -13,7 +10,7 @@ export default function () { remapAsyncToGenerator( path, - t.memberExpression(state.addImport("bluebird", null, "absolute"), t.identifier("coroutine")) + state.addImport(state.opts.module, state.opts.method) ); } } diff --git a/packages/babel-plugin-transform-constant-folding/.npmignore b/packages/babel-plugin-transform-class-constructor-call/.npmignore similarity index 100% rename from packages/babel-plugin-transform-constant-folding/.npmignore rename to packages/babel-plugin-transform-class-constructor-call/.npmignore diff --git a/packages/babel-plugin-transform-class-constructor-call/README.md b/packages/babel-plugin-transform-class-constructor-call/README.md new file mode 100644 index 0000000000..4176c46722 --- /dev/null +++ b/packages/babel-plugin-transform-class-constructor-call/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-class-construtor-call + +## Installation + +```sh +$ npm install babel-plugin-transform-class-construtor-call +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-class-construtor-call"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-class-construtor-call script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-class-construtor-call"] +}); +``` diff --git a/packages/babel-plugin-transform-class-constructor-call/package.json b/packages/babel-plugin-transform-class-constructor-call/package.json new file mode 100644 index 0000000000..5fa2199934 --- /dev/null +++ b/packages/babel-plugin-transform-class-constructor-call/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-plugin-transform-class-construtor-call", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ], + "dependencies": { + "babel-template": "^5.0.0", + "babel-plugin-syntax-class-constructor-call": "^5.0.0", + "babel-runtime": "^5.8.20" + } +} diff --git a/packages/babel-plugin-transform-class-constructor-call/src/index.js b/packages/babel-plugin-transform-class-constructor-call/src/index.js new file mode 100644 index 0000000000..25eb558433 --- /dev/null +++ b/packages/babel-plugin-transform-class-constructor-call/src/index.js @@ -0,0 +1,106 @@ +import template from "babel-template"; + +let buildWrapper = template(` + let CLASS_REF = CLASS; + var CALL_REF = CALL; + var WRAPPER_REF = function (...args) { + if (this instanceof WRAPPER_REF) { + return Reflect.construct(CLASS_REF, args); + } else { + return CALL_REF.apply(this, args); + } + }; + WRAPPER_REF.__proto__ = CLASS_REF; + WRAPPER_REF; +`); + +let buildSuperWrapper = template(` + let CLASS_REF = CLASS; + var WRAPPER_REF = function (...args) { + if (this instanceof WRAPPER_REF) { + return Reflect.construct(CLASS_REF, args); + } else { + return SUPER_REF.apply(this, args); + } + }; + WRAPPER_REF.__proto__ = CLASS_REF; + WRAPPER_REF; +`); + +export default function ({ types: t }) { + let ALREADY_VISITED = Symbol(); + + function findConstructorCall(path): ?Object { + let methods: Array = path.get("body.body"); + + for (let method of methods) { + if (method.node.kind === "constructorCall") { + return method; + } + } + + return null; + } + + function handleClassWithCall(constructorCall, classPath) { + let ref = classPath.node.id || classPath.scope.generateUidIdentifier("class"); + + classPath.replaceWithMultiple(buildWrapper({ + CLASS_REF: classPath.scope.generateUidIdentifier(ref.name), + CALL_REF: classPath.scope.generateUidIdentifier(`${ref.name}Call`), + CALL: t.functionExpression(null, constructorCall.node.params, constructorCall.node.body), + CLASS: t.toExpression(classPath.node), + WRAPPER_REF: ref + })); + + constructorCall.remove(); + } + + function handleClassWithSuper(path) { + // we could be inheriting from a class that has a call handler + let ref = path.node.id || path.scope.generateUidIdentifier("class"); + + let nodes = []; + let superRef; + + // we're going to be duplicating the reference to the super class so memoise it + // if necessary + if (path.get("superClass").isStatic()) { + superRef = path.node.superClass; + } else { + superRef = path.scope.generateUidIdentifier("super"); + nodes.push(t.variableDeclaration("var", [ + t.variableDeclarator(superRef, path.node.superClass) + ])); + path.node.superClass = superRef; + } + + path.replaceWithMultiple(nodes.concat(buildSuperWrapper({ + CLASS_REF: path.scope.generateUidIdentifier(ref.name), + SUPER_REF: superRef, + CLASS: t.toExpression(path.node), + WRAPPER_REF: ref + }))); + } + + return { + inherits: require("babel-plugin-syntax-class-constructor-call"), + + visitor: { + Class(path) { + if (path.node[ALREADY_VISITED]) return; + path.node[ALREADY_VISITED] = true; + + let constructorCall = findConstructorCall(path); + + if (constructorCall) { + handleClassWithCall(constructorCall, path); + } else if (path.has("superClass")) { + handleClassWithSuper(path); + } else { + return; + } + } + } + }; +} diff --git a/packages/babel-plugin-transform-class-properties/package.json b/packages/babel-plugin-transform-class-properties/package.json index 3fd49e2d99..8e571bfb93 100644 --- a/packages/babel-plugin-transform-class-properties/package.json +++ b/packages/babel-plugin-transform-class-properties/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-class-properties", - "version": "1.0.0", + "version": "5.10.32", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-class-properties": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-class-properties/src/index.js b/packages/babel-plugin-transform-class-properties/src/index.js index 6845446a11..0ee7a915ac 100644 --- a/packages/babel-plugin-transform-class-properties/src/index.js +++ b/packages/babel-plugin-transform-class-properties/src/index.js @@ -1,7 +1,141 @@ -export default function () { +// todo: define instead of assign + +export default function ({ types: t }) { + let findBareSupers = { + Super(path) { + if (path.parentPath.isCallExpression({ callee: path.node })) { + this.push(path.parentPath); + } + } + }; + + let referenceVisitor = { + ReferencedIdentifier(path) { + if (this.scope.hasOwnBinding(path.node.name)) { + this.collision = true; + path.skip(); + } + } + }; + return { + inherits: require("babel-plugin-syntax-class-properties"), + visitor: { - // your visitor methods go here + Class(path) { + let isDerived = !!path.node.superClass; + let constructor; + let props = []; + let body = path.get("body"); + + for (let path of body.get("body")) { + if (path.isClassProperty()) { + props.push(path); + } else if (path.isClassMethod({ kind: "constructor" })) { + constructor = path; + } + } + + if (!props.length) return; + + let nodes = []; + let ref; + + if (path.isClassExpression()) { + ref = path.scope.generateUidIdentifier(); + } else { // path.isClassDeclaration() + ref = path.node.id; + } + + let instanceBody = []; + + for (let prop of props) { + let propNode = prop.node; + if (propNode.decorators) continue; + if (!propNode.value) continue; + + let isStatic = propNode.static; + + if (isStatic) { + nodes.push(t.expressionStatement( + t.assignmentExpression("=", t.memberExpression(ref, propNode.key), propNode.value) + )); + } else { + instanceBody.push(t.expressionStatement( + t.assignmentExpression("=", t.memberExpression(t.thisExpression(), propNode.key), propNode.value) + )); + } + } + + if (instanceBody.length) { + if (!constructor) { + let newConstructor = t.classMethod("constructor", t.identifier("constructor"), [], t.blockStatement([])); + if (isDerived) { + newConstructor.params = [t.restElement(t.identifier("args"))]; + newConstructor.body.body.push( + t.returnStatement( + t.callExpression( + t.super(), + [t.spreadElement(t.identifier("args"))] + ) + ) + ); + } + [constructor] = body.unshiftContainer("body", newConstructor); + } + + let collisionState = { + collision: false, + scope: constructor.scope + }; + + for (let prop of props) { + prop.traverse(referenceVisitor, collisionState); + if (collisionState.collision) break; + } + + if (collisionState.collision) { + let initialisePropsRef = path.scope.generateUidIdentifier("initialiseProps"); + + nodes.push(t.variableDeclaration("var", [ + t.variableDeclarator( + initialisePropsRef, + t.functionExpression(null, [], t.blockStatement(instanceBody)) + ) + ])); + + instanceBody = [ + t.expressionStatement( + t.callExpression(t.memberExpression(initialisePropsRef, t.identifier("call")), [t.thisExpression()]) + ) + ]; + } + + // + + if (isDerived) { + let bareSupers = [] + constructor.traverse(findBareSupers, bareSupers); + for (let bareSuper of bareSupers) { + bareSuper.insertAfter(instanceBody); + } + } else { + constructor.get("body").unshiftContainer("body", instanceBody); + } + } + + for (let prop of props) { + prop.remove(); + } + + if (!nodes.length) return; + + if (path.isClassExpression()) { + nodes.push(t.expressionStatement(ref)); + } + + path.insertAfter(nodes); + } } }; } diff --git a/packages/babel-plugin-transform-comprehensions/README.md b/packages/babel-plugin-transform-comprehensions/README.md deleted file mode 100644 index 96577a2e44..0000000000 --- a/packages/babel-plugin-transform-comprehensions/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-comprehensions - -Compile array and generator comprehensions to ES5 - -## Installation - -```sh -$ npm install babel-plugin-transform-comprehensions -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-comprehensions"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-comprehensions script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-comprehensions"] -}); -``` diff --git a/packages/babel-plugin-transform-comprehensions/package.json b/packages/babel-plugin-transform-comprehensions/package.json deleted file mode 100644 index 65d8471a42..0000000000 --- a/packages/babel-plugin-transform-comprehensions/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "babel-plugin-transform-comprehensions", - "version": "1.0.0", - "description": "Compile array and generator comprehensions to ES5", - "repository": "babel/babel", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" - ] -} diff --git a/packages/babel-plugin-transform-comprehensions/src/index.js b/packages/babel-plugin-transform-comprehensions/src/index.js deleted file mode 100644 index 6845446a11..0000000000 --- a/packages/babel-plugin-transform-comprehensions/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function () { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-transform-constant-folding/README.md b/packages/babel-plugin-transform-constant-folding/README.md deleted file mode 100644 index 4e54697dd5..0000000000 --- a/packages/babel-plugin-transform-constant-folding/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-constant-folding - -Compile static constants (ie. code that we can statically determine to be constant at runtime) - -## Installation - -```sh -$ npm install babel-plugin-transform-constant-folding -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-constant-folding"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-constant-folding script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-constant-folding"] -}); -``` diff --git a/packages/babel-plugin-transform-constant-folding/package.json b/packages/babel-plugin-transform-constant-folding/package.json deleted file mode 100644 index c0a30610ec..0000000000 --- a/packages/babel-plugin-transform-constant-folding/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "babel-plugin-transform-constant-folding", - "version": "1.0.1", - "description": "Compile static constants (ie. code that we can statically determine to be constant at runtime)", - "repository": "babel/babel", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" - ] -} diff --git a/packages/babel-plugin-transform-constant-folding/src/index.js b/packages/babel-plugin-transform-constant-folding/src/index.js deleted file mode 100644 index 885f285ac8..0000000000 --- a/packages/babel-plugin-transform-constant-folding/src/index.js +++ /dev/null @@ -1,69 +0,0 @@ -export default function ({ types: t }) { - return { - visitor: { - AssignmentExpression() { - var left = this.get("left"); - if (!left.isIdentifier()) return; - - var binding = this.scope.getBinding(left.node.name); - if (!binding || binding.hasDeoptValue) return; - - var evaluated = this.get("right").evaluate(); - if (evaluated.confident) { - binding.setValue(evaluated.value); - } else { - binding.deoptValue(); - } - }, - - IfStatement(path) { - var evaluated = path.get("test").evaluate(); - if (!evaluated.confident) { - // todo: deopt binding values for constant violations inside - return path.skip(); - } - - if (evaluated.value) { - path.skipKey("alternate"); - } else { - path.skipKey("consequent"); - } - }, - - Scopable: { - enter(path) { - var funcScope = path.scope.getFunctionParent(); - - for (var name in path.scope.bindings) { - var binding = path.scope.bindings[name]; - var deopt = false; - - for (let path of (binding.constantViolations: Array)) { - var funcViolationScope = path.scope.getFunctionParent(); - if (funcViolationScope !== funcScope) { - deopt = true; - break; - } - } - - if (deopt) binding.deoptValue(); - } - }, - - exit(path) { - for (var name in path.scope.bindings) { - var binding = path.scope.bindings[name]; - binding.clearValue(); - } - } - }, - - Expression: { - exit(path) { - var res = path.evaluate(); - if (res.confident) return t.valueToNode(res.value); - } - } - } - }; -} diff --git a/packages/babel-plugin-transform-dead-code-elimination/README.md b/packages/babel-plugin-transform-dead-code-elimination/README.md deleted file mode 100644 index d5c9c10eb8..0000000000 --- a/packages/babel-plugin-transform-dead-code-elimination/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-dead-code-elimination - -Eliminate dead code - -## Installation - -```sh -$ npm install babel-plugin-transform-dead-code-elimination -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-dead-code-elimination"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-dead-code-elimination script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-dead-code-elimination"] -}); -``` diff --git a/packages/babel-plugin-transform-dead-code-elimination/package.json b/packages/babel-plugin-transform-dead-code-elimination/package.json deleted file mode 100644 index ccae3de84f..0000000000 --- a/packages/babel-plugin-transform-dead-code-elimination/package.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "babel-plugin-transform-dead-code-elimination", - "version": "1.0.2", - "description": "Eliminate dead code", - "repository": "babel/babel", - "license": "MIT", - "main": "lib/index.js", - "keywords": [ - "babel-plugin" - ] -} diff --git a/packages/babel-plugin-transform-dead-code-elimination/src/index.js b/packages/babel-plugin-transform-dead-code-elimination/src/index.js deleted file mode 100644 index 6a2a4478e9..0000000000 --- a/packages/babel-plugin-transform-dead-code-elimination/src/index.js +++ /dev/null @@ -1,152 +0,0 @@ -export default function ({ types: t }) { - function toStatements(node) { - if (t.isBlockStatement(node)) { - var hasBlockScoped = false; - - for (var i = 0; i < node.body.length; i++) { - var bodyNode = node.body[i]; - if (t.isBlockScoped(bodyNode)) hasBlockScoped = true; - } - - if (!hasBlockScoped) { - return node.body; - } - } - - return node; - } - - var visitor = { - ReferencedIdentifier(path) { - var { node, scope } = path; - - var binding = scope.getBinding(node.name); - if (!binding || binding.references > 1 || !binding.constant) return; - if (binding.kind === "param" || binding.kind === "module") return; - if (t.isExportDeclaration(binding.path.parent)) return; - - var replacement = binding.path.node; - if (t.isVariableDeclarator(replacement)) { - replacement = replacement.init; - } - if (!replacement) return; - - // ensure it's a "pure" type - if (!scope.isPure(replacement, true)) return; - - if (t.isClass(replacement) || t.isFunction(replacement)) { - // don't change this if it's in a different scope, this can be bad - // for performance since it may be inside a loop or deeply nested in - // hot code - if (binding.path.scope.parent !== scope) return; - } - - if (path.findParent((path) => path.node === replacement)) { - return; - } - - t.toExpression(replacement); - scope.removeBinding(node.name); - binding.path.remove(); - return replacement; - }, - - "ClassDeclaration|FunctionDeclaration"(path) { - var binding = path.scope.getBinding(path.node.id.name); - if (binding && !binding.referenced) { - path.remove(); - } - }, - - VariableDeclarator({ node, scope }) { - if (!t.isIdentifier(node.id) || !scope.isPure(node.init, true)) return; - visitor["ClassDeclaration|FunctionDeclaration"].apply(this, arguments); - }, - - ConditionalExpression(path) { - var evaluateTest = path.get("test").evaluateTruthy(); - if (evaluateTest === true) { - return path.node.consequent; - } else if (evaluateTest === false) { - return path.node.alternate; - } - }, - - BlockStatement(path) { - var paths: Array = path.get("body"); - - var purge = false; - - for (let path of paths) { - if (!purge && path.isCompletionStatement()) { - purge = true; - continue; - } - - if (purge && !path.isFunctionDeclaration()) { - path.remove(); - } - } - }, - - IfStatement: { - exit(path) { - var { node } = path; - var consequent = node.consequent; - var alternate = node.alternate; - var test = node.test; - - var evaluateTest = path.get("test").evaluateTruthy(); - - // we can check if a test will be truthy 100% and if so then we can inline - // the consequent and completely ignore the alternate - // - // if (true) { foo; } -> { foo; } - // if ("foo") { foo; } -> { foo; } - // - - if (evaluateTest === true) { - return toStatements(consequent); - } - - // we can check if a test will be falsy 100% and if so we can inline the - // alternate if there is one and completely remove the consequent - // - // if ("") { bar; } else { foo; } -> { foo; } - // if ("") { bar; } -> - // - - if (evaluateTest === false) { - if (alternate) { - return toStatements(alternate); - } else { - return path.remove(); - } - } - - // remove alternate blocks that are empty - // - // if (foo) { foo; } else {} -> if (foo) { foo; } - // - - if (t.isBlockStatement(alternate) && !alternate.body.length) { - alternate = node.alternate = null; - } - - // if the consequent block is empty turn alternate blocks into a consequent - // and flip the test - // - // if (foo) {} else { bar; } -> if (!foo) { bar; } - // - - if (t.isBlockStatement(consequent) && !consequent.body.length && t.isBlockStatement(alternate) && alternate.body.length) { - node.consequent = node.alternate; - node.alternate = null; - node.test = t.unaryExpression("!", test, true); - } - } - } - }; - - return { visitor }; -} diff --git a/packages/babel-plugin-transform-decorators/package.json b/packages/babel-plugin-transform-decorators/package.json index d42435aa62..4d5408a0ac 100644 --- a/packages/babel-plugin-transform-decorators/package.json +++ b/packages/babel-plugin-transform-decorators/package.json @@ -1,11 +1,19 @@ { "name": "babel-plugin-transform-decorators", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile class and object decorators to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-types": "^5.10.32", + "babel-helper-define-map": "^5.0.0", + "babel-plugin-syntax-decorators": "^5.10.32", + "babel-helper-explode-class": "^5.0.0", + "babel-template": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-decorators/src/index.js b/packages/babel-plugin-transform-decorators/src/index.js index 6845446a11..dbad41c823 100644 --- a/packages/babel-plugin-transform-decorators/src/index.js +++ b/packages/babel-plugin-transform-decorators/src/index.js @@ -1,7 +1,111 @@ -export default function () { +import template from "babel-template"; +import explodeClass from "babel-helper-explode-class"; + +let buildClassDecorator = template(` + CLASS_REF = DECORATOR(CLASS_REF) || CLASS_REF; +`); + +export default function ({ types: t }) { + function cleanDecorators(decorators) { + return decorators.reverse().map(dec => dec.expression); + } + + function transformClass(path, ref, state) { + let nodes = []; + + state; + + let classDecorators = path.node.decorators; + if (classDecorators) { + path.node.decorators = null; + classDecorators = cleanDecorators(classDecorators); + + for (let decorator of classDecorators) { + nodes.push(buildClassDecorator({ + CLASS_REF: ref, + DECORATOR: decorator + })); + } + } + + let map = Object.create(null); + + for (let method of path.get("body.body")) { + let decorators = method.node.decorators; + if (!decorators) continue; + + let alias = t.toKeyAlias(method.node); + map[alias] = map[alias] || []; + map[alias].push(method.node); + + method.remove(); + } + + for (let alias in map) { + let items = map[alias]; + + items; + } + + return nodes; + } + + function hasDecorators(path) { + if (path.isClass()) { + if (path.node.decorators) return true; + + for (let method of (path.node.body.body: Array)) { + if (method.decorators) { + return true; + } + } + } else if (path.isObjectExpression()) { + for (let prop of (path.node.properties: Array)) { + if (prop.decorators) { + return true; + } + } + } + + return false; + } + return { + inherits: require("babel-plugin-syntax-decorators"), + visitor: { - // your visitor methods go here + ClassExpression(path) { + if (!hasDecorators(path)) return; + explodeClass(path); + + let ref = path.scope.generateDeclaredUidIdentifier("ref"); + let nodes = []; + + nodes.push(t.assignmentExpression("=", ref, path.node)); + + nodes = nodes.concat(transformClass(path, ref, this)); + + nodes.push(ref); + + path.replaceWith(t.sequenceExpression(nodes)); + }, + + ClassDeclaration(path) { + if (!hasDecorators(path)) return; + explodeClass(path); + + let ref = path.node.id; + let nodes = []; + + nodes = nodes.concat(transformClass(path, ref, this).map(expr => t.expressionStatement(expr))); + nodes.push(t.expressionStatement(ref)); + + path.insertAfter(nodes); + }, + + ObjectExpression(path) { + if (!hasDecorators(path)) return; + } } }; } diff --git a/packages/babel-plugin-transform-do-expressions/package.json b/packages/babel-plugin-transform-do-expressions/package.json index a9bd561141..ec4f747f74 100644 --- a/packages/babel-plugin-transform-do-expressions/package.json +++ b/packages/babel-plugin-transform-do-expressions/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-do-expressions", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile do expressions to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-do-expressions": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-do-expressions/src/index.js b/packages/babel-plugin-transform-do-expressions/src/index.js index 6845446a11..8bfe9c0dc5 100644 --- a/packages/babel-plugin-transform-do-expressions/src/index.js +++ b/packages/babel-plugin-transform-do-expressions/src/index.js @@ -1,7 +1,16 @@ export default function () { return { + inherits: require("babel-plugin-syntax-do-expressions"), + visitor: { - // your visitor methods go here + DoExpression(path) { + let body = path.node.body.body; + if (body.length) { + path.replaceWithMultiple(body); + } else { + path.replaceWith(path.scope.buildUndefinedNode()); + } + } } }; } diff --git a/packages/babel-plugin-transform-es2015-arrow-functions/package.json b/packages/babel-plugin-transform-es2015-arrow-functions/package.json index 42eabb2309..0f06fbc04b 100644 --- a/packages/babel-plugin-transform-es2015-arrow-functions/package.json +++ b/packages/babel-plugin-transform-es2015-arrow-functions/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-arrow-functions", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 arrow functions to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js b/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js index 017853c983..1d4c91fee7 100644 --- a/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js +++ b/packages/babel-plugin-transform-es2015-arrow-functions/src/index.js @@ -3,24 +3,27 @@ export default function ({ types: t }) { visitor: { ArrowFunctionExpression(path, state) { if (state.opts.spec) { - if (path.node.shadow) return; - path.node.shadow = { this: false }; + let { node } = path; + if (node.shadow) return; - var boundThis = t.thisExpression(); + node.shadow = { this: false }; + node.type = "FunctionExpression"; + + let boundThis = t.thisExpression(); boundThis._forceShadow = path; // make sure that arrow function won't be instantiated path.ensureBlock(); path.get("body").unshiftContainer( "body", - t.expressionStatement(t.callExpression(state.addHelper("new-arrow-check"), [ + t.expressionStatement(t.callExpression(state.addHelper("newArrowCheck"), [ t.thisExpression(), boundThis ])) ); path.replaceWith(t.callExpression( - t.memberExpression(path.node, t.identifier("bind")), + t.memberExpression(node, t.identifier("bind")), [t.thisExpression()] )); } else { diff --git a/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json index b23f5f3ff4..23c57a8c6c 100644 --- a/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-block-scoped-functions", - "version": "1.0.4", + "version": "5.10.32", "description": "Babel plugin to ensure function declarations at the block level are block scoped", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js b/packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js index 192df08324..a1aac15dc3 100644 --- a/packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/src/index.js @@ -1,13 +1,12 @@ export default function ({ types: t }) { function statementList(key, path) { - var paths: Array = path.get(key); + let paths: Array = path.get(key); for (let path of paths) { - var func = path.node; - + let func = path.node; if (!path.isFunctionDeclaration()) continue; - var declar = t.variableDeclaration("let", [ + let declar = t.variableDeclaration("let", [ t.variableDeclarator(func.id, t.toExpression(func)) ]); @@ -23,16 +22,17 @@ export default function ({ types: t }) { return { visitor: { - BlockStatement(node, parent) { - if ((t.isFunction(parent) && parent.body === node) || t.isExportDeclaration(parent)) { + BlockStatement(path) { + let { node, parent } = path; + if (t.isFunction(parent, { body: node }) || t.isExportDeclaration(parent)) { return; } - statementList("body", this); + statementList("body", path); }, - SwitchCase() { - statementList("consequent", this); + SwitchCase(path) { + statementList("consequent", path); } } }; diff --git a/packages/babel-plugin-transform-es2015-block-scoping/package.json b/packages/babel-plugin-transform-es2015-block-scoping/package.json index 86ab3ac07a..e675853033 100644 --- a/packages/babel-plugin-transform-es2015-block-scoping/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoping/package.json @@ -1,11 +1,18 @@ { "name": "babel-plugin-transform-es2015-block-scoping", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", + "dependencies": { + "babel-traverse": "^5.10.32", + "babel-types": "^5.10.32", + "babel-template": "^5.10.32", + "lodash": "^3.10.0", + "babel-runtime": "^5.10.32" + }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoping/src/index.js b/packages/babel-plugin-transform-es2015-block-scoping/src/index.js index 6845446a11..1167b0073b 100644 --- a/packages/babel-plugin-transform-es2015-block-scoping/src/index.js +++ b/packages/babel-plugin-transform-es2015-block-scoping/src/index.js @@ -1,7 +1,657 @@ +import type NodePath from "babel-traverse"; +import type Scope from "babel-traverse"; +import type File from "../../../file"; +import traverse from "babel-traverse"; +import { visitor as tdzVisitor } from "./tdz"; +import * as t from "babel-types"; +import values from "lodash/object/values"; +import extend from "lodash/object/extend"; +import template from "babel-template"; + export default function () { return { visitor: { - // your visitor methods go here + VariableDeclaration(path, file) { + let { node, parent, scope } = path; + if (!isLet(node, parent, scope)) return; + + if (isLetInitable(node) && node._tdzThis) { + let nodes = [node]; + + for (let i = 0; i < node.declarations.length; i++) { + let decl = node.declarations[i]; + if (decl.init) { + let assign = t.assignmentExpression("=", decl.id, decl.init); + assign._ignoreBlockScopingTDZ = true; + nodes.push(t.expressionStatement(assign)); + } + decl.init = file.addHelper("temporalUndefined"); + } + + node._blockHoist = 2; + + if (path.isCompletionRecord()) { + // ensure we don't break completion record semantics by returning + // the initialiser of the last declarator + nodes.push(t.expressionStatement(scope.buildUndefinedNode())); + } + + path.replaceWithMultiple(nodes); + } + }, + + Loop(path, file) { + let { node, parent, scope } = path; + + let init = node.left || node.init; + if (isLet(init, node, scope)) { + t.ensureBlock(node); + node.body._letDeclarators = [init]; + } + + let blockScoping = new BlockScoping(path, path.get("body"), parent, scope, file); + let replace = blockScoping.run(); + if (replace) path.replaceWith(replace); + }, + + "BlockStatement|Program"(path, file) { + if (!t.isLoop(path.parent)) { + let blockScoping = new BlockScoping(null, path, path.parent, path.scope, file); + blockScoping.run(); + } + } } }; } + +let buildRetCheck = template(` + if (typeof RETURN === "object") return RETURN.v; +`); + +function isLet(node, parent, scope) { + if (!t.isVariableDeclaration(node)) return false; + if (node._let) return true; + if (node.kind !== "let") return false; + + // https://github.com/babel/babel/issues/255 + if (isLetInitable(node, parent)) { + for (let i = 0; i < node.declarations.length; i++) { + let declar = node.declarations[i]; + declar.init = declar.init || scope.buildUndefinedNode(); + } + } + + node._let = true; + node.kind = "var"; + return true; +} + +function isLetInitable(node, parent) { + return !t.isFor(parent) || !t.isFor(parent, { left: node }); +} + +function isVar(node, parent, scope) { + return t.isVariableDeclaration(node, { kind: "var" }) && !isLet(node, parent, scope); +} + +function standardizeLets(declars) { + for (let declar of (declars: Array)) { + delete declar._let; + } +} + +function replace(path, node, scope, remaps) { + let remap = remaps[node.name]; + if (!remap) return; + + let ownBinding = scope.getBindingIdentifier(node.name); + if (ownBinding === remap.binding) { + node.name = remap.uid; + } else { + // scope already has it's own binding that doesn't + // match the one we have a stored replacement for + if (path) path.skip(); + } +} + +let replaceVisitor = { + ReferencedIdentifier(path, remaps) { + replace(path, path.node, path.scope, remaps); + }, + + AssignmentExpression(path, remaps) { + let ids = path.getBindingIdentifiers(); + for (let name in ids) { + replace(null, ids[name], path.scope, remaps); + } + }, +}; + +function traverseReplace(node, parent, scope, remaps) { + if (t.isIdentifier(node)) { + replace(node, parent, scope, remaps); + } + + if (t.isAssignmentExpression(node)) { + let ids = t.getBindingIdentifiers(node); + for (let name in ids) { + replace(ids[name], parent, scope, remaps); + } + } + + scope.traverse(node, replaceVisitor, remaps); +} + +let letReferenceBlockVisitor = traverse.visitors.merge([{ + Function(path, state) { + path.traverse(letReferenceFunctionVisitor, state); + return path.skip(); + } +}, tdzVisitor]); + +let letReferenceFunctionVisitor = traverse.visitors.merge([{ + ReferencedIdentifier(path, state) { + let ref = state.letReferences[path.node.name]; + + // not a part of our scope + if (!ref) return; + + // this scope has a variable with the same name so it couldn't belong + // to our let scope + let localBinding = path.scope.getBindingIdentifier(path.node.name); + if (localBinding && localBinding !== ref) return; + + state.closurify = true; + } +}, tdzVisitor]); + +let hoistVarDeclarationsVisitor = { + enter(path, self) { + let { node, parent, scope } = path; + + if (path.isForStatement()) { + if (isVar(node.init, node, scope)) { + let nodes = self.pushDeclar(node.init); + if (nodes.length === 1) { + node.init = nodes[0]; + } else { + node.init = t.sequenceExpression(nodes); + } + } + } else if (path.isFor()) { + if (isVar(node.left, node, scope)) { + self.pushDeclar(node.left); + node.left = node.left.declarations[0].id; + } + } else if (isVar(node, parent, scope)) { + path.replaceWithMultiple(self.pushDeclar(node).map(t.expressionStatement)); + } else if (path.isFunction()) { + return path.skip(); + } + } +}; + +let loopLabelVisitor = { + LabeledStatement({ node }, state) { + state.innerLabels.push(node.label.name); + } +}; + +let continuationVisitor = { + enter(path, state) { + if (path.isAssignmentExpression() || path.isUpdateExpression()) { + let bindings = path.getBindingIdentifiers(); + for (let name in bindings) { + if (state.outsideReferences[name] !== path.scope.getBindingIdentifier(name)) continue; + state.reassignments[name] = true; + } + } + } +}; + +function loopNodeTo(node) { + if (t.isBreakStatement(node)) { + return "break"; + } else if (t.isContinueStatement(node)) { + return "continue"; + } +} + +let loopVisitor = { + Loop(path, state) { + let oldIgnoreLabeless = state.ignoreLabeless; + state.ignoreLabeless = true; + path.traverse(loopVisitor, state); + state.ignoreLabeless = oldIgnoreLabeless; + path.skip(); + }, + + Function(path) { + path.skip(); + }, + + SwitchCase(path, state) { + let oldInSwitchCase = state.inSwitchCase; + state.inSwitchCase = true; + path.traverse(loopVisitor, state); + state.inSwitchCase = oldInSwitchCase; + path.skip(); + }, + + "BreakStatement|ContinueStatement|ReturnStatement"(path, state) { + let { node, parent, scope } = path; + if (node[this.LOOP_IGNORE]) return; + + let replace; + let loopText = loopNodeTo(node); + + if (loopText) { + if (node.label) { + // we shouldn't be transforming this because it exists somewhere inside + if (state.innerLabels.indexOf(node.label.name) >= 0) { + return; + } + + loopText = `${loopText}|${node.label.name}`; + } else { + // we shouldn't be transforming these statements because + // they don't refer to the actual loop we're scopifying + if (state.ignoreLabeless) return; + + // + if (state.inSwitchCase) return; + + // break statements mean something different in this context + if (t.isBreakStatement(node) && t.isSwitchCase(parent)) return; + } + + state.hasBreakContinue = true; + state.map[loopText] = node; + replace = t.stringLiteral(loopText); + } + + if (path.isReturnStatement()) { + state.hasReturn = true; + replace = t.objectExpression([ + t.objectProperty(t.identifier("v"), node.argument || scope.buildUndefinedNode()) + ]); + } + + if (replace) { + replace = t.returnStatement(replace); + replace[this.LOOP_IGNORE] = true; + path.skip(); + path.replaceWith(t.inherits(replace, node)); + } + } +}; + +class BlockScoping { + constructor(loopPath?: NodePath, blockPath: NodePath, parent: Object, scope: Scope, file: File) { + this.parent = parent; + this.scope = scope; + this.file = file; + + this.blockPath = blockPath; + this.block = blockPath.node; + + this.outsideLetReferences = Object.create(null); + this.hasLetReferences = false; + this.letReferences = Object.create(null); + this.body = []; + + if (loopPath) { + this.loopParent = loopPath.parent; + this.loopLabel = t.isLabeledStatement(this.loopParent) && this.loopParent.label; + this.loopPath = loopPath; + this.loop = loopPath.node; + } + } + + /** + * Start the ball rolling. + */ + + run() { + let block = this.block; + if (block._letDone) return; + block._letDone = true; + + let needsClosure = this.getLetReferences(); + + // this is a block within a `Function/Program` so we can safely leave it be + if (t.isFunction(this.parent) || t.isProgram(this.block)) return; + + // we can skip everything + if (!this.hasLetReferences) return; + + if (needsClosure) { + this.wrapClosure(); + } else { + this.remap(); + } + + if (this.loopLabel && !t.isLabeledStatement(this.loopParent)) { + return t.labeledStatement(this.loopLabel, this.loop); + } + } + + remap() { + let hasRemaps = false; + let letRefs = this.letReferences; + let scope = this.scope; + + // alright, so since we aren't wrapping this block in a closure + // we have to check if any of our let variables collide with + // those in upper scopes and then if they do, generate a uid + // for them and replace all references with it + let remaps = Object.create(null); + + for (let key in letRefs) { + // just an Identifier node we collected in `getLetReferences` + // this is the defining identifier of a declaration + let ref = letRefs[key]; + + // todo: could skip this if the colliding binding is in another function + if (scope.parentHasBinding(key) || scope.hasGlobal(key)) { + let uid = scope.generateUidIdentifier(ref.name).name; + ref.name = uid; + + hasRemaps = true; + remaps[key] = remaps[uid] = { + binding: ref, + uid: uid + }; + } + } + + if (!hasRemaps) return; + + // + + let loop = this.loop; + if (loop) { + traverseReplace(loop.right, loop, scope, remaps); + traverseReplace(loop.test, loop, scope, remaps); + traverseReplace(loop.update, loop, scope, remaps); + } + + this.blockPath.traverse(replaceVisitor, remaps); + } + + wrapClosure() { + let block = this.block; + + let outsideRefs = this.outsideLetReferences; + + // remap loop heads with colliding variables + if (this.loop) { + for (let name in outsideRefs) { + let id = outsideRefs[name]; + + if (this.scope.hasGlobal(id.name) || this.scope.parentHasBinding(id.name)) { + delete outsideRefs[id.name]; + delete this.letReferences[id.name]; + + this.scope.rename(id.name); + + this.letReferences[id.name] = id; + outsideRefs[id.name] = id; + } + } + } + + // if we're inside of a for loop then we search to see if there are any + // `break`s, `continue`s, `return`s etc + this.has = this.checkLoop(); + + // hoist let references to retain scope + this.hoistVarDeclarations(); + + // turn outsideLetReferences into an array + let params = values(outsideRefs); + let args = values(outsideRefs); + + // build the closure that we're going to wrap the block with + let fn = t.functionExpression(null, params, t.blockStatement(block.body)); + fn.shadow = true; + + // continuation + this.addContinuations(fn); + + // replace the current block body with the one we're going to build + block.body = this.body; + + let ref = fn; + + if (this.loop) { + ref = this.scope.generateUidIdentifier("loop"); + this.loopPath.insertBefore(t.variableDeclaration("var", [ + t.variableDeclarator(ref, fn) + ])); + } + + // build a call and a unique id that we can assign the return value to + let call = t.callExpression(ref, args); + let ret = this.scope.generateUidIdentifier("ret"); + + // handle generators + let hasYield = traverse.hasType(fn.body, this.scope, "YieldExpression", t.FUNCTION_TYPES); + if (hasYield) { + fn.generator = true; + call = t.yieldExpression(call, true); + } + + // handlers async functions + let hasAsync = traverse.hasType(fn.body, this.scope, "AwaitExpression", t.FUNCTION_TYPES); + if (hasAsync) { + fn.async = true; + call = t.awaitExpression(call); + } + + this.buildClosure(ret, call); + } + + /** + * Push the closure to the body. + */ + + buildClosure(ret: { type: "Identifier" }, call: { type: "CallExpression" }) { + let has = this.has; + if (has.hasReturn || has.hasBreakContinue) { + this.buildHas(ret, call); + } else { + this.body.push(t.expressionStatement(call)); + } + } + + /** + * If any of the outer let variables are reassigned then we need to rename them in + * the closure so we can get direct access to the outer variable to continue the + * iteration with bindings based on each iteration. + * + * Reference: https://github.com/babel/babel/issues/1078 + */ + + addContinuations(fn) { + let state = { + reassignments: {}, + outsideReferences: this.outsideLetReferences + }; + + this.scope.traverse(fn, continuationVisitor, state); + + for (let i = 0; i < fn.params.length; i++) { + let param = fn.params[i]; + if (!state.reassignments[param.name]) continue; + + let newParam = this.scope.generateUidIdentifier(param.name); + fn.params[i] = newParam; + + this.scope.rename(param.name, newParam.name, fn); + + // assign outer reference as it's been modified internally and needs to be retained + fn.body.body.push(t.expressionStatement(t.assignmentExpression("=", param, newParam))); + } + } + + getLetReferences() { + let block = this.block; + + let declarators = block._letDeclarators || []; + + // + for (let i = 0; i < declarators.length; i++) { + let declar = declarators[i]; + extend(this.outsideLetReferences, t.getBindingIdentifiers(declar)); + } + + // + if (block.body) { + for (let i = 0; i < block.body.length; i++) { + let declar = block.body[i]; + if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar) || isLet(declar, block, this.scope)) { + declarators = declarators.concat(declar.declarations || declar); + } + } + } + + // + for (let i = 0; i < declarators.length; i++) { + let declar = declarators[i]; + let keys = t.getBindingIdentifiers(declar); + extend(this.letReferences, keys); + this.hasLetReferences = true; + } + + // no let references so we can just quit + if (!this.hasLetReferences) return; + + // set let references to plain let references + standardizeLets(declarators); + + let state = { + letReferences: this.letReferences, + closurify: false, + file: this.file + }; + + // traverse through this block, stopping on functions and checking if they + // contain any local let references + this.blockPath.traverse(letReferenceBlockVisitor, state); + + return state.closurify; + } + + /** + * If we're inside of a loop then traverse it and check if it has one of + * the following node types `ReturnStatement`, `BreakStatement`, + * `ContinueStatement` and replace it with a return value that we can track + * later on. + */ + + checkLoop(): Object { + let state = { + hasBreakContinue: false, + ignoreLabeless: false, + inSwitchCase: false, + innerLabels: [], + hasReturn: false, + isLoop: !!this.loop, + map: {}, + LOOP_IGNORE: Symbol() + }; + + this.blockPath.traverse(loopLabelVisitor, state); + this.blockPath.traverse(loopVisitor, state); + + return state; + } + + /** + * Hoist all let declarations in this block to before it so they retain scope + * once we wrap everything in a closure. + */ + + hoistVarDeclarations() { + this.blockPath.traverse(hoistVarDeclarationsVisitor, this); + } + + /** + * Turn a `VariableDeclaration` into an array of `AssignmentExpressions` with + * their declarations hoisted to before the closure wrapper. + */ + + pushDeclar(node: { type: "VariableDeclaration" }): Array { + let declars = []; + let names = t.getBindingIdentifiers(node); + for (let name in names) { + declars.push(t.variableDeclarator(names[name])); + } + + this.body.push(t.variableDeclaration(node.kind, declars)); + + let replace = []; + + for (let i = 0; i < node.declarations.length; i++) { + let declar = node.declarations[i]; + if (!declar.init) continue; + + let expr = t.assignmentExpression("=", declar.id, declar.init); + replace.push(t.inherits(expr, declar)); + } + + return replace; + } + + buildHas(ret: { type: "Identifier" }, call: { type: "CallExpression" }) { + let body = this.body; + + body.push(t.variableDeclaration("var", [ + t.variableDeclarator(ret, call) + ])); + + let retCheck; + let has = this.has; + let cases = []; + + if (has.hasReturn) { + // typeof ret === "object" + retCheck = buildRetCheck({ + RETURN: ret + }); + } + + if (has.hasBreakContinue) { + for (let key in has.map) { + cases.push(t.switchCase(t.stringLiteral(key), [has.map[key]])); + } + + if (has.hasReturn) { + cases.push(t.switchCase(null, [retCheck])); + } + + if (cases.length === 1) { + let single = cases[0]; + body.push(t.ifStatement( + t.binaryExpression("===", ret, single.test), + single.consequent[0] + )); + } else { + // https://github.com/babel/babel/issues/998 + for (let i = 0; i < cases.length; i++) { + let caseConsequent = cases[i].consequent[0]; + if (t.isBreakStatement(caseConsequent) && !caseConsequent.label) { + caseConsequent.label = this.loopLabel = this.loopLabel || this.scope.generateUidIdentifier("loop"); + } + } + + body.push(t.switchStatement(ret, cases)); + } + } else { + if (has.hasReturn) { + body.push(retCheck); + } + } + } +} diff --git a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js b/packages/babel-plugin-transform-es2015-block-scoping/src/tdz.js similarity index 66% rename from packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js rename to packages/babel-plugin-transform-es2015-block-scoping/src/tdz.js index 718976b6f1..dafe46351c 100644 --- a/packages/babel-core/src/transformation/transformers/es6/block-scoping/tdz.js +++ b/packages/babel-plugin-transform-es2015-block-scoping/src/tdz.js @@ -14,8 +14,8 @@ function getTDZStatus(refPath, bindingPath) { function buildTDZAssert(node, file) { return t.callExpression( - file.addHelper("temporal-assert-defined"), - [node, t.stringLiteral(node.name), file.addHelper("temporal-undefined")] + file.addHelper("temporalRef"), + [node, t.stringLiteral(node.name), file.addHelper("temporalUndefined")] ); } @@ -28,13 +28,17 @@ function isReference(node, scope, state) { } export let visitor = { - ReferencedIdentifier(node, parent, scope, state) { - if (t.isFor(parent, { left: node })) return; + ReferencedIdentifier(path, state) { + if (!this.file.opts.tdz) return; + + let { node, parent, scope } = path; + + if (path.parentPath.isFor({ left: node })) return; if (!isReference(node, scope, state)) return; let bindingPath = scope.getBinding(node.name).path; - let status = getTDZStatus(this, bindingPath); + let status = getTDZStatus(path, bindingPath); if (status === "inside") return; if (status === "maybe") { @@ -43,35 +47,38 @@ export let visitor = { // add tdzThis to parent variable declarator so it's exploded bindingPath.parent._tdzThis = true; - this.skip(); + path.skip(); - if (t.isUpdateExpression(parent)) { + if (path.parentPath.isUpdateExpression()) { if (parent._ignoreBlockScopingTDZ) return; - this.parentPath.replaceWith(t.sequenceExpression([assert, parent])); + path.parentPath.replaceWith(t.sequenceExpression([assert, parent])); } else { - return t.logicalExpression("&&", assert, node); + path.replaceWith(assert); } } else if (status === "outside") { - return t.throwStatement(t.inherits( + path.replaceWith(t.throwStatement(t.inherits( t.newExpression(t.identifier("ReferenceError"), [ t.stringLiteral(`${node.name} is not defined - temporal dead zone`) ]), node - )); + ))); } }, AssignmentExpression: { - exit(node, parent, scope, state) { + exit(path, state) { + if (!this.file.opts.tdz) return; + + let { node } = path; if (node._ignoreBlockScopingTDZ) return; let nodes = []; - let ids = this.getBindingIdentifiers(); + let ids = path.getBindingIdentifiers(); for (let name in ids) { let id = ids[name]; - if (isReference(id, scope, state)) { + if (isReference(id, path.scope, state)) { nodes.push(buildTDZAssert(id, state.file)); } } @@ -79,7 +86,7 @@ export let visitor = { if (nodes.length) { node._ignoreBlockScopingTDZ = true; nodes.push(node); - return nodes.map(t.expressionStatement); + path.replaceWithMultiple(nodes.map(t.expressionStatement)); } } } diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index e67c9f019e..151d88b2c1 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,11 +1,21 @@ { "name": "babel-plugin-transform-es2015-classes", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", + "dependencies": { + "babel-helper-optimise-call-expression": "^5.0.0", + "babel-helper-function-name": "^5.0.0", + "babel-helper-replace-supers": "^5.0.0", + "babel-template": "^5.10.32", + "babel-traverse": "^5.10.32", + "babel-helper-define-map": "^5.0.0", + "babel-messages": "^5.10.32", + "babel-runtime": "^5.10.32" + }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-classes/src/index.js b/packages/babel-plugin-transform-es2015-classes/src/index.js index 6845446a11..861a20fae2 100644 --- a/packages/babel-plugin-transform-es2015-classes/src/index.js +++ b/packages/babel-plugin-transform-es2015-classes/src/index.js @@ -1,7 +1,32 @@ -export default function () { +import LooseTransformer from "./loose"; +import VanillaTransformer from "./vanilla"; +import nameFunction from "babel-helper-function-name"; + +export default function ({ types: t }) { return { visitor: { - // your visitor methods go here + ClassDeclaration(path) { + let { node } = path; + + if (path.parentPath.isExportDefaultDeclaration()) { + path = path.parentPath; + path.insertAfter(t.exportDefaultDeclaration(node.id)); + } + + path.replaceWith(t.variableDeclaration("let", [ + t.variableDeclarator(node.id, t.toExpression(node)) + ])); + }, + + ClassExpression(path, state) { + let inferred = nameFunction(path); + if (inferred) return inferred; + + let Constructor = VanillaTransformer; + if (state.opts.loose) Constructor = LooseTransformer; + + path.replaceWith(new Constructor(path, state.file).run()); + } } }; } diff --git a/packages/babel-core/src/transformation/helpers/memoise-decorators.js b/packages/babel-plugin-transform-es2015-classes/src/lib/memoise-decorators.js similarity index 100% rename from packages/babel-core/src/transformation/helpers/memoise-decorators.js rename to packages/babel-plugin-transform-es2015-classes/src/lib/memoise-decorators.js diff --git a/packages/babel-core/src/transformation/transformers/es6/classes/loose.js b/packages/babel-plugin-transform-es2015-classes/src/loose.js similarity index 65% rename from packages/babel-core/src/transformation/transformers/es6/classes/loose.js rename to packages/babel-plugin-transform-es2015-classes/src/loose.js index 4af2320e6c..a6989da008 100644 --- a/packages/babel-core/src/transformation/transformers/es6/classes/loose.js +++ b/packages/babel-plugin-transform-es2015-classes/src/loose.js @@ -1,3 +1,4 @@ +import nameFunction from "babel-helper-function-name"; import VanillaTransformer from "./vanilla"; import * as t from "babel-types"; @@ -7,7 +8,7 @@ export default class LooseClassTransformer extends VanillaTransformer { this.isLoose = true; } - _processMethod(node) { + _processMethod(node, scope) { if (!node.decorators) { // use assignments instead of define properties for loose classes @@ -15,7 +16,17 @@ export default class LooseClassTransformer extends VanillaTransformer { if (!node.static) classRef = t.memberExpression(classRef, t.identifier("prototype")); let methodName = t.memberExpression(classRef, node.key, node.computed || t.isLiteral(node.key)); - let expr = t.expressionStatement(t.assignmentExpression("=", methodName, node.value)); + let func = t.functionExpression(null, node.params, node.body); + let key = t.toComputedKey(node, node.key); + if (t.isStringLiteral(key)) { + func = nameFunction({ + node: func, + id: key, + scope + }); + } + + let expr = t.expressionStatement(t.assignmentExpression("=", methodName, func)); t.inheritsComments(expr, node); this.body.push(expr); return true; diff --git a/packages/babel-plugin-transform-es2015-classes/src/vanilla.js b/packages/babel-plugin-transform-es2015-classes/src/vanilla.js new file mode 100644 index 0000000000..749ebd91c1 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-classes/src/vanilla.js @@ -0,0 +1,518 @@ +import type { NodePath } from "babel-traverse"; +import { visitors } from "babel-traverse"; +import ReplaceSupers from "babel-helper-replace-supers"; +import optimiseCall from "babel-helper-optimise-call-expression"; +import * as defineMap from "babel-helper-define-map"; +import template from "babel-template"; +import * as t from "babel-types"; + +let buildDerivedConstructor = template(` + (function () { + super(...arguments); + }) +`); + +let noMethodVisitor = { + "FunctionExpression|FunctionDeclaration"(path) { + if (!path.is("shadow")) { + path.skip(); + } + }, + + Method(path) { + path.skip(); + } +}; + +let verifyConstructorVisitor = visitors.merge([noMethodVisitor, { + Super(path) { + if (this.isDerived && !this.hasBareSuper && !path.parentPath.isCallExpression({ callee: path.node })) { + throw path.buildCodeFrameError("'super.*' is not allowed before super()"); + } + }, + + CallExpression: { + exit(path) { + if (path.get("callee").isSuper()) { + this.hasBareSuper = true; + + if (!this.isDerived) { + throw path.buildCodeFrameError("super() is only allowed in a derived constructor"); + } + } + } + }, + + ThisExpression(path) { + if (this.isDerived && !this.hasBareSuper) { + if (!path.inShadow("this")) { + throw path.buildCodeFrameError("'this' is not allowed before super()"); + } + } + } +}]); + +let findThisesVisitor = visitors.merge([noMethodVisitor, { + ThisExpression(path) { + this.superThises.push(path); + } +}]); + +export default class ClassTransformer { + constructor(path: NodePath, file) { + this.parent = path.parent; + this.scope = path.scope; + this.node = path.node; + this.path = path; + this.file = file; + + this.clearDescriptors(); + + this.instancePropBody = []; + this.instancePropRefs = {}; + this.staticPropBody = []; + this.body = []; + + this.bareSuperAfter = []; + this.bareSupers = []; + + this.pushedConstructor = false; + this.pushedInherits = false; + this.isLoose = false; + + this.superThises = []; + + // class id + this.classId = this.node.id; + + // this is the name of the binding that will **always** reference the class we've constructed + this.classRef = this.node.id || this.scope.generateUidIdentifier("class"); + + this.superName = this.node.superClass || t.identifier("Function"); + this.isDerived = !!this.node.superClass; + } + + run() { + let superName = this.superName; + let file = this.file; + let body = this.body; + + // + + let constructorBody = this.constructorBody = t.blockStatement([]); + this.constructor = this.buildConstructor(); + + // + + let closureParams = []; + let closureArgs = []; + + // + if (this.isDerived) { + closureArgs.push(superName); + + superName = this.scope.generateUidIdentifierBasedOnNode(superName); + closureParams.push(superName); + + this.superName = superName; + } + + // + this.buildBody(); + + // make sure this class isn't directly called + constructorBody.body.unshift(t.expressionStatement(t.callExpression(file.addHelper("classCallCheck"), [ + t.thisExpression(), + this.classRef + ]))); + + body = body.concat(this.staticPropBody.map((fn) => fn(this.classRef))); + + if (this.classId) { + // named class with only a constructor + if (body.length === 1) return t.toExpression(body[0]); + } + + // + body.push(t.returnStatement(this.classRef)); + + let container = t.functionExpression(null, closureParams, t.blockStatement(body)); + container.shadow = true; + return t.callExpression(container, closureArgs); + } + + buildConstructor() { + let func = t.functionDeclaration(this.classRef, [], this.constructorBody); + t.inherits(func, this.node); + return func; + } + + pushToMap(node, enumerable, kind = "value", scope?) { + let mutatorMap; + if (node.static) { + this.hasStaticDescriptors = true; + mutatorMap = this.staticMutatorMap; + } else { + this.hasInstanceDescriptors = true; + mutatorMap = this.instanceMutatorMap; + } + + let map = defineMap.push(mutatorMap, node, kind, this.file, scope); + + if (enumerable) { + map.enumerable = t.booleanLiteral(true); + } + + return map; + } + + /** + * [Please add a description.] + * https://www.youtube.com/watch?v=fWNaR-rxAic + */ + + constructorMeMaybe() { + let hasConstructor = false; + let paths = this.path.get("body.body"); + for (let path of (paths: Array)) { + hasConstructor = path.equals("kind", "constructor"); + if (hasConstructor) break; + } + if (hasConstructor) return; + + let params, body; + + if (this.isDerived) { + let constructor = buildDerivedConstructor().expression; + params = constructor.params; + body = constructor.body; + } else { + params = []; + body = t.blockStatement([]); + } + + this.path.get("body").unshiftContainer("body", t.classMethod( + "constructor", + t.identifier("constructor"), + params, + body + )); + } + + buildBody() { + this.constructorMeMaybe(); + this.pushBody(); + this.verifyConstructor(); + + if (this.userConstructor) { + let constructorBody = this.constructorBody; + constructorBody.body = constructorBody.body.concat(this.userConstructor.body.body); + t.inherits(this.constructor, this.userConstructor); + t.inherits(constructorBody, this.userConstructor.body); + } + + this.pushDescriptors(); + } + + pushBody() { + let classBodyPaths: Array = this.path.get("body.body"); + + for (let path of classBodyPaths) { + let node = path.node; + + if (path.isClassProperty()) { + throw path.buildCodeFrameError("Missing class properties transform."); + } + + if (node.decorators) { + throw path.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one."); + } + + if (t.isClassMethod(node)) { + let isConstructor = node.kind === "constructor"; + + if (isConstructor) { + path.traverse(verifyConstructorVisitor, this); + + if (!this.hasBareSuper && this.isDerived) { + throw path.buildCodeFrameError("missing super() call in constructor"); + } + } + + let replaceSupers = new ReplaceSupers({ + forceSuperMemoisation: isConstructor, + methodPath: path, + methodNode: node, + objectRef: this.classRef, + superRef: this.superName, + isStatic: node.static, + isLoose: this.isLoose, + scope: this.scope, + file: this.file + }, true); + + replaceSupers.replace(); + + if (isConstructor) { + this.pushConstructor(replaceSupers, node, path); + } else { + this.pushMethod(node, path); + } + } + } + } + + clearDescriptors() { + this.hasInstanceDescriptors = false; + this.hasStaticDescriptors = false; + + this.instanceMutatorMap = {}; + this.staticMutatorMap = {}; + } + + pushDescriptors() { + this.pushInherits(); + + let body = this.body; + + let instanceProps; + let staticProps; + + if (this.hasInstanceDescriptors) { + instanceProps = defineMap.toClassObject(this.instanceMutatorMap); + } + + if (this.hasStaticDescriptors) { + staticProps = defineMap.toClassObject(this.staticMutatorMap); + } + + if (instanceProps || staticProps) { + if (instanceProps) instanceProps = defineMap.toComputedObjectFromClass(instanceProps); + if (staticProps) staticProps = defineMap.toComputedObjectFromClass(staticProps); + + let nullNode = t.nullLiteral(); + + // (Constructor, instanceDescriptors, staticDescriptors, instanceInitializers, staticInitializers) + let args = [this.classRef, nullNode, nullNode, nullNode, nullNode]; + + if (instanceProps) args[1] = instanceProps; + if (staticProps) args[2] = staticProps; + + if (this.instanceInitializersId) { + args[3] = this.instanceInitializersId; + body.unshift(this.buildObjectAssignment(this.instanceInitializersId)); + } + + if (this.staticInitializersId) { + args[4] = this.staticInitializersId; + body.unshift(this.buildObjectAssignment(this.staticInitializersId)); + } + + let lastNonNullIndex = 0; + for (let i = 0; i < args.length; i++) { + if (args[i] !== nullNode) lastNonNullIndex = i; + } + args = args.slice(0, lastNonNullIndex + 1); + + + body.push(t.expressionStatement( + t.callExpression(this.file.addHelper("createClass"), args) + )); + } + + this.clearDescriptors(); + } + + buildObjectAssignment(id) { + return t.variableDeclaration("var", [ + t.variableDeclarator(id, t.objectExpression([])) + ]); + } + + wrapSuperCall(bareSuper, superRef, thisRef, body) { + let bareSuperNode = bareSuper.node; + + if (this.isLoose) { + bareSuperNode.arguments.unshift(t.thisExpression()); + if (bareSuperNode.arguments.length === 2 && t.isSpreadElement(bareSuperNode.arguments[1]) && t.isIdentifier(bareSuperNode.arguments[1].argument, { name: "arguments" })) { + // special case single arguments spread + bareSuperNode.arguments[1] = bareSuperNode.arguments[1].argument; + bareSuperNode.callee = t.memberExpression(superRef, t.identifier("apply")); + } else { + bareSuperNode.callee = t.memberExpression(superRef, t.identifier("call")); + } + } else { + bareSuperNode = optimiseCall( + t.callExpression( + t.memberExpression(t.identifier("Object"), t.identifier("getPrototypeOf")), + [this.classRef] + ), + t.thisExpression(), + bareSuperNode.arguments + ); + } + + let call = t.callExpression( + this.file.addHelper("possibleConstructorReturn"), + [t.thisExpression(), bareSuperNode] + ); + + let bareSuperAfter = this.bareSuperAfter.map(fn => fn(thisRef)); + + if (bareSuper.parentPath.isExpressionStatement() && bareSuper.parentPath.container === body.node.body && body.node.body.length - 1 === bareSuper.parentPath.key) { + // this super call is the last statement in the body so we can just straight up + // turn it into a return + + if (this.superThises.length || bareSuperAfter.length) { + bareSuper.scope.push({ id: thisRef }); + call = t.assignmentExpression("=", thisRef, call); + } + + if (bareSuperAfter.length) { + call = t.toSequenceExpression([call, ...bareSuperAfter, thisRef]); + } + + bareSuper.parentPath.replaceWith(t.returnStatement(call)); + } else { + bareSuper.replaceWithMultiple([ + t.variableDeclaration("var", [ + t.variableDeclarator(thisRef, call) + ]), + ...bareSuperAfter, + t.expressionStatement(thisRef) + ]); + } + + } + + verifyConstructor() { + if (!this.isDerived) return; + + let path = this.userConstructorPath; + let body = path.get("body"); + + path.traverse(findThisesVisitor, this); + + let guaranteedSuperBeforeFinish = !!this.bareSupers.length; + + let superRef = this.superName || t.identifier("Function"); + let thisRef = path.scope.generateUidIdentifier("this"); + + for (let bareSuper of this.bareSupers) { + this.wrapSuperCall(bareSuper, superRef, thisRef, body); + + if (guaranteedSuperBeforeFinish) { + bareSuper.find(function (parentPath) { + // hit top so short circuit + if (parentPath === path) { + return true; + } + + if (parentPath.isLoop() || parentPath.isConditional()) { + guaranteedSuperBeforeFinish = false; + return true; + } + }); + } + } + + for (let thisPath of this.superThises) { + thisPath.replaceWith(thisRef); + } + + let wrapReturn = returnArg => t.callExpression( + this.file.addHelper("possibleConstructorReturn"), + [thisRef].concat(returnArg || []) + ); + + // if we have a return as the last node in the body then we've already caught that + // return + let bodyPaths = body.get("body"); + if (bodyPaths.length && !bodyPaths.pop().isReturnStatement()) { + body.pushContainer("body", t.returnStatement(guaranteedSuperBeforeFinish ? thisRef : wrapReturn())); + } + + for (let returnPath of this.superReturns) { + returnPath.get("argument").replaceWith(wrapReturn(returnPath.node.argument)); + } + } + + /** + * Push a method to its respective mutatorMap. + */ + + pushMethod(node: { type: "ClassMethod" }, path?: NodePath) { + let scope = path ? path.scope : this.scope; + + if (node.kind === "method") { + if (this._processMethod(node, scope)) return; + } + + this.pushToMap(node, false, null, scope); + } + + _processMethod() { + return false; + } + + /** + * Replace the constructor body of our class. + */ + + pushConstructor(replaceSupers, method: { type: "ClassMethod" }, path: NodePath) { + this.bareSupers = replaceSupers.bareSupers; + this.superReturns = replaceSupers.returns; + + // https://github.com/babel/babel/issues/1077 + if (path.scope.hasOwnBinding(this.classRef.name)) { + path.scope.rename(this.classRef.name); + } + + let construct = this.constructor; + + this.userConstructorPath = path; + this.userConstructor = method; + this.hasConstructor = true; + + t.inheritsComments(construct, method); + + construct._ignoreUserWhitespace = true; + construct.params = method.params; + + t.inherits(construct.body, method.body); + construct.body.directives = method.body.directives; + + // push constructor to body + this._pushConstructor(); + } + + _pushConstructor() { + if (this.pushedConstructor) return; + this.pushedConstructor = true; + + // we haven't pushed any descriptors yet + if (this.hasInstanceDescriptors || this.hasStaticDescriptors) { + this.pushDescriptors(); + } + + this.body.push(this.constructor); + + this.pushInherits(); + } + + /** + * Push inherits helper to body. + */ + + pushInherits() { + if (!this.isDerived || this.pushedInherits) return; + + // Unshift to ensure that the constructor inheritance is set up before + // any properties can be assigned to the prototype. + this.pushedInherits = true; + this.body.unshift(t.expressionStatement(t.callExpression( + this.file.addHelper("inherits"), + [this.classRef, this.superName] + ))); + } +} diff --git a/packages/babel-plugin-transform-es2015-computed-properties/package.json b/packages/babel-plugin-transform-es2015-computed-properties/package.json index 7525216cca..74910ac0e0 100644 --- a/packages/babel-plugin-transform-es2015-computed-properties/package.json +++ b/packages/babel-plugin-transform-es2015-computed-properties/package.json @@ -1,11 +1,16 @@ { "name": "babel-plugin-transform-es2015-computed-properties", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 computed properties to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-helper-define-map": "5.0.0", + "babel-template": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-computed-properties/src/index.js b/packages/babel-plugin-transform-es2015-computed-properties/src/index.js index c6c33b61f2..90b2fed7bc 100644 --- a/packages/babel-plugin-transform-es2015-computed-properties/src/index.js +++ b/packages/babel-plugin-transform-es2015-computed-properties/src/index.js @@ -1,45 +1,50 @@ export default function ({ types: t }) { - function loose(node, body, objId) { - for (var prop of (node.properties: Array)) { - body.push(t.expressionStatement( - t.assignmentExpression( - "=", - t.memberExpression(objId, prop.key, prop.computed || t.isLiteral(prop.key)), - prop.value - ) - )); + function getValue(prop) { + if (t.isObjectProperty(prop)) { + return prop.value; + } else if (t.isObjectMethod(prop)) { + return t.functionExpression(null, prop.params, prop.body, prop.generator, prop.async); } } - function spec(node, body, objId, initProps, file) { - // add a simple assignment for all Symbol member expressions due to symbol polyfill limitations - // otherwise use Object.defineProperty + function pushAssign(objId, prop, body) { + body.push(t.expressionStatement( + t.assignmentExpression( + "=", + t.memberExpression(objId, prop.key, prop.computed || t.isLiteral(prop.key)), + getValue(prop) + ) + )); + } - for (let prop of (node.properties: Array)) { - // this wont work with Object.defineProperty - if (t.isLiteral(t.toComputedKey(prop), { value: "__proto__" })) { - initProps.push(prop); - continue; - } - - let key = prop.key; - if (t.isIdentifier(key) && !prop.computed) { - key = t.stringLiteral(key.name); - } - - var bodyNode = t.callExpression(file.addHelper("define-property"), [objId, key, prop.value]); - - body.push(t.expressionStatement(bodyNode)); + function loose(objId, body, computedProps: Array) { + for (let prop of computedProps) { + pushAssign(objId, prop, body); } + } - // only one node and it's a Object.defineProperty that returns the object + function spec(objId, body, computedProps: Array, initPropExpression, state) { + for (let prop of computedProps) { + let key = t.toComputedKey(prop); - if (body.length === 1) { - var first = body[0].expression; - - if (t.isCallExpression(first)) { - first.arguments[0] = t.objectExpression(initProps); - return first; + if (t.isStringLiteral(key, { value: "__proto__" })) { + pushAssign(objId, prop, body); + } else { + if (computedProps.length === 1) { + return t.callExpression(state.addHelper("defineProperty"), [ + initPropExpression, + key, + getValue(prop) + ]); + } else { + body.push(t.expressionStatement( + t.callExpression(state.addHelper("defineProperty"), [ + objId, + key, + getValue(prop) + ]) + )); + } } } } @@ -47,51 +52,52 @@ export default function ({ types: t }) { return { visitor: { ObjectExpression: { - exit({ node, scope, parent }, file) { - var hasComputed = false; - - for (let prop of (node.properties: Array)) { - hasComputed = t.isProperty(prop, { computed: true, kind: "init" }); + exit(path, state) { + let { node, parent } = path; + let hasComputed = false; + for (let prop of (node.properties: Array)) { + hasComputed = prop.kind !== "get" && prop.kind !== "set" && prop.computed === true; if (hasComputed) break; } - if (!hasComputed) return; // put all getters/setters into the first object expression as well as all initialisers up // to the first computed property - var initProps = []; - var stopInits = false; + let initProps = []; + let computedProps = []; + let foundComputed = false; - node.properties = node.properties.filter(function (prop) { + for (let prop of node.properties) { if (prop.computed) { - stopInits = true; + foundComputed = true; } - if (prop.kind !== "init" || !stopInits) { - initProps.push(prop); - return false; + if (foundComputed && prop.kind !== "get" && prop.kind !== "set") { + computedProps.push(prop); } else { - return true; + initProps.push(prop); } - }); + } - var objId = scope.generateUidIdentifierBasedOnNode(parent); - var body = []; + let objId = path.scope.generateUidIdentifierBasedOnNode(parent); + let initPropExpression = t.objectExpression(initProps); + let body = []; - var callback = spec; - if (file.isLoose("es6.properties.computed")) callback = loose; - - var result = callback(node, body, objId, initProps, file); - if (result) return result; - - body.unshift(t.variableDeclaration("var", [ - t.variableDeclarator(objId, t.objectExpression(initProps)) + body.push(t.variableDeclaration("var", [ + t.variableDeclarator(objId, initPropExpression) ])); - body.push(t.expressionStatement(objId)); + let callback = spec; + if (state.opts.loose) callback = loose; - return body; + let single = callback(objId, body, computedProps, initPropExpression, state); + if (single) { + path.replaceWith(single); + } else { + body.push(t.expressionStatement(objId)); + path.replaceWithMultiple(body); + } } } } diff --git a/packages/babel-plugin-transform-es2015-constants/package.json b/packages/babel-plugin-transform-es2015-constants/package.json index 3f1b5910e5..f4f686cba9 100644 --- a/packages/babel-plugin-transform-es2015-constants/package.json +++ b/packages/babel-plugin-transform-es2015-constants/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-constants", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 constants to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-constants/src/index.js b/packages/babel-plugin-transform-es2015-constants/src/index.js index a6a094ca65..7970a0ad89 100644 --- a/packages/babel-plugin-transform-es2015-constants/src/index.js +++ b/packages/babel-plugin-transform-es2015-constants/src/index.js @@ -1,19 +1,37 @@ -export default function ({ messages }) { +export default function ({ messages, types: t }) { + function check(node) { + if (t.isVariableDeclaration(node, { kind: "const" })) { + node.kind = "let"; + } + } + return { visitor: { Scope({ scope }) { - for (var name in scope.bindings) { - var binding = scope.bindings[name]; + for (let name in scope.bindings) { + let binding = scope.bindings[name]; if (binding.kind !== "const" && binding.kind !== "module") continue; - for (var violation of (binding.constantViolations: Array)) { + for (let violation of (binding.constantViolations: Array)) { throw violation.buildCodeFrameError(messages.get("readOnly", name)); } } }, VariableDeclaration({ node }) { - if (node.kind === "const") node.kind = "let"; + check(node); + }, + + ForXStatement({ node: { left } }) { + check(left); + }, + + ForStatement({ node: { init } }) { + check(init); + }, + + "BlockStatement|Program"({ node: { body } }) { + for (let node of body) check(node); } } }; diff --git a/packages/babel-plugin-transform-es2015-destructuring/package.json b/packages/babel-plugin-transform-es2015-destructuring/package.json index ce18916fa7..ba6cc1d90a 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/package.json +++ b/packages/babel-plugin-transform-es2015-destructuring/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-destructuring", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 destructuring to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-destructuring/src/index.js b/packages/babel-plugin-transform-es2015-destructuring/src/index.js index 895f2b9f39..4d95b06182 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/src/index.js +++ b/packages/babel-plugin-transform-es2015-destructuring/src/index.js @@ -1,11 +1,11 @@ -export default function ({ types: t, messages }) { +export default function ({ types: t }) { /** * Test if a VariableDeclaration's declarations contains any Patterns. */ function variableDeclarationHasPattern(node) { - for (var declar of (node.declarations: Array)) { + for (let declar of (node.declarations: Array)) { if (t.isPattern(declar.id)) { return true; } @@ -18,7 +18,7 @@ export default function ({ types: t, messages }) { */ function hasRest(pattern) { - for (var elem of (pattern.elements: Array)) { + for (let elem of (pattern.elements: Array)) { if (t.isRestElement(elem)) { return true; } @@ -26,7 +26,7 @@ export default function ({ types: t, messages }) { return false; } - var arrayUnpackVisitor = { + let arrayUnpackVisitor = { ReferencedIdentifier(path, state) { if (state.bindings[path.node.name]) { state.deopt = true; @@ -47,10 +47,10 @@ export default function ({ types: t, messages }) { } buildVariableAssignment(id, init) { - var op = this.operator; + let op = this.operator; if (t.isMemberExpression(id)) op = "="; - var node; + let node; if (op) { node = t.expressionStatement(t.assignmentExpression(op, id, init)); @@ -66,7 +66,7 @@ export default function ({ types: t, messages }) { } buildVariableDeclaration(id, init) { - var declar = t.variableDeclaration("var", [ + let declar = t.variableDeclaration("var", [ t.variableDeclarator(id, init) ]); declar._blockHoist = this.blockHoist; @@ -97,9 +97,9 @@ export default function ({ types: t, messages }) { // we need to assign the current value of the assignment to avoid evaluating // it more than once - var tempValueRef = this.scope.generateUidIdentifierBasedOnNode(valueRef); + let tempValueRef = this.scope.generateUidIdentifierBasedOnNode(valueRef); - var declar = t.variableDeclaration("var", [ + let declar = t.variableDeclaration("var", [ t.variableDeclarator(tempValueRef, valueRef) ]); declar._blockHoist = this.blockHoist; @@ -107,15 +107,15 @@ export default function ({ types: t, messages }) { // - var tempConditional = t.conditionalExpression( + let tempConditional = t.conditionalExpression( t.binaryExpression("===", tempValueRef, t.identifier("undefined")), pattern.right, tempValueRef ); - var left = pattern.left; + let left = pattern.left; if (t.isPattern(left)) { - var tempValueDefault = t.expressionStatement( + let tempValueDefault = t.expressionStatement( t.assignmentExpression("=", tempValueRef, tempConditional) ); tempValueDefault._blockHoist = this.blockHoist; @@ -130,10 +130,10 @@ export default function ({ types: t, messages }) { pushObjectRest(pattern, objRef, spreadProp, spreadPropIndex) { // get all the keys that appear in this object before the current spread - var keys = []; + let keys = []; - for (var i = 0; i < pattern.properties.length; i++) { - var prop = pattern.properties[i]; + for (let i = 0; i < pattern.properties.length; i++) { + let prop = pattern.properties[i]; // we've exceeded the index of the spread property to all properties to the // right need to be ignored @@ -142,7 +142,7 @@ export default function ({ types: t, messages }) { // ignore other spread properties if (t.isRestProperty(prop)) continue; - var key = prop.key; + let key = prop.key; if (t.isIdentifier(key) && !prop.computed) key = t.stringLiteral(prop.key.name); keys.push(key); } @@ -151,15 +151,15 @@ export default function ({ types: t, messages }) { // - var value = t.callExpression(this.file.addHelper("object-without-properties"), [objRef, keys]); + let value = t.callExpression(this.file.addHelper("objectWithoutProperties"), [objRef, keys]); this.nodes.push(this.buildVariableAssignment(spreadProp.argument, value)); } pushObjectProperty(prop, propRef) { if (t.isLiteral(prop.key)) prop.computed = true; - var pattern = prop.value; - var objRef = t.memberExpression(propRef, prop.key, prop.computed); + let pattern = prop.value; + let objRef = t.memberExpression(propRef, prop.key, prop.computed); if (t.isPattern(pattern)) { this.push(pattern, objRef); @@ -173,7 +173,7 @@ export default function ({ types: t, messages }) { if (!pattern.properties.length) { this.nodes.push(t.expressionStatement( - t.callExpression(this.file.addHelper("object-destructuring-empty"), [objRef]) + t.callExpression(this.file.addHelper("objectDestructuringEmpty"), [objRef]) )); } @@ -182,15 +182,15 @@ export default function ({ types: t, messages }) { // only evaluated once if (pattern.properties.length > 1 && !this.scope.isStatic(objRef)) { - var temp = this.scope.generateUidIdentifierBasedOnNode(objRef); + let temp = this.scope.generateUidIdentifierBasedOnNode(objRef); this.nodes.push(this.buildVariableDeclaration(temp, objRef)); objRef = temp; } // - for (var i = 0; i < pattern.properties.length; i++) { - var prop = pattern.properties[i]; + for (let i = 0; i < pattern.properties.length; i++) { + let prop = pattern.properties[i]; if (t.isRestProperty(prop)) { this.pushObjectRest(pattern, objRef, prop, i); } else { @@ -222,15 +222,15 @@ export default function ({ types: t, messages }) { } // deopt on reference to left side identifiers - var bindings = t.getBindingIdentifiers(pattern); - var state = { deopt: false, bindings }; + let bindings = t.getBindingIdentifiers(pattern); + let state = { deopt: false, bindings }; this.scope.traverse(arr, arrayUnpackVisitor, state); return !state.deopt; } pushUnpackedArrayPattern(pattern, arr) { - for (var i = 0; i < pattern.elements.length; i++) { - var elem = pattern.elements[i]; + for (let i = 0; i < pattern.elements.length; i++) { + let elem = pattern.elements[i]; if (t.isRestElement(elem)) { this.push(elem.argument, t.arrayExpression(arr.elements.slice(i))); } else { @@ -247,7 +247,7 @@ export default function ({ types: t, messages }) { // we can't do this to a pattern of unequal size to it's right hand // array expression as then there will be values that wont be evaluated // - // eg: var [a, b] = [1, 2]; + // eg: let [a, b] = [1, 2]; if (this.canUnpackArrayPattern(pattern, arrayRef)) { return this.pushUnpackedArrayPattern(pattern, arrayRef); @@ -256,13 +256,13 @@ export default function ({ types: t, messages }) { // if we have a rest then we need all the elements so don't tell // `scope.toArray` to only get a certain amount - var count = !hasRest(pattern) && pattern.elements.length; + let count = !hasRest(pattern) && pattern.elements.length; // so we need to ensure that the `arrayRef` is an array, `scope.toArray` will // return a locally bound identifier if it's been inferred to be an array, // otherwise it'll be a call to a helper that will ensure it's one - var toArray = this.toArray(arrayRef, count); + let toArray = this.toArray(arrayRef, count); if (t.isIdentifier(toArray)) { // we've been given an identifier so it must have been inferred to be an @@ -276,13 +276,13 @@ export default function ({ types: t, messages }) { // - for (var i = 0; i < pattern.elements.length; i++) { - var elem = pattern.elements[i]; + for (let i = 0; i < pattern.elements.length; i++) { + let elem = pattern.elements[i]; // hole if (!elem) continue; - var elemRef; + let elemRef; if (t.isRestElement(elem)) { elemRef = this.toArray(arrayRef); @@ -307,7 +307,7 @@ export default function ({ types: t, messages }) { // need to save it to a variable if (!t.isArrayExpression(ref) && !t.isMemberExpression(ref)) { - var memo = this.scope.maybeGenerateMemoised(ref, true); + let memo = this.scope.maybeGenerateMemoised(ref, true); if (memo) { this.nodes.push(this.buildVariableDeclaration(memo, ref)); ref = memo; @@ -326,13 +326,13 @@ export default function ({ types: t, messages }) { return { visitor: { ForXStatement(path, file) { - var { node, scope } = path; - var left = node.left; + let { node, scope } = path; + let left = node.left; if (t.isPattern(left)) { // for ({ length: k } in { abc: 3 }); - var temp = scope.generateUidIdentifier("ref"); + let temp = scope.generateUidIdentifier("ref"); node.left = t.variableDeclaration("var", [ t.variableDeclarator(temp) @@ -349,17 +349,17 @@ export default function ({ types: t, messages }) { if (!t.isVariableDeclaration(left)) return; - var pattern = left.declarations[0].id; + let pattern = left.declarations[0].id; if (!t.isPattern(pattern)) return; - var key = scope.generateUidIdentifier("ref"); + let key = scope.generateUidIdentifier("ref"); node.left = t.variableDeclaration(left.kind, [ t.variableDeclarator(key, null) ]); - var nodes = []; + let nodes = []; - var destructuring = new DestructuringTransformer({ + let destructuring = new DestructuringTransformer({ kind: left.kind, file: file, scope: scope, @@ -370,20 +370,20 @@ export default function ({ types: t, messages }) { path.ensureBlock(); - var block = node.body; + let block = node.body; block.body = nodes.concat(block.body); }, CatchClause({ node, scope }, file) { - var pattern = node.param; + let pattern = node.param; if (!t.isPattern(pattern)) return; - var ref = scope.generateUidIdentifier("ref"); + let ref = scope.generateUidIdentifier("ref"); node.param = ref; - var nodes = []; + let nodes = []; - var destructuring = new DestructuringTransformer({ + let destructuring = new DestructuringTransformer({ kind: "let", file: file, scope: scope, @@ -395,19 +395,19 @@ export default function ({ types: t, messages }) { }, AssignmentExpression(path, file) { - var { node, scope } = path; + let { node, scope } = path; if (!t.isPattern(node.left)) return; - var nodes = []; + let nodes = []; - var destructuring = new DestructuringTransformer({ + let destructuring = new DestructuringTransformer({ operator: node.operator, file: file, scope: scope, nodes: nodes }); - var ref; + let ref; if (path.isCompletionRecord() || !path.parentPath.isExpressionStatement()) { ref = scope.generateUidIdentifierBasedOnNode(node.right, "ref"); @@ -426,27 +426,30 @@ export default function ({ types: t, messages }) { nodes.push(t.expressionStatement(ref)); } - return nodes; + path.replaceWithMultiple(nodes); }, - VariableDeclaration({ node, scope, parent }, file) { + VariableDeclaration(path, file) { + let { node, scope, parent } = path; if (t.isForXStatement(parent)) return; + if (!parent || !path.container) return; // i don't know why this is necessary - TODO if (!variableDeclarationHasPattern(node)) return; - var nodes = []; - var declar; + let nodes = []; + let declar; - for (var i = 0; i < node.declarations.length; i++) { + for (let i = 0; i < node.declarations.length; i++) { declar = node.declarations[i]; - var patternId = declar.init; - var pattern = declar.id; + let patternId = declar.init; + let pattern = declar.id; - var destructuring = new DestructuringTransformer({ - nodes: nodes, - scope: scope, - kind: node.kind, - file: file + let destructuring = new DestructuringTransformer({ + blockHoist: node._blockHoist, + nodes: nodes, + scope: scope, + kind: node.kind, + file: file }); if (t.isPattern(pattern)) { @@ -462,27 +465,7 @@ export default function ({ types: t, messages }) { } } - if (!t.isProgram(parent) && !t.isBlockStatement(parent)) { - // https://github.com/babel/babel/issues/113 - // for (let [x] = [0]; false;) {} - - declar = null; - - for (i = 0; i < nodes.length; i++) { - node = nodes[i]; - declar = declar || t.variableDeclaration(node.kind, []); - - if (!t.isVariableDeclaration(node) && declar.kind !== node.kind) { - throw file.buildCodeFrameError(node, messages.get("invalidParentForThisNode")); - } - - declar.declarations = declar.declarations.concat(node.declarations); - } - - return declar; - } - - return nodes; + path.replaceWithMultiple(nodes); } } }; diff --git a/packages/babel-plugin-transform-es2015-for-of/package.json b/packages/babel-plugin-transform-es2015-for-of/package.json index 2940ab9616..cc64f6144a 100644 --- a/packages/babel-plugin-transform-es2015-for-of/package.json +++ b/packages/babel-plugin-transform-es2015-for-of/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-for-of", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 for...of to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-for-of/src/index.js b/packages/babel-plugin-transform-es2015-for-of/src/index.js index 85f2b73c65..a56efe707a 100644 --- a/packages/babel-plugin-transform-es2015-for-of/src/index.js +++ b/packages/babel-plugin-transform-es2015-for-of/src/index.js @@ -1,9 +1,9 @@ export default function ({ messages, template, types: t }) { - var buildForOfArray = template(` + let buildForOfArray = template(` for (var KEY = 0; KEY < ARR.length; KEY++) BODY; `); - var buildForOfLoose = template(` + let buildForOfLoose = template(` for (var LOOP_OBJECT = OBJECT, IS_ARRAY = Array.isArray(LOOP_OBJECT), INDEX = 0, @@ -20,7 +20,7 @@ export default function ({ messages, template, types: t }) { } `); - var buildForOf = template(` + let buildForOf = template(` var ITERATOR_COMPLETION = true; var ITERATOR_HAD_ERROR_KEY = false; var ITERATOR_ERROR_KEY = undefined; @@ -44,21 +44,21 @@ export default function ({ messages, template, types: t }) { `); function _ForOfStatementArray(path) { - var { node, scope } = path; - var nodes = []; - var right = node.right; + let { node, scope } = path; + let nodes = []; + let right = node.right; if (!t.isIdentifier(right) || !scope.hasBinding(right.name)) { - var uid = scope.generateUidIdentifier("arr"); + let uid = scope.generateUidIdentifier("arr"); nodes.push(t.variableDeclaration("var", [ t.variableDeclarator(uid, right) ])); right = uid; } - var iterationKey = scope.generateUidIdentifier("i"); + let iterationKey = scope.generateUidIdentifier("i"); - var loop = buildForOfArray({ + let loop = buildForOfArray({ BODY: node.body, KEY: iterationKey, ARR: right @@ -67,9 +67,9 @@ export default function ({ messages, template, types: t }) { t.inherits(loop, node); t.ensureBlock(loop); - var iterationValue = t.memberExpression(right, iterationKey, true); + let iterationValue = t.memberExpression(right, iterationKey, true); - var left = node.left; + let left = node.left; if (t.isVariableDeclaration(left)) { left.declarations[0].init = iterationValue; loop.body.body.unshift(left); @@ -91,17 +91,17 @@ export default function ({ messages, template, types: t }) { visitor: { ForOfStatement(path, state) { if (path.get("right").isArrayExpression()) { - return _ForOfStatementArray.call(this, path, state); + return path.replaceWithMultiple(_ForOfStatementArray.call(this, path, state)); } - var callback = spec; + let callback = spec; if (state.opts.loose) callback = loose; - var { node } = path; - var build = callback(path, state); - var declar = build.declar; - var loop = build.loop; - var block = loop.body; + let { node } = path; + let build = callback(path, state); + let declar = build.declar; + let loop = build.loop; + let block = loop.body; // ensure that it's a block so we can take all its statements path.ensureBlock(); @@ -128,16 +128,16 @@ export default function ({ messages, template, types: t }) { }; function loose(path, file) { - var { node, scope } = path; + let { node, scope } = path; - var left = node.left; - var declar, id; + let left = node.left; + let declar, id; if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { // for (i of test), for ({ i } of test) id = left; } else if (t.isVariableDeclaration(left)) { - // for (var i of test) + // for (let i of test) id = scope.generateUidIdentifier("ref"); declar = t.variableDeclaration(left.kind, [ t.variableDeclarator(left.declarations[0].id, id) @@ -146,10 +146,10 @@ export default function ({ messages, template, types: t }) { throw file.buildCodeFrameError(left, messages.get("unknownForHead", left.type)); } - var iteratorKey = scope.generateUidIdentifier("iterator"); - var isArrayKey = scope.generateUidIdentifier("isArray"); + let iteratorKey = scope.generateUidIdentifier("iterator"); + let isArrayKey = scope.generateUidIdentifier("isArray"); - var loop = buildForOfLoose({ + let loop = buildForOfLoose({ LOOP_OBJECT: iteratorKey, IS_ARRAY: isArrayKey, OBJECT: node.right, @@ -173,18 +173,18 @@ export default function ({ messages, template, types: t }) { } function spec(path, file) { - var { node, scope, parent } = path; - var left = node.left; - var declar; + let { node, scope, parent } = path; + let left = node.left; + let declar; - var stepKey = scope.generateUidIdentifier("step"); - var stepValue = t.memberExpression(stepKey, t.identifier("value")); + let stepKey = scope.generateUidIdentifier("step"); + let stepValue = t.memberExpression(stepKey, t.identifier("value")); if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) { // for (i of test), for ({ i } of test) declar = t.expressionStatement(t.assignmentExpression("=", left, stepValue)); } else if (t.isVariableDeclaration(left)) { - // for (var i of test) + // for (let i of test) declar = t.variableDeclaration(left.kind, [ t.variableDeclarator(left.declarations[0].id, stepValue) ]); @@ -194,9 +194,9 @@ export default function ({ messages, template, types: t }) { // - var iteratorKey = scope.generateUidIdentifier("iterator"); + let iteratorKey = scope.generateUidIdentifier("iterator"); - var template = buildForOf({ + let template = buildForOf({ ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier("didIteratorError"), ITERATOR_COMPLETION: scope.generateUidIdentifier("iteratorNormalCompletion"), ITERATOR_ERROR_KEY: scope.generateUidIdentifier("iteratorError"), @@ -206,10 +206,10 @@ export default function ({ messages, template, types: t }) { BODY: null }); - var isLabeledParent = t.isLabeledStatement(parent); + let isLabeledParent = t.isLabeledStatement(parent); - var tryBody = template[3].block.body; - var loop = tryBody[0]; + let tryBody = template[3].block.body; + let loop = tryBody[0]; if (isLabeledParent) { tryBody[0] = t.labeledStatement(parent.label, loop); diff --git a/packages/babel-plugin-transform-es2015-function-name/package.json b/packages/babel-plugin-transform-es2015-function-name/package.json index f1c6273b60..d57f296d3f 100644 --- a/packages/babel-plugin-transform-es2015-function-name/package.json +++ b/packages/babel-plugin-transform-es2015-function-name/package.json @@ -1,11 +1,16 @@ { "name": "babel-plugin-transform-es2015-function-name", - "version": "1.0.0", + "version": "5.10.32", "description": "Apply ES2015 function.name semantics to all functions", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-helper-function-name": "^5.0.0", + "babel-types": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-function-name/src/index.js b/packages/babel-plugin-transform-es2015-function-name/src/index.js index 6845446a11..fb45f0d9eb 100644 --- a/packages/babel-plugin-transform-es2015-function-name/src/index.js +++ b/packages/babel-plugin-transform-es2015-function-name/src/index.js @@ -1,7 +1,39 @@ +import * as t from "babel-types"; +import nameFunction from "babel-helper-function-name"; + export default function () { return { visitor: { - // your visitor methods go here + "ArrowFunctionExpression|FunctionExpression": { + exit(path) { + if (path.key !== "value" && !path.parentPath.isObjectProperty()) { + let replacement = nameFunction(path); + if (replacement) path.replaceWith(replacement); + } + } + }, + + ObjectExpression(path) { + let props: Array = path.get("properties"); + + for (let prop of props) { + if (prop.isObjectMethod({ kind: "method", computed: false })) { + let node = prop.node; + prop.replaceWith(t.objectProperty( + node.key, + t.functionExpression(null, node.params, node.body, node.generator, node.async) + )); + } + + if (prop.isObjectProperty()) { + let value = prop.get("value"); + if (value.isFunction()) { + let newNode = nameFunction(value); + if (newNode) value.replaceWith(newNode); + } + } + } + } } }; } diff --git a/packages/babel-plugin-transform-es2015-literals/package.json b/packages/babel-plugin-transform-es2015-literals/package.json index dcbe537ea0..b5be526bc0 100644 --- a/packages/babel-plugin-transform-es2015-literals/package.json +++ b/packages/babel-plugin-transform-es2015-literals/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-literals", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 unicode string and number literals to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-literals/src/index.js b/packages/babel-plugin-transform-es2015-literals/src/index.js index 4904fe01ff..371dd7d7cd 100644 --- a/packages/babel-plugin-transform-es2015-literals/src/index.js +++ b/packages/babel-plugin-transform-es2015-literals/src/index.js @@ -3,15 +3,15 @@ export default function () { visitor: { NumberLiteral(node) { // number octal like 0b10 or 0o70 - if (/^0[ob]/i.test(node.raw)) { - node.raw = undefined; + if (node.extra && /^0[ob]/i.test(node.extra.raw)) { + node.extra = undefined; } }, StringLiteral(node) { // unicode escape - if (/\\[u]/gi.test(node.raw)) { - node.raw = undefined; + if (node.extra && /\\[u]/gi.test(node.extra.raw)) { + node.extra = undefined; } } } diff --git a/packages/babel-plugin-transform-es2015-modules-amd/README.md b/packages/babel-plugin-transform-es2015-modules-amd/README.md new file mode 100644 index 0000000000..beb7cfc104 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-es2015-modules-amd + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-modules-amd +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-modules-amd"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-modules-amd script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-modules-amd"] +}); +``` diff --git a/packages/babel-plugin-transform-es2015-modules-amd/package.json b/packages/babel-plugin-transform-es2015-modules-amd/package.json new file mode 100644 index 0000000000..5854d5ac91 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-plugin-transform-es2015-modules-amd", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^5.0.0", + "babel-template": "^5.0.0", + "babel-runtime": "^5.8.20" + }, + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-transform-es2015-modules-amd/src/index.js b/packages/babel-plugin-transform-es2015-modules-amd/src/index.js new file mode 100644 index 0000000000..ba9020a638 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-amd/src/index.js @@ -0,0 +1,109 @@ +import template from "babel-template"; + +let buildDefine = template(` + define(MODULE_NAME, [SOURCES], function (PARAMS) { + BODY; + }); +`); + +export default function ({ types: t }) { + function isValidRequireCall(path) { + if (!path.isCallExpression()) return false; + if (!path.get("callee").isIdentifier({ name: "require" })) return false; + if (path.scope.getBinding("require")) return false; + + let args = path.get("arguments"); + if (args.length !== 1) return false; + + let arg = args[0]; + if (!arg.isStringLiteral()) return false; + + return true; + } + + let amdVisitor = { + ReferencedIdentifier({ node, scope }) { + if (node.name === "exports" && !scope.getBinding("exports")) { + this.hasExports = true; + } + + if (node.name === "module" && !scope.getBinding("module")) { + this.hasModule = true; + } + }, + + CallExpression(path) { + if (!isValidRequireCall(path)) return; + this.bareSources.push(path.node.arguments[0]); + path.remove(); + }, + + VariableDeclarator(path) { + let id = path.get("id"); + if (!id.isIdentifier()) return; + + let init = path.get("init"); + if (!isValidRequireCall(init)) return; + + let source = init.node.arguments[0]; + this.sourceNames[source.value] = true; + this.sources.push([id.node, source]); + + path.remove(); + } + }; + + return { + inherits: require("babel-plugin-transform-es2015-modules-commonjs"), + + pre() { + // source strings + this.sources = []; + this.sourceNames = Object.create(null); + + // bare sources + this.bareSources = []; + + this.hasExports = false; + this.hasModule = false; + }, + + visitor: { + Program: { + exit(path) { + if (this.ran) return; + this.ran = true; + + path.traverse(amdVisitor, this); + + let params = this.sources.map(source => source[0]); + let sources = this.sources.map(source => source[1]); + + sources = sources.concat(this.bareSources.filter((str) => { + return !this.sourceNames[str.value]; + })); + + let moduleName = this.getModuleName(); + if (moduleName) moduleName = t.stringLiteral(moduleName); + + if (this.hasExports) { + sources.unshift(t.stringLiteral("exports")); + params.unshift(t.identifier("exports")); + } + + if (this.hasModule) { + sources.unshift(t.stringLiteral("module")); + params.unshift(t.identifier("module")); + } + + path.node.body = [buildDefine({ + MODULE_NAME: moduleName, + SOURCES: sources, + PARAMS: params, + BODY: path.node.body + })]; + } + } + } + }; +} diff --git a/packages/babel-plugin-transform-dead-code-elimination/.npmignore b/packages/babel-plugin-transform-es2015-modules-commonjs/.npmignore similarity index 100% rename from packages/babel-plugin-transform-dead-code-elimination/.npmignore rename to packages/babel-plugin-transform-es2015-modules-commonjs/.npmignore diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/README.md b/packages/babel-plugin-transform-es2015-modules-commonjs/README.md new file mode 100644 index 0000000000..3ad1e4c355 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-es2015-modules-commonjs + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-modules-commonjs +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-modules-commonjs"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-modules-commonjs script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-modules-commonjs"] +}); +``` diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/package.json b/packages/babel-plugin-transform-es2015-modules-commonjs/package.json new file mode 100644 index 0000000000..0e307a4aeb --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/package.json @@ -0,0 +1,17 @@ +{ + "name": "babel-plugin-transform-es2015-modules-commonjs", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-types": "^5.0.0", + "babel-runtime": "^5.0.0", + "babel-template": "^5.0.0", + "babel-runtime": "^5.8.20" + }, + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js new file mode 100644 index 0000000000..6661edecc9 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js @@ -0,0 +1,358 @@ +import { basename, extname } from "path"; +import template from "babel-template"; +import * as t from "babel-types"; + +let buildRequire = template(` + require($0); +`); + +let buildExportsModuleDeclaration = template(` + Object.defineProperty(exports, "__esModule", { + value: true + }); +`); + +let buildExportsFrom = template(` + Object.defineProperty(exports, $0, { + enumerable: true, + get: function () { + return $1; + } + }); +`); + +let buildLooseExportsModuleDeclaration = template(` + exports.__esModule = true; +`); + +let buildExportsAssignment = template(` + exports.$0 = $1; +`); + +let buildExportAll = template(` + for (let KEY in OBJECT) { + if (KEY === "default") continue; + + Object.defineProperty(exports, KEY, { + enumerable: true, + get: function () { + return OBJECT[KEY]; + } + }); + } +`); + +const THIS_BREAK_KEYS = ["FunctionExpression", "FunctionDeclaration", "ClassProperty", "ClassMethod", "ObjectMethod"]; + +export default function () { + let REASSIGN_REMAP_SKIP = Symbol(); + + let reassignmentVisitor = { + ReferencedIdentifier(path) { + let name = path.node.name; + let remap = this.remaps[name]; + if (!remap) return; + + // redeclared in this scope + if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return; + + if (path.parentPath.isCallExpression({ callee: path.node })) { + path.replaceWith(t.sequenceExpression([t.numberLiteral(0), remap])); + } else { + path.replaceWith(remap); + } + }, + + AssignmentExpression(path) { + let node = path.node; + if (node[REASSIGN_REMAP_SKIP]) return; + + let left = path.get("left"); + if (!left.isIdentifier()) return; + + let name = left.node.name; + let exports = this.exports[name]; + if (!exports) return; + + // redeclared in this scope + if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return; + + node[REASSIGN_REMAP_SKIP] = true; + + for (let reid of exports) { + node = buildExportsAssignment(reid, node).expression; + } + path.replaceWith(node); + }, + + UpdateExpression(path) { + let arg = path.get("argument"); + if (!arg.isIdentifier()) return; + + let name = arg.node.name; + let exports = this.exports[name]; + if (!exports) return; + + // redeclared in this scope + if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return; + + let node = t.assignmentExpression(path.node.operator[0] + "=", arg.node, t.numberLiteral(1)); + + if ((path.parentPath.isExpressionStatement() && !path.isCompletionRecord()) || path.node.prefix) { + return path.replaceWith(node); + } + + let nodes = []; + nodes.push(node); + + let operator; + if (path.node.operator === "--") { + operator = "+"; + } else { // "++" + operator = "-"; + } + nodes.push(t.binaryExpression(operator, arg.node, t.numberLiteral(1))); + + path.replaceWithMultiple(t.sequenceExpression(nodes)); + } + }; + + return { + visitor: { + ThisExpression(path) { + if (!path.findParent((path) => !path.is("shadow") && THIS_BREAK_KEYS.indexOf(path.type) >= 0)) { + path.replaceWith(t.identifier("undefined")); + } + }, + + Program: { + exit(path) { + let strict = !!this.opts.strict; + + let { scope } = path; + + // rename these commonjs variables if they're declared in the file + scope.rename("module"); + scope.rename("exports"); + scope.rename("require"); + + let hasExports = false; + let hasImports = false; + + let body: Array = path.get("body"); + let imports = Object.create(null); + let exports = Object.create(null); + + let nonHoistedExportNames = Object.create(null); + + let topNodes = []; + let remaps = Object.create(null); + + let requires = Object.create(null); + + function addRequire(source) { + let cached = requires[source]; + if (cached) return cached; + + let ref = path.scope.generateUidIdentifier(basename(source, extname(source))); + + topNodes.push(t.variableDeclaration("var", [ + t.variableDeclarator(ref, buildRequire(t.stringLiteral(source)).expression) + ])); + + return requires[source] = ref; + } + + function addTo(obj, key, arr) { + let existing = obj[key] || []; + obj[key] = existing.concat(arr); + } + + for (let path of body) { + if (path.isExportDeclaration()) { + hasExports = true; + + let specifiers = [].concat(path.get("declaration"), path.get("specifiers")); + for (let specifier of specifiers) { + let ids = specifier.getBindingIdentifiers(); + if (ids.__esModule) { + throw specifier.buildCodeFrameError(`Illegal export "__esModule"`); + } + } + } + + if (path.isImportDeclaration()) { + hasImports = true; + addTo(imports, path.node.source.value, path.node.specifiers); + path.remove(); + } else if (path.isExportDefaultDeclaration()) { + let declaration = path.get("declaration"); + if (declaration.isFunctionDeclaration()) { + let id = declaration.node.id; + let defNode = t.identifier("default"); + if (id) { + addTo(exports, id.name, defNode); + topNodes.push(buildExportsAssignment(defNode, id)); + path.replaceWith(declaration.node); + } else { + topNodes.push(buildExportsAssignment(defNode, t.toExpression(declaration.node))); + path.remove(); + } + } else if (declaration.isClassDeclaration()) { + let id = declaration.node.id; + let defNode = t.identifier("default"); + if (id) { + addTo(exports, id.name, defNode); + path.replaceWithMultiple([ + declaration.node, + buildExportsAssignment(defNode, id) + ]); + } else { + path.replaceWith(buildExportsAssignment(defNode, t.toExpression(declaration.node))); + } + } else { + path.replaceWith(buildExportsAssignment(t.identifier("default"), declaration.node)); + } + } else if (path.isExportNamedDeclaration()) { + let declaration = path.get("declaration"); + if (declaration.node) { + if (declaration.isFunctionDeclaration()) { + let id = declaration.node.id; + addTo(exports, id.name, id); + topNodes.push(buildExportsAssignment(id, id)); + path.replaceWith(declaration.node); + } else if (declaration.isClassDeclaration()) { + let id = declaration.node.id; + addTo(exports, id.name, id); + path.replaceWithMultiple([ + declaration.node, + buildExportsAssignment(id, id) + ]); + nonHoistedExportNames[id.name] = true; + } else if (declaration.isVariableDeclaration()) { + let declarators = declaration.get("declarations"); + for (let decl of declarators) { + let id = decl.get("id"); + + let init = decl.get("init"); + if (!init.node) init.replaceWith(t.identifier("undefined")); + + if (id.isIdentifier()) { + addTo(exports, id.node.name, id.node); + init.replaceWith(buildExportsAssignment(id.node, init.node).expression); + nonHoistedExportNames[id.node.name] = true; + } else { + // todo + } + } + path.replaceWith(declaration.node); + } + continue; + } + + let specifiers = path.get("specifiers"); + if (specifiers.length) { + let nodes = []; + let source = path.node.source + if (source) { + let ref = addRequire(source.value); + + for (let specifier of specifiers) { + if (specifier.isExportNamespaceSpecifier()) { + // todo + } else if (specifier.isExportDefaultSpecifier()) { + // todo + } else if (specifier.isExportSpecifier()) { + topNodes.push(buildExportsFrom(t.stringLiteral(specifier.node.exported.name), t.memberExpression(ref, specifier.node.local))); + nonHoistedExportNames[specifier.node.exported.name] = true; + } + } + } else { + for (let specifier of specifiers) { + if (specifier.isExportSpecifier()) { + addTo(exports, specifier.node.local.name, specifier.node.exported); + nonHoistedExportNames[specifier.node.exported.name] = true; + nodes.push(buildExportsAssignment(specifier.node.exported, specifier.node.local)); + } + } + } + path.replaceWithMultiple(nodes); + } + } else if (path.isExportAllDeclaration()) { + topNodes.push(buildExportAll({ + KEY: path.scope.generateUidIdentifier("key"), + OBJECT: addRequire(path.node.source.value) + })); + path.remove(); + } + } + + for (let source in imports) { + let specifiers = imports[source]; + if (specifiers.length) { + let uid = addRequire(source); + + let wildcard; + + for (let i = 0; i < specifiers.length; i++) { + let specifier = specifiers[i]; + if (t.isImportNamespaceSpecifier(specifier)) { + if (strict) { + remaps[specifier.local.name] = uid; + } else { + topNodes.push(t.variableDeclaration("var", [ + t.variableDeclarator(specifier.local, t.callExpression(this.addHelper("interopRequireWildcard"), [uid])) + ])); + } + wildcard = specifier.local; + } else if (t.isImportDefaultSpecifier(specifier)) { + specifiers[i] = t.importSpecifier(specifier.local, t.identifier("default")); + } + } + + for (let specifier of specifiers) { + if (t.isImportSpecifier(specifier)) { + let target = uid; + if (specifier.imported.name === "default") { + if (wildcard) { + target = wildcard; + } else { + target = wildcard = path.scope.generateUidIdentifier(uid.name); + topNodes.push(t.variableDeclaration("var", [ + t.variableDeclarator(target, t.callExpression(this.addHelper("interopRequireDefault"), [uid])) + ])); + } + } + remaps[specifier.local.name] = t.memberExpression(target, specifier.imported); + } + } + } else { + // bare import + topNodes.push(buildRequire(t.stringLiteral(source))); + } + } + + if (hasImports && Object.keys(nonHoistedExportNames).length) { + let hoistedExportsNode = t.identifier("undefined"); + + for (let name in nonHoistedExportNames) { + hoistedExportsNode = buildExportsAssignment(t.identifier(name), hoistedExportsNode).expression; + } + + topNodes.unshift(t.expressionStatement(hoistedExportsNode)); + } + + // add __esModule declaration if this file has any exports + if (hasExports && !strict) { + let buildTemplate = buildExportsModuleDeclaration; + if (this.opts.loose) buildTemplate = buildLooseExportsModuleDeclaration; + topNodes.unshift(buildTemplate()); + } + + path.unshiftContainer("body", topNodes); + path.traverse(reassignmentVisitor, { remaps, scope, exports }); + } + } + } + }; +} diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/README.md b/packages/babel-plugin-transform-es2015-modules-systemjs/README.md new file mode 100644 index 0000000000..dfe554de32 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-es2015-modules-systemjs + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-modules-systemjs +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-modules-systemjs"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-modules-systemjs script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-modules-systemjs"] +}); +``` diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/package.json b/packages/babel-plugin-transform-es2015-modules-systemjs/package.json new file mode 100644 index 0000000000..0190ee1989 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-plugin-transform-es2015-modules-systemjs", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-template": "^5.0.0", + "babel-helper-hoist-variables": "^5.0.0", + "babel-runtime": "^5.8.20" + }, + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js b/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js new file mode 100644 index 0000000000..8d312af8f0 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/src/index.js @@ -0,0 +1,243 @@ +import hoistVariables from "babel-helper-hoist-variables"; +import template from "babel-template"; + +let buildTemplate = template(` + System.register(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER) { + BEFORE_BODY; + return { + setters: [SETTERS], + execute: function () { + BODY; + } + }; + }); +`); + +let buildExportAll = template(` + for (var KEY in TARGET) { + if (KEY !== "default") EXPORT_OBJ[KEY] = TARGET[KEY]; + } +`); + +export default function ({ types: t }) { + let IGNORE_REASSIGNMENT_SYMBOL = Symbol(); + + let reassignmentVisitor = { + "AssignmentExpression|UpdateExpression"(path) { + if (path.node[IGNORE_REASSIGNMENT_SYMBOL]) return; + path.node[IGNORE_REASSIGNMENT_SYMBOL] = true; + + let arg = path.get(path.isAssignmentExpression() ? "left" : "argument"); + if (!arg.isIdentifier()) return; + + let name = arg.node.name; + + // redeclared in this scope + if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return; + + let exportedNames = this.exports[name]; + if (!exportedNames) return; + + let node = path.node; + + for (let exportedName of exportedNames) { + node = this.buildCall(exportedName, node).expression; + } + + path.replaceWith(node); + } + }; + + return { + visitor: { + Program: { + exit(path) { + let exportIdent = path.scope.generateUidIdentifier("export"); + + let exportNames = Object.create(null); + let modules = Object.create(null); + + let beforeBody = []; + let setters = []; + let sources = []; + let variableIds = []; + + function addExportName(key, val) { + exportNames[key] = exportNames[key] || []; + exportNames[key].push(val); + } + + function pushModule(source, key, specifiers) { + let _modules = modules[source] = modules[source] || { imports: [], exports: [] }; + _modules[key] = _modules[key].concat(specifiers); + } + + function buildExportCall(name, val) { + return t.expressionStatement( + t.callExpression(exportIdent, [t.stringLiteral(name), val]) + ); + } + + let body: Array = path.get("body"); + + let canHoist = true; + for (let path of body) { + if (path.isExportDeclaration()) path = path.get("declaration"); + if (path.isVariableDeclaration() && path.node.kind !== "var") { + canHoist = false; + break; + } + } + + for (let path of body) { + if (canHoist && path.isFunctionDeclaration()) { + beforeBody.push(path.node); + path.remove(); + } else if (path.isImportDeclaration()) { + let source = path.node.source.value; + pushModule(source, "imports", path.node.specifiers); + for (let name in path.getBindingIdentifiers()) { + path.scope.removeBinding(name); + variableIds.push(t.identifier(name)); + } + path.remove(); + } else if (path.isExportAllDeclaration()) { + pushModule(path.node.source.value, "exports", path.node); + path.remove(); + } else if (path.isExportDefaultDeclaration()) { + let declar = path.get("declaration"); + if (declar.isClassDeclaration() || declar.isFunctionDeclaration()) { + let id = declar.node.id; + let nodes = []; + + if (id) { + nodes.push(declar.node); + nodes.push(buildExportCall("default", id)); + addExportName(id.name, "default"); + } else { + nodes.push(buildExportCall("default", t.toExpression(declar.node))); + } + + if (!canHoist || declar.isClassDeclaration()) { + path.replaceWithMultiple(nodes); + } else { + beforeBody = beforeBody.concat(nodes); + path.remove(); + } + } else { + path.replaceWith(buildExportCall("default", declar.node)); + } + } else if (path.isExportNamedDeclaration()) { + let declar = path.get("declaration"); + + if (declar.node) { + path.replaceWith(declar); + + let nodes = []; + for (let name in declar.getBindingIdentifiers()) { + addExportName(name, name); + nodes.push(buildExportCall(name, t.identifier(name))); + } + path.insertAfter(nodes); + } + + let specifiers = path.node.specifiers; + if (specifiers && specifiers.length) { + if (path.node.source) { + pushModule(path.node.source.value, "exports", specifiers); + path.remove(); + } else { + let nodes = []; + + for (let specifier of specifiers) { + nodes.push(buildExportCall(specifier.exported.name, specifier.local)); + addExportName(specifier.local.name, specifier.exported.name); + } + + path.replaceWithMultiple(nodes); + } + } + } + } + + for (let source in modules) { + let specifiers = modules[source]; + + let setterBody = []; + let target = path.scope.generateUidIdentifier(source); + + for (let specifier of specifiers.imports) { + if (t.isImportNamespaceSpecifier(specifier)) { + setterBody.push(t.expressionStatement(t.assignmentExpression("=", specifier.local, target))); + } else if (t.isImportDefaultSpecifier(specifier)) { + specifier = t.importSpecifier(specifier.local, t.identifier("default")); + } + + if (t.isImportSpecifier(specifier)) { + setterBody.push(t.expressionStatement(t.assignmentExpression("=", specifier.local, t.memberExpression(target, specifier.imported)))); + } + } + + if (specifiers.exports.length) { + let exportObjRef = path.scope.generateUidIdentifier("exportObj"); + + setterBody.push(t.variableDeclaration("var", [ + t.variableDeclarator(exportObjRef, t.objectExpression([])) + ])); + + for (let node of specifiers.exports) { + if (t.isExportAllDeclaration(node)) { + setterBody.push(buildExportAll({ + KEY: path.scope.generateUidIdentifier("key"), + EXPORT_OBJ: exportObjRef, + TARGET: target + })); + } else if (t.isExportSpecifier(node)) { + setterBody.push(t.expressionStatement( + t.assignmentExpression("=", t.memberExpression(exportObjRef, node.exported), t.memberExpression(target, node.local)) + )); + } else { + // todo + } + } + + setterBody.push(t.expressionStatement(t.callExpression(exportIdent, [exportObjRef]))); + } + + sources.push(t.stringLiteral(source)); + setters.push(t.functionExpression(null, [target], t.blockStatement(setterBody))); + } + + + let moduleName = this.getModuleName(); + if (moduleName) moduleName = t.stringLiteral(moduleName); + + if (canHoist) { + hoistVariables(path, id => variableIds.push(id)); + } + + if (variableIds.length) { + beforeBody.unshift(t.variableDeclaration("var", variableIds.map(id => t.variableDeclarator(id)))); + } + + path.traverse(reassignmentVisitor, { + exports: exportNames, + buildCall: buildExportCall, + scope: path.scope + }); + + path.node.body = [ + buildTemplate({ + BEFORE_BODY: beforeBody, + MODULE_NAME: moduleName, + SETTERS: setters, + SOURCES: sources, + BODY: path.node.body, + EXPORT_IDENTIFIER: exportIdent + }) + ]; + } + } + } + }; +} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/README.md b/packages/babel-plugin-transform-es2015-modules-umd/README.md new file mode 100644 index 0000000000..c96b1cdf4a --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-es2015-modules-umd + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-modules-umd +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-modules-umd"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-modules-umd script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-modules-umd"] +}); +``` diff --git a/packages/babel-plugin-transform-es2015-modules-umd/package.json b/packages/babel-plugin-transform-es2015-modules-umd/package.json new file mode 100644 index 0000000000..b5a73044ee --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/package.json @@ -0,0 +1,16 @@ +{ + "name": "babel-plugin-transform-es2015-modules-umd", + "version": "1.0.0", + "description": "", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^5.0.0", + "babel-template": "^5.0.0", + "babel-runtime": "^5.8.20" + }, + "keywords": [ + "babel-plugin" + ] +} diff --git a/packages/babel-plugin-transform-es2015-modules-umd/src/index.js b/packages/babel-plugin-transform-es2015-modules-umd/src/index.js new file mode 100644 index 0000000000..c457e12484 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-modules-umd/src/index.js @@ -0,0 +1,85 @@ +import { basename, extname } from "path"; +import template from "babel-template"; + +let buildWrapper = template(` + (function (global, factory) { + if (typeof define === "function" && define.amd) { + define(MODULE_NAME, AMD_ARGUMENTS, factory); + } else if (typeof exports !== "undefined") { + factory(COMMON_ARGUMENTS); + } else { + var mod = { exports: {} }; + factory(BROWSER_ARGUMENTS); + global.GLOBAL_ARG = mod.exports; + } + })(this, FUNC); +`); + +export default function ({ types: t }) { + function isValidDefine(path) { + if (!path.isExpressionStatement()) return; + + let expr = path.get("expression"); + if (!expr.isCallExpression()) return false; + if (!expr.get("callee").isIdentifier({ name: "define" })) return false; + + let args = expr.get("arguments"); + if (args.length === 3 && !args.shift().isStringLiteral()) return false; + if (args.length !== 2) return false; + if (!args.shift().isArrayExpression()) return false; + if (!args.shift().isFunctionExpression()) return false; + + return true; + } + + return { + inherits: require("babel-plugin-transform-es2015-modules-amd"), + + visitor: { + Program: { + exit(path) { + let last = path.get("body").pop(); + if (!isValidDefine(last)) return; + + let call = last.node.expression; + let args = call.arguments; + + let moduleName = args.length === 3 ? args.shift() : null; + let amdArgs = call.arguments[0]; + let func = call.arguments[1]; + + let commonArgs = amdArgs.elements.map((arg) => { + if (arg.value === "module" || arg.value === "exports") { + return t.identifier(arg.value); + } else { + return t.callExpression(t.identifier("require"), [arg]); + } + }); + + let browserArgs = amdArgs.elements.map((arg) => { + if (arg.value === "module") { + return t.identifier("mod"); + } else if (arg.value === "exports") { + return t.memberExpression(t.identifier("mod"), t.identifier("exports")); + } else { + return t.memberExpression(t.identifier("global"), t.identifier( + t.toIdentifier(basename(arg.value, extname(arg.value))) + )); + } + }); + + let globalArg = t.identifier(t.toIdentifier(moduleName ? moduleName.value : this.file.opts.basename)); + + last.replaceWith(buildWrapper({ + MODULE_NAME: moduleName, + BROWSER_ARGUMENTS: browserArgs, + AMD_ARGUMENTS: amdArgs, + COMMON_ARGUMENTS: commonArgs, + GLOBAL_ARG: globalArg, + FUNC: func + })); + } + } + } + }; +} diff --git a/packages/babel-plugin-transform-es2015-object-super/package.json b/packages/babel-plugin-transform-es2015-object-super/package.json index 00dae90f9b..902d5e2605 100644 --- a/packages/babel-plugin-transform-es2015-object-super/package.json +++ b/packages/babel-plugin-transform-es2015-object-super/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-es2015-object-super", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 object super to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-helper-replace-supers": "^5.0.0", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-object-super/src/index.js b/packages/babel-plugin-transform-es2015-object-super/src/index.js index 6845446a11..95098fda8a 100644 --- a/packages/babel-plugin-transform-es2015-object-super/src/index.js +++ b/packages/babel-plugin-transform-es2015-object-super/src/index.js @@ -1,7 +1,47 @@ -export default function () { +import ReplaceSupers from "babel-helper-replace-supers"; + +export default function ({ types: t }) { + function Property(path, node, scope, getObjectRef, file) { + let replaceSupers = new ReplaceSupers({ + getObjectRef: getObjectRef, + methodNode: node, + methodPath: path, + isStatic: true, + scope: scope, + file: file + }); + + replaceSupers.replace(); + } + + let CONTAINS_SUPER = Symbol(); + return { visitor: { - // your visitor methods go here + Super(path) { + let parentObj = path.findParent((path) => path.isObjectExpression()); + if (parentObj) parentObj.node[CONTAINS_SUPER] = true; + }, + + ObjectExpression: { + exit(path, file) { + if (!path.node[CONTAINS_SUPER]) return; + + let objectRef; + let getObjectRef = () => objectRef = objectRef || path.scope.generateUidIdentifier("obj"); + + let propPaths: Array = path.get("properties"); + for (let propPath of propPaths) { + if (propPath.isObjectProperty()) propPath = propPath.get("value"); + Property(propPath, propPath.node, path.scope, getObjectRef, file); + } + + if (objectRef) { + path.scope.push({ id: objectRef }); + path.replaceWith(t.assignmentExpression("=", objectRef, path.node)); + } + } + } } }; } diff --git a/packages/babel-plugin-transform-es2015-parameters/package.json b/packages/babel-plugin-transform-es2015-parameters/package.json index 3c8e296966..f7ad3d78ae 100644 --- a/packages/babel-plugin-transform-es2015-parameters/package.json +++ b/packages/babel-plugin-transform-es2015-parameters/package.json @@ -1,11 +1,19 @@ { "name": "babel-plugin-transform-es2015-parameters", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 default and rest parameters to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", + "dependencies": { + "babel-traverse": "^5.10.32", + "babel-helper-call-delegate": "^5.0.0", + "babel-helper-get-function-arity": "^5.0.0", + "babel-template": "^5.10.32", + "babel-types": "^5.10.32", + "babel-runtime": "^5.10.32" + }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-parameters/src/default.js b/packages/babel-plugin-transform-es2015-parameters/src/default.js new file mode 100644 index 0000000000..9b99a3e475 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-parameters/src/default.js @@ -0,0 +1,149 @@ +import getFunctionArity from "babel-helper-get-function-arity"; +import callDelegate from "babel-helper-call-delegate"; +import template from "babel-template"; +import * as t from "babel-types"; + +let buildDefaultParam = template(` + let VARIABLE_NAME = + ARGUMENTS.length <= ARGUMENT_KEY || ARGUMENTS[ARGUMENT_KEY] === undefined ? + DEFAULT_VALUE + : + ARGUMENTS[ARGUMENT_KEY]; +`); + +let buildDefaultParamAssign = template(` + if (VARIABLE_NAME === undefined) VARIABLE_NAME = DEFAULT_VALUE; +`); + +let buildCutOff = template(` + let $0 = arguments[$1]; +`); + +function hasDefaults(node) { + for (let param of (node.params: Array)) { + if (!t.isIdentifier(param)) return true; + } + return false; +} + +let iifeVisitor = { + ReferencedIdentifier(path, state) { + let name = path.node.name; + if (name === "eval" || (path.scope.hasOwnBinding(name) && path.scope.getOwnBinding(name).kind !== "param")) { + state.iife = true; + path.stop(); + } + }, + + Scope(path) { + // different bindings + path.skip(); + } +}; + +export let visitor = { + Function(path) { + let { node, scope } = path; + if (!hasDefaults(node)) return; + + // ensure it's a block, useful for arrow functions + path.ensureBlock(); + + let state = { + iife: false, + scope: scope + }; + + let body = []; + + // + let argsIdentifier = t.identifier("arguments"); + argsIdentifier._shadowedFunctionLiteral = path; + + // push a default parameter definition + function pushDefNode(left, right, i) { + let defNode; + if (exceedsLastNonDefault(i) || t.isPattern(left)) { + defNode = buildDefaultParam({ + VARIABLE_NAME: left, + DEFAULT_VALUE: right, + ARGUMENT_KEY: t.numberLiteral(i), + ARGUMENTS: argsIdentifier + }); + } else { + defNode = buildDefaultParamAssign({ + VARIABLE_NAME: left, + DEFAULT_VALUE: right + }); + } + defNode._blockHoist = node.params.length - i; + body.push(defNode); + } + + // check if an index exceeds the functions arity + function exceedsLastNonDefault(i) { + return i + 1 > lastNonDefaultParam; + } + + // + let lastNonDefaultParam = getFunctionArity(node); + + // + let params = path.get("params"); + for (let i = 0; i < params.length; i++) { + let param = params[i]; + + if (!param.isAssignmentPattern()) { + if (!param.isIdentifier()) { + param.traverse(iifeVisitor, state); + } + + continue; + } + + let left = param.get("left"); + let right = param.get("right"); + + // + if (exceedsLastNonDefault(i) || left.isPattern()) { + let placeholder = scope.generateUidIdentifier("x"); + placeholder._isDefaultPlaceholder = true; + node.params[i] = placeholder; + } else { + node.params[i] = left.node; + } + + // + if (!state.iife) { + if (right.isIdentifier() && scope.hasOwnBinding(right.node.name) && scope.getOwnBinding(right.node.name).kind !== "param") { + // the right hand side references a parameter + state.iife = true; + } else { + right.traverse(iifeVisitor, state); + } + } + + pushDefNode(left.node, right.node, i); + } + + // add declarations for trailing parameters + for (let i = lastNonDefaultParam + 1; i < node.params.length; i++) { + let param = node.params[i]; + if (param._isDefaultPlaceholder) continue; + + let declar = buildCutOff(param, t.numberLiteral(i)); + declar._blockHoist = node.params.length - i; + body.push(declar); + } + + // we need to cut off all trailing parameters + node.params = node.params.slice(0, lastNonDefaultParam); + + if (state.iife) { + body.push(callDelegate(path, scope)); + path.set("body", t.blockStatement(body)); + } else { + path.get("body").unshiftContainer("body", body); + } + } +}; diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js b/packages/babel-plugin-transform-es2015-parameters/src/destructuring.js similarity index 75% rename from packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js rename to packages/babel-plugin-transform-es2015-parameters/src/destructuring.js index da8b0de40f..eb14db26a1 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/destructuring.js +++ b/packages/babel-plugin-transform-es2015-parameters/src/destructuring.js @@ -3,18 +3,19 @@ import * as t from "babel-types"; export let visitor = { Function(path) { let params: Array = path.get("params"); - let body = path.get("body"); - + for (let i = 0; i < params.length; i++) { let param = params[i]; if (param.isArrayPattern() || param.isObjectPattern()) { - let uid = path.scope.generateUidIdentifierBasedOnNode(param.node); + let uid = path.scope.generateUidIdentifier("ref"); let declar = t.variableDeclaration("let", [ t.variableDeclarator(param.node, uid) ]); declar._blockHoist = params.length - i; - body.unshiftContainer("body", declar); + + path.ensureBlock(); + path.get("body").unshiftContainer("body", declar); param.replaceWith(uid); } diff --git a/packages/babel-plugin-transform-es2015-parameters/src/index.js b/packages/babel-plugin-transform-es2015-parameters/src/index.js index 6845446a11..6279147062 100644 --- a/packages/babel-plugin-transform-es2015-parameters/src/index.js +++ b/packages/babel-plugin-transform-es2015-parameters/src/index.js @@ -1,7 +1,23 @@ +import type { NodePath } from "babel-traverse"; +import { visitors } from "babel-traverse"; + +import * as destructuring from "./destructuring"; +import * as def from "./default"; +import * as rest from "./rest"; + export default function () { return { - visitor: { - // your visitor methods go here - } + visitor: visitors.merge([{ + ArrowFunctionExpression(path) { + // default/rest visitors require access to `arguments` + let params: Array = path.get("params"); + for (let param of params) { + if (param.isRestElement() || param.isAssignmentPattern()) { + path.arrowFunctionToShadowed(); + break; + } + } + } + }, destructuring.visitor, rest.visitor, def.visitor]) }; } diff --git a/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js b/packages/babel-plugin-transform-es2015-parameters/src/rest.js similarity index 79% rename from packages/babel-core/src/transformation/transformers/es6/parameters/rest.js rename to packages/babel-plugin-transform-es2015-parameters/src/rest.js index 6eb37b76d2..5eb6a6b0e5 100644 --- a/packages/babel-core/src/transformation/transformers/es6/parameters/rest.js +++ b/packages/babel-plugin-transform-es2015-parameters/src/rest.js @@ -1,30 +1,42 @@ -import * as util from "../../../../util"; +import template from "babel-template"; import * as t from "babel-types"; +let buildRest = template(` + for (var LEN = ARGUMENTS.length, + ARRAY = Array(ARRAY_LEN), + KEY = START; + KEY < LEN; + KEY++) { + ARRAY[ARRAY_KEY] = ARGUMENTS[KEY]; + } +`); + let memberExpressionOptimisationVisitor = { - Scope(node, parent, scope, state) { + Scope(path, state) { // check if this scope has a local binding that will shadow the rest parameter - if (!scope.bindingIdentifierEquals(state.name, state.outerBinding)) { - this.skip(); + if (!path.scope.bindingIdentifierEquals(state.name, state.outerBinding)) { + path.skip(); } }, - Flow() { + Flow(path) { // don't touch reference in type annotations - this.skip(); + path.skip(); }, - Function(node, parent, scope, state) { + Function(path, state) { // skip over functions as whatever `arguments` we reference inside will refer // to the wrong function let oldNoOptimise = state.noOptimise; state.noOptimise = true; - this.traverse(memberExpressionOptimisationVisitor, state); + path.traverse(memberExpressionOptimisationVisitor, state); state.noOptimise = oldNoOptimise; - this.skip(); + path.skip(); }, - ReferencedIdentifier(node, parent, scope, state) { + ReferencedIdentifier(path, state) { + let { node } = path; + // we can't guarantee the purity of arguments if (node.name === "arguments") { state.deopted = true; @@ -36,26 +48,26 @@ let memberExpressionOptimisationVisitor = { if (state.noOptimise) { state.deopted = true; } else { - if (this.parentPath.isMemberExpression({ computed: true, object: node })) { + if (path.parentPath.isMemberExpression({ computed: true, object: node })) { // if we know that this member expression is referencing a number then we can safely // optimise it - let prop = this.parentPath.get("property"); + let prop = path.parentPath.get("property"); if (prop.isBaseType("number")) { - state.candidates.push(this); + state.candidates.push(path); return; } } // optimise single spread args in calls - if (this.parentPath.isSpreadElement() && state.offset === 0) { - let call = this.parentPath.parentPath; + if (path.parentPath.isSpreadElement() && state.offset === 0) { + let call = path.parentPath.parentPath; if (call.isCallExpression() && call.node.arguments.length === 1) { - state.candidates.push(this); + state.candidates.push(path); return; } } - state.references.push(this); + state.references.push(path); } }, @@ -65,7 +77,7 @@ let memberExpressionOptimisationVisitor = { * See https://github.com/babel/babel/issues/2091 */ - BindingIdentifier(node, parent, scope, state) { + BindingIdentifier({ node }, state) { if (node.name === state.name) { state.deopted = true; } @@ -92,7 +104,8 @@ function hasRest(node) { } export let visitor = { - Function(node, parent, scope) { + Function(path) { + let { node, scope } = path; if (!hasRest(node)) return; let restParam = node.params.pop(); @@ -101,7 +114,7 @@ export let visitor = { let argsId = t.identifier("arguments"); // otherwise `arguments` will be remapped in arrow functions - argsId._shadowedFunctionLiteral = this; + argsId._shadowedFunctionLiteral = path; // support patterns if (t.isPattern(rest)) { @@ -133,7 +146,7 @@ export let visitor = { deopted: false }; - this.traverse(memberExpressionOptimisationVisitor, state); + path.traverse(memberExpressionOptimisationVisitor, state); if (!state.deopted && !state.references.length) { // we only have shorthands and there are no other references @@ -180,15 +193,14 @@ export let visitor = { ); } - let loop = util.template("rest", { - ARRAY_TYPE: restParam.typeAnnotation, - ARGUMENTS: argsId, - ARRAY_KEY: arrKey, - ARRAY_LEN: arrLen, - START: start, - ARRAY: rest, - KEY: key, - LEN: len + let loop = buildRest({ + ARGUMENTS: argsId, + ARRAY_KEY: arrKey, + ARRAY_LEN: arrLen, + START: start, + ARRAY: rest, + KEY: key, + LEN: len, }); if (state.deopted) { @@ -198,7 +210,7 @@ export let visitor = { // perform allocation at the lowest common ancestor of all references loop._blockHoist = 1; - let target = this.getEarliestCommonAncestorFrom(state.references).getStatementParent(); + let target = path.getEarliestCommonAncestorFrom(state.references).getStatementParent(); // don't perform the allocation inside a loop let highestLoop; diff --git a/packages/babel-plugin-transform-es2015-shorthand-properties/package.json b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json index 2ef556d43a..f23264de66 100644 --- a/packages/babel-plugin-transform-es2015-shorthand-properties/package.json +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-es2015-shorthand-properties", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 shorthand properties to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-types": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js b/packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js index abd0e3ac26..357d57887a 100644 --- a/packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/src/index.js @@ -1,11 +1,20 @@ +import * as t from "babel-types"; + export default function () { return { visitor: { - Property({ node }) { - if (node.method) { - node.method = false; + ObjectMethod(path) { + let { node } = path; + if (node.kind === "method") { + path.replaceWith(t.objectProperty( + node.key, + t.functionExpression(null, node.params, node.body, node.generator, node.async), + node.computed + )); } + }, + ObjectProperty({ node }) { if (node.shorthand) { node.shorthand = false; } diff --git a/packages/babel-plugin-transform-es2015-spread/package.json b/packages/babel-plugin-transform-es2015-spread/package.json index a5538bd3cf..c95fcff052 100644 --- a/packages/babel-plugin-transform-es2015-spread/package.json +++ b/packages/babel-plugin-transform-es2015-spread/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-spread", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 spread to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-spread/src/index.js b/packages/babel-plugin-transform-es2015-spread/src/index.js index a43cbd85d0..54dce19086 100644 --- a/packages/babel-plugin-transform-es2015-spread/src/index.js +++ b/packages/babel-plugin-transform-es2015-spread/src/index.js @@ -1,6 +1,6 @@ export default function ({ types: t }) { - function getSpreadLiteral(spread, scope) { - if (scope.hub.file.isLoose("es6.spread") && !t.isIdentifier(spread.argument, { name: "arguments" })) { + function getSpreadLiteral(spread, scope, state) { + if (state.opts.loose && !t.isIdentifier(spread.argument, { name: "arguments" })) { return spread.argument; } else { return scope.toArray(spread.argument, true); @@ -8,7 +8,7 @@ export default function ({ types: t }) { } function hasSpread(nodes) { - for (var i = 0; i < nodes.length; i++) { + for (let i = 0; i < nodes.length; i++) { if (t.isSpreadElement(nodes[i])) { return true; } @@ -16,10 +16,10 @@ export default function ({ types: t }) { return false; } - function build(props: Array, scope) { - var nodes = []; + function build(props: Array, scope, state) { + let nodes = []; - var _props = []; + let _props = []; function push() { if (!_props.length) return; @@ -27,10 +27,10 @@ export default function ({ types: t }) { _props = []; } - for (var prop of props) { + for (let prop of props) { if (t.isSpreadElement(prop)) { push(); - nodes.push(getSpreadLiteral(prop, scope)); + nodes.push(getSpreadLiteral(prop, scope, state)); } else { _props.push(prop); } @@ -43,49 +43,50 @@ export default function ({ types: t }) { return { visitor: { - ArrayExpression({ node, scope }) { - var elements = node.elements; + ArrayExpression(path, state) { + let { node, scope } = path; + let elements = node.elements; if (!hasSpread(elements)) return; - var nodes = build(elements, scope); - var first = nodes.shift(); + let nodes = build(elements, scope, state); + let first = nodes.shift(); if (!t.isArrayExpression(first)) { nodes.unshift(first); first = t.arrayExpression([]); } - return t.callExpression(t.memberExpression(first, t.identifier("concat")), nodes); + path.replaceWith(t.callExpression(t.memberExpression(first, t.identifier("concat")), nodes)); }, - CallExpression(path) { - var { node, scope } = path; + CallExpression(path, state) { + let { node, scope } = path; - var args = node.arguments; + let args = node.arguments; if (!hasSpread(args)) return; - var contextLiteral = t.identifier("undefined"); + let contextLiteral = t.identifier("undefined"); node.arguments = []; - var nodes; + let nodes; if (args.length === 1 && args[0].argument.name === "arguments") { nodes = [args[0].argument]; } else { - nodes = build(args, scope); + nodes = build(args, scope, state); } - var first = nodes.shift(); + let first = nodes.shift(); if (nodes.length) { node.arguments.push(t.callExpression(t.memberExpression(first, t.identifier("concat")), nodes)); } else { node.arguments.push(first); } - var callee = node.callee; + let callee = node.callee; if (path.get("callee").isMemberExpression()) { - var temp = scope.maybeGenerateMemoised(callee.object); + let temp = scope.maybeGenerateMemoised(callee.object); if (temp) { callee.object = t.assignmentExpression("=", temp, callee.object); contextLiteral = temp; @@ -100,23 +101,34 @@ export default function ({ types: t }) { node.arguments.unshift(contextLiteral); }, - NewExpression({ node, scope }, file) { - var args = node.arguments; + NewExpression(path, state) { + let { node, scope } = path; + let args = node.arguments; if (!hasSpread(args)) return; - var nodes = build(args, scope); + let nodes = build(args, scope, state); + + let context = t.arrayExpression([t.nullLiteral()]); - var context = t.arrayExpression([t.nullLiteral()]); args = t.callExpression(t.memberExpression(context, t.identifier("concat")), nodes); - return t.newExpression( + path.replaceWith(t.newExpression( t.callExpression( - t.memberExpression(file.addHelper("bind"), t.identifier("apply")), + t.memberExpression( + t.memberExpression( + t.memberExpression( + t.identifier("Function"), + t.identifier("prototype"), + ), + t.identifier("bind") + ), + t.identifier("apply") + ), [node.callee, args] ), [] - ); + )); } } }; diff --git a/packages/babel-plugin-transform-es2015-sticky-regex/package.json b/packages/babel-plugin-transform-es2015-sticky-regex/package.json index acbe54f9a8..e51839c98f 100644 --- a/packages/babel-plugin-transform-es2015-sticky-regex/package.json +++ b/packages/babel-plugin-transform-es2015-sticky-regex/package.json @@ -1,11 +1,16 @@ { "name": "babel-plugin-transform-es2015-sticky-regex", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-helper-regex": "^6.0.0", + "babel-types": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js b/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js index 6845446a11..f321a74197 100644 --- a/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js +++ b/packages/babel-plugin-transform-es2015-sticky-regex/src/index.js @@ -1,7 +1,18 @@ +import * as regex from "babel-helper-regex"; +import * as t from "babel-types"; + export default function () { return { visitor: { - // your visitor methods go here + RegexLiteral(path) { + let { node } = path; + if (!regex.is(node, "y")) return; + + path.replaceWith(t.newExpression(t.identifier("RegExp"), [ + t.stringLiteral(node.pattern), + t.stringLiteral(node.flags) + ])); + } } }; } diff --git a/packages/babel-plugin-transform-es2015-tail-call/README.md b/packages/babel-plugin-transform-es2015-tail-call/README.md deleted file mode 100644 index c54782c407..0000000000 --- a/packages/babel-plugin-transform-es2015-tail-call/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-es2015-tail-call - -Compile ES2015 tail call to ES5 - -## Installation - -```sh -$ npm install babel-plugin-transform-es2015-tail-call -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-es2015-tail-call"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-es2015-tail-call script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-es2015-tail-call"] -}); -``` diff --git a/packages/babel-plugin-transform-es2015-tail-call/src/index.js b/packages/babel-plugin-transform-es2015-tail-call/src/index.js deleted file mode 100644 index 6845446a11..0000000000 --- a/packages/babel-plugin-transform-es2015-tail-call/src/index.js +++ /dev/null @@ -1,7 +0,0 @@ -export default function () { - return { - visitor: { - // your visitor methods go here - } - }; -} diff --git a/packages/babel-plugin-transform-es2015-template-literals/package.json b/packages/babel-plugin-transform-es2015-template-literals/package.json index c3d8774956..aa5341fc8e 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/package.json +++ b/packages/babel-plugin-transform-es2015-template-literals/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es2015-template-literals", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 template literals to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-template-literals/src/index.js b/packages/babel-plugin-transform-es2015-template-literals/src/index.js index 8e1b8fc0c9..fedf08d95a 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/src/index.js +++ b/packages/babel-plugin-transform-es2015-template-literals/src/index.js @@ -4,30 +4,20 @@ export default function ({ types: t }) { } function buildBinaryExpression(left, right) { - var node = t.binaryExpression("+", left, right); - node._templateLiteralProduced = true; - return node; + return t.binaryExpression("+", left, right); } - /*function crawl(path) { - if (path.is("_templateLiteralProduced")) { - crawl(path.get("left")); - crawl(path.get("right")); - } else if (!path.isBaseType("string") && !path.isBaseType("number")) { - path.replaceWith(t.callExpression(t.identifier("String"), [path.node])); - } - }*/ - return { visitor: { - TaggedTemplateExpression({ node }, file) { - var quasi = node.quasi; - var args = []; + TaggedTemplateExpression(path, state) { + let { node } = path; + let quasi = node.quasi; + let args = []; - var strings = []; - var raw = []; + let strings = []; + let raw = []; - for (var elem of (quasi.quasis: Array)) { + for (let elem of (quasi.quasis: Array)) { strings.push(t.stringLiteral(elem.value.cooked)); raw.push(t.stringLiteral(elem.value.raw)); } @@ -35,25 +25,33 @@ export default function ({ types: t }) { strings = t.arrayExpression(strings); raw = t.arrayExpression(raw); - var templateName = "tagged-template-literal"; - if (file.isLoose("es6.templateLiterals")) templateName += "-loose"; + let templateName = "taggedTemplateLiteral"; + if (state.opts.loose) templateName += "Loose"; - var templateObject = file.addTemplateObject(templateName, strings, raw); + let templateObject = state.file.addTemplateObject(templateName, strings, raw); args.push(templateObject); args = args.concat(quasi.expressions); - return t.callExpression(node.tag, args); + path.replaceWith(t.callExpression(node.tag, args)); }, - TemplateLiteral(path) { - var nodes = []; + TemplateLiteral(path, state) { + let nodes: Array = []; + + let expressions = path.get("expressions"); for (let elem of (path.node.quasis: Array)) { nodes.push(t.stringLiteral(elem.value.cooked)); - var expr = path.node.expressions.shift(); - if (expr) nodes.push(expr); + let expr = expressions.shift(); + if (expr) { + if (state.opts.spec && !expr.isBaseType("string") && !expr.isBaseType("number")) { + nodes.push(t.callExpression(t.identifier("String"), [expr.node])); + } else { + nodes.push(expr.node); + } + } } // filter out empty string literals @@ -66,16 +64,15 @@ export default function ({ types: t }) { } if (nodes.length > 1) { - var root = buildBinaryExpression(nodes.shift(), nodes.shift()); + let root = buildBinaryExpression(nodes.shift(), nodes.shift()); - for (let node of (nodes: Array)) { + for (let node of nodes) { root = buildBinaryExpression(root, node); } path.replaceWith(root); - //crawl(path); } else { - return nodes[0]; + path.replaceWith(nodes[0]); } } } diff --git a/packages/babel-plugin-transform-es2015-typeof-symbol/README.md b/packages/babel-plugin-transform-es2015-typeof-symbol/README.md new file mode 100644 index 0000000000..63fe8215e2 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-typeof-symbol/README.md @@ -0,0 +1,33 @@ +# babel-plugin-transform-es2015-typeof-symbol + +## Installation + +```sh +$ npm install babel-plugin-transform-es2015-typeof-symbol +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-es2015-typeof-symbol"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-es2015-typeof-symbol script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-es2015-typeof-symbol"] +}); +``` diff --git a/packages/babel-plugin-transform-es2015-tail-call/package.json b/packages/babel-plugin-transform-es2015-typeof-symbol/package.json similarity index 50% rename from packages/babel-plugin-transform-es2015-tail-call/package.json rename to packages/babel-plugin-transform-es2015-typeof-symbol/package.json index bcb93e9efd..7882b90036 100644 --- a/packages/babel-plugin-transform-es2015-tail-call/package.json +++ b/packages/babel-plugin-transform-es2015-typeof-symbol/package.json @@ -1,11 +1,14 @@ { - "name": "babel-plugin-transform-es2015-tail-call", + "name": "babel-plugin-transform-es2015-typeof-symbol", "version": "1.0.0", - "description": "Compile ES2015 tail call to ES5", + "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] + ], + "dependencies": { + "babel-runtime": "^5.8.20" + } } diff --git a/packages/babel-plugin-transform-es2015-typeof-symbol/src/index.js b/packages/babel-plugin-transform-es2015-typeof-symbol/src/index.js new file mode 100644 index 0000000000..04ff17a507 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-typeof-symbol/src/index.js @@ -0,0 +1,45 @@ +export default function ({ types: t }) { + return { + visitor: { + UnaryExpression(path) { + let { node, parent } = path; + if (node._ignoreSpecSymbols) return; + + if (path.parentPath.isBinaryExpression() && t.EQUALITY_BINARY_OPERATORS.indexOf(parent.operator) >= 0) { + // optimise `typeof foo === "string"` since we can determine that they'll never need to handle symbols + let opposite = path.getOpposite(); + if (opposite.isLiteral() && opposite.node.value !== "symbol" && opposite.node.value !== "object") { + return; + } + } + + if (node.operator === "typeof") { + let call = t.callExpression(this.addHelper("typeof"), [node.argument]); + if (path.get("argument").isIdentifier()) { + let undefLiteral = t.stringLiteral("undefined"); + let unary = t.unaryExpression("typeof", node.argument); + unary._ignoreSpecSymbols = true; + path.replaceWith(t.conditionalExpression( + t.binaryExpression("===", unary, undefLiteral), + undefLiteral, + call + )); + } else { + path.replaceWith(call); + } + } + }, + + BinaryExpression(path) { + let { node } = path; + if (node.operator === "instanceof") { + path.replaceWith(t.callExpression(this.addHelper("instanceof"), [node.left, node.right])); + } + }, + + "VariableDeclaration|FunctionDeclaration"(path) { + if (path.node._generated) path.skip(); + } + } + }; +} diff --git a/packages/babel-plugin-transform-es2015-unicode-regex/package.json b/packages/babel-plugin-transform-es2015-unicode-regex/package.json index 6d93ddef01..c06684d817 100644 --- a/packages/babel-plugin-transform-es2015-unicode-regex/package.json +++ b/packages/babel-plugin-transform-es2015-unicode-regex/package.json @@ -1,11 +1,16 @@ { "name": "babel-plugin-transform-es2015-unicode-regex", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES2015 unicode regex to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-helper-regex": "^6.0.0", + "regexpu": "^1.1.2", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js b/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js index 6845446a11..1ffc2aa0ed 100644 --- a/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js +++ b/packages/babel-plugin-transform-es2015-unicode-regex/src/index.js @@ -1,7 +1,14 @@ +import rewritePattern from "regexpu/rewrite-pattern"; +import * as regex from "babel-helper-regex"; + export default function () { return { visitor: { - // your visitor methods go here + RegexLiteral({ node }) { + if (!regex.is(node, "u")) return; + node.pattern = rewritePattern(node.pattern, node.flags); + regex.pullFlag(node, "u"); + } } }; } diff --git a/packages/babel-plugin-transform-es3-member-expression-literals/package.json b/packages/babel-plugin-transform-es3-member-expression-literals/package.json index e838ee89e7..1db82b387e 100644 --- a/packages/babel-plugin-transform-es3-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-es3-member-expression-literals/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es3-member-expression-literals", - "version": "1.0.0", + "version": "5.10.32", "description": "Ensure that reserved words are quoted in property accesses", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es3-member-expression-literals/src/index.js b/packages/babel-plugin-transform-es3-member-expression-literals/src/index.js index efc1f6566c..fa78563a23 100644 --- a/packages/babel-plugin-transform-es3-member-expression-literals/src/index.js +++ b/packages/babel-plugin-transform-es3-member-expression-literals/src/index.js @@ -2,8 +2,8 @@ export default function ({ types: t }) { return { visitor: { MemberExpression: { - exit(node) { - var prop = node.property; + exit({ node }) { + let prop = node.property; if (!node.computed && t.isIdentifier(prop) && !t.isValidIdentifier(prop.name)) { // foo.default -> foo["default"] node.property = t.stringLiteral(prop.name); diff --git a/packages/babel-plugin-transform-es3-property-literals/package.json b/packages/babel-plugin-transform-es3-property-literals/package.json index 7175b0e583..81c754fc8d 100644 --- a/packages/babel-plugin-transform-es3-property-literals/package.json +++ b/packages/babel-plugin-transform-es3-property-literals/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-es3-property-literals", - "version": "1.0.0", + "version": "5.10.32", "description": "Ensure that reserved words are quoted in object property keys", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es3-property-literals/src/index.js b/packages/babel-plugin-transform-es3-property-literals/src/index.js index a20b07e95c..b4db217325 100644 --- a/packages/babel-plugin-transform-es3-property-literals/src/index.js +++ b/packages/babel-plugin-transform-es3-property-literals/src/index.js @@ -1,9 +1,9 @@ export default function ({ types: t }) { return { visitor: { - Property: { + ObjectProperty: { exit(node) { - var key = node.key; + let key = node.key; if (!node.computed && t.isIdentifier(key) && !t.isValidIdentifier(key.name)) { // default: "bar" -> "default": "bar" node.key = t.stringLiteral(key.name); diff --git a/packages/babel-plugin-transform-es5-property-mutators/package.json b/packages/babel-plugin-transform-es5-property-mutators/package.json index e9ec584e5a..e5c1ca3796 100644 --- a/packages/babel-plugin-transform-es5-property-mutators/package.json +++ b/packages/babel-plugin-transform-es5-property-mutators/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-es5-property-mutators", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile ES5 property mutator shorthand syntax to Object.defineProperty", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-helper-define-map": "^5.0.0", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es5-property-mutators/src/index.js b/packages/babel-plugin-transform-es5-property-mutators/src/index.js index 6845446a11..9ff5a15f53 100644 --- a/packages/babel-plugin-transform-es5-property-mutators/src/index.js +++ b/packages/babel-plugin-transform-es5-property-mutators/src/index.js @@ -1,7 +1,35 @@ -export default function () { +import * as defineMap from "babel-helper-define-map"; + +export default function ({ types: t }) { return { visitor: { - // your visitor methods go here + ObjectExpression(path, file) { + let{ node } = path; + let hasAny = false; + for (let prop of (node.properties: Array)) { + if (prop.kind === "get" || prop.kind === "set") { + hasAny = true; + break; + } + } + if (!hasAny) return; + + let mutatorMap = {}; + + node.properties = node.properties.filter(function (prop) { + if (!prop.computed && (prop.kind === "get" || prop.kind === "set")) { + defineMap.push(mutatorMap, prop, null, file); + return false; + } else { + return true; + } + }); + + path.replaceWith(t.callExpression( + t.memberExpression(t.identifier("Object"), t.identifier("defineProperties")), + [node, defineMap.toDefineObject(mutatorMap)] + )); + } } }; } diff --git a/packages/babel-plugin-transform-eval/package.json b/packages/babel-plugin-transform-eval/package.json index 243280fd4f..ece165698a 100644 --- a/packages/babel-plugin-transform-eval/package.json +++ b/packages/babel-plugin-transform-eval/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-eval", - "version": "1.0.1", + "version": "5.10.32", "description": "Compile eval calls with string literals", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-eval/src/index.js b/packages/babel-plugin-transform-eval/src/index.js index 596ec54a8a..677401057a 100644 --- a/packages/babel-plugin-transform-eval/src/index.js +++ b/packages/babel-plugin-transform-eval/src/index.js @@ -3,13 +3,13 @@ export default function ({ parse, traverse }) { visitor: { CallExpression(path) { if (path.get("callee").isIdentifier({ name: "eval" }) && path.node.arguments.length === 1) { - var evaluate = path.get("arguments")[0].evaluate(); + let evaluate = path.get("arguments")[0].evaluate(); if (!evaluate.confident) return; - var code = evaluate.value; + let code = evaluate.value; if (typeof code !== "string") return; - var ast = parse(code); + let ast = parse(code); traverse.removeProperties(ast); return ast.program; } diff --git a/packages/babel-plugin-transform-exponentiation-operator/package.json b/packages/babel-plugin-transform-exponentiation-operator/package.json index ffff10a320..8b441a0a08 100644 --- a/packages/babel-plugin-transform-exponentiation-operator/package.json +++ b/packages/babel-plugin-transform-exponentiation-operator/package.json @@ -1,11 +1,16 @@ { "name": "babel-plugin-transform-exponentiation-operator", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile exponentiation operator to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-exponentiation-operator": "^5.10.32", + "babel-helper-builder-binary-assignment-operator-visitor": "^5.0.0", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-exponentiation-operator/src/index.js b/packages/babel-plugin-transform-exponentiation-operator/src/index.js index 6845446a11..68d2ef8c69 100644 --- a/packages/babel-plugin-transform-exponentiation-operator/src/index.js +++ b/packages/babel-plugin-transform-exponentiation-operator/src/index.js @@ -1,7 +1,15 @@ -export default function () { +import build from "babel-helper-builder-binary-assignment-operator-visitor"; + +export default function ({ types: t }) { return { - visitor: { - // your visitor methods go here - } + inherits: require("babel-plugin-syntax-exponentiation-operator"), + + visitor: build({ + operator: "**", + + build(left, right) { + return t.callExpression(t.memberExpression(t.identifier("Math"), t.identifier("pow")), [left, right]); + } + }) }; } diff --git a/packages/babel-plugin-transform-export-extensions/package.json b/packages/babel-plugin-transform-export-extensions/package.json index d37ea9d06b..67520da0ab 100644 --- a/packages/babel-plugin-transform-export-extensions/package.json +++ b/packages/babel-plugin-transform-export-extensions/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-export-extensions", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile export extensions to ES2015", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-export-extensions": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-export-extensions/src/index.js b/packages/babel-plugin-transform-export-extensions/src/index.js index 6845446a11..6b0afad0ce 100644 --- a/packages/babel-plugin-transform-export-extensions/src/index.js +++ b/packages/babel-plugin-transform-export-extensions/src/index.js @@ -1,7 +1,39 @@ -export default function () { +export default function ({ types: t }) { + function build(node, nodes, scope) { + let first = node.specifiers[0]; + if (!t.isExportNamespaceSpecifier(first) && !t.isExportDefaultSpecifier(first)) return; + + let specifier = node.specifiers.shift(); + let uid = scope.generateUidIdentifier(specifier.exported.name); + + let newSpecifier; + if (t.isExportNamespaceSpecifier(specifier)) { + newSpecifier = t.importNamespaceSpecifier(uid); + } else { + newSpecifier = t.importDefaultSpecifier(uid); + } + + nodes.push(t.importDeclaration([newSpecifier], node.source)); + nodes.push(t.exportNamedDeclaration(null, [t.exportSpecifier(uid, specifier.exported)])); + + build(node, nodes, scope); + } + return { + inherits: require("babel-plugin-syntax-export-extensions"), + visitor: { - // your visitor methods go here + ExportNamedDeclaration(path) { + let { node, scope } = path; + let nodes = []; + build(node, nodes, scope); + if (!nodes.length) return; + + if (node.specifiers.length >= 1) { + nodes.push(node); + } + path.replaceWithMultiple(nodes); + } } }; } diff --git a/packages/babel-plugin-transform-flow-strip-types/package.json b/packages/babel-plugin-transform-flow-strip-types/package.json index 8d11a720d4..88bad78808 100644 --- a/packages/babel-plugin-transform-flow-strip-types/package.json +++ b/packages/babel-plugin-transform-flow-strip-types/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-flow-strip-types", - "version": "1.0.4", + "version": "5.10.32", "description": "Strip flow type annotations from your output code.", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32", + "babel-plugin-syntax-flow": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-flow-strip-types/src/index.js b/packages/babel-plugin-transform-flow-strip-types/src/index.js index ff3380333a..c700426aa9 100644 --- a/packages/babel-plugin-transform-flow-strip-types/src/index.js +++ b/packages/babel-plugin-transform-flow-strip-types/src/index.js @@ -2,15 +2,17 @@ export default function ({ types: t }) { const FLOW_DIRECTIVE = "@flow"; return { + inherits: require("babel-plugin-syntax-flow"), + visitor: { - Program(path, file) { - for (var comment of (file.ast.comments: Array)) { + Program(path, { file: { ast: { comments } } }) { + for (let comment of (comments: Array)) { if (comment.value.indexOf(FLOW_DIRECTIVE) >= 0) { // remove flow directive comment.value = comment.value.replace(FLOW_DIRECTIVE, ""); // remove the comment completely if it only consists of whitespace and/or stars - if (!comment.value.replace(/\*/g, "").trim()) comment._displayed = true; + if (!comment.value.replace(/\*/g, "").trim()) comment.ignore = true; } } }, @@ -29,14 +31,14 @@ export default function ({ types: t }) { }, Function({ node }) { - for (var i = 0; i < node.params.length; i++) { - var param = node.params[i]; + for (let i = 0; i < node.params.length; i++) { + let param = node.params[i]; param.optional = false; } }, TypeCastExpression(path) { - var { node } = path; + let { node } = path; do { node = node.expression; } while(t.isTypeCastExpression(node)); diff --git a/packages/babel-plugin-transform-function-bind/package.json b/packages/babel-plugin-transform-function-bind/package.json index 3cbb64bdfd..cd1528999e 100644 --- a/packages/babel-plugin-transform-function-bind/package.json +++ b/packages/babel-plugin-transform-function-bind/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-function-bind", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile function bind operator to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-function-bind": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-function-bind/src/index.js b/packages/babel-plugin-transform-function-bind/src/index.js index 6845446a11..0d3099930f 100644 --- a/packages/babel-plugin-transform-function-bind/src/index.js +++ b/packages/babel-plugin-transform-function-bind/src/index.js @@ -1,7 +1,51 @@ -export default function () { +export default function ({ types: t }) { + function getTempId(scope) { + let id = scope.path.getData("functionBind"); + if (id) return id; + + id = scope.generateDeclaredUidIdentifier("context"); + return scope.path.setData("functionBind", id); + } + + function getStaticContext(bind, scope) { + let object = bind.object || bind.callee.object; + return scope.isStatic(object) && object; + } + + function inferBindContext(bind, scope) { + let staticContext = getStaticContext(bind, scope); + if (staticContext) return staticContext; + + let tempId = getTempId(scope); + if (bind.object) { + bind.callee = t.sequenceExpression([ + t.assignmentExpression("=", tempId, bind.object), + bind.callee + ]); + } else { + bind.callee.object = t.assignmentExpression("=", tempId, bind.callee.object); + } + return tempId; + } + return { + inherits: require("babel-plugin-syntax-function-bind"), + visitor: { - // your visitor methods go here + CallExpression({ node, scope }) { + let bind = node.callee; + if (!t.isBindExpression(bind)) return; + + let context = inferBindContext(bind, scope); + node.callee = t.memberExpression(bind.callee, t.identifier("call")); + node.arguments.unshift(context); + }, + + BindExpression(path) { + let { node, scope } = path; + let context = inferBindContext(node, scope); + path.replaceWith(t.callExpression(t.memberExpression(node.callee, t.identifier("bind")), [context])); + } } }; } diff --git a/packages/babel-plugin-transform-inline-environment-variables/package.json b/packages/babel-plugin-transform-inline-environment-variables/package.json index 8c8f191798..3fa276d6ba 100644 --- a/packages/babel-plugin-transform-inline-environment-variables/package.json +++ b/packages/babel-plugin-transform-inline-environment-variables/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-inline-environment-variables", - "version": "1.0.1", + "version": "5.10.32", "description": "Inline environment variables", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-inline-environment-variables/src/index.js b/packages/babel-plugin-transform-inline-environment-variables/src/index.js index 28a2eae941..4e80129c81 100644 --- a/packages/babel-plugin-transform-inline-environment-variables/src/index.js +++ b/packages/babel-plugin-transform-inline-environment-variables/src/index.js @@ -3,7 +3,7 @@ export default function ({ types: t }) { visitor: { MemberExpression(path) { if (path.get("object").matchesPattern("process.env")) { - var key = path.toComputedKey(); + let key = path.toComputedKey(); if (t.isStringLiteral(key)) { return t.valueToNode(process.env[key.value]); } diff --git a/packages/babel-plugin-transform-jscript/package.json b/packages/babel-plugin-transform-jscript/package.json index 90d25dfe01..a140a08168 100644 --- a/packages/babel-plugin-transform-jscript/package.json +++ b/packages/babel-plugin-transform-jscript/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-jscript", - "version": "1.0.4", + "version": "5.10.32", "description": "Babel plugin to fix buggy JScript named function expressions", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-jscript/src/index.js b/packages/babel-plugin-transform-jscript/src/index.js index e572ad6fc8..1361821acf 100644 --- a/packages/babel-plugin-transform-jscript/src/index.js +++ b/packages/babel-plugin-transform-jscript/src/index.js @@ -2,17 +2,18 @@ export default function ({ types: t }) { return { visitor: { FunctionExpression: { - exit(node) { + exit(path) { + let { node } = path; if (!node.id) return; node._ignoreUserWhitespace = true; - return t.callExpression( + path.replaceWith(t.callExpression( t.functionExpression(null, [], t.blockStatement([ t.toStatement(node), t.returnStatement(node.id) ])), [] - ); + )); } } } diff --git a/packages/babel-plugin-transform-member-expression-literals/package.json b/packages/babel-plugin-transform-member-expression-literals/package.json index 0785a4aba4..720ad40f65 100644 --- a/packages/babel-plugin-transform-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-member-expression-literals/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-member-expression-literals", - "version": "1.0.1", + "version": "5.10.32", "description": "Turn valid member expression property literals into plain identifiers", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-member-expression-literals/src/index.js b/packages/babel-plugin-transform-member-expression-literals/src/index.js index 5a934f7000..5e1adc2290 100644 --- a/packages/babel-plugin-transform-member-expression-literals/src/index.js +++ b/packages/babel-plugin-transform-member-expression-literals/src/index.js @@ -2,8 +2,8 @@ export default function ({ types: t }) { return { visitor: { MemberExpression: { - exit(node) { - var prop = node.property; + exit({ node }) { + let prop = node.property; if (node.computed && t.isLiteral(prop) && t.isValidIdentifier(prop.value)) { // foo["bar"] => foo.bar node.property = t.identifier(prop.value); diff --git a/packages/babel-plugin-transform-merge-sibling-variables/package.json b/packages/babel-plugin-transform-merge-sibling-variables/package.json index cf9035ef27..b6c18688c4 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/package.json +++ b/packages/babel-plugin-transform-merge-sibling-variables/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-merge-sibling-variables", - "version": "1.0.2", + "version": "5.10.32", "description": "Merge sibling variables into one.", "repository": "babel-plugin-transform-merge-sibling-variables", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-merge-sibling-variables/src/index.js b/packages/babel-plugin-transform-merge-sibling-variables/src/index.js index ef0569e301..376ef580c4 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/src/index.js +++ b/packages/babel-plugin-transform-merge-sibling-variables/src/index.js @@ -4,10 +4,10 @@ export default function () { VariableDeclaration(path) { if (!path.inList) return; - var { node } = path; + let { node } = path; while (true) { - var sibling = path.getSibling(path.key + 1); + let sibling = path.getSibling(path.key + 1); if (!sibling.isVariableDeclaration({ kind: node.kind })) break; node.declarations = node.declarations.concat(sibling.node.declarations); diff --git a/packages/babel-plugin-transform-minify-booleans/package.json b/packages/babel-plugin-transform-minify-booleans/package.json index 4d44f29487..fc931c6dd8 100644 --- a/packages/babel-plugin-transform-minify-booleans/package.json +++ b/packages/babel-plugin-transform-minify-booleans/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-minify-booleans", - "version": "1.0.2", + "version": "5.10.32", "description": "Turn boolean literals into !0 for true and !1 for false.", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-node-env-inline/package.json b/packages/babel-plugin-transform-node-env-inline/package.json index 2bd14d0920..3a670694cd 100644 --- a/packages/babel-plugin-transform-node-env-inline/package.json +++ b/packages/babel-plugin-transform-node-env-inline/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-node-env-inline", - "version": "1.0.1", + "version": "5.10.32", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-node-env-inline/src/index.js b/packages/babel-plugin-transform-node-env-inline/src/index.js index bde23888f6..a60d3245d1 100644 --- a/packages/babel-plugin-transform-node-env-inline/src/index.js +++ b/packages/babel-plugin-transform-node-env-inline/src/index.js @@ -6,7 +6,7 @@ export default function ({ types: t }) { path.replaceWith(t.valueToNode(process.env.NODE_ENV)); if (path.parentPath.isBinaryExpression()) { - var evaluated = path.parentPath.evaluate(); + let evaluated = path.parentPath.evaluate(); if (evaluated.confident) { path.parentPath.replaceWith(t.valueToNode(evaluated.value)); } diff --git a/packages/babel-plugin-transform-object-assign/package.json b/packages/babel-plugin-transform-object-assign/package.json index d081116d13..bbecd9eb38 100644 --- a/packages/babel-plugin-transform-object-assign/package.json +++ b/packages/babel-plugin-transform-object-assign/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-object-assign", - "version": "5.0.0", + "version": "5.10.32", "description": "Replace Object.assign with an inline helper", "author": "Jed Watson", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-rest-spread/package.json b/packages/babel-plugin-transform-object-rest-spread/package.json index aa16813f42..f4ae11c3aa 100644 --- a/packages/babel-plugin-transform-object-rest-spread/package.json +++ b/packages/babel-plugin-transform-object-rest-spread/package.json @@ -1,11 +1,15 @@ { "name": "babel-plugin-transform-object-rest-spread", - "version": "1.0.0", + "version": "5.10.32", "description": "Compile object rest and spread to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^5.10.32", + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-rest-spread/src/index.js b/packages/babel-plugin-transform-object-rest-spread/src/index.js index 6845446a11..ace0dbab89 100644 --- a/packages/babel-plugin-transform-object-rest-spread/src/index.js +++ b/packages/babel-plugin-transform-object-rest-spread/src/index.js @@ -1,7 +1,46 @@ -export default function () { +export default function ({ types: t }) { + function hasSpread(node) { + for (let prop of (node.properties: Array)) { + if (t.isSpreadProperty(prop)) { + return true; + } + } + return false; + } + return { + inherits: require("babel-plugin-syntax-object-rest-spread"), + visitor: { - // your visitor methods go here + ObjectExpression(path, file) { + if (!hasSpread(path.node)) return; + + let args = []; + let props = []; + + function push() { + if (!props.length) return; + args.push(t.objectExpression(props)); + props = []; + } + + for (let prop of (path.node.properties: Array)) { + if (t.isSpreadProperty(prop)) { + push(); + args.push(prop.argument); + } else { + props.push(prop); + } + } + + push(); + + if (!t.isObjectExpression(args[0])) { + args.unshift(t.objectExpression([])); + } + + path.replaceWith(t.callExpression(file.addHelper("extends"), args)); + } } }; } diff --git a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json index ce0846e614..dad6dd5d00 100644 --- a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-object-set-prototype-of-to-assign", - "version": "1.0.1", + "version": "5.10.32", "description": "Turn Object.setPrototypeOf to assignments", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-property-literals/package.json b/packages/babel-plugin-transform-property-literals/package.json index 9fc5b057f7..0d1e690316 100644 --- a/packages/babel-plugin-transform-property-literals/package.json +++ b/packages/babel-plugin-transform-property-literals/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-property-literals", - "version": "1.0.1", + "version": "5.10.32", "description": "Turn valid property key literals to plain identifiers", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-property-literals/src/index.js b/packages/babel-plugin-transform-property-literals/src/index.js index 0c323e3ad0..35e535eb59 100644 --- a/packages/babel-plugin-transform-property-literals/src/index.js +++ b/packages/babel-plugin-transform-property-literals/src/index.js @@ -1,9 +1,9 @@ export default function ({ types: t }) { return { visitor: { - Property: { - exit(node) { - var key = node.key; + ObjectProperty: { + exit({ node }) { + let key = node.key; if (t.isLiteral(key) && t.isValidIdentifier(key.value)) { // "foo": "bar" -> foo: "bar" node.key = t.identifier(key.value); diff --git a/packages/babel-plugin-transform-proto-to-assign/package.json b/packages/babel-plugin-transform-proto-to-assign/package.json index 2cfffd246d..f475c2ab0e 100644 --- a/packages/babel-plugin-transform-proto-to-assign/package.json +++ b/packages/babel-plugin-transform-proto-to-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-proto-to-assign", - "version": "1.0.4", + "version": "5.10.32", "description": "Babel plugin for turning __proto__ into a shallow property clone", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20", + "babel-runtime": "^5.10.32", "lodash": "^3.9.3" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-proto-to-assign/src/index.js b/packages/babel-plugin-transform-proto-to-assign/src/index.js index 96595e3e5a..1d420c1e67 100644 --- a/packages/babel-plugin-transform-proto-to-assign/src/index.js +++ b/packages/babel-plugin-transform-proto-to-assign/src/index.js @@ -6,7 +6,7 @@ export default function ({ types: t }) { } function isProtoAssignmentExpression(node) { - var left = node.left; + let left = node.left; return t.isMemberExpression(left) && t.isLiteral(t.toComputedKey(left, left.property), { value: "__proto__" }); } @@ -19,30 +19,31 @@ export default function ({ types: t }) { AssignmentExpression(path, file) { if (!isProtoAssignmentExpression(path.node)) return; - var nodes = []; - var left = path.node.left.object; - var temp = path.scope.maybeGenerateMemoised(left); + let nodes = []; + let left = path.node.left.object; + let temp = path.scope.maybeGenerateMemoised(left); if (temp) nodes.push(t.expressionStatement(t.assignmentExpression("=", temp, left))); nodes.push(buildDefaultsCallExpression(path.node, temp || left, file)); if (temp) nodes.push(temp); - return nodes; + path.replaceWithMultiple(nodes); }, - ExpressionStatement({ node }, file) { - var expr = node.expression; + ExpressionStatement(path, file) { + let expr = path.node.expression; if (!t.isAssignmentExpression(expr, { operator: "=" })) return; if (isProtoAssignmentExpression(expr)) { - return buildDefaultsCallExpression(expr, expr.left.object, file); + path.replaceWith(buildDefaultsCallExpression(expr, expr.left.object, file)); } }, - ObjectExpression({ node }, file) { - var proto; + ObjectExpression(path, file) { + let proto; + let { node } = path; - for (var prop of (node.properties: Array)) { + for (let prop of (node.properties: Array)) { if (isProtoKey(prop)) { proto = prop.value; pull(node.properties, prop); @@ -50,9 +51,9 @@ export default function ({ types: t }) { } if (proto) { - var args = [t.objectExpression([]), proto]; + let args = [t.objectExpression([]), proto]; if (node.properties.length) args.push(node); - return t.callExpression(file.addHelper("extends"), args); + path.replaceWith(t.callExpression(file.addHelper("extends"), args)); } } } diff --git a/packages/babel-plugin-transform-react-constant-elements/package.json b/packages/babel-plugin-transform-react-constant-elements/package.json index 74da6920fc..c6e563d94f 100644 --- a/packages/babel-plugin-transform-react-constant-elements/package.json +++ b/packages/babel-plugin-transform-react-constant-elements/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-react-constant-elements", - "version": "1.0.3", + "version": "5.10.32", "description": "Treat React JSX elements as value types and hoist them to the highest scope", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-constant-elements/src/index.js b/packages/babel-plugin-transform-react-constant-elements/src/index.js index bf66c16409..9673af7c26 100644 --- a/packages/babel-plugin-transform-react-constant-elements/src/index.js +++ b/packages/babel-plugin-transform-react-constant-elements/src/index.js @@ -1,7 +1,7 @@ export default function () { - var immutabilityVisitor = { + let immutabilityVisitor = { enter(path, state) { - var stop = () => { + let stop = () => { state.isImmutable = false; path.stop(); }; @@ -28,7 +28,7 @@ export default function () { JSXElement(path) { if (path.node._hoisted) return; - var state = { isImmutable: true }; + let state = { isImmutable: true }; path.traverse(immutabilityVisitor, state); if (state.isImmutable) { diff --git a/packages/babel-plugin-transform-react-display-name/package.json b/packages/babel-plugin-transform-react-display-name/package.json index fcb0533a2d..0b85bd748f 100644 --- a/packages/babel-plugin-transform-react-display-name/package.json +++ b/packages/babel-plugin-transform-react-display-name/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-display-name", - "version": "2.0.0", + "version": "5.10.32", "description": "Add displayName to React.createClass calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20" + "babel-runtime": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-display-name/src/index.js b/packages/babel-plugin-transform-react-display-name/src/index.js index ce046a6106..9d5cde642f 100644 --- a/packages/babel-plugin-transform-react-display-name/src/index.js +++ b/packages/babel-plugin-transform-react-display-name/src/index.js @@ -2,12 +2,12 @@ import path from "path"; export default function ({ types: t }) { function addDisplayName(id, call) { - var props = call.arguments[0].properties; - var safe = true; + let props = call.arguments[0].properties; + let safe = true; - for (var i = 0; i < props.length; i++) { - var prop = props[i]; - var key = t.toComputedKey(prop); + for (let i = 0; i < props.length; i++) { + let prop = props[i]; + let key = t.toComputedKey(prop); if (t.isLiteral(key, { value: "displayName" })) { safe = false; break; @@ -15,11 +15,11 @@ export default function ({ types: t }) { } if (safe) { - props.unshift(t.property("init", t.identifier("displayName"), t.stringLiteral(id))); + props.unshift(t.objectProperty(t.identifier("displayName"), t.stringLiteral(id))); } } - var isCreateClassCallExpression = t.buildMatchMemberExpression("React.createClass"); + let isCreateClassCallExpression = t.buildMatchMemberExpression("React.createClass"); function isCreateClass(node) { if (!node || !t.isCallExpression(node)) return false; @@ -28,11 +28,11 @@ export default function ({ types: t }) { if (!isCreateClassCallExpression(node.callee)) return false; // no call arguments - var args = node.arguments; + let args = node.arguments; if (args.length !== 1) return false; // first node arg is not an object - var first = args[0]; + let first = args[0]; if (!t.isObjectExpression(first)) return false; return true; @@ -40,26 +40,26 @@ export default function ({ types: t }) { return { visitor: { - ExportDefaultDeclaration({ node }, file) { + ExportDefaultDeclaration({ node }, state) { if (isCreateClass(node.declaration)) { - var displayName = file.opts.basename; + let displayName = state.file.opts.basename; // ./{module name}/index.js if (displayName === "index") { - displayName = path.basename(path.dirname(file.opts.filename)); + displayName = path.basename(path.dirname(state.file.opts.filename)); } addDisplayName(displayName, node.declaration); } }, - "AssignmentExpression|Property|VariableDeclarator"({ node }) { - var left, right; + "AssignmentExpression|ObjectProperty|VariableDeclarator"({ node }) { + let left, right; if (t.isAssignmentExpression(node)) { left = node.left; right = node.right; - } else if (t.isProperty(node)) { + } else if (t.isObjectProperty(node)) { left = node.key; right = node.value; } else if (t.isVariableDeclarator(node)) { diff --git a/packages/babel-plugin-transform-react-inline-elements/package.json b/packages/babel-plugin-transform-react-inline-elements/package.json index 077486e9d6..a00fce7ec0 100644 --- a/packages/babel-plugin-transform-react-inline-elements/package.json +++ b/packages/babel-plugin-transform-react-inline-elements/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-react-inline-elements", - "version": "1.0.0", + "version": "5.10.32", "description": "Turn JSX elements into exploded React objects", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-inline-elements/src/index.js b/packages/babel-plugin-transform-react-inline-elements/src/index.js index b4ee8b03c3..deae408c08 100644 --- a/packages/babel-plugin-transform-react-inline-elements/src/index.js +++ b/packages/babel-plugin-transform-react-inline-elements/src/index.js @@ -1,7 +1,7 @@ export default function ({ types: t }) { function hasRefOrSpread(attrs) { - for (var i = 0; i < attrs.length; i++) { - var attr = attrs[i]; + for (let i = 0; i < attrs.length; i++) { + let attr = attrs[i]; if (t.isJSXSpreadAttribute(attr)) return true; if (isJSXAttributeOfName(attr, "ref")) return true; } @@ -14,17 +14,19 @@ export default function ({ types: t }) { return { visitor: { - JSXElement({ node }, file) { + JSXElement(path, file) { + let { node } = path; + // filter - var open = node.openingElement; + let open = node.openingElement; if (hasRefOrSpread(open.attributes)) return; // init - var isComponent = true; - var props = t.objectExpression([]); - var obj = t.objectExpression([]); - var key = t.nullLiteral(); - var type = open.name; + let isComponent = true; + let props = t.objectExpression([]); + let obj = t.objectExpression([]); + let key = t.nullLiteral(); + let type = open.name; if (t.isJSXIdentifier(type) && t.react.isCompatTag(type.name)) { type = t.stringLiteral(type.name); @@ -36,21 +38,17 @@ export default function ({ types: t }) { } function pushProp(objProps, key, value) { - objProps.push(t.property("init", key, value)); + objProps.push(t.objectProperty(key, value)); } - // metadata - pushElemProp("type", type); - pushElemProp("ref", t.nullLiteral()); - if (node.children.length) { - var children = t.react.buildChildren(node); + let children = t.react.buildChildren(node); children = children.length === 1 ? children[0] : t.arrayExpression(children); pushProp(props.properties, t.identifier("children"), children); } // props - for (var attr of (open.attributes: Array)) { + for (let attr of (open.attributes: Array)) { if (isJSXAttributeOfName(attr, "key")) { key = attr.value; } else { @@ -59,15 +57,19 @@ export default function ({ types: t }) { } if (isComponent) { - props = t.callExpression(file.addHelper("default-props"), [t.memberExpression(type, t.identifier("defaultProps")), props]); + props = t.callExpression(file.addHelper("defaultProps"), [t.memberExpression(type, t.identifier("defaultProps")), props]); } - pushElemProp("props", props); - - // key + // metadata + pushElemProp("$$typeof", file.addHelper("typeofReactElement")); + pushElemProp("type", type); pushElemProp("key", key); + pushElemProp("ref", t.nullLiteral()); - return obj; + pushElemProp("props", props); + pushElemProp("_owner", t.nullLiteral()); + + path.replaceWith(obj); } } }; diff --git a/packages/babel-plugin-transform-react-jsx-compat/package.json b/packages/babel-plugin-transform-react-jsx-compat/package.json index 5b70a67958..1b83d2f3ce 100644 --- a/packages/babel-plugin-transform-react-jsx-compat/package.json +++ b/packages/babel-plugin-transform-react-jsx-compat/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-jsx-compat", - "version": "1.0.0", + "version": "5.10.32", "description": "Turn JSX into React Pre-0.12 function calls", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.0.0", - "babel-plugin-transform-builder-react-jsx": "^1.0.0" + "babel-runtime": "^5.10.32", + "babel-helper-builder-react-jsx": "^1.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-jsx-compat/src/index.js b/packages/babel-plugin-transform-react-jsx-compat/src/index.js index 02c9147a8d..edb9ee5a45 100644 --- a/packages/babel-plugin-transform-react-jsx-compat/src/index.js +++ b/packages/babel-plugin-transform-react-jsx-compat/src/index.js @@ -1,6 +1,10 @@ export default function ({ types: t }) { return { - visitor: require("babel-plugin-builder-react-jsx")({ + manipulateOptions(opts, parserOpts) { + parserOpts.plugins.push("jsx"); + }, + + visitor: require("babel-helper-builder-react-jsx")({ pre(state) { state.callee = state.tagExpr; }, diff --git a/packages/babel-plugin-transform-react-jsx/package.json b/packages/babel-plugin-transform-react-jsx/package.json index 2ea83df50c..67e809da2a 100644 --- a/packages/babel-plugin-transform-react-jsx/package.json +++ b/packages/babel-plugin-transform-react-jsx/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-jsx", - "version": "1.0.0", + "version": "5.10.32", "description": "Turn JSX into React function calls", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.0.0", - "babel-plugin-transform-builder-react-jsx": "^1.0.0" + "babel-runtime": "^5.10.32", + "babel-helper-builder-react-jsx": "^1.0.0", + "babel-plugin-syntax-jsx": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-jsx/src/index.js b/packages/babel-plugin-transform-react-jsx/src/index.js index 784cd9ae53..f0917643ec 100644 --- a/packages/babel-plugin-transform-react-jsx/src/index.js +++ b/packages/babel-plugin-transform-react-jsx/src/index.js @@ -1,10 +1,10 @@ export default function ({ types: t }) { - var JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/; + let JSX_ANNOTATION_REGEX = /^\*\s*@jsx\s+([^\s]+)/; - var visitor = require("babel-plugin-builder-react-jsx")(t, { + let visitor = require("babel-helper-builder-react-jsx")({ pre(state) { - var tagName = state.tagName; - var args = state.args; + let tagName = state.tagName; + let args = state.args; if (t.react.isCompatTag(tagName)) { args.push(t.stringLiteral(tagName)); } else { @@ -12,17 +12,17 @@ export default function ({ types: t }) { } }, - post(state, file) { - state.callee = file.get("jsxIdentifier"); + post(state, pass) { + state.callee = pass.get("jsxIdentifier"); } }); - visitor.Program = function (path, file) { - var id = "React.createElement"; // todo: jsxPragma; + visitor.Program = function (path, state) { + let { file } = state; + let id = state.opts.pragma || "React.createElement"; - for (var i = 0; i < file.ast.comments.length; i++) { - var comment = file.ast.comments[i]; - var matches = JSX_ANNOTATION_REGEX.exec(comment.value); + for (let comment of (file.ast.comments: Array)) { + let matches = JSX_ANNOTATION_REGEX.exec(comment.value); if (matches) { id = matches[1]; if (id === "React.DOM") { @@ -33,10 +33,13 @@ export default function ({ types: t }) { } } - file.set("jsxIdentifier", id.split(".").map(t.identifier).reduce(function (object, property) { + state.set("jsxIdentifier", id.split(".").map(t.identifier).reduce(function (object, property) { return t.memberExpression(object, property); })); }; - return { visitor }; + return { + inherits: require("babel-plugin-syntax-jsx"), + visitor + }; } diff --git a/packages/babel-plugin-transform-regenerator/index.js b/packages/babel-plugin-transform-regenerator/index.js new file mode 100644 index 0000000000..0586da9ec7 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/index.js @@ -0,0 +1 @@ +module.exports = require("../../../regenerator"); diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json new file mode 100644 index 0000000000..f5091bec5c --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -0,0 +1,3 @@ +{ + "name": "babel-plugin-transform-regenerator" +} diff --git a/packages/babel-plugin-transform-remove-console/package.json b/packages/babel-plugin-transform-remove-console/package.json index b1d9454631..246338dc8b 100644 --- a/packages/babel-plugin-transform-remove-console/package.json +++ b/packages/babel-plugin-transform-remove-console/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-remove-console", - "version": "1.0.1", + "version": "5.10.32", "description": "Remove console.* calls", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-remove-debugger/package.json b/packages/babel-plugin-transform-remove-debugger/package.json index 617db3e12a..bbb9c36021 100644 --- a/packages/babel-plugin-transform-remove-debugger/package.json +++ b/packages/babel-plugin-transform-remove-debugger/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-remove-debugger", - "version": "1.0.1", + "version": "5.10.32", "description": "Remove debugger statements", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 868b737c51..136ef26eb3 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-runtime", - "version": "1.0.7", + "version": "5.10.32", "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20" + "babel-runtime": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-runtime/src/index.js b/packages/babel-plugin-transform-runtime/src/index.js index a80feb0d23..235a1bb51d 100644 --- a/packages/babel-plugin-transform-runtime/src/index.js +++ b/packages/babel-plugin-transform-runtime/src/index.js @@ -8,20 +8,23 @@ export default function ({ types: t }) { } return { - pre(file) { - file.set("helperGenerator", function (name) { - return file.addImport(`${RUNTIME_MODULE_NAME}/helpers/${name}`, name, "absoluteDefault"); + pre(file, state) { + state.set("helperGenerator", function (name) { + return state.addImport(`${RUNTIME_MODULE_NAME}/helpers/${name}`, "default", name); }); - file.setDynamic("regeneratorIdentifier", function () { - return file.addImport(`${RUNTIME_MODULE_NAME}/regenerator`, "regeneratorRuntime", "absoluteDefault"); + state.setDynamic("regeneratorIdentifier", function () { + return state.addImport(`${RUNTIME_MODULE_NAME}/regenerator`, "default", "regeneratorRuntime"); }); }, visitor: { - ReferencedIdentifier({ node, parent, scope }, file) { + ReferencedIdentifier(path, state) { + let { node, parent, scope } = path; + if (node.name === "regeneratorRuntime") { - return file.get("regeneratorIdentifier"); + path.replaceWith(state.get("regeneratorIdentifier")); + return; } if (t.isMemberExpression(parent)) return; @@ -29,56 +32,65 @@ export default function ({ types: t }) { if (scope.getBindingIdentifier(node.name)) return; // Symbol() -> _core.Symbol(); new Promise -> new _core.Promise - var modulePath = definitions.builtins[node.name]; - return file.addImport(`${RUNTIME_MODULE_NAME}/core-js/${modulePath}`, node.name, "absoluteDefault"); + path.replaceWith(state.addImport( + `${RUNTIME_MODULE_NAME}/core-js/${definitions.builtins[node.name]}`, + "default", + node.name + )); }, - CallExpression(path, file) { + CallExpression(path, state) { // arr[Symbol.iterator]() -> _core.$for.getIterator(arr) // we can't compile this if (path.node.arguments.length) return; - var callee = path.node.callee; + let callee = path.node.callee; if (!t.isMemberExpression(callee)) return; if (!callee.computed) return; if (!path.get("callee.property").matchesPattern("Symbol.iterator")) return; - return t.callExpression( - file.addImport(`${RUNTIME_MODULE_NAME}/core-js/get-iterator`, "getIterator", "absoluteDefault"), + path.replaceWith(t.callExpression( + state.addImport( + `${RUNTIME_MODULE_NAME}/core-js/get-iterator`, + "default", + "getIterator" + ), [callee.object] - ); + )); }, - BinaryExpression(path, file) { + BinaryExpression(path, state) { // Symbol.iterator in arr -> core.$for.isIterable(arr) if (path.node.operator !== "in") return; if (!path.get("left").matchesPattern("Symbol.iterator")) return; - return t.callExpression( - file.addImport(`${RUNTIME_MODULE_NAME}/core-js/is-iterable`, "isIterable", "absoluteDefault"), + path.replaceWith(t.callExpression( + state.addImport( + `${RUNTIME_MODULE_NAME}/core-js/is-iterable`, + "default", + "isIterable" + ), [path.node.right] - ); + )); }, MemberExpression: { - enter(path, file) { - // Array.from -> _core.Array.from - + enter(path, state) { if (!path.isReferenced()) return; - var { node } = path; - var obj = node.object; - var prop = node.property; + // Array.from -> _core.Array.from + + let { node } = path; + let obj = node.object; + let prop = node.property; if (!t.isReferenced(obj, node)) return; - if (node.computed) return; - if (!has(definitions.methods, obj.name)) return; - var methods = definitions.methods[obj.name]; + let methods = definitions.methods[obj.name]; if (!has(methods, prop.name)) return; // doesn't reference the global @@ -86,28 +98,35 @@ export default function ({ types: t }) { // special case Object.defineProperty to not use core-js when using string keys if (obj.name === "Object" && prop.name === "defineProperty" && path.parentPath.isCallExpression()) { - var call = path.parentPath.node; + let call = path.parentPath.node; if (call.arguments.length === 3 && t.isLiteral(call.arguments[1])) return; } - var modulePath = methods[prop.name]; - return file.addImport(`${RUNTIME_MODULE_NAME}/core-js/${modulePath}`, `${obj.name}$${prop.name}`, "absoluteDefault"); + path.replaceWith(state.addImport( + `${RUNTIME_MODULE_NAME}/core-js/${methods[prop.name]}`, + "default", + `${obj.name}$${prop.name}` + )); }, - exit(path, file) { + exit(path, state) { if (!path.isReferenced()) return; - var prop = path.node.property; - var obj = path.node.object; + let { node } = path; + let obj = node.object; if (!has(definitions.builtins, obj.name)) return; if (path.scope.getBindingIdentifier(obj.name)) return; - var modulePath = definitions.builtins[obj.name]; - return t.memberExpression( - file.addImport(`${RUNTIME_MODULE_NAME}/core-js/${modulePath}`, `${obj.name}`, "absoluteDefault"), - prop - ); + path.replaceWith(t.memberExpression( + state.addImport( + `${RUNTIME_MODULE_NAME}/core-js/${definitions.builtins[obj.name]}`, + "default", + obj.name + ), + node.property, + node.computed + )); } } } diff --git a/packages/babel-plugin-transform-simplify-comparison-operators/package.json b/packages/babel-plugin-transform-simplify-comparison-operators/package.json index 5d926d90bf..8045c44cd3 100644 --- a/packages/babel-plugin-transform-simplify-comparison-operators/package.json +++ b/packages/babel-plugin-transform-simplify-comparison-operators/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-simplify-comparison-operators", - "version": "1.0.2", + "version": "5.10.32", "description": "Convert === and !== to == and != if their types are inferred to be the same.", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js b/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js index 88b311e1a7..e50122cafd 100644 --- a/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js +++ b/packages/babel-plugin-transform-simplify-comparison-operators/src/index.js @@ -2,11 +2,11 @@ export default function () { return { visitor: { BinaryExpression(node) { - var op = node.operator; + let op = node.operator; if (op !== "===" && op !== "!==") return; - var left = this.get("left"); - var right = this.get("right"); + let left = this.get("left"); + let right = this.get("right"); if (left.baseTypeStrictlyMatches(right)) { node.operator = node.operator.slice(0, -1); } diff --git a/packages/babel-plugin-transform-strict-mode/README.md b/packages/babel-plugin-transform-strict-mode/README.md new file mode 100644 index 0000000000..a47e06aa94 --- /dev/null +++ b/packages/babel-plugin-transform-strict-mode/README.md @@ -0,0 +1,35 @@ +# babel-plugin-transform-strict-mode + +TODO + +## Installation + +```sh +$ npm install babel-plugin-transform-strict-mode +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["transform-strict-mode"] +} +``` + +### Via CLI + +```sh +$ babel --plugins transform-strict-mode script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["transform-strict-mode"] +}); +``` diff --git a/packages/babel-plugin-transform-strict-mode/package.json b/packages/babel-plugin-transform-strict-mode/package.json new file mode 100644 index 0000000000..8fdd3022d6 --- /dev/null +++ b/packages/babel-plugin-transform-strict-mode/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel-plugin-transform-strict-mode", + "version": "1.0.0", + "description": "TODO", + "repository": "babel/babel", + "license": "MIT", + "main": "lib/index.js", + "keywords": [ + "babel-plugin" + ], + "dependencies": { + "babel-runtime": "^5.0.0", + "babel-types": "^6.0.0" + } +} diff --git a/packages/babel-plugin-transform-strict-mode/src/index.js b/packages/babel-plugin-transform-strict-mode/src/index.js new file mode 100644 index 0000000000..1c694818cb --- /dev/null +++ b/packages/babel-plugin-transform-strict-mode/src/index.js @@ -0,0 +1,17 @@ +import * as t from "babel-types"; + +export default function () { + return { + visitor: { + Program(path) { + let { node } = path; + + for (let directive of (node.directives: Array)) { + if (directive.value.value === "use strict") return; + } + + path.unshiftContainer("directives", t.directive(t.directiveLiteral("use strict"))); + } + } + }; +} diff --git a/packages/babel-plugin-transform-undeclared-variables-check/.npmignore b/packages/babel-plugin-transform-undeclared-variables-check/.npmignore deleted file mode 100644 index cace0d6ddc..0000000000 --- a/packages/babel-plugin-transform-undeclared-variables-check/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -*.log -src diff --git a/packages/babel-plugin-transform-undeclared-variables-check/README.md b/packages/babel-plugin-transform-undeclared-variables-check/README.md deleted file mode 100644 index cddd56313d..0000000000 --- a/packages/babel-plugin-transform-undeclared-variables-check/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# babel-plugin-transform-undeclared-variables-check - -Throw a compile-time error on references to undeclared variables - -## Installation - -```sh -$ npm install babel-plugin-transform-undeclared-variables-check -``` - -## Usage - -### Via `.babelrc` (Recommended) - -**.babelrc** - -```json -{ - "plugins": ["transform-undeclared-variables-check"] -} -``` - -### Via CLI - -```sh -$ babel --plugins transform-undeclared-variables-check script.js -``` - -### Via Node API - -```javascript -require("babel-core").transform("code", { - plugins: ["transform-undeclared-variables-check"] -}); -``` diff --git a/packages/babel-plugin-transform-undefined-to-void/package.json b/packages/babel-plugin-transform-undefined-to-void/package.json index 888423f34b..9b4079864e 100644 --- a/packages/babel-plugin-transform-undefined-to-void/package.json +++ b/packages/babel-plugin-transform-undefined-to-void/package.json @@ -1,11 +1,14 @@ { "name": "babel-plugin-transform-undefined-to-void", - "version": "1.1.6", + "version": "5.10.32", "description": "Replace references to `undefined` with `void 0`", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "keywords": [ "babel-plugin" - ] -} + ], + "dependencies": { + "babel-runtime": "^5.10.32" + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-undefined-to-void/src/index.js b/packages/babel-plugin-transform-undefined-to-void/src/index.js index 593d7bea3d..37266769e9 100644 --- a/packages/babel-plugin-transform-undefined-to-void/src/index.js +++ b/packages/babel-plugin-transform-undefined-to-void/src/index.js @@ -1,9 +1,9 @@ export default function ({ types: t }) { return { visitor: { - ReferencedIdentifier(node) { - if (node.name === "undefined") { - return t.unaryExpression("void", t.numberLiteral(0), true); + ReferencedIdentifier(path) { + if (path.node.name === "undefined") { + path.replaceWith(t.unaryExpression("void", t.numberLiteral(0), true)); } } } diff --git a/packages/babel-plugin-transform-es2015-tail-call/.npmignore b/packages/babel-plugin-undeclared-variables-check/.npmignore similarity index 100% rename from packages/babel-plugin-transform-es2015-tail-call/.npmignore rename to packages/babel-plugin-undeclared-variables-check/.npmignore diff --git a/packages/babel-plugin-undeclared-variables-check/README.md b/packages/babel-plugin-undeclared-variables-check/README.md new file mode 100644 index 0000000000..8051e67a12 --- /dev/null +++ b/packages/babel-plugin-undeclared-variables-check/README.md @@ -0,0 +1,35 @@ +# babel-plugin-undeclared-variables-check + +Throw a compile-time error on references to undeclared variables + +## Installation + +```sh +$ npm install babel-plugin-undeclared-variables-check +``` + +## Usage + +### Via `.babelrc` (Recommended) + +**.babelrc** + +```json +{ + "plugins": ["undeclared-variables-check"] +} +``` + +### Via CLI + +```sh +$ babel --plugins undeclared-variables-check script.js +``` + +### Via Node API + +```javascript +require("babel-core").transform("code", { + plugins: ["undeclared-variables-check"] +}); +``` diff --git a/packages/babel-plugin-transform-undeclared-variables-check/package.json b/packages/babel-plugin-undeclared-variables-check/package.json similarity index 68% rename from packages/babel-plugin-transform-undeclared-variables-check/package.json rename to packages/babel-plugin-undeclared-variables-check/package.json index 82cbe2499e..c631bac703 100644 --- a/packages/babel-plugin-transform-undeclared-variables-check/package.json +++ b/packages/babel-plugin-undeclared-variables-check/package.json @@ -1,6 +1,6 @@ { - "name": "babel-plugin-transform-undeclared-variables-check", - "version": "1.0.2", + "name": "babel-plugin-undeclared-variables-check", + "version": "6.0.6", "description": "Throw a compile-time error on references to undeclared variables", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20", + "babel-runtime": "^6.0.6", "leven": "^1.0.2" } } diff --git a/packages/babel-plugin-transform-undeclared-variables-check/src/index.js b/packages/babel-plugin-undeclared-variables-check/src/index.js similarity index 74% rename from packages/babel-plugin-transform-undeclared-variables-check/src/index.js rename to packages/babel-plugin-undeclared-variables-check/src/index.js index 4ce2f590f7..a6400dd8c7 100644 --- a/packages/babel-plugin-transform-undeclared-variables-check/src/index.js +++ b/packages/babel-plugin-undeclared-variables-check/src/index.js @@ -1,12 +1,12 @@ -import levenshtein from "leven"; +import leven from "leven"; export default function ({ messages }) { return { visitor: { ReferencedIdentifier(path) { - var { node, scope } = path; + let { node, scope } = path; - var binding = scope.getBinding(node.name); + let binding = scope.getBinding(node.name); if (binding && binding.kind === "type" && !path.parentPath.isFlow()) { throw path.buildCodeFrameError(messages.get("undeclaredVariableType", node.name), ReferenceError); } @@ -16,13 +16,13 @@ export default function ({ messages }) { // get the closest declaration to offer as a suggestion // the variable name may have just been mistyped - var bindings = scope.getAllBindings(); + let bindings = scope.getAllBindings(); - var closest; - var shortest = -1; + let closest; + let shortest = -1; - for (var name in bindings) { - var distance = levenshtein(node.name, name); + for (let name in bindings) { + let distance = leven(node.name, name); if (distance <= 0 || distance > 3) continue; if (distance <= shortest) continue; @@ -30,7 +30,7 @@ export default function ({ messages }) { shortest = distance; } - var msg; + let msg; if (closest) { msg = messages.get("undeclaredVariableSuggestion", node.name, closest); } else { diff --git a/packages/babel-polyfill/package.json b/packages/babel-polyfill/package.json index 2dca2a1d4f..75cee24fc1 100644 --- a/packages/babel-polyfill/package.json +++ b/packages/babel-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "babel-polyfill", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -9,6 +9,7 @@ "main": "lib/index.js", "dependencies": { "core-js": "^1.0.1", - "regenerator": "^0.8.36" + "regenerator": "^0.8.36", + "babel-runtime": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-polyfill/scripts/build-dist.sh b/packages/babel-polyfill/scripts/build-dist.sh old mode 100644 new mode 100755 index d2b3b9bd13..38f8477688 --- a/packages/babel-polyfill/scripts/build-dist.sh +++ b/packages/babel-polyfill/scripts/build-dist.sh @@ -1,10 +1,17 @@ #!/bin/sh -set -e +set -ex BROWSERIFY_CMD="../../node_modules/browserify/bin/cmd.js" UGLIFY_CMD="../../node_modules/uglify-js/bin/uglifyjs" mkdir -p dist -node $BROWSERIFY_CMD -e lib/index.js >dist/polyfill.js -node $UGLIFY_CMD dist/index.js >dist/polyfill.min.js +node $BROWSERIFY_CMD lib/index.js \ + --insert-global-vars 'global' \ + --plugin bundle-collapser/plugin \ + --plugin derequire/plugin \ + >dist/polyfill.js +node $UGLIFY_CMD dist/polyfill.js \ + --compress warnings=false \ + --mangle \ + >dist/polyfill.min.js diff --git a/packages/babel-preset-es2015/index.js b/packages/babel-preset-es2015/index.js index 6288b3ee72..fec29c3586 100644 --- a/packages/babel-preset-es2015/index.js +++ b/packages/babel-preset-es2015/index.js @@ -17,6 +17,7 @@ module.exports = { require("babel-plugin-transform-es2015-parameters"), require("babel-plugin-transform-es2015-destructuring"), require("babel-plugin-transform-es2015-block-scoping"), - require("babel-plugin-transform-es2015-tail-call") + require("babel-plugin-transform-es2015-typeof-symbol"), + require("babel-plugin-transform-regenerator") ] }; diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index cbd48902d6..de055a6b81 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,23 +8,24 @@ "repository": "babel/babel", "main": "index.js", "dependencies": { - "babel-plugin-transform-es2015-template-literals": "*", - "babel-plugin-transform-es2015-literals": "*", - "babel-plugin-transform-es2015-function-name": "*", - "babel-plugin-transform-es2015-arrow-functions": "*", - "babel-plugin-transform-es2015-block-scoped-functions": "*", - "babel-plugin-transform-es2015-classes": "*", - "babel-plugin-transform-es2015-object-super": "*", - "babel-plugin-transform-es2015-shorthand-properties": "*", - "babel-plugin-transform-es2015-computed-properties": "*", - "babel-plugin-transform-es2015-for-of": "*", - "babel-plugin-transform-es2015-sticky-regex": "*", - "babel-plugin-transform-es2015-unicode-regex": "*", - "babel-plugin-transform-es2015-constants": "*", - "babel-plugin-transform-es2015-spread": "*", - "babel-plugin-transform-es2015-parameters": "*", - "babel-plugin-transform-es2015-destructuring": "*", - "babel-plugin-transform-es2015-block-scoping": "*", - "babel-plugin-transform-es2015-tail-call": "*" + "babel-plugin-transform-es2015-template-literals": "^5.10.32", + "babel-plugin-transform-es2015-literals": "^5.10.32", + "babel-plugin-transform-es2015-function-name": "^5.10.32", + "babel-plugin-transform-es2015-arrow-functions": "^5.10.32", + "babel-plugin-transform-es2015-block-scoped-functions": "^5.10.32", + "babel-plugin-transform-es2015-classes": "^5.10.32", + "babel-plugin-transform-es2015-object-super": "^5.10.32", + "babel-plugin-transform-es2015-shorthand-properties": "^5.10.32", + "babel-plugin-transform-es2015-computed-properties": "^5.10.32", + "babel-plugin-transform-es2015-for-of": "^5.10.32", + "babel-plugin-transform-es2015-sticky-regex": "^5.10.32", + "babel-plugin-transform-es2015-unicode-regex": "^5.10.32", + "babel-plugin-transform-es2015-constants": "^5.10.32", + "babel-plugin-transform-es2015-spread": "^5.10.32", + "babel-plugin-transform-es2015-parameters": "^5.10.32", + "babel-plugin-transform-es2015-destructuring": "^5.10.32", + "babel-plugin-transform-es2015-block-scoping": "^5.10.32", + "babel-plugin-transform-es2015-typeof-symbol": "^5.0.0", + "babel-plugin-transform-regenerator": "^5.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-preset-react/index.js b/packages/babel-preset-react/index.js index 864093b2b6..b488ccb658 100644 --- a/packages/babel-preset-react/index.js +++ b/packages/babel-preset-react/index.js @@ -1,6 +1,7 @@ module.exports = { plugins: [ require("babel-plugin-transform-react-jsx"), + require("babel-plugin-transform-flow-strip-types"), require("babel-plugin-syntax-flow"), require("babel-plugin-syntax-jsx"), ] diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json index 055ed78977..c798996ca9 100644 --- a/packages/babel-preset-react/package.json +++ b/packages/babel-preset-react/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,8 +8,9 @@ "repository": "babel/babel", "main": "index.js", "dependencies": { - "babel-plugin-syntax-flow": "*", - "babel-plugin-syntax-jsx": "*", - "babel-plugin-transform-react-jsx": "*" + "babel-plugin-syntax-flow": "^5.10.32", + "babel-plugin-syntax-jsx": "^5.10.32", + "babel-plugin-transform-react-jsx": "^5.10.32", + "babel-plugin-transform-flow-strip-types": "^5.10.32" } -} +} \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 6a58f82a5d..536a79b34c 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-runtime", - "version": "5.8.20", + "version": "5.10.32", "description": "babel selfContained runtime", "license": "MIT", "repository": "babel/babel", @@ -9,7 +9,9 @@ "core-js": "^1.0.0" }, "devDependencies": { + "babel-helpers": "^1.0.7", "babel-plugin-runtime": "^1.0.7", + "babel-template": "^5.10.32", "regenerator": "^0.8.34" } } \ No newline at end of file diff --git a/packages/babel-runtime/scripts/build-dist.js b/packages/babel-runtime/scripts/build-dist.js index 0196386b89..df8357d9df 100644 --- a/packages/babel-runtime/scripts/build-dist.js +++ b/packages/babel-runtime/scripts/build-dist.js @@ -1,7 +1,8 @@ var outputFile = require("output-file-sync"); -var transform = require("../../babel-core/lib/transformation"); +var template = require("babel-template"); +var helpers = require("babel-helpers"); +var babel = require("../../babel-core"); var each = require("lodash/collection/each"); -var File = require("../../babel-core/lib/transformation/file"); var util = require("../../babel-core/lib/util"); var fs = require("fs"); var t = require("../../babel-types"); @@ -31,30 +32,38 @@ function writeRootFile(filename, content) { outputFile(filename, content); } +var buildHelperHead = template("exports.default = HELPER; exports.__esModule = true;"); function writeFile(filename, content) { return writeRootFile(filename, content); } +var transformOpts = { + presets: [ + require("../../babel-preset-es2015") + ], + + plugins: [ + require("../../babel-plugin-transform-runtime"), + require("../../babel-plugin-transform-es2015-modules-commonjs") + ] +}; + function selfContainify(code) { - return transform(code, { - optional: ["runtime"] - }).code; + return babel.transform(code, transformOpts).code; } function buildHelper(helperName) { var tree = t.program( - util.template("self-contained-helpers-head", { - HELPER: util.template("helper-" + helperName) + buildHelperHead({ + HELPER: helpers.get(helperName) }) ); - return transform.fromAst(tree, null, { - optional: ["runtime"] - }).code; + return babel.transformFromAst(tree, null, transformOpts).code; } -each(File.helpers, function (helperName) { +each(helpers.list, function (helperName) { writeFile("helpers/" + helperName + ".js", buildHelper(helperName)); }); diff --git a/packages/babel-template/package.json b/packages/babel-template/package.json index 49803acbe8..28dc25b1ab 100644 --- a/packages/babel-template/package.json +++ b/packages/babel-template/package.json @@ -1,6 +1,6 @@ { "name": "babel-template", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,10 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babylon": "^5.8.20", - "babel-traverse": "^5.8.22", - "babel-types": "^5.8.22", + "babylon": "^5.10.32", + "babel-traverse": "^5.10.32", + "babel-types": "^5.10.32", + "babel-runtime": "^5.10.32", "lodash": "^3.10.1" } -} +} \ No newline at end of file diff --git a/packages/babel-template/src/index.js b/packages/babel-template/src/index.js index 99f3c83c79..c011d71fac 100644 --- a/packages/babel-template/src/index.js +++ b/packages/babel-template/src/index.js @@ -1,22 +1,31 @@ +/* @flow */ + import cloneDeep from "lodash/lang/cloneDeep"; -import isEmpty from "lodash/lang/isEmpty"; import has from "lodash/object/has"; import traverse from "babel-traverse"; import * as babylon from "babylon"; import * as t from "babel-types"; -export default function (code) { - var stack = new Error().stack.split("\n").slice(1).join("\n"); +let TEMPLATE_SKIP = Symbol(); + +export default function (code: string): Function { + // since we lazy parse the template, we get the current stack so we have the + // original stack to append if it errors when parsing + let stack = new Error().stack.split("\n").slice(1).join("\n"); + + let getAst = function () { + let ast; - var getAst = function () { try { - var ast = babylon.parse(code, { - allowReturnOutsideFunction: true - }).program; + ast = babylon.parse(code, { + allowReturnOutsideFunction: true, + allowSuperOutsideMethod: true + }); ast = traverse.removeProperties(ast); } catch (err) { err.stack = `${err.stack}from\n${stack}`; + throw err; } getAst = function () { @@ -26,49 +35,56 @@ export default function (code) { return ast; }; - return function (nodes, keepExpression) { - return useTemplate(getAst(), nodes, keepExpression); + return function (...args) { + return useTemplate(getAst(), args); }; } -function useTemplate(ast, nodes?: Array, keepExpression?: boolean) { - if (nodes === true) { - keepExpression = true; - nodes = null; - } - +function useTemplate(ast, nodes?: Array) { ast = cloneDeep(ast); + let { program } = ast; - if (!isEmpty(nodes)) { + if (nodes.length) { traverse(ast, templateVisitor, null, nodes); } - if (ast.body.length > 1) { - return ast.body; - } - - var node = ast.body[0]; - if (!keepExpression && t.isExpressionStatement(node)) { - return node.expression; + if (program.body.length > 1) { + return program.body; } else { - return node; + return program.body[0]; } } -var templateVisitor = { +let templateVisitor = { // 360 noScope: true, - enter(path, nodes) { - var { node } = path; + enter(path, args) { + let { node } = path; + if (node[TEMPLATE_SKIP]) return path.skip(); if (t.isExpressionStatement(node)) { node = node.expression; } - if (t.isIdentifier(node) && has(nodes, node.name)) { - path.skip(); - path.replaceInline(nodes[node.name]); + let replacement; + + if (t.isIdentifier(node)) { + if (has(args[0], node.name)) { + replacement = args[0][node.name]; + } else if (node.name[0] === "$") { + let i = +node.name.slice(1); + if (args[i]) replacement = args[i]; + } + } + + if (replacement === null) { + path.remove(); + } + + if (replacement) { + replacement[TEMPLATE_SKIP] = true; + path.replaceInline(replacement); } }, diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json index 8994c73192..5aad190ad1 100644 --- a/packages/babel-traverse/package.json +++ b/packages/babel-traverse/package.json @@ -1,6 +1,6 @@ { "name": "babel-traverse", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,12 +8,14 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-code-frame": "^5.8.22", + "babel-code-frame": "^5.10.32", + "babel-messages": "^5.10.32", + "babel-runtime": "^5.10.32", + "babel-types": "^5.10.32", + "babylon": "^5.10.32", "globals": "^8.3.0", + "invariant": "^2.1.0", "lodash": "^3.10.1", - "repeating": "^1.1.3", - "babel-types": "^5.8.22", - "babel-messages": "^5.8.22", - "babylon": "^5.8.22" + "repeating": "^1.1.3" } -} +} \ No newline at end of file diff --git a/packages/babel-traverse/src/context.js b/packages/babel-traverse/src/context.js index 6fa70d022f..ea9f1e56dc 100644 --- a/packages/babel-traverse/src/context.js +++ b/packages/babel-traverse/src/context.js @@ -1,6 +1,10 @@ +/* @flow */ + import NodePath from "./path"; import * as t from "babel-types"; +let testing = process.env.NODE_ENV === "test"; + export default class TraversalContext { constructor(scope, opts, state, parentPath) { this.parentPath = parentPath; @@ -9,57 +13,101 @@ export default class TraversalContext { this.opts = opts; } - queue = null; + parentPath: NodePath; + scope; + state; + opts; + queue: ?Array = null; - shouldVisit(node) { - var opts = this.opts; + /** + * This method does a simple check to determine whether or not we really need to attempt + * visit a node. This will prevent us from constructing a NodePath. + */ + + shouldVisit(node): boolean { + let opts = this.opts; if (opts.enter || opts.exit) return true; + // check if we have a visitor for this node if (opts[node.type]) return true; - var keys = t.VISITOR_KEYS[node.type]; + // check if we're going to traverse into this node + let keys: ?Array = t.VISITOR_KEYS[node.type]; if (!keys || !keys.length) return false; - for (var key of (keys: Array)) { + // we need to traverse into this node so ensure that it has children to traverse into! + for (let key of keys) { if (node[key]) return true; } return false; } - create(node, obj, key, listKey) { - var path = NodePath.get({ + create(node, obj, key, listKey): NodePath { + return NodePath.get({ parentPath: this.parentPath, parent: node, container: obj, key: key, listKey }); - path.unshiftContext(this); - return path; + } + + maybeQueue(path) { + if (this.trap) { + throw new Error("Infinite cycle detected"); + } + + if (this.queue) { + this.priorityQueue.push(path); + } } visitMultiple(container, parent, listKey) { // nothing to traverse! if (container.length === 0) return false; - var visited = []; - - var queue = this.queue = []; - var stop = false; + let queue = []; // build up initial queue for (let key = 0; key < container.length; key++) { - var self = container[key]; - if (self && this.shouldVisit(self)) { + let node = container[key]; + if (node && this.shouldVisit(node)) { queue.push(this.create(parent, container, key, listKey)); } } - // visit the queue - for (let path of (queue: Array)) { - path.resync(); + return this.visitQueue(queue); + } + visitSingle(node, key): boolean { + if (this.shouldVisit(node[key])) { + return this.visitQueue([ + this.create(node, node, key) + ]); + } else { + return false; + } + } + + visitQueue(queue: Array) { + // set queue + this.queue = queue; + this.priorityQueue = []; + + let visited = []; + let stop = false; + + // visit the queue + for (let path of queue) { + path.resync(); + path.pushContext(this); + + if (testing && queue.length >= 1000) { + this.trap = true; + } + + // ensure we don't visit the same node twice if (visited.indexOf(path.node) >= 0) continue; visited.push(path.node); @@ -67,28 +115,29 @@ export default class TraversalContext { stop = true; break; } + + if (this.priorityQueue.length) { + stop = this.visitQueue(this.priorityQueue); + this.priorityQueue = []; + this.queue = queue; + if (stop) break; + } } - for (let path of (queue: Array)) { - path.shiftContext(); + // clear queue + for (let path of queue) { + path.popContext(); } + // clear queue this.queue = null; return stop; } - visitSingle(node, key) { - if (this.shouldVisit(node[key])) { - var path = this.create(node, node, key); - path.visit(); - path.shiftContext(); - } - } - visit(node, key) { - var nodes = node[key]; - if (!nodes) return; + let nodes = node[key]; + if (!nodes) return false; if (Array.isArray(nodes)) { return this.visitMultiple(nodes, node, key); diff --git a/packages/babel-traverse/src/hub.js b/packages/babel-traverse/src/hub.js index f1b0fb0243..9c204d5e54 100644 --- a/packages/babel-traverse/src/hub.js +++ b/packages/babel-traverse/src/hub.js @@ -1,6 +1,4 @@ -/** - * [Please add a description.] - */ +/* @flow */ export default class Hub { constructor(file, options) { diff --git a/packages/babel-traverse/src/index.js b/packages/babel-traverse/src/index.js index 6209d197a2..1f058919c3 100644 --- a/packages/babel-traverse/src/index.js +++ b/packages/babel-traverse/src/index.js @@ -1,10 +1,23 @@ +/* @flow */ + import TraversalContext from "./context"; import * as visitors from "./visitors"; import * as messages from "babel-messages"; import includes from "lodash/collection/includes"; import * as t from "babel-types"; -export default function traverse(parent: Object, opts?: Object, scope?: Object, state: Object, parentPath: Object) { +export { default as NodePath } from "./path"; +export { default as Scope } from "./scope"; +export { default as Hub } from "./hub"; +export { visitors }; + +export default function traverse( + parent: Object | Array, + opts?: Object, + scope?: Object, + state: Object, + parentPath: Object, +) { if (!parent) return; if (!opts) opts = {}; @@ -16,14 +29,7 @@ export default function traverse(parent: Object, opts?: Object, scope?: Object, visitors.explode(opts); - // array of nodes - if (Array.isArray(parent)) { - for (var i = 0; i < parent.length; i++) { - traverse.node(parent[i], opts, scope, state, parentPath); - } - } else { - traverse.node(parent, opts, scope, state, parentPath); - } + traverse.node(parent, opts, scope, state, parentPath); } traverse.visitors = visitors; @@ -35,22 +41,32 @@ traverse.Scope = require("./scope"); traverse.Hub = require("./hub"); traverse.cheap = function (node, enter) { - var keys = t.VISITOR_KEYS[node.type]; + if (!node) return; + + let keys = t.VISITOR_KEYS[node.type]; if (!keys) return; enter(node); - for (var key of keys) { - traverse.cheap(node[key], enter); + for (let key of keys) { + let subNode = node[key]; + + if (Array.isArray(subNode)) { + for (let node of subNode) { + traverse.cheap(node, enter); + } + } else { + traverse.cheap(subNode, enter); + } } }; traverse.node = function (node: Object, opts: Object, scope: Object, state: Object, parentPath: Object, skipKeys?) { - var keys: Array = t.VISITOR_KEYS[node.type]; + let keys: Array = t.VISITOR_KEYS[node.type]; if (!keys) return; - var context = new TraversalContext(scope, opts, state, parentPath); - for (var key of keys) { + let context = new TraversalContext(scope, opts, state, parentPath); + for (let key of keys) { if (skipKeys && skipKeys[key]) continue; if (context.visit(node, key)) return; } @@ -64,7 +80,7 @@ const CLEAR_KEYS: Array = t.COMMENT_KEYS.concat([ ]); traverse.clearNode = function (node) { - for (var key of CLEAR_KEYS) { + for (let key of CLEAR_KEYS) { if (node[key] != null) node[key] = undefined; } }; @@ -88,7 +104,7 @@ traverse.hasType = function (tree: Object, scope: Object, type: Object, blacklis // the type we're looking for is the same as the passed node if (tree.type === type) return true; - var state = { + let state = { has: false, type: type }; diff --git a/packages/babel-traverse/src/path/ancestry.js b/packages/babel-traverse/src/path/ancestry.js index e1a1cfeff9..0b0ade4048 100644 --- a/packages/babel-traverse/src/path/ancestry.js +++ b/packages/babel-traverse/src/path/ancestry.js @@ -1,3 +1,5 @@ +/* @flow */ + // This file contains that retrieve or validate anything related to the current paths ancestry. import * as t from "babel-types"; @@ -9,13 +11,25 @@ import NodePath from "./index"; */ export function findParent(callback) { - var path = this; + let path = this; while (path = path.parentPath) { if (callback(path)) return path; } return null; } +/** + * Description + */ + +export function find(callback) { + let path = this; + do { + if (callback(path)) return path; + } while (path = path.parentPath); + return null; +} + /** * Get the parent function of the current path. */ @@ -29,7 +43,7 @@ export function getFunctionParent() { */ export function getStatementParent() { - var path = this; + let path = this; do { if (Array.isArray(path.container)) { return path; @@ -47,11 +61,11 @@ export function getStatementParent() { export function getEarliestCommonAncestorFrom(paths: Array): NodePath { return this.getDeepestCommonAncestorFrom(paths, function (deepest, i, ancestries) { - var earliest; - var keys = t.VISITOR_KEYS[deepest.type]; + let earliest; + let keys = t.VISITOR_KEYS[deepest.type]; - for (var ancestry of (ancestries: Array)) { - var path = ancestry[i + 1]; + for (let ancestry of (ancestries: Array)) { + let path = ancestry[i + 1]; // first path if (!earliest) { @@ -69,8 +83,8 @@ export function getEarliestCommonAncestorFrom(paths: Array): NodePath } // handle keys - var earliestKeyIndex = keys.indexOf(earliest.parentKey); - var currentKeyIndex = keys.indexOf(path.parentKey); + let earliestKeyIndex = keys.indexOf(earliest.parentKey); + let currentKeyIndex = keys.indexOf(path.parentKey); if (earliestKeyIndex > currentKeyIndex) { // key appears before so it's earlier earliest = path; @@ -97,14 +111,14 @@ export function getDeepestCommonAncestorFrom(paths: Array, filter?: Fu } // minimum depth of the tree so we know the highest node - var minDepth = Infinity; + let minDepth = Infinity; // last common ancestor - var lastCommonIndex, lastCommon; + let lastCommonIndex, lastCommon; // get the ancestors of the path, breaking when the parent exceeds ourselves - var ancestries = paths.map((path) => { - var ancestry = []; + let ancestries = paths.map((path) => { + let ancestry = []; do { ancestry.unshift(path); @@ -119,13 +133,13 @@ export function getDeepestCommonAncestorFrom(paths: Array, filter?: Fu }); // get the first ancestry so we have a seed to assess all other ancestries with - var first = ancestries[0]; + let first = ancestries[0]; // check ancestor equality - depthLoop: for (var i = 0; i < minDepth; i++) { - var shouldMatch = first[i]; + depthLoop: for (let i = 0; i < minDepth; i++) { + let shouldMatch = first[i]; - for (var ancestry of (ancestries: Array)) { + for (let ancestry of (ancestries: Array)) { if (ancestry[i] !== shouldMatch) { // we've hit a snag break depthLoop; @@ -155,8 +169,8 @@ export function getDeepestCommonAncestorFrom(paths: Array, filter?: Fu */ export function getAncestry() { - var path = this; - var paths = []; + let path = this; + let paths = []; do { paths.push(path); } while(path = path.parentPath); @@ -164,9 +178,9 @@ export function getAncestry() { } export function inType() { - var path = this; + let path = this; while (path) { - for (var type of (arguments: Array)) { + for (let type of (arguments: Array)) { if (path.node.type === type) return true; } path = path.parentPath; @@ -180,10 +194,10 @@ export function inType() { */ export function inShadow(key?) { - var path = this; + let path = this; do { if (path.isFunction()) { - var shadow = path.node.shadow; + let shadow = path.node.shadow; if (shadow) { // this is because sometimes we may have a `shadow` value of: // diff --git a/packages/babel-traverse/src/path/comments.js b/packages/babel-traverse/src/path/comments.js index 5c866d0590..06159832c1 100644 --- a/packages/babel-traverse/src/path/comments.js +++ b/packages/babel-traverse/src/path/comments.js @@ -1,3 +1,5 @@ +/* @flow */ + // This file contains methods responsible for dealing with comments. /** @@ -5,15 +7,15 @@ */ export function shareCommentsWithSiblings() { - var node = this.node; + let node = this.node; if (!node) return; - var trailing = node.trailingComments; - var leading = node.leadingComments; + let trailing = node.trailingComments; + let leading = node.leadingComments; if (!trailing && !leading) return; - var prev = this.getSibling(this.key - 1); - var next = this.getSibling(this.key + 1); + let prev = this.getSibling(this.key - 1); + let next = this.getSibling(this.key + 1); if (!prev.node) prev = next; if (!next.node) next = prev; @@ -36,10 +38,10 @@ export function addComment(type, content, line?) { export function addComments(type: string, comments: Array) { if (!comments) return; - var node = this.node; + let node = this.node; if (!node) return; - var key = `${type}Comments`; + let key = `${type}Comments`; if (node[key]) { node[key] = node[key].concat(comments); diff --git a/packages/babel-traverse/src/path/constants.js b/packages/babel-traverse/src/path/constants.js new file mode 100644 index 0000000000..11431edfe4 --- /dev/null +++ b/packages/babel-traverse/src/path/constants.js @@ -0,0 +1 @@ +export const PATH_CACHE_KEY = "_paths"; //Symbol(); diff --git a/packages/babel-traverse/src/path/context.js b/packages/babel-traverse/src/path/context.js index 1a01ccb748..c50f875f1e 100644 --- a/packages/babel-traverse/src/path/context.js +++ b/packages/babel-traverse/src/path/context.js @@ -1,71 +1,69 @@ +/* @flow */ + // This file contains methods responsible for maintaining a TraversalContext. import traverse from "../index"; -export function call(key) { - var node = this.node; - if (!node) return; +export function call(key): boolean { + let opts = this.opts; - var opts = this.opts; - - for (var fns of [opts[key], opts[node.type] && opts[node.type][key]]){ - if (!fns) continue; - - for (var fn of (fns: Array)) { - if (!fn) continue; - - let node = this.node; - if (!node) return; - - var previousType = this.type; - - // call the function with the params (node, parent, scope, state) - var replacement = fn.call(this, this, this.state); - - if (replacement) { - throw new Error("Unexpected return value from visitor method"); - } - - if (this.shouldStop || this.shouldSkip || this.removed) return; - - if (previousType !== this.type) { - this.queueNode(this); - return; - } - } + if (this.node) { + if (this._call(opts[key])) return true; } + + if (this.node) { + return this._call(opts[this.node.type] && opts[this.node.type][key]); + } + + return false; +} + +export function _call(fns?: Array): boolean { + if (!fns) return false; + + for (let fn of fns) { + if (!fn) continue; + + let node = this.node; + if (!node) return true; + + let ret = fn.call(this.state, this, this.state); + if (ret) throw new Error("Unexpected return value from visitor method " + fn); + + // node has been replaced, it will have been requeued + if (this.node !== node) return true; + + if (this.shouldStop || this.shouldSkip || this.removed) return true; + } + + return false; } export function isBlacklisted(): boolean { - var blacklist = this.opts.blacklist; + let blacklist = this.opts.blacklist; return blacklist && blacklist.indexOf(this.node.type) > -1; } export function visit(): boolean { - if (this.isBlacklisted()) return false; - if (this.opts.shouldSkip && this.opts.shouldSkip(this)) return false; + if (!this.node) { + return false; + } - this.call("enter"); + if (this.isBlacklisted()) { + return false; + } - if (this.shouldSkip) { + if (this.opts.shouldSkip && this.opts.shouldSkip(this)) { + return false; + } + + if (this.call("enter") || this.shouldSkip) { return this.shouldStop; } - var node = this.node; - var opts = this.opts; + traverse.node(this.node, this.opts, this.scope, this.state, this, this.skipKeys); - if (node) { - if (Array.isArray(node)) { - // traverse over these replacement nodes we purposely don't call exitNode - // as the original node has been destroyed - for (var i = 0; i < node.length; i++) { - traverse.node(node[i], opts, this.scope, this.state, this, this.skipKeys); - } - } else { - traverse.node(node, opts, this.scope, this.state, this, this.skipKeys); - this.call("exit"); - } - } + this.call("exit"); return this.shouldStop; } @@ -86,8 +84,19 @@ export function stop() { export function setScope() { if (this.opts && this.opts.noScope) return; - var target = this.context || this.parentPath; - this.scope = this.getScope(target && target.scope); + let target = this.context && this.context.scope; + + if (!target) { + let path = this.parentPath; + while (path && !target) { + if (path.opts && path.opts.noScope) return; + + target = path.scope; + path = path.parentPath; + } + } + + this.scope = this.getScope(target); if (this.scope) this.scope.init(); } @@ -138,37 +147,31 @@ export function _resyncKey() { // not done through our path APIs if (Array.isArray(this.container)) { - for (var i = 0; i < this.container.length; i++) { + for (let i = 0; i < this.container.length; i++) { if (this.container[i] === this.node) { return this.setKey(i); } } } else { - for (var key in this.container) { + for (let key in this.container) { if (this.container[key] === this.node) { return this.setKey(key); } } } + // ¯\_(ツ)_/¯ who knows where it's gone lol this.key = null; } export function _resyncList() { - var listKey = this.listKey; - var parentPath = this.parentPath; - if (!listKey || !parentPath || !parentPath.node) return; + if (!this.parent || !this.inList) return; - var newContainer = parentPath.node[listKey]; + let newContainer = this.parent[this.listKey]; if (this.container === newContainer) return; // container is out of sync. this is likely the result of it being reassigned - - if (newContainer) { - this.container = newContainer; - } else { - this.container = null; - } + this.container = newContainer || null; } export function _resyncRemoved() { @@ -177,13 +180,13 @@ export function _resyncRemoved() { } } -export function shiftContext() { - this.contexts.shift(); - this.setContext(this.contexts[0]); +export function popContext() { + this.contexts.pop(); + this.setContext(this.contexts[this.contexts.length - 1]); } -export function unshiftContext(context) { - this.contexts.unshift(context); +export function pushContext(context) { + this.contexts.push(context); this.setContext(context); } @@ -203,10 +206,10 @@ export function setKey(key) { this.type = this.node && this.node.type; } -export function queueNode(path) { - for (var context of (this.contexts: Array)) { - if (context.queue) { - context.queue.push(path); - } +export function requeue(path = this) { + if (path.removed) return; + + for (let context of this.contexts) { + context.maybeQueue(path); } } diff --git a/packages/babel-traverse/src/path/conversion.js b/packages/babel-traverse/src/path/conversion.js index 9a2347cf36..7ebc7d646c 100644 --- a/packages/babel-traverse/src/path/conversion.js +++ b/packages/babel-traverse/src/path/conversion.js @@ -1,21 +1,23 @@ +/* @flow */ + // This file contains methods that convert the path node into another node or some other type of data. import * as t from "babel-types"; export function toComputedKey(): Object { - var node = this.node; + let node = this.node; - var key; + let key; if (this.isMemberExpression()) { key = node.property; - } else if (this.isProperty()) { + } else if (this.isProperty() || this.isMethod()) { key = node.key; } else { throw new ReferenceError("todo"); } if (!node.computed) { - if (t.isIdentifier(key)) key = t.literal(key.name); + if (t.isIdentifier(key)) key = t.stringLiteral(key.name); } return key; @@ -24,3 +26,15 @@ export function toComputedKey(): Object { export function ensureBlock() { return t.ensureBlock(this.node); } + +export function arrowFunctionToShadowed() { + // todo: maybe error + if (!this.isArrowFunctionExpression()) return; + + this.ensureBlock(); + + let { node } = this; + node.expression = false; + node.type = "FunctionExpression"; + node.shadow = node.shadow || true; +} diff --git a/packages/babel-traverse/src/path/evaluation.js b/packages/babel-traverse/src/path/evaluation.js index 5a39f556fd..d03f824c53 100644 --- a/packages/babel-traverse/src/path/evaluation.js +++ b/packages/babel-traverse/src/path/evaluation.js @@ -1,3 +1,7 @@ +/* @flow */ + +import type NodePath from "./index"; + // This file contains Babels metainterpreter that can evaluate static code. /* eslint eqeqeq: 0 */ @@ -24,7 +28,7 @@ const INVALID_METHODS = ["random"]; */ export function evaluateTruthy(): boolean { - var res = this.evaluate(); + let res = this.evaluate(); if (res.confident) return !!res.value; } @@ -44,40 +48,48 @@ export function evaluateTruthy(): boolean { */ export function evaluate(): { confident: boolean; value: any } { - var confident = true; + let confident = true; + let deoptPath: ?NodePath; - var value = evaluate(this); + function deopt(path) { + if (!confident) return; + deoptPath = path; + confident = false; + } + + let value = evaluate(this); if (!confident) value = undefined; return { confident: confident, + deopt: deoptPath, value: value }; function evaluate(path) { if (!confident) return; - var node = path.node; + let { node } = path; if (path.isSequenceExpression()) { let exprs = path.get("expressions"); return evaluate(exprs[exprs.length - 1]); } - if (path.isLiteral()) { - if (node.regex) { - // we have a regex and we can't represent it natively - } else { - return node.value; - } + if (path.isStringLiteral() || path.isNumberLiteral() || path.isBooleanLiteral()) { + return node.value; + } + + if (path.isNullLiteral()) { + return null; } if (path.isTemplateLiteral()) { - var str = ""; + let str = ""; - var i = 0; + let i = 0; let exprs = path.get("expressions"); - for (let elem of (node.quasis: Array)) { + for (let elem of (node.quasis: Array)) { // not confident, evaluated an expression we don't like if (!confident) break; @@ -85,7 +97,7 @@ export function evaluate(): { confident: boolean; value: any } { str += elem.value.cooked; // add on interpolated expression if it's present - var expr = exprs[i++]; + let expr = exprs[i++]; if (expr) str += String(evaluate(expr)); } @@ -100,20 +112,10 @@ export function evaluate(): { confident: boolean; value: any } { } } - if (path.isTypeCastExpression()) { + if (path.isExpressionWrapper()) { // TypeCastExpression, ExpressionStatement etc return evaluate(path.get("expression")); } - if (path.isIdentifier() && !path.scope.hasBinding(node.name, true)) { - if (node.name === "undefined") { - return undefined; - } else if (node.name === "Infinity") { - return Infinity; - } else if (node.name === "NaN") { - return NaN; - } - } - // "foo".length if (path.isMemberExpression() && !path.parentPath.isCallExpression({ callee: node })) { let property = path.get("property"); @@ -129,13 +131,21 @@ export function evaluate(): { confident: boolean; value: any } { } if (path.isReferencedIdentifier()) { - var binding = path.scope.getBinding(node.name); + let binding = path.scope.getBinding(node.name); if (binding && binding.hasValue) { return binding.value; } else { - var resolved = path.resolve(); + if (node.name === "undefined") { + return undefined; + } else if (node.name === "Infinity") { + return Infinity; + } else if (node.name === "NaN") { + return NaN; + } + + let resolved = path.resolve(); if (resolved === path) { - return confident = false; + return deopt(path); } else { return evaluate(resolved); } @@ -143,27 +153,68 @@ export function evaluate(): { confident: boolean; value: any } { } if (path.isUnaryExpression({ prefix: true })) { - var arg = evaluate(path.get("argument")); + if (node.operator === "void") { + // we don't need to evaluate the argument to know what this will return + return undefined; + } + + let argument = path.get("argument"); + if (node.operator === "typeof" && (argument.isFunction() || argument.isClass())) { + return "function"; + } + + let arg = evaluate(argument); switch (node.operator) { - case "void": return undefined; case "!": return !arg; case "+": return +arg; case "-": return -arg; case "~": return ~arg; + case "typeof": return typeof arg; } } - if (path.isArrayExpression() || path.isObjectExpression()) { - // we could evaluate these but it's probably impractical and not very useful + if (path.isArrayExpression()) { + let arr = []; + let elems: Array = path.get("elements"); + for (let elem of elems) { + elem = elem.evaluate(); + + if (elem.confident) { + arr.push(elem.value); + } else { + return deopt(elem); + } + } + return arr; + } + + if (path.isObjectExpression()) { + // todo } if (path.isLogicalExpression()) { + // If we are confident that one side of an && is false, or one side of + // an || is true, we can be confident about the entire expression + let wasConfident = confident; let left = evaluate(path.get("left")); + let leftConfident = confident; + confident = wasConfident; let right = evaluate(path.get("right")); + let rightConfident = confident; + let uncertain = leftConfident !== rightConfident; + confident = leftConfident && rightConfident; switch (node.operator) { - case "||": return left || right; - case "&&": return left && right; + case "||": + if ((left || right) && uncertain) { + confident = true; + } + return left || right; + case "&&": + if ((!left && leftConfident) || (!right && rightConfident)) { + confident = true; + } + return left && right; } } @@ -186,13 +237,19 @@ export function evaluate(): { confident: boolean; value: any } { case "!=": return left != right; case "===": return left === right; case "!==": return left !== right; + case "|": return left | right; + case "&": return left & right; + case "^": return left ^ right; + case "<<": return left << right; + case ">>": return left >> right; + case ">>>": return left >>> right; } } if (path.isCallExpression()) { - var callee = path.get("callee"); - var context; - var func; + let callee = path.get("callee"); + let context; + let func; // Number(1); if (callee.isIdentifier() && !path.scope.getBinding(callee.node.name, true) && VALID_CALLEES.indexOf(callee.node.name) >= 0) { @@ -201,7 +258,7 @@ export function evaluate(): { confident: boolean; value: any } { if (callee.isMemberExpression()) { let object = callee.get("object"); - var property = callee.get("property"); + let property = callee.get("property"); // Math.min(1, 2) if (object.isIdentifier() && property.isIdentifier() && VALID_CALLEES.indexOf(object.node.name) >= 0 && INVALID_METHODS.indexOf(property.node.name) < 0) { @@ -220,13 +277,13 @@ export function evaluate(): { confident: boolean; value: any } { } if (func) { - var args = path.get("arguments").map(evaluate); + let args = path.get("arguments").map(evaluate); if (!confident) return; return func.apply(context, args); } } - confident = false; + deopt(path); } } diff --git a/packages/babel-traverse/src/path/family.js b/packages/babel-traverse/src/path/family.js index 38d57ef3c6..02e862ed49 100644 --- a/packages/babel-traverse/src/path/family.js +++ b/packages/babel-traverse/src/path/family.js @@ -1,3 +1,5 @@ +/* @flow */ + // This file contains methods responsible for dealing with/retrieving children or siblings. import type TraversalContext from "../index"; @@ -5,7 +7,7 @@ import NodePath from "./index"; import * as t from "babel-types"; export function getStatementParent(): ?NodePath { - var path = this; + let path = this; do { if (!path.parentPath || (Array.isArray(path.container) && path.isStatement())) { @@ -31,9 +33,9 @@ export function getOpposite() { } export function getCompletionRecords(): Array { - var paths = []; + let paths = []; - var add = function (path) { + let add = function (path) { if (path) paths = paths.concat(path.getCompletionRecords()); }; @@ -69,7 +71,7 @@ export function getSibling(key) { export function get(key: string, context?: boolean | TraversalContext): NodePath { if (context === true) context = this.context; - var parts = key.split("."); + let parts = key.split("."); if (parts.length === 1) { // "foo" return this._getKey(key, context); } else { // "foo.bar" @@ -78,8 +80,8 @@ export function get(key: string, context?: boolean | TraversalContext): NodePath } export function _getKey(key, context?) { - var node = this.node; - var container = node[key]; + let node = this.node; + let container = node[key]; if (Array.isArray(container)) { // requested a container so give them all the paths @@ -103,8 +105,8 @@ export function _getKey(key, context?) { } export function _getPattern(parts, context) { - var path = this; - for (var part of (parts: Array)) { + let path = this; + for (let part of (parts: Array)) { if (part === ".") { path = path.parentPath; } else { diff --git a/packages/babel-traverse/src/path/index.js b/packages/babel-traverse/src/path/index.js index 14e8c52b5f..1469becd39 100644 --- a/packages/babel-traverse/src/path/index.js +++ b/packages/babel-traverse/src/path/index.js @@ -1,4 +1,9 @@ +/* @flow */ + +import type Hub from "../hub"; +import type TraversalContext from "../context"; import * as virtualTypes from "./lib/virtual-types"; +import { PATH_CACHE_KEY } from "./constants"; import invariant from "invariant"; import traverse from "../index"; import assign from "lodash/object/assign"; @@ -6,45 +11,66 @@ import Scope from "../scope"; import * as t from "babel-types"; export default class NodePath { - - constructor(hub, parent) { + constructor(hub: Hub, parent: Object) { + this.parent = parent; + this.hub = hub; this.contexts = []; - this.parent = parent; - this.data = {}; - this.hub = hub; - - this.shouldSkip = false; - this.shouldStop = false; - this.removed = false; - this.state = null; - this.opts = null; - this.skipKeys = null; - this.parentPath = null; - this.context = null; - this.container = null; - this.listKey = null; - this.inList = false; - this.parentKey = null; - this.key = null; - this.node = null; - this.scope = null; - this.type = null; - this.typeAnnotation = null; + this.data = {}; + this.shouldSkip = false; + this.shouldStop = false; + this.removed = false; + this.state = null; + this.opts = null; + this.skipKeys = null; + this.parentPath = null; + this.context = null; + this.container = null; + this.listKey = null; + this.inList = false; + this.parentKey = null; + this.key = null; + this.node = null; + this.scope = null; + this.type = null; + this.typeAnnotation = null; } - static get({ hub, parentPath, parent, container, listKey, key }) { + parent: Object; + hub: Hub; + contexts: Array; + data: Object; + shouldSkip: boolean; + shouldStop: boolean; + removed: boolean; + state: any; + opts: ?Object; + skipKeys: ?Object; + parentPath: ?NodePath; + context: TraversalContext; + container: ?Object | Array; + listKey: ?string; + inList: boolean; + parentKey: ?string; + key: ?string; + node: ?Object; + scope: Scope; + type: ?string; + typeAnnotation: ?Object; + + static get({ hub, parentPath, parent, container, listKey, key }): NodePath { if (!hub && parentPath) { hub = parentPath.hub; } invariant(parent, "To get a node path the parent needs to exist"); - var targetNode = container[key]; - var paths = parent._paths = parent._paths || []; - var path; + let targetNode = container[key]; - for (var i = 0; i < paths.length; i++) { - var pathCheck = paths[i]; + let paths = parent[PATH_CACHE_KEY] = parent[PATH_CACHE_KEY] || []; + let path; + + for (let i = 0; i < paths.length; i++) { + let pathCheck = paths[i]; if (pathCheck.node === targetNode) { path = pathCheck; break; @@ -56,13 +82,17 @@ export default class NodePath { paths.push(path); } + if (!(path instanceof NodePath)) { + throw new Error("We found a path that isn't a NodePath instance"); + } + path.setup(parentPath, container, listKey, key); return path; } getScope(scope: Scope) { - var ourScope = scope; + let ourScope = scope; // we're entering a new scope so let's construct it! if (this.isScope()) { @@ -72,25 +102,25 @@ export default class NodePath { return ourScope; } - setData(key, val) { + setData(key: string, val: any): any { return this.data[key] = val; } - getData(key, def) { - var val = this.data[key]; + getData(key: string, def?: any): any { + let val = this.data[key]; if (!val && def) val = this.data[key] = def; return val; } - errorWithNode(msg, Error = SyntaxError) { - return this.hub.file.errorWithNode(this.node, msg, Error); + buildCodeFrameError(msg: string, Error: typeof Error = SyntaxError): Error { + return this.hub.file.buildCodeFrameError(this.node, msg, Error); } - traverse(visitor, state) { + traverse(visitor: Object, state?: any) { traverse(this.node, visitor, this.scope, state, this); } - mark(type, message) { + mark(type: string, message: string) { this.hub.file.metadata.marked.push({ type, message, @@ -98,14 +128,21 @@ export default class NodePath { }); } - /** - * Description - */ - - set(key, node) { - t.validate(key, this.node, node); + set(key: string, node: Object) { + t.validate(this.node, key, node); this.node[key] = node; } + + dump() { + let parts = []; + let path = this; + do { + let key = path.key; + if (path.inList) key = `${path.listKey}[${key}]`; + parts.unshift(key); + } while(path = path.parentPath); + console.log(parts.join(".")); + } } assign(NodePath.prototype, require("./ancestry")); @@ -120,18 +157,26 @@ assign(NodePath.prototype, require("./modification")); assign(NodePath.prototype, require("./family")); assign(NodePath.prototype, require("./comments")); -for (let type of (t.TYPES: Array)) { +for (let type of (t.TYPES: Array)) { let typeKey = `is${type}`; NodePath.prototype[typeKey] = function (opts) { return t[typeKey](this.node, opts); }; + + NodePath.prototype[`assert${type}`] = function (opts) { + if (!this[typeKey](opts)) { + throw new TypeError(`Expected node path of type ${type}`); + } + }; } for (let type in virtualTypes) { if (type[0] === "_") continue; if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type); + let virtualType = virtualTypes[type]; + NodePath.prototype[`is${type}`] = function (opts) { - return virtualTypes[type].checkPath(this, opts); + return virtualType.checkPath(this, opts); }; } diff --git a/packages/babel-traverse/src/path/inference/index.js b/packages/babel-traverse/src/path/inference/index.js index d3228a4e16..40e5c75606 100644 --- a/packages/babel-traverse/src/path/inference/index.js +++ b/packages/babel-traverse/src/path/inference/index.js @@ -1,3 +1,5 @@ +/* @flow */ + import type NodePath from "./index"; import * as inferers from "./inferers"; import * as t from "babel-types"; @@ -6,10 +8,10 @@ import * as t from "babel-types"; * Infer the type of the current `NodePath`. */ -export function getTypeAnnotation() { +export function getTypeAnnotation(): Object { if (this.typeAnnotation) return this.typeAnnotation; - var type = this._getTypeAnnotation() || t.anyTypeAnnotation(); + let type = this._getTypeAnnotation() || t.anyTypeAnnotation(); if (t.isTypeAnnotation(type)) type = type.typeAnnotation; return this.typeAnnotation = type; } @@ -19,20 +21,20 @@ export function getTypeAnnotation() { */ export function _getTypeAnnotation(): ?Object { - var node = this.node; + let node = this.node; if (!node) { // handle initializerless variables, add in checks for loop initializers too if (this.key === "init" && this.parentPath.isVariableDeclarator()) { - var declar = this.parentPath.parentPath; - var declarParent = declar.parentPath; + let declar = this.parentPath.parentPath; + let declarParent = declar.parentPath; - // for (var NODE in bar) {} + // for (let NODE in bar) {} if (declar.key === "left" && declarParent.isForInStatement()) { return t.stringTypeAnnotation(); } - // for (var NODE of bar) {} + // for (let NODE of bar) {} if (declar.key === "left" && declarParent.isForOfStatement()) { return t.anyTypeAnnotation(); } @@ -47,7 +49,7 @@ export function _getTypeAnnotation(): ?Object { return node.typeAnnotation; } - var inferer = inferers[node.type]; + let inferer = inferers[node.type]; if (inferer) { return inferer.call(this, node); } @@ -58,7 +60,7 @@ export function _getTypeAnnotation(): ?Object { } } -export function isBaseType(baseName: string, soft?): boolean { +export function isBaseType(baseName: string, soft?: boolean): boolean { return _isBaseType(baseName, this.getTypeAnnotation(), soft); } @@ -85,11 +87,11 @@ function _isBaseType(baseName: string, type?, soft?): boolean { } export function couldBeBaseType(name: string): boolean { - var type = this.getTypeAnnotation(); + let type = this.getTypeAnnotation(); if (t.isAnyTypeAnnotation(type)) return true; if (t.isUnionTypeAnnotation(type)) { - for (var type2 of (type.types: Array)) { + for (let type2 of (type.types: Array)) { if (t.isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) { return true; } @@ -101,7 +103,7 @@ export function couldBeBaseType(name: string): boolean { } export function baseTypeStrictlyMatches(right: NodePath) { - var left = this.getTypeAnnotation(); + let left = this.getTypeAnnotation(); right = right.getTypeAnnotation(); if (!t.isAnyTypeAnnotation(left) && t.isFlowBaseAnnotation(left)) { @@ -110,6 +112,6 @@ export function baseTypeStrictlyMatches(right: NodePath) { } export function isGenericType(genericName: string): boolean { - var type = this.getTypeAnnotation(); + let type = this.getTypeAnnotation(); return t.isGenericTypeAnnotation(type) && t.isIdentifier(type.id, { name: genericName }); } diff --git a/packages/babel-traverse/src/path/inference/inferer-reference.js b/packages/babel-traverse/src/path/inference/inferer-reference.js index 3f4a7a840a..f3258ffde5 100644 --- a/packages/babel-traverse/src/path/inference/inferer-reference.js +++ b/packages/babel-traverse/src/path/inference/inferer-reference.js @@ -1,11 +1,14 @@ +/* @flow */ + +import type NodePath from "../index"; import * as t from "babel-types"; -export default function (node) { +export default function (node: Object) { if (!this.isReferenced()) return; // check if a binding exists of this value and if so then return a union type of all // possible types that the binding could be - var binding = this.scope.getBinding(node.name); + let binding = this.scope.getBinding(node.name); if (binding) { if (binding.identifier.typeAnnotation) { return binding.identifier.typeAnnotation; @@ -25,17 +28,17 @@ export default function (node) { } function getTypeAnnotationBindingConstantViolations(path, name) { - var binding = path.scope.getBinding(name); + let binding = path.scope.getBinding(name); - var types = []; + let types = []; path.typeAnnotation = t.unionTypeAnnotation(types); - var functionConstantViolations = []; - var constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations); + let functionConstantViolations = []; + let constantViolations = getConstantViolationsBefore(binding, path, functionConstantViolations); - var testType = getConditionalAnnotation(path, name); + let testType = getConditionalAnnotation(path, name); if (testType) { - var testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement); + let testConstantViolations = getConstantViolationsBefore(binding, testType.ifStatement); // remove constant violations observed before the IfStatement constantViolations = constantViolations.filter((path) => testConstantViolations.indexOf(path) < 0); @@ -47,11 +50,11 @@ function getTypeAnnotationBindingConstantViolations(path, name) { if (constantViolations.length) { // pick one constant from each scope which will represent the last possible // control flow path that it could've taken/been - var rawConstantViolations = constantViolations.reverse(); - var visitedScopes = []; + let rawConstantViolations = constantViolations.reverse(); + let visitedScopes = []; constantViolations = []; - for (let violation of (rawConstantViolations: Array)) { - var violationScope = violation.scope; + for (let violation of (rawConstantViolations: Array)) { + let violationScope = violation.scope; if (visitedScopes.indexOf(violationScope) >= 0) continue; visitedScopes.push(violationScope); @@ -67,7 +70,7 @@ function getTypeAnnotationBindingConstantViolations(path, name) { constantViolations = constantViolations.concat(functionConstantViolations); // push on inferred types of violated paths - for (let violation of (constantViolations: Array)) { + for (let violation of (constantViolations: Array)) { types.push(violation.getTypeAnnotation()); } } @@ -78,23 +81,23 @@ function getTypeAnnotationBindingConstantViolations(path, name) { } function getConstantViolationsBefore(binding, path, functions) { - var violations = binding.constantViolations.slice(); + let violations = binding.constantViolations.slice(); violations.unshift(binding.path); return violations.filter((violation) => { violation = violation.resolve(); - var status = violation._guessExecutionStatusRelativeTo(path); + let status = violation._guessExecutionStatusRelativeTo(path); if (functions && status === "function") functions.push(violation); return status === "before"; }); } function inferAnnotationFromBinaryExpression(name, path) { - var operator = path.node.operator; + let operator = path.node.operator; - var right = path.get("right").resolve(); - var left = path.get("left").resolve(); + let right = path.get("right").resolve(); + let left = path.get("left").resolve(); - var target; + let target; if (left.isIdentifier({ name })) { target = right; } else if (right.isIdentifier({ name })) { @@ -113,8 +116,8 @@ function inferAnnotationFromBinaryExpression(name, path) { } // - var typeofPath; - var typePath; + let typeofPath; + let typePath; if (left.isUnaryExpression({ operator: "typeof" })) { typeofPath = left; typePath = right; @@ -129,7 +132,7 @@ function inferAnnotationFromBinaryExpression(name, path) { if (!typePath.isLiteral()) return; // and that it's a string so we can infer it - var typeValue = typePath.node.value; + let typeValue = typePath.node.value; if (typeof typeValue !== "string") return; // and that the argument of the typeof path references us! @@ -140,7 +143,7 @@ function inferAnnotationFromBinaryExpression(name, path) { } function getParentConditionalPath(path) { - var parentPath; + let parentPath; while (parentPath = path.parentPath) { if (parentPath.isIfStatement() || parentPath.isConditionalExpression()) { if (path.key === "test") { @@ -155,12 +158,12 @@ function getParentConditionalPath(path) { } function getConditionalAnnotation(path, name) { - var ifStatement = getParentConditionalPath(path); + let ifStatement = getParentConditionalPath(path); if (!ifStatement) return; - var test = ifStatement.get("test"); - var paths = [test]; - var types = []; + let test = ifStatement.get("test"); + let paths = [test]; + let types = []; do { let path = paths.shift().resolve(); @@ -171,7 +174,7 @@ function getConditionalAnnotation(path, name) { } if (path.isBinaryExpression()) { - var type = inferAnnotationFromBinaryExpression(name, path); + let type = inferAnnotationFromBinaryExpression(name, path); if (type) types.push(type); } } while(paths.length); diff --git a/packages/babel-traverse/src/path/inference/inferers.js b/packages/babel-traverse/src/path/inference/inferers.js index f36b977bc9..2925d9797e 100644 --- a/packages/babel-traverse/src/path/inference/inferers.js +++ b/packages/babel-traverse/src/path/inference/inferers.js @@ -1,9 +1,11 @@ +/* @flow */ + import * as t from "babel-types"; export { default as Identifier } from "./inferer-reference"; export function VariableDeclarator() { - var id = this.get("id"); + let id = this.get("id"); if (id.isIdentifier()) { return this.get("init").getTypeAnnotation(); @@ -51,8 +53,8 @@ export function BinaryExpression(node) { } else if (t.BOOLEAN_BINARY_OPERATORS.indexOf(operator) >= 0) { return t.booleanTypeAnnotation(); } else if (operator === "+") { - var right = this.get("right"); - var left = this.get("left"); + let right = this.get("right"); + let left = this.get("left"); if (left.isBaseType("number") && right.isBaseType("number")) { // both numbers so this will be a number @@ -99,13 +101,24 @@ export function UpdateExpression(node) { } } -export function Literal(node) { - var value = node.value; - if (typeof value === "string") return t.stringTypeAnnotation(); - if (typeof value === "number") return t.numberTypeAnnotation(); - if (typeof value === "boolean") return t.booleanTypeAnnotation(); - if (value === null) return t.voidTypeAnnotation(); - if (node.regex) return t.genericTypeAnnotation(t.identifier("RegExp")); +export function StringLiteral() { + return t.stringTypeAnnotation(); +} + +export function NumberLiteral() { + return t.numberTypeAnnotation(); +} + +export function BooleanLiteral() { + return t.booleanTypeAnnotation(); +} + +export function NullLiteral() { + return t.voidTypeAnnotation(); +} + +export function RegexLiteral() { + return t.genericTypeAnnotation(t.identifier("RegExp")); } export function ObjectExpression() { diff --git a/packages/babel-traverse/src/path/introspection.js b/packages/babel-traverse/src/path/introspection.js index 070df895f7..a333a49ab9 100644 --- a/packages/babel-traverse/src/path/introspection.js +++ b/packages/babel-traverse/src/path/introspection.js @@ -1,3 +1,5 @@ +/* @flow */ + // This file contains methods responsible for introspecting the current path for certain values. import type NodePath from "./index"; @@ -15,17 +17,17 @@ export function matchesPattern(pattern: string, allowPartial?: boolean): boolean // not a member expression if (!this.isMemberExpression()) return false; - var parts = pattern.split("."); - var search = [this.node]; - var i = 0; + let parts = pattern.split("."); + let search = [this.node]; + let i = 0; function matches(name) { - var part = parts[i]; + let part = parts[i]; return part === "*" || name === part; } while (search.length) { - var node = search.shift(); + let node = search.shift(); if (allowPartial && i === parts.length) { return true; @@ -68,7 +70,7 @@ export function matchesPattern(pattern: string, allowPartial?: boolean): boolean */ export function has(key): boolean { - var val = this.node[key]; + let val = this.node[key]; if (val && Array.isArray(val)) { return !!val.length; } else { @@ -88,7 +90,7 @@ export function isStatic() { * Alias of `has`. */ -export var is = has; +export let is = has; /** * Opposite of `has`. @@ -134,11 +136,11 @@ export function isNodeType(type: string): boolean { */ export function isCompletionRecord(allowInsideFunction?) { - var path = this; - var first = true; + let path = this; + let first = true; do { - var container = path.container; + let container = path.container; // we're in a function so can't be a completion record if (path.isFunction() && !first) { @@ -177,11 +179,11 @@ export function isStatementOrBlock() { export function referencesImport(moduleSource, importName) { if (!this.isReferencedIdentifier()) return false; - var binding = this.scope.getBinding(this.node.name); + let binding = this.scope.getBinding(this.node.name); if (!binding || binding.kind !== "module") return false; - var path = binding.path; - var parent = path.parentPath; + let path = binding.path; + let parent = path.parentPath; if (!parent.isImportDeclaration()) return false; // check moduleSource @@ -211,7 +213,7 @@ export function referencesImport(moduleSource, importName) { */ export function getSource() { - var node = this.node; + let node = this.node; if (node.end) { return this.hub.file.code.slice(node.start, node.end); } else { @@ -232,57 +234,29 @@ export function willIMaybeExecuteBefore(target) { export function _guessExecutionStatusRelativeTo(target) { // check if the two paths are in different functions, we can't track execution of these - var targetFuncParent = target.scope.getFunctionParent(); - var selfFuncParent = this.scope.getFunctionParent(); + let targetFuncParent = target.scope.getFunctionParent(); + let selfFuncParent = this.scope.getFunctionParent(); if (targetFuncParent !== selfFuncParent) { - var targetFuncPath = targetFuncParent.path; - if (!targetFuncPath.isFunctionDeclaration()) return "function"; - - // so we're in a completely different function, if this is a function declaration - // then we can be a bit smarter and handle cases where the function is either - // a. not called at all (part of an export) - // b. called directly - var binding = targetFuncPath.scope.getBinding(targetFuncPath.node.id.name); - - // no references! - if (!binding.references) return "before"; - - var referencePaths: Array = binding.referencePaths; - - // verify that all of the references are calls - for (let path of referencePaths) { - if (path.key !== "callee" || !path.parentPath.isCallExpression()) { - return "function"; - } + let status = this._guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent); + if (status) { + return status; + } else { + target = targetFuncParent.path; } - - var allStatus; - - // verify that all the calls have the same execution status - for (let path of referencePaths) { - var status = this._guessExecutionStatusRelativeTo(path); - if (allStatus) { - if (allStatus !== status) return "function"; - } else { - allStatus = status; - } - } - - return allStatus || "function"; } - var targetPaths = target.getAncestry(); + let targetPaths = target.getAncestry(); if (targetPaths.indexOf(this) >= 0) return "after"; - var selfPaths = this.getAncestry(); + let selfPaths = this.getAncestry(); // get ancestor where the branches intersect - var commonPath; - var targetIndex; - var selfIndex; + let commonPath; + let targetIndex; + let selfIndex; for (selfIndex = 0; selfIndex < selfPaths.length; selfIndex++) { - var selfPath = selfPaths[selfIndex]; + let selfPath = selfPaths[selfIndex]; targetIndex = targetPaths.indexOf(selfPath); if (targetIndex >= 0) { commonPath = selfPath; @@ -294,8 +268,8 @@ export function _guessExecutionStatusRelativeTo(target) { } // get the relationship paths that associate these nodes to their common ancestor - var targetRelationship = targetPaths[targetIndex - 1]; - var selfRelationship = selfPaths[selfIndex - 1]; + let targetRelationship = targetPaths[targetIndex - 1]; + let selfRelationship = selfPaths[selfIndex - 1]; if (!targetRelationship || !selfRelationship) { return "before"; } @@ -306,11 +280,48 @@ export function _guessExecutionStatusRelativeTo(target) { } // otherwise we're associated by a parent node, check which key comes before the other - var targetKeyPosition = t.VISITOR_KEYS[targetRelationship.type].indexOf(targetRelationship.key); - var selfKeyPosition = t.VISITOR_KEYS[selfRelationship.type].indexOf(selfRelationship.key); + let targetKeyPosition = t.VISITOR_KEYS[targetRelationship.type].indexOf(targetRelationship.key); + let selfKeyPosition = t.VISITOR_KEYS[selfRelationship.type].indexOf(selfRelationship.key); return targetKeyPosition > selfKeyPosition ? "before" : "after"; } +export function _guessExecutionStatusRelativeToDifferentFunctions(targetFuncParent) { + let targetFuncPath = targetFuncParent.path; + if (!targetFuncPath.isFunctionDeclaration()) return; + + // so we're in a completely different function, if this is a function declaration + // then we can be a bit smarter and handle cases where the function is either + // a. not called at all (part of an export) + // b. called directly + let binding = targetFuncPath.scope.getBinding(targetFuncPath.node.id.name); + + // no references! + if (!binding.references) return "before"; + + let referencePaths: Array = binding.referencePaths; + + // verify that all of the references are calls + for (let path of referencePaths) { + if (path.key !== "callee" || !path.parentPath.isCallExpression()) { + return; + } + } + + let allStatus; + + // verify that all the calls have the same execution status + for (let path of referencePaths) { + let status = this._guessExecutionStatusRelativeTo(path); + if (allStatus) { + if (allStatus !== status) return; + } else { + allStatus = status; + } + } + + return allStatus; +} + /** * Resolve a "pointer" `NodePath` to it's absolute path. */ @@ -335,7 +346,7 @@ export function _resolve(dangerous?, resolved?): ?NodePath { // otherwise it's a request for a pattern and that's a bit more tricky } } else if (this.isReferencedIdentifier()) { - var binding = this.scope.getBinding(this.node.name); + let binding = this.scope.getBinding(this.node.name); if (!binding) return; // reassigned so we can't really resolve it @@ -353,22 +364,22 @@ export function _resolve(dangerous?, resolved?): ?NodePath { // this is dangerous, as non-direct target assignments will mutate it's state // making this resolution inaccurate - var targetKey = this.toComputedKey(); + let targetKey = this.toComputedKey(); if (!t.isLiteral(targetKey)) return; - var targetName = targetKey.value; + let targetName = targetKey.value; - var target = this.get("object").resolve(dangerous, resolved); + let target = this.get("object").resolve(dangerous, resolved); if (target.isObjectExpression()) { - var props = target.get("properties"); - for (var prop of (props: Array)) { + let props = target.get("properties"); + for (let prop of (props: Array)) { if (!prop.isProperty()) continue; - var key = prop.get("key"); + let key = prop.get("key"); // { foo: obj } - var match = prop.isnt("computed") && key.isIdentifier({ name: targetName }); + let match = prop.isnt("computed") && key.isIdentifier({ name: targetName }); // { "foo": "obj" } or { ["foo"]: "obj" } match = match || key.isLiteral({ value: targetName }); @@ -376,8 +387,8 @@ export function _resolve(dangerous?, resolved?): ?NodePath { if (match) return prop.get("value").resolve(dangerous, resolved); } } else if (target.isArrayExpression() && !isNaN(+targetName)) { - var elems = target.get("elements"); - var elem = elems[targetName]; + let elems = target.get("elements"); + let elem = elems[targetName]; if (elem) return elem.resolve(dangerous, resolved); } } diff --git a/packages/babel-traverse/src/path/lib/hoister.js b/packages/babel-traverse/src/path/lib/hoister.js index dc4a71e317..669f4f0f79 100644 --- a/packages/babel-traverse/src/path/lib/hoister.js +++ b/packages/babel-traverse/src/path/lib/hoister.js @@ -1,25 +1,26 @@ +/* @flow */ + import { react } from "babel-types"; import * as t from "babel-types"; -var referenceVisitor = { - - ReferencedIdentifier(node, parent, scope, state) { - if (this.isJSXIdentifier() && react.isCompatTag(node.name)) { +let referenceVisitor = { + ReferencedIdentifier(path, state) { + if (path.isJSXIdentifier() && react.isCompatTag(path.node.name)) { return; } // direct references that we need to track to hoist this to the highest scope we can - var binding = scope.getBinding(node.name); + let binding = path.scope.getBinding(path.node.name); if (!binding) return; // this binding isn't accessible from the parent scope so we can safely ignore it // eg. it's in a closure etc - if (binding !== state.scope.getBinding(node.name)) return; + if (binding !== state.scope.getBinding(path.node.name)) return; if (binding.constant) { - state.bindings[node.name] = binding; + state.bindings[path.node.name] = binding; } else { - for (var violationPath of (binding.constantViolations: Array)) { + for (let violationPath of (binding.constantViolations: Array)) { state.breakOnScopePaths = state.breakOnScopePaths.concat(violationPath.getAncestry()); } } @@ -36,8 +37,8 @@ export default class PathHoister { } isCompatibleScope(scope) { - for (var key in this.bindings) { - var binding = this.bindings[key]; + for (let key in this.bindings) { + let binding = this.bindings[key]; if (!scope.bindingIdentifierEquals(key, binding.identifier)) { return false; } @@ -47,7 +48,7 @@ export default class PathHoister { } getCompatibleScopes() { - var scope = this.path.scope; + let scope = this.path.scope; do { if (this.isCompatibleScope(scope)) { this.scopes.push(scope); @@ -62,9 +63,9 @@ export default class PathHoister { } getAttachmentPath() { - var scopes = this.scopes; + let scopes = this.scopes; - var scope = scopes.pop(); + let scope = scopes.pop(); if (!scope) return; if (scope.path.isFunction()) { @@ -84,22 +85,22 @@ export default class PathHoister { } getNextScopeStatementParent() { - var scope = this.scopes.pop(); + let scope = this.scopes.pop(); if (scope) return scope.path.getStatementParent(); } hasOwnParamBindings(scope) { - for (var name in this.bindings) { + for (let name in this.bindings) { if (!scope.hasOwnBinding(name)) continue; - var binding = this.bindings[name]; + let binding = this.bindings[name]; if (binding.kind === "param") return true; } return false; } run() { - var node = this.path.node; + let node = this.path.node; if (node._hoisted) return; node._hoisted = true; @@ -107,13 +108,13 @@ export default class PathHoister { this.getCompatibleScopes(); - var attachTo = this.getAttachmentPath(); + let attachTo = this.getAttachmentPath(); if (!attachTo) return; // don't bother hoisting to the same function as this will cause multiple branches to be evaluated more than once leading to a bad optimisation if (attachTo.getFunctionParent() === this.path.getFunctionParent()) return; - var uid = attachTo.scope.generateUidIdentifier("ref"); + let uid = attachTo.scope.generateUidIdentifier("ref"); attachTo.insertBefore([ t.variableDeclaration("var", [ @@ -121,7 +122,7 @@ export default class PathHoister { ]) ]); - var parent = this.path.parentPath; + let parent = this.path.parentPath; if (parent.isJSXElement() && this.path.container === parent.node.children) { // turning the `span` in `
` to an expression so we need to wrap it with diff --git a/packages/babel-traverse/src/path/lib/removal-hooks.js b/packages/babel-traverse/src/path/lib/removal-hooks.js index 4b8749f7e8..eb51a0123e 100644 --- a/packages/babel-traverse/src/path/lib/removal-hooks.js +++ b/packages/babel-traverse/src/path/lib/removal-hooks.js @@ -1,50 +1,21 @@ -// this file contains hooks that handle ancestry cleanup of parent nodes when removing children +/* @flow */ -import * as t from "babel-types"; +// this file contains hooks that handle ancestry cleanup of parent nodes when removing children /** * Pre hooks should be used for either rejecting removal or delegating removal */ -export var pre = [ - - function (self) { - if (self.key === "body" && (self.isBlockStatement() || self.isClassBody())) { - // function () NODE - // class NODE - // attempting to remove a block statement that's someones body so let's just clear all the inner - // statements instead - self.node.body = []; +export let hooks = [ + function (self, parent) { + if (self.key === "body" && parent.isArrowFunctionExpression()) { + self.replaceWith(self.scope.buildUndefinedNode()); return true; } }, function (self, parent) { - var replace = false; - - // () => NODE; - // removing the body of an arrow function - replace = replace || (self.key === "body" && parent.isArrowFunctionExpression()); - - // throw NODE; - // removing a throw statement argument - replace = replace || (self.key === "argument" && parent.isThrowStatement()); - - if (replace) { - self.replaceWith(t.identifier("undefined")); - return true; - } - } -]; - -/** - * Post hooks should be used for cleaning up parents - */ - -export var post = [ - - function (self, parent) { - var removeParent = false; + let removeParent = false; // while (NODE); // removing the test of a while/switch, we can either just remove it entirely *or* turn the `test` into `true` @@ -59,21 +30,16 @@ export var post = [ // stray labeled statement with no body removeParent = removeParent || (self.key === "body" && parent.isLabeledStatement()); - // var NODE; + // let NODE; // remove an entire declaration if there are no declarators left - removeParent = removeParent || (self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 0); + removeParent = removeParent || (self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 1); // NODE; // remove the entire expression statement if there's no expression removeParent = removeParent || (self.key === "expression" && parent.isExpressionStatement()); - // if (NODE); - // remove the entire if since the consequent is never going to be hit, if there's an alternate then it's already been - // handled with the `pre` hook - removeParent = removeParent || (self.key === "test" && parent.isIfStatement()); - if (removeParent) { - parent.dangerouslyRemove(); + parent.remove(); return true; } }, diff --git a/packages/babel-traverse/src/path/lib/virtual-types.js b/packages/babel-traverse/src/path/lib/virtual-types.js index 897c1b70ed..ce92ed1276 100644 --- a/packages/babel-traverse/src/path/lib/virtual-types.js +++ b/packages/babel-traverse/src/path/lib/virtual-types.js @@ -1,9 +1,12 @@ +/* @flow */ + +import type NodePath from "../index"; import { react } from "babel-types"; import * as t from "babel-types"; -export var ReferencedIdentifier = { +export let ReferencedIdentifier = { types: ["Identifier", "JSXIdentifier"], - checkPath({ node, parent }, opts) { + checkPath({ node, parent }: NodePath, opts?: Object): boolean { if (!t.isIdentifier(node, opts)) { if (t.isJSXIdentifier(node, opts)) { if (react.isCompatTag(node.name)) return false; @@ -18,16 +21,23 @@ export var ReferencedIdentifier = { } }; -export var BindingIdentifier = { - types: ["Identifier"], +export let ReferencedMemberExpression = { + types: ["MemberExpression"], checkPath({ node, parent }) { - return t.isBinding(node, parent); + return t.isMemberExpression(node) && t.isReferenced(node, parent); } }; -export var Statement = { +export let BindingIdentifier = { + types: ["Identifier"], + checkPath({ node, parent }: NodePath): boolean { + return t.isIdentifier(node) && t.isBinding(node, parent); + } +}; + +export let Statement = { types: ["Statement"], - checkPath({ node, parent }) { + checkPath({ node, parent }: NodePath): boolean { if (t.isStatement(node)) { if (t.isVariableDeclaration(node)) { if (t.isForXStatement(parent, { left: node })) return false; @@ -41,9 +51,9 @@ export var Statement = { } }; -export var Expression = { +export let Expression = { types: ["Expression"], - checkPath(path) { + checkPath(path: NodePath): boolean { if (path.isIdentifier()) { return path.isReferencedIdentifier(); } else { @@ -52,75 +62,53 @@ export var Expression = { } }; -export var Scope = { +export let Scope = { types: ["Scopable"], checkPath(path) { return t.isScope(path.node, path.parent); } }; -export var Referenced = { - checkPath(path) { +export let Referenced = { + checkPath(path: NodePath): boolean { return t.isReferenced(path.node, path.parent); } }; -export var BlockScoped = { - checkPath(path) { +export let BlockScoped = { + checkPath(path: NodePath): boolean { return t.isBlockScoped(path.node); } }; -export var Var = { +export let Var = { types: ["VariableDeclaration"], - checkPath(path) { + checkPath(path: NodePath): boolean { return t.isVar(path.node); } }; -export var DirectiveLiteral = { - types: ["Literal"], - checkPath(path) { - return path.parentPath.isDirective(); - } -}; - -export var Directive = { - types: ["ExpressionStatement"], - checkPath({ inList, container, key }) { - // needs to be in a statement list - if (!inList) return false; - - // get the last directive node in this list - var lastDirective = -1; - for (var i = 0; i < container.length; i++) { - var node = container[i]; - if (t.isExpressionStatement(node) && t.isLiteral(node.expression)) { - lastDirective = i; - } else { - break; - } - } - - return key <= lastDirective; - } -}; - -export var User = { - checkPath(path) { +export let User = { + checkPath(path: NodePath): boolean { return path.node && !!path.node.loc; } }; -export var Generated = { - checkPath(path) { +export let Generated = { + checkPath(path: NodePath): boolean { return !path.isUser(); } }; -export var Flow = { +export let Pure = { + checkPath(path: NodePath, opts?): boolean { + return path.scope.isPure(path.node, opts); + } +}; + +export let Flow = { types: ["Flow", "ImportDeclaration", "ExportDeclaration"], - checkPath({ node }) { + checkPath({ node }: NodePath): boolean { if (t.isFlow(node)) { return true; } else if (t.isImportDeclaration(node)) { diff --git a/packages/babel-traverse/src/path/modification.js b/packages/babel-traverse/src/path/modification.js index 4e0fb2ea0e..d05b9f2b56 100644 --- a/packages/babel-traverse/src/path/modification.js +++ b/packages/babel-traverse/src/path/modification.js @@ -1,5 +1,8 @@ +/* @flow */ + // This file contains methods that modify the path/node in some ways. +import { PATH_CACHE_KEY } from "./constants"; import PathHoister from "./lib/hoister"; import NodePath from "./index"; import * as t from "babel-types"; @@ -36,17 +39,16 @@ export function insertBefore(nodes) { export function _containerInsert(from, nodes) { this.updateSiblingKeys(from, nodes.length); - var paths = []; + let paths = []; - for (var i = 0; i < nodes.length; i++) { - var to = from + i; - var node = nodes[i]; + for (let i = 0; i < nodes.length; i++) { + let to = from + i; + let node = nodes[i]; this.container.splice(to, 0, node); if (this.context) { - var path = this.context.create(this.parent, this.container, to, this.listKey); + let path = this.context.create(this.parent, this.container, to, this.listKey); paths.push(path); - this.queueNode(path); } else { paths.push(NodePath.get({ parentPath: this, @@ -58,6 +60,21 @@ export function _containerInsert(from, nodes) { } } + let contexts = this.contexts; + let path = this; + while (!contexts.length) { + path = path.parentPath; + contexts = path.contexts; + } + + for (let path of paths) { + path.setScope(); + + for (let context of contexts) { + context.maybeQueue(path); + } + } + return paths; } @@ -70,8 +87,10 @@ export function _containerInsertAfter(nodes) { } export function _maybePopFromStatements(nodes) { - var last = nodes[nodes.length - 1]; - if (t.isExpressionStatement(last) && t.isIdentifier(last.expression) && !this.isCompletionRecord()) { + let last = nodes[nodes.length - 1]; + let isIdentifier = t.isIdentifier(last) || (t.isExpressionStatement(last) && t.isIdentifier(last.expression)); + + if (isIdentifier && !this.isCompletionRecord()) { nodes.pop(); } } @@ -90,7 +109,7 @@ export function insertAfter(nodes) { return this.parentPath.insertAfter(nodes); } else if (this.isNodeType("Expression") || (this.parentPath.isForStatement() && this.key === "init")) { if (this.node) { - var temp = this.scope.generateDeclaredUidIdentifier(); + let temp = this.scope.generateDeclaredUidIdentifier(); nodes.unshift(t.expressionStatement(t.assignmentExpression("=", temp, this.node))); nodes.push(t.expressionStatement(temp)); } @@ -117,8 +136,8 @@ export function insertAfter(nodes) { export function updateSiblingKeys(fromIndex, incrementBy) { if (!this.parent) return; - var paths = this.parent._paths; - for (var i = 0; i < paths.length; i++) { + let paths = this.parent[PATH_CACHE_KEY]; + for (let i = 0; i < paths.length; i++) { let path = paths[i]; if (path.key >= fromIndex) { path.key += incrementBy; @@ -127,12 +146,16 @@ export function updateSiblingKeys(fromIndex, incrementBy) { } export function _verifyNodeList(nodes) { + if (!nodes) { + return []; + } + if (nodes.constructor !== Array) { nodes = [nodes]; } - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i]; if (!node) { throw new Error(`Node list has falsy node with the index of ${i}`); } else if (typeof node !== "object") { @@ -154,12 +177,10 @@ export function unshiftContainer(listKey, nodes) { // get the first path and insert our nodes before it, if it doesn't exist then it // doesn't matter, our nodes will be inserted anyway - - var container = this.node[listKey]; - var path = NodePath.get({ + let path = NodePath.get({ parentPath: this, parent: this.node, - container: container, + container: this.node[listKey], listKey, key: 0 }); @@ -175,17 +196,16 @@ export function pushContainer(listKey, nodes) { // get an invisible path that represents the last node + 1 and replace it with our // nodes, effectively inlining it - var container = this.node[listKey]; - var i = container.length; - var path = NodePath.get({ + let container = this.node[listKey]; + let path = NodePath.get({ parentPath: this, parent: this.node, container: container, listKey, - key: i + key: container.length }); - return path.replaceWith(nodes, true); + return path.replaceWithMultiple(nodes); } /** @@ -194,6 +214,6 @@ export function pushContainer(listKey, nodes) { */ export function hoist(scope = this.scope) { - var hoister = new PathHoister(this, scope); + let hoister = new PathHoister(this, scope); return hoister.run(); } diff --git a/packages/babel-traverse/src/path/removal.js b/packages/babel-traverse/src/path/removal.js index 0567b83f12..3e654a3a67 100644 --- a/packages/babel-traverse/src/path/removal.js +++ b/packages/babel-traverse/src/path/removal.js @@ -1,24 +1,15 @@ +/* @flow */ + // This file contains methods responsible for removing a node. -import * as removalHooks from "./lib/removal-hooks"; - -/** - * This is now safe. - */ - -export var dangerouslyRemove = remove; - -/** - * Dangerously remove the current node. This may sometimes result in a tainted - * invalid AST so use with caution. - */ +import { hooks } from "./lib/removal-hooks"; export function remove() { this._assertUnremoved(); this.resync(); - if (this._callRemovalHooks("pre")) { + if (this._callRemovalHooks()) { this._markRemoved(); return; } @@ -26,12 +17,10 @@ export function remove() { this.shareCommentsWithSiblings(); this._remove(); this._markRemoved(); - - this._callRemovalHooks("post"); } -export function _callRemovalHooks(position) { - for (var fn of (removalHooks[position]: Array)) { +export function _callRemovalHooks() { + for (let fn of (hooks: Array)) { if (fn(this, this.parentPath)) return true; } } @@ -53,6 +42,6 @@ export function _markRemoved() { export function _assertUnremoved() { if (this.removed) { - throw this.errorWithNode("NodePath has been removed so is read-only."); + throw this.buildCodeFrameError("NodePath has been removed so is read-only."); } } diff --git a/packages/babel-traverse/src/path/replacement.js b/packages/babel-traverse/src/path/replacement.js index eb0ef5c61b..fca7bd27f2 100644 --- a/packages/babel-traverse/src/path/replacement.js +++ b/packages/babel-traverse/src/path/replacement.js @@ -1,3 +1,5 @@ +/* @flow */ + // This file contains methods responsible for replacing a node with another. import codeFrame from "babel-code-frame"; @@ -6,23 +8,22 @@ import NodePath from "./index"; import { parse } from "babylon"; import * as t from "babel-types"; -var hoistVariablesVisitor = { - - Function() { - this.skip(); +let hoistVariablesVisitor = { + Function(path) { + path.skip(); }, - VariableDeclaration(node, parent, scope) { - if (node.kind !== "var") return; + VariableDeclaration(path) { + if (path.node.kind !== "var") return; - var bindings = this.getBindingIdentifiers(); - for (var key in bindings) { - scope.push({ id: bindings[key] }); + let bindings = path.getBindingIdentifiers(); + for (let key in bindings) { + path.scope.push({ id: bindings[key] }); } - var exprs = []; + let exprs = []; - for (var declar of (node.declarations: Array)) { + for (let declar of (path.node.declarations: Array)) { if (declar.init) { exprs.push(t.expressionStatement( t.assignmentExpression("=", declar.id, declar.init) @@ -30,7 +31,7 @@ var hoistVariablesVisitor = { } } - return exprs; + path.replaceWithMultiple(exprs); } }; @@ -50,7 +51,12 @@ export function replaceWithMultiple(nodes: Array) { t.inheritTrailingComments(nodes[nodes.length - 1], this.node); this.node = this.container[this.key] = null; this.insertAfter(nodes); - if (!this.node) this.dangerouslyRemove(); + + if (this.node) { + this.requeue(); + } else { + this.remove(); + } } /** @@ -68,7 +74,7 @@ export function replaceWithSourceString(replacement) { replacement = `(${replacement})`; replacement = parse(replacement); } catch (err) { - var loc = err.loc; + let loc = err.loc; if (loc) { err.message += " - make sure this is an expression."; err.message += "\n" + codeFrame(replacement, loc.line, loc.column + 1); @@ -85,7 +91,7 @@ export function replaceWithSourceString(replacement) { * Replace the current node with another. */ -export function replaceWith(replacement, whateverAllowed) { +export function replaceWith(replacement) { this.resync(); if (this.removed) { @@ -97,7 +103,7 @@ export function replaceWith(replacement, whateverAllowed) { } if (!replacement) { - throw new Error("You passed `path.replaceWith()` a falsy node, use `path.dangerouslyRemove()` instead"); + throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead"); } if (this.node === replacement) { @@ -108,23 +114,12 @@ export function replaceWith(replacement, whateverAllowed) { throw new Error("You can only replace a Program root node with another Program node"); } - // normalise inserting an entire AST - if (t.isProgram(replacement) && !this.isProgram()) { - replacement = replacement.body; - whateverAllowed = true; - } - if (Array.isArray(replacement)) { - if (whateverAllowed) { - return this.replaceWithMultiple(replacement); - } else { - throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`"); - } + throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`"); } if (typeof replacement === "string") { - // triggers an error - return this.replaceWithSourceString(); + throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`"); } // replacing a statement with an expression so wrap it in an expression statement @@ -149,6 +144,9 @@ export function replaceWith(replacement, whateverAllowed) { // potentially create new scope this.setScope(); + + // requeue for visiting + this.requeue(); } /** @@ -156,10 +154,14 @@ export function replaceWith(replacement, whateverAllowed) { */ export function _replaceWith(node) { + if (!this.container) { + throw new ReferenceError("Container is falsy"); + } + if (this.inList) { - t.validate(this.key, this.parent, [node]); + t.validate(this.parent, this.key, [node]); } else { - t.validate(this.key, this.parent, node); + t.validate(this.parent, this.key, node); } this.node = this.container[this.key] = node; @@ -171,34 +173,50 @@ export function _replaceWith(node) { * extremely important to retain original semantics. */ -export function replaceExpressionWithStatements(nodes: Array) { +export function replaceExpressionWithStatements(nodes: Array) { this.resync(); - var toSequenceExpression = t.toSequenceExpression(nodes, this.scope); + let toSequenceExpression = t.toSequenceExpression(nodes, this.scope); - if (toSequenceExpression) { - return this.replaceWith(toSequenceExpression); + if (t.isSequenceExpression(toSequenceExpression)) { + let exprs = toSequenceExpression.expressions; + + if (exprs.length >= 2 && this.parentPath.isExpressionStatement()) { + this._maybePopFromStatements(exprs); + } + + // could be just one element due to the previous maybe popping + if (exprs.length === 1) { + this.replaceWith(exprs[0]); + } else { + this.replaceWith(toSequenceExpression); + } + } else if (toSequenceExpression) { + this.replaceWith(toSequenceExpression); } else { - var container = t.functionExpression(null, [], t.blockStatement(nodes)); + let container = t.functionExpression(null, [], t.blockStatement(nodes)); container.shadow = true; this.replaceWith(t.callExpression(container, [])); this.traverse(hoistVariablesVisitor); // add implicit returns to all ending expression statements - var last = this.get("callee").getCompletionRecords(); - for (var lastNode of (last: Array)) { - if (!lastNode.isExpressionStatement()) continue; + let completionRecords: Array = this.get("callee").getCompletionRecords(); + for (let path of completionRecords) { + if (!path.isExpressionStatement()) continue; - var loop = lastNode.findParent((path) => path.isLoop()); + let loop = path.findParent((path) => path.isLoop()); if (loop) { - var uid = this.get("callee").scope.generateDeclaredUidIdentifier("ret"); - this.get("callee.body").pushContainer("body", t.returnStatement(uid)); - lastNode.get("expression").replaceWith( - t.assignmentExpression("=", uid, lastNode.node.expression) + let callee = this.get("callee"); + + let uid = callee.scope.generateDeclaredUidIdentifier("ret"); + callee.get("body").pushContainer("body", t.returnStatement(uid)); + + path.get("expression").replaceWith( + t.assignmentExpression("=", uid, path.node.expression) ); } else { - lastNode.replaceWith(t.returnStatement(lastNode.node.expression)); + path.replaceWith(t.returnStatement(path.node.expression)); } } @@ -206,14 +224,14 @@ export function replaceExpressionWithStatements(nodes: Array) { } } -export function replaceInline(nodes) { +export function replaceInline(nodes: Object | Array) { this.resync(); if (Array.isArray(nodes)) { if (Array.isArray(this.container)) { nodes = this._verifyNodeList(nodes); this._containerInsertAfter(nodes); - return this.dangerouslyRemove(); + return this.remove(); } else { return this.replaceWithMultiple(nodes); } diff --git a/packages/babel-traverse/src/scope/binding.js b/packages/babel-traverse/src/scope/binding.js index 680e181ed5..fc1f69100e 100644 --- a/packages/babel-traverse/src/scope/binding.js +++ b/packages/babel-traverse/src/scope/binding.js @@ -1,3 +1,7 @@ +/* @flow */ + +import type NodePath from "../path"; + /** * This class is responsible for a binding inside of a scope. * @@ -11,21 +15,17 @@ export default class Binding { constructor({ existing, identifier, scope, path, kind }) { - this.constantViolations = []; - this.constant = true; - this.identifier = identifier; + this.scope = scope; + this.path = path; + this.kind = kind; + + this.constantViolations = []; + this.constant = true; + this.referencePaths = []; - this.references = 0; this.referenced = false; - - this.scope = scope; - this.path = path; - this.kind = kind; - - this.hasValue = false; - this.hasDeoptedValue = false; - this.value = null; + this.references = 0; this.clearValue(); @@ -38,6 +38,18 @@ export default class Binding { } } + + constantViolations: Array; + constant: boolean; + + referencePaths: Array; + referenced: boolean; + references: number; + + hasDeoptedValue: boolean; + hasValue: boolean; + value: any; + deoptValue() { this.clearValue(); this.hasDeoptedValue = true; @@ -68,7 +80,7 @@ export default class Binding { * Increment the amount of references to this binding. */ - reference(path) { + reference(path: NodePath) { this.referenced = true; this.references++; this.referencePaths.push(path) diff --git a/packages/babel-traverse/src/scope/index.js b/packages/babel-traverse/src/scope/index.js index 5a3669da5f..897730f7ef 100644 --- a/packages/babel-traverse/src/scope/index.js +++ b/packages/babel-traverse/src/scope/index.js @@ -1,138 +1,113 @@ +/* @flow */ + import includes from "lodash/collection/includes"; import repeating from "repeating"; +import Renamer from "./lib/renamer"; import type NodePath from "../path"; import traverse from "../index"; import defaults from "lodash/object/defaults"; import * as messages from "babel-messages"; import Binding from "./binding"; import globals from "globals"; -import flatten from "lodash/array/flatten"; import extend from "lodash/object/extend"; import * as t from "babel-types"; -var collectorVisitor = { +const SCOPE_INFO_CACHE_KEY = "_scopeInfo"; //Symbol(); - For(node, parent, scope) { - for (var key of (t.FOR_INIT_KEYS: Array)) { - var declar = this.get(key); - if (declar.isVar()) scope.getFunctionParent().registerBinding("var", declar); +let collectorVisitor = { + For(path) { + for (let key of (t.FOR_INIT_KEYS: Array)) { + let declar = path.get(key); + if (declar.isVar()) path.scope.getFunctionParent().registerBinding("var", declar); } }, - Declaration(node, parent, scope) { + Declaration(path) { // delegate block scope handling to the `blockVariableVisitor` - if (this.isBlockScoped()) return; + if (path.isBlockScoped()) return; // this will be hit again once we traverse into it after this iteration - if (this.isExportDeclaration() && this.get("declaration").isDeclaration()) return; + if (path.isExportDeclaration() && path.get("declaration").isDeclaration()) return; // we've ran into a declaration! - scope.getFunctionParent().registerDeclaration(this); + path.scope.getFunctionParent().registerDeclaration(path); }, - ReferencedIdentifier(node) { - var binding = this.scope.getBinding(node.name); - if (binding) { - binding.reference(this); - } else { - this.scope.getProgramParent().addGlobal(node); - } + ReferencedIdentifier(path, state) { + state.references.push(path); }, - ForXStatement() { - var left = this.get("left"); + ForXStatement(path, state) { + let left = path.get("left"); if (left.isPattern() || left.isIdentifier()) { - this.scope.registerConstantViolation(left, left); + state.constantViolations.push(left); } }, ExportDeclaration: { - exit(node) { - var declar = node.declaration; + exit({ node, scope }) { + let declar = node.declaration; if (t.isClassDeclaration(declar) || t.isFunctionDeclaration(declar)) { - this.scope.getBinding(declar.id.name).reference(); + let id = declar.id; + if (!id) return; + + let binding = scope.getBinding(id.name); + if (binding) binding.reference(); } else if (t.isVariableDeclaration(declar)) { - for (var decl of (declar.declarations: Array)) { - var ids = t.getBindingIdentifiers(decl); - for (var name in ids) { - this.scope.getBinding(name).reference(); + for (let decl of (declar.declarations: Array)) { + let ids = t.getBindingIdentifiers(decl); + for (let name in ids) { + let binding = scope.getBinding(name); + if (binding) binding.reference(); } } } } }, - LabeledStatement(node) { - this.scope.getProgramParent().addGlobal(node); - this.scope.getBlockParent().registerDeclaration(this); + LabeledStatement(path) { + path.scope.getProgramParent().addGlobal(path.node); + path.scope.getBlockParent().registerDeclaration(path); }, - AssignmentExpression() { - // register undeclared bindings as globals - var ids = this.getBindingIdentifiers(); - var programParent; - for (var name in ids) { - if (this.scope.getBinding(name)) continue; + AssignmentExpression(path, state) { + state.assignments.push(path); + }, - programParent = programParent || this.scope.getProgramParent(); - programParent.addGlobal(ids[name]); + UpdateExpression(path, state) { + state.constantViolations.push(path.get("argument")); + }, + + UnaryExpression(path, state) { + if (path.node.operator === "delete") { + state.constantViolations.push(path.get("argument")); } - - // register as constant violation - this.scope.registerConstantViolation(this, this.get("left"), this.get("right")); }, - UpdateExpression(node, parent, scope) { - scope.registerConstantViolation(this, this.get("argument"), null); + BlockScoped(path) { + let scope = path.scope; + if (scope.path === path) scope = scope.parent; + scope.getBlockParent().registerDeclaration(path); }, - UnaryExpression(node, parent, scope) { - if (node.operator === "delete") scope.registerConstantViolation(this, this.get("left"), null); + ClassDeclaration(path) { + let id = path.node.id; + if (!id) return; + + let name = id.name; + path.scope.bindings[name] = path.scope.getBinding(name); }, - BlockScoped(node, parent, scope) { - if (scope.path === this) scope = scope.parent; - scope.getBlockParent().registerDeclaration(this); - }, - - ClassDeclaration(node, parent, scope) { - var name = node.id.name; - scope.bindings[name] = scope.getBinding(name); - }, - - Block(node, parent, scope) { - var paths = this.get("body"); - for (var path of (paths: Array)) { - if (path.isFunctionDeclaration()) { - scope.getBlockParent().registerDeclaration(path); + Block(path) { + let paths = path.get("body"); + for (let bodyPath of (paths: Array)) { + if (bodyPath.isFunctionDeclaration()) { + path.scope.getBlockParent().registerDeclaration(bodyPath); } } } }; -var renameVisitor = { - - ReferencedIdentifier(node, parent, scope, state) { - if (node.name === state.oldName) { - node.name = state.newName; - } - }, - - Scope(node, parent, scope, state) { - if (!scope.bindingIdentifierEquals(state.oldName, state.binding)) { - this.skip(); - } - }, - - "AssignmentExpression|Declaration"(node, parent, scope, state) { - var ids = this.getBindingIdentifiers(); - - for (var name in ids) { - if (name === state.oldName) ids[name].name = state.newName; - } - } -}; - export default class Scope { /** @@ -145,7 +120,7 @@ export default class Scope { return parent; } - var cached = path.getData("scope"); + let cached = path.getData("scope"); if (cached && cached.parent === parent && cached.block === path.node) { return cached; } else { @@ -164,7 +139,7 @@ export default class Scope { * Globals. */ - static globals = flatten([globals.builtin, globals.browser, globals.node].map(Object.keys)); + static globals = Object.keys(globals.builtin); /** * Variables available in current context. @@ -190,7 +165,7 @@ export default class Scope { */ generateDeclaredUidIdentifier(name: string = "temp") { - var id = this.generateUidIdentifier(name); + let id = this.generateUidIdentifier(name); this.push({ id }); return id; } @@ -208,17 +183,16 @@ export default class Scope { */ generateUid(name: string) { - name = t.toIdentifier(name).replace(/^_+/, ""); + name = t.toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, ""); - var uid; - var i = 0; + let uid; + let i = 0; do { uid = this._generateUid(name, i); i++; } while (this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid)); - - var program = this.getProgramParent(); + let program = this.getProgramParent(); program.references[uid] = true; program.uids[uid] = true; @@ -230,7 +204,7 @@ export default class Scope { */ _generateUid(name, i) { - var id = name; + let id = name; if (i > 1) id += i; return `_${id}`; } @@ -240,24 +214,24 @@ export default class Scope { */ generateUidIdentifierBasedOnNode(parent: Object, defaultName?: String): Object { - var node = parent; + let node = parent; if (t.isAssignmentExpression(parent)) { node = parent.left; } else if (t.isVariableDeclarator(parent)) { node = parent.id; - } else if (t.isProperty(node)) { + } else if (t.isObjectProperty(node) || t.isObjectMethod(node)) { node = node.key; } - var parts = []; + let parts = []; - var add = function (node) { + let add = function (node) { if (t.isModuleDeclaration(node)) { if (node.source) { add(node.source); } else if (node.specifiers && node.specifiers.length) { - for (var specifier of (node.specifiers: Array)) { + for (let specifier of (node.specifiers: Array)) { add(specifier); } } else if (node.declaration) { @@ -275,7 +249,7 @@ export default class Scope { } else if (t.isCallExpression(node)) { add(node.callee); } else if (t.isObjectExpression(node) || t.isObjectPattern(node)) { - for (var prop of (node.properties: Array)) { + for (let prop of (node.properties: Array)) { add(prop.key || prop.argument); } } @@ -283,7 +257,7 @@ export default class Scope { add(node); - var id = parts.join("$"); + let id = parts.join("$"); id = id.replace(/^_/, "") || defaultName || "ref"; return this.generateUidIdentifier(id.slice(0, 20)); @@ -305,7 +279,7 @@ export default class Scope { } if (t.isIdentifier(node)) { - var binding = this.getBinding(node.name); + let binding = this.getBinding(node.name); if (binding) { return binding.constant; } else { @@ -324,7 +298,7 @@ export default class Scope { if (this.isStatic(node)) { return null; } else { - var id = this.generateUidIdentifierBasedOnNode(node); + let id = this.generateUidIdentifierBasedOnNode(node); if (!dontPush) this.push({ id }); return id; } @@ -337,7 +311,7 @@ export default class Scope { // ignore hoisted functions if there's also a local let if (kind === "hoisted" && local.kind === "let") return; - var duplicate = false; + let duplicate = false; // don't allow duplicate bindings to exist alongside if (!duplicate) duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module"; @@ -346,7 +320,7 @@ export default class Scope { if (!duplicate) duplicate = local.kind === "param" && (kind === "let" || kind === "const"); if (duplicate) { - throw this.hub.file.errorWithNode(id, messages.get("scopeDuplicateDeclaration", name), TypeError); + throw this.hub.file.buildCodeFrameError(id, messages.get("scopeDuplicateDeclaration", name), TypeError); } } @@ -366,16 +340,17 @@ export default class Scope { } dump() { - var sep = repeating("-", 60); + let sep = repeating("-", 60); console.log(sep); - var scope = this; + let scope = this; do { console.log("#", scope.block.type); - for (var name in scope.bindings) { - var binding = scope.bindings[name]; + for (let name in scope.bindings) { + let binding = scope.bindings[name]; console.log(" -", name, { constant: binding.constant, references: binding.references, + violations: binding.constantViolations.length, kind: binding.kind }); } @@ -384,10 +359,10 @@ export default class Scope { } toArray(node: Object, i?: number) { - var file = this.hub.file; + let file = this.hub.file; if (t.isIdentifier(node)) { - var binding = this.getBinding(node.name); + let binding = this.getBinding(node.name); if (binding && binding.constant && binding.path.isGenericType("Array")) return node; } @@ -396,17 +371,29 @@ export default class Scope { } if (t.isIdentifier(node, { name: "arguments" })) { - return t.callExpression(t.memberExpression(file.addHelper("slice"), t.identifier("call")), [node]); + return t.callExpression( + t.memberExpression( + t.memberExpression( + t.memberExpression( + t.identifier("Array"), + t.identifier("prototype") + ), + t.identifier("slice") + ), + t.identifier("call") + ), + [node] + ); } - var helperName = "to-array"; - var args = [node]; + let helperName = "toArray"; + let args = [node]; if (i === true) { - helperName = "to-consumable-array"; + helperName = "toConsumableArray"; } else if (i) { - args.push(t.literal(i)); - helperName = "sliced-to-array"; - if (this.hub.file.isLoose("es6.forOf")) helperName += "-loose"; + args.push(t.numberLiteral(i)); + helperName = "slicedToArray"; + // TODO if (this.hub.file.isLoose("es6.forOf")) helperName += "-loose"; } return t.callExpression(file.addHelper(helperName), args); } @@ -415,17 +402,17 @@ export default class Scope { if (path.isLabeledStatement()) { this.registerBinding("label", path); } else if (path.isFunctionDeclaration()) { - this.registerBinding("hoisted", path); + this.registerBinding("hoisted", path.get("id")); } else if (path.isVariableDeclaration()) { - var declarations = path.get("declarations"); + let declarations = path.get("declarations"); for (let declar of (declarations: Array)) { this.registerBinding(path.node.kind, declar); } } else if (path.isClassDeclaration()) { this.registerBinding("let", path); } else if (path.isImportDeclaration()) { - var specifiers = path.get("specifiers"); - for (var specifier of (specifiers: Array)) { + let specifiers = path.get("specifiers"); + for (let specifier of (specifiers: Array)) { this.registerBinding("module", specifier); } } else if (path.isExportDeclaration()) { @@ -446,11 +433,11 @@ export default class Scope { } } - registerConstantViolation(root: NodePath, left: NodePath, right: NodePath) { - var ids = left.getBindingIdentifiers(); - for (var name in ids) { - var binding = this.getBinding(name); - if (binding) binding.reassign(root, left, right); + registerConstantViolation(path: NodePath) { + let ids = path.getBindingIdentifiers(); + for (let name in ids) { + let binding = this.getBinding(name); + if (binding) binding.reassign(path); } } @@ -458,19 +445,19 @@ export default class Scope { if (!kind) throw new ReferenceError("no `kind`"); if (path.isVariableDeclaration()) { - var declarators = path.get("declarations"); - for (var declar of (declarators: Array)) { + let declarators: Array = path.get("declarations"); + for (let declar of declarators) { this.registerBinding(kind, declar); } return; } - var parent = this.getProgramParent(); - var ids = path.getBindingIdentifiers(true); + let parent = this.getProgramParent(); + let ids = path.getBindingIdentifiers(true); - for (var name in ids) { - for (var id of (ids[name]: Array)) { - var local = this.getOwnBinding(name); + for (let name in ids) { + for (let id of (ids[name]: Array)) { + let local = this.getOwnBinding(name); if (local) { // same identifier so continue safely as we're likely trying to register it // multiple times @@ -497,7 +484,7 @@ export default class Scope { } hasUid(name): boolean { - var scope = this; + let scope = this; do { if (scope.uids[name]) return true; @@ -507,7 +494,7 @@ export default class Scope { } hasGlobal(name: string): boolean { - var scope = this; + let scope = this; do { if (scope.globals[name]) return true; @@ -517,7 +504,7 @@ export default class Scope { } hasReference(name: string): boolean { - var scope = this; + let scope = this; do { if (scope.references[name]) return true; @@ -528,29 +515,39 @@ export default class Scope { isPure(node, constantsOnly?: boolean) { if (t.isIdentifier(node)) { - var binding = this.getBinding(node.name); + let binding = this.getBinding(node.name); if (!binding) return false; if (constantsOnly) return binding.constant; return true; } else if (t.isClass(node)) { - return !node.superClass || this.isPure(node.superClass, constantsOnly); + if (node.superClass && !this.isPure(node.superClass, constantsOnly)) return false; + return this.isPure(node.body, constantsOnly); + } else if (t.isClassBody(node)) { + for (let method of node.body) { + if (!this.isPure(method, constantsOnly)) return false; + } + return true; } else if (t.isBinary(node)) { return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly); } else if (t.isArrayExpression(node)) { - for (var elem of (node.elements: Array)) { + for (let elem of (node.elements: Array)) { if (!this.isPure(elem, constantsOnly)) return false; } return true; } else if (t.isObjectExpression(node)) { - for (var prop of (node.properties: Array)) { + for (let prop of (node.properties: Array)) { if (!this.isPure(prop, constantsOnly)) return false; } return true; - } else if (t.isProperty(node)) { + } else if (t.isClassMethod(node)) { + if (node.computed && !this.isPure(node.key, constantsOnly)) return false; + if (node.kind === "get" || node.kind === "set") return false; + return true; + } else if (t.isClassProperty(node)) { if (node.computed && !this.isPure(node.key, constantsOnly)) return false; return this.isPure(node.value, constantsOnly); } else { - return t.isPure(node); + return t.isPureish(node); } } @@ -567,9 +564,9 @@ export default class Scope { */ getData(key) { - var scope = this; + let scope = this; do { - var data = scope.data[key]; + let data = scope.data[key]; if (data != null) return data; } while(scope = scope.parent); } @@ -580,9 +577,9 @@ export default class Scope { */ removeData(key) { - var scope = this; + let scope = this; do { - var data = scope.data[key]; + let data = scope.data[key]; if (data != null) scope.data[key] = null; } while(scope = scope.parent); } @@ -592,14 +589,14 @@ export default class Scope { } crawl() { - var path = this.path; + let path = this.path; // - var info = this.block._scopeInfo; + let info = this.block[SCOPE_INFO_CACHE_KEY]; if (info) return extend(this, info); - info = this.block._scopeInfo = { + info = this.block[SCOPE_INFO_CACHE_KEY] = { references: Object.create(null), bindings: Object.create(null), globals: Object.create(null), @@ -607,13 +604,13 @@ export default class Scope { data: Object.create(null), }; - extend(this, info); + Object.assign(this, info); // ForStatement - left, init if (path.isLoop()) { - for (let key of (t.FOR_INIT_KEYS: Array)) { - var node = path.get(key); + for (let key of (t.FOR_INIT_KEYS: Array)) { + let node = path.get(key); if (node.isBlockScoped()) this.registerBinding(node.node.kind, node); } } @@ -621,22 +618,20 @@ export default class Scope { // FunctionExpression - id if (path.isFunctionExpression() && path.has("id")) { - if (!t.isProperty(path.parent, { method: true })) { - this.registerBinding("var", path); - } + this.registerBinding("local", path); } // Class if (path.isClassExpression() && path.has("id")) { - this.registerBinding("var", path); + this.registerBinding("local", path); } // Function - params, rest if (path.isFunction()) { - var params = path.get("params"); - for (let param of (params: Array)) { + let params: Array = path.get("params"); + for (let param of params) { this.registerBinding("param", param); } } @@ -647,24 +642,61 @@ export default class Scope { this.registerBinding("let", path); } - // ComprehensionExpression - blocks - - if (path.isComprehensionExpression()) { - this.registerBinding("let", path); - } - // Program - var parent = this.getProgramParent(); + let parent = this.getProgramParent(); if (parent.crawling) return; + let state = { + references: [], + constantViolations: [], + assignments: [], + }; + this.crawling = true; - path.traverse(collectorVisitor); + path.traverse(collectorVisitor, state); this.crawling = false; + + // register assignments + for (let path of state.assignments) { + // register undeclared bindings as globals + let ids = path.getBindingIdentifiers(); + let programParent; + for (let name in ids) { + if (path.scope.getBinding(name)) continue; + + programParent = programParent || path.scope.getProgramParent(); + programParent.addGlobal(ids[name]); + } + + // register as constant violation + path.scope.registerConstantViolation(path); + } + + // register references + for (let ref of state.references) { + let binding = ref.scope.getBinding(ref.node.name); + if (binding) { + binding.reference(ref); + } else { + ref.scope.getProgramParent().addGlobal(ref.node); + } + } + + // register constant violations + for (let path of state.constantViolations) { + path.scope.registerConstantViolation(path); + } } - push(opts: Object) { - var path = this.path; + push(opts: { + id: Object; + init: ?Object; + unique: ?boolean; + _blockHoist: ?number; + kind: "var" | "let"; + }) { + let path = this.path; if (path.isSwitchStatement()) { path = this.getFunctionParent().path; @@ -679,25 +711,23 @@ export default class Scope { path = this.getBlockParent().path; } - var unique = opts.unique; - var kind = opts.kind || "var"; - var blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; + let unique = opts.unique; + let kind = opts.kind || "var"; + let blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; - var dataKey = `declaration:${kind}:${blockHoist}`; - var declarPath = !unique && path.getData(dataKey); + let dataKey = `declaration:${kind}:${blockHoist}`; + let declarPath = !unique && path.getData(dataKey); if (!declarPath) { - var declar = t.variableDeclaration(kind, []); + let declar = t.variableDeclaration(kind, []); declar._generated = true; declar._blockHoist = blockHoist; - this.hub.file.attachAuxiliaryComment(declar); - [declarPath] = path.unshiftContainer("body", [declar]); if (!unique) path.setData(dataKey, declarPath); } - var declarator = t.variableDeclarator(opts.id, opts.init); + let declarator = t.variableDeclarator(opts.id, opts.init); declarPath.node.declarations.push(declarator); this.registerBinding(kind, declarPath.get("declarations").pop()); } @@ -707,7 +737,7 @@ export default class Scope { */ getProgramParent() { - var scope = this; + let scope = this; do { if (scope.path.isProgram()) { return scope; @@ -722,7 +752,7 @@ export default class Scope { */ getFunctionParent() { - var scope = this; + let scope = this; do { if (scope.path.isFunctionParent()) { return scope; @@ -737,7 +767,7 @@ export default class Scope { */ getBlockParent() { - var scope = this; + let scope = this; do { if (scope.path.isBlockParent()) { return scope; @@ -751,9 +781,9 @@ export default class Scope { */ getAllBindings(): Object { - var ids = Object.create(null); + let ids = Object.create(null); - var scope = this; + let scope = this; do { defaults(ids, scope.bindings); scope = scope.parent; @@ -767,13 +797,13 @@ export default class Scope { */ getAllBindingsOfKind(): Object { - var ids = Object.create(null); + let ids = Object.create(null); for (let kind of (arguments: Array)) { - var scope = this; + let scope = this; do { - for (var name in scope.bindings) { - var binding = scope.bindings[name]; + for (let name in scope.bindings) { + let binding = scope.bindings[name]; if (binding.kind === kind) ids[name] = binding; } scope = scope.parent; @@ -788,10 +818,10 @@ export default class Scope { } getBinding(name: string) { - var scope = this; + let scope = this; do { - var binding = scope.getOwnBinding(name); + let binding = scope.getOwnBinding(name); if (binding) return binding; } while (scope = scope.parent); } @@ -801,12 +831,12 @@ export default class Scope { } getBindingIdentifier(name: string) { - var info = this.getBinding(name); + let info = this.getBinding(name); return info && info.identifier; } getOwnBindingIdentifier(name: string) { - var binding = this.bindings[name]; + let binding = this.bindings[name]; return binding && binding.identifier; } @@ -833,7 +863,7 @@ export default class Scope { */ moveBindingTo(name, scope) { - var info = this.getBinding(name); + let info = this.getBinding(name); if (info) { info.scope.removeOwnBinding(name); info.scope = scope; @@ -847,13 +877,13 @@ export default class Scope { removeBinding(name: string) { // clear literal binding - var info = this.getBinding(name); + let info = this.getBinding(name); if (info) { info.scope.removeOwnBinding(name); } // clear uids with this name - https://github.com/babel/babel/issues/2101 - var scope = this; + let scope = this; do { if (scope.uids[name]) { scope.uids[name] = false; diff --git a/packages/babel-traverse/src/scope/lib/renamer.js b/packages/babel-traverse/src/scope/lib/renamer.js index c5abc0d738..4e0bb608bb 100644 --- a/packages/babel-traverse/src/scope/lib/renamer.js +++ b/packages/babel-traverse/src/scope/lib/renamer.js @@ -37,7 +37,7 @@ export default class Renamer { binding: Binding; maybeConvertFromExportDeclaration(parentDeclar) { - let exportDeclar = parentDeclar && parentDeclar.parentPath.isExportDeclaration() && parentDeclar.parentPath; + let exportDeclar = parentDeclar.parentPath.isExportDeclaration() && parentDeclar.parentPath; if (!exportDeclar) return; // build specifiers that point back to this export declaration @@ -63,6 +63,8 @@ export default class Renamer { } maybeConvertFromClassFunctionDeclaration(path) { + return; // TODO + // retain the `name` of a class/function declaration if (!path.isFunctionDeclaration() && !path.isClassDeclaration()) return; @@ -77,6 +79,8 @@ export default class Renamer { } maybeConvertFromClassFunctionExpression(path) { + return; // TODO + // retain the `name` of a class/function expression if (!path.isFunctionExpression() && !path.isClassExpression()) return; @@ -96,7 +100,9 @@ export default class Renamer { let { scope, path } = binding; let parentDeclar = path.find((path) => path.isDeclaration() || path.isFunctionExpression()); - this.maybeConvertFromExportDeclaration(parentDeclar); + if (parentDeclar) { + this.maybeConvertFromExportDeclaration(parentDeclar); + } scope.traverse(block || scope.block, renameVisitor, this); @@ -111,7 +117,9 @@ export default class Renamer { // todo: hoist and convert function to a let } - this.maybeConvertFromClassFunctionDeclaration(parentDeclar); - this.maybeConvertFromClassFunctionExpression(parentDeclar); + if (parentDeclar) { + this.maybeConvertFromClassFunctionDeclaration(parentDeclar); + this.maybeConvertFromClassFunctionExpression(parentDeclar); + } } } diff --git a/packages/babel-traverse/src/visitors.js b/packages/babel-traverse/src/visitors.js index 4e33b083f0..3562d6f483 100644 --- a/packages/babel-traverse/src/visitors.js +++ b/packages/babel-traverse/src/visitors.js @@ -1,3 +1,5 @@ +/* @flow */ + import * as virtualTypes from "./path/lib/virtual-types"; import * as messages from "babel-messages"; import * as t from "babel-types"; @@ -22,22 +24,6 @@ export function explode(visitor) { } } - // normalise colons - for (let nodeType in visitor) { - if (shouldIgnoreKey(nodeType)) continue; - - let parts = nodeType.split(":"); - if (parts.length === 1) continue; - - let fns = visitor[nodeType]; - delete visitor[nodeType]; - - nodeType = parts[0]; - - visitor[nodeType] = visitor[nodeType] || {}; - visitor[nodeType][parts[1]] = fns; - } - // verify data structure verify(visitor); @@ -55,7 +41,7 @@ export function explode(visitor) { for (let nodeType of (Object.keys(visitor): Array)) { if (shouldIgnoreKey(nodeType)) continue; - var wrapper = virtualTypes[nodeType]; + let wrapper = virtualTypes[nodeType]; if (!wrapper) continue; // wrap all the functions @@ -87,14 +73,14 @@ export function explode(visitor) { let fns = visitor[nodeType]; - var aliases = t.FLIPPED_ALIAS_KEYS[nodeType]; + let aliases = t.FLIPPED_ALIAS_KEYS[nodeType]; if (!aliases) continue; // clear it from the visitor delete visitor[nodeType]; - for (var alias of (aliases: Array)) { - var existing = visitor[alias]; + for (let alias of (aliases: Array)) { + let existing = visitor[alias]; if (existing) { mergePair(existing, fns); } else { @@ -119,16 +105,16 @@ export function verify(visitor) { throw new Error(messages.get("traverseVerifyRootFunction")); } - for (var nodeType in visitor) { + for (let nodeType in visitor) { if (shouldIgnoreKey(nodeType)) continue; if (t.TYPES.indexOf(nodeType) < 0) { throw new Error(messages.get("traverseVerifyNodeType", nodeType)); } - var visitors = visitor[nodeType]; + let visitors = visitor[nodeType]; if (typeof visitors === "object") { - for (var visitorKey in visitors) { + for (let visitorKey in visitors) { if (visitorKey === "enter" || visitorKey === "exit") continue; throw new Error(messages.get("traverseVerifyVisitorProperty", nodeType, visitorKey)); } @@ -138,15 +124,47 @@ export function verify(visitor) { visitor._verified = true; } -export function merge(visitors) { - var rootVisitor = {}; +export function merge(visitors: Array, states: Array = []) { + let rootVisitor = {}; + + for (let i = 0; i < visitors.length; i++) { + let visitor = visitors[i]; + let state = states[i]; - for (var visitor of (visitors: Array)) { explode(visitor); - for (var type in visitor) { - var nodeVisitor = rootVisitor[type] = rootVisitor[type] || {}; - mergePair(nodeVisitor, visitor[type]); + for (let type in visitor) { + let visitorType = visitor[type]; + + // if we have state then overload the callbacks to take it + if (state) { + let oldVisitorType = visitorType; + visitorType = {}; + + for (let key in oldVisitorType) { + let fns = oldVisitorType[key]; + + // not an enter/exit array of callbacks + if (!Array.isArray(fns)) continue; + + fns = fns.map(function (fn) { + if (typeof fn === "function") { + let newFn = function (path) { + return fn.call(state, path, state); + }; + newFn.toString = () => fn.toString(); + return newFn; + } else { + return fn; + } + }); + + visitorType[key] = fns; + } + } + + let nodeVisitor = rootVisitor[type] = rootVisitor[type] || {}; + mergePair(nodeVisitor, visitorType); } } @@ -157,7 +175,7 @@ function ensureEntranceObjects(obj) { for (let key in obj) { if (shouldIgnoreKey(key)) continue; - var fns = obj[key]; + let fns = obj[key]; if (typeof fns === "function") { obj[key] = { enter: fns }; } @@ -170,11 +188,13 @@ function ensureCallbackArrays(obj){ } function wrapCheck(wrapper, fn) { - return function () { - if (wrapper.checkPath(this)) { + let newFn = function (path) { + if (wrapper.checkPath(path)) { return fn.apply(this, arguments); } }; + newFn.toString = () => fn.toString(); + return newFn; } function shouldIgnoreKey(key) { @@ -191,7 +211,7 @@ function shouldIgnoreKey(key) { } function mergePair(dest, src) { - for (var key in src) { + for (let key in src) { dest[key] = [].concat(dest[key] || [], src[key]); } } diff --git a/packages/babel-core/test/traverse.js b/packages/babel-traverse/test/traverse.js similarity index 96% rename from packages/babel-core/test/traverse.js rename to packages/babel-traverse/test/traverse.js index 259cf81877..b2cc301171 100644 --- a/packages/babel-core/test/traverse.js +++ b/packages/babel-traverse/test/traverse.js @@ -1,4 +1,4 @@ -var traverse = require("babel-traverse"); +var traverse = require("../lib").default; var assert = require("assert"); var _ = require("lodash"); @@ -61,7 +61,7 @@ suite("traverse", function () { traverse(ast2, { enter: function (path) { - if (path.node.type === "ThisExpression") return replacement; + if (path.node.type === "ThisExpression") path.replaceWith(replacement); } }); diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json index 3251d6f52d..c15fd1f79d 100644 --- a/packages/babel-types/package.json +++ b/packages/babel-types/package.json @@ -1,6 +1,6 @@ { "name": "babel-types", - "version": "5.8.22", + "version": "5.10.32", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,10 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { + "babel-runtime": "^5.10.32", + "babel-traverse": "^5.10.32", "esutils": "^2.0.2", "lodash": "^3.10.1", - "to-fast-properties": "^1.0.1", - "babel-traverse": "^5.8.22" + "to-fast-properties": "^1.0.1" } -} +} \ No newline at end of file diff --git a/packages/babel-types/src/converters.js b/packages/babel-types/src/converters.js index 694df04240..5a58984a81 100644 --- a/packages/babel-types/src/converters.js +++ b/packages/babel-types/src/converters.js @@ -1,3 +1,5 @@ +/* @flow */ + import isPlainObject from "lodash/lang/isPlainObject"; import isNumber from "lodash/lang/isNumber"; import isRegExp from "lodash/lang/isRegExp"; @@ -22,13 +24,13 @@ export function toComputedKey(node: Object, key: Object = node.key || node.prope * Expression statements are just resolved to their expression. */ -export function toSequenceExpression(nodes: Array, scope: Scope): Object { +export function toSequenceExpression(nodes: Array, scope: Scope): ?Object { if (!nodes || !nodes.length) return; - var declars = []; - var bailed = false; + let declars = []; + let bailed = false; - var result = convert(nodes); + let result = convert(nodes); if (bailed) return; for (let i = 0; i < declars.length; i++) { @@ -38,8 +40,8 @@ export function toSequenceExpression(nodes: Array, scope: Scope): Object return result; function convert(nodes) { - var ensureLastUndefined = false; - var exprs = []; + let ensureLastUndefined = false; + let exprs = []; for (let node of (nodes: Array)) { if (t.isExpression(node)) { @@ -49,9 +51,9 @@ export function toSequenceExpression(nodes: Array, scope: Scope): Object } else if (t.isVariableDeclaration(node)) { if (node.kind !== "var") return bailed = true; // bailed - for (var declar of (node.declarations: Array)) { - var bindings = t.getBindingIdentifiers(declar); - for (var key in bindings) { + for (let declar of (node.declarations: Array)) { + let bindings = t.getBindingIdentifiers(declar); + for (let key in bindings) { declars.push({ kind: node.kind, id: bindings[key] @@ -66,8 +68,8 @@ export function toSequenceExpression(nodes: Array, scope: Scope): Object ensureLastUndefined = true; continue; } else if (t.isIfStatement(node)) { - var consequent = node.consequent ? convert([node.consequent]) : t.identifier("undefined"); - var alternate = node.alternate ? convert([node.alternate]) : t.identifier("undefined"); + let consequent = node.consequent ? convert([node.consequent]) : scope.buildUndefinedNode(); + let alternate = node.alternate ? convert([node.alternate]) : scope.buildUndefinedNode(); if (!consequent || !alternate) return bailed = true; exprs.push(t.conditionalExpression(node.test, consequent, alternate)); @@ -85,8 +87,8 @@ export function toSequenceExpression(nodes: Array, scope: Scope): Object ensureLastUndefined = false; } - if (ensureLastUndefined) { - exprs.push(t.identifier("undefined")); + if (ensureLastUndefined || exprs.length === 0) { + exprs.push(scope.buildUndefinedNode()); } // @@ -99,11 +101,11 @@ export function toSequenceExpression(nodes: Array, scope: Scope): Object } } -export function toKeyAlias(node: Object, key: Object = node.key) { - var alias; +export function toKeyAlias(node: Object, key: Object = node.key): string { + let alias; if (node.kind === "method") { - return toKeyAlias.uid++; + return toKeyAlias.increment() + ""; } else if (t.isIdentifier(key)) { alias = key.name; } else if (t.isStringLiteral(key)) { @@ -116,14 +118,24 @@ export function toKeyAlias(node: Object, key: Object = node.key) { alias = `[${alias}]`; } + if (node.static) { + alias = `static:${alias}`; + } + return alias; } toKeyAlias.uid = 0; -export function toIdentifier(name: string): string { - if (t.isIdentifier(name)) return name.name; +toKeyAlias.increment = function () { + if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) { + return toKeyAlias.uid = 0; + } else { + return toKeyAlias.uid++; + } +}; +export function toIdentifier(name: string): string { name = name + ""; // replace all non-valid identifiers with dashes @@ -144,7 +156,7 @@ export function toIdentifier(name: string): string { return name || "_"; } -export function toBindingIdentifierName(name) { +export function toBindingIdentifierName(name: string): string { name = toIdentifier(name); if (name === "eval" || name === "arguments") name = "_" + name; return name; @@ -160,8 +172,8 @@ export function toStatement(node: Object, ignore?: boolean) { return node; } - var mustHaveId = false; - var newType; + let mustHaveId = false; + let newType; if (t.isClass(node)) { mustHaveId = true; @@ -208,7 +220,7 @@ export function toExpression(node: Object): Object { } } -export function toBlock(node: Object, parent: Object): Object { +export function toBlock(node, parent: Object): Object { if (t.isBlockStatement(node)) { return node; } @@ -260,8 +272,8 @@ export function valueToNode(value: any): Object { // regexes if (isRegExp(value)) { - var pattern = value.source; - var flags = value.toString().match(/\/([a-z]+|)$/)[1]; + let pattern = value.source; + let flags = value.toString().match(/\/([a-z]+|)$/)[1]; return t.regexLiteral(pattern, flags); } @@ -272,15 +284,15 @@ export function valueToNode(value: any): Object { // object if (isPlainObject(value)) { - var props = []; - for (var key in value) { - var nodeKey; + let props = []; + for (let key in value) { + let nodeKey; if (t.isValidIdentifier(key)) { nodeKey = t.identifier(key); } else { nodeKey = t.literal(key); } - props.push(t.property("init", nodeKey, t.valueToNode(value[key]))); + props.push(t.objectProperty(nodeKey, t.valueToNode(value[key]))); } return t.objectExpression(props); } diff --git a/packages/babel-types/src/definitions/core.js b/packages/babel-types/src/definitions/core.js index be0ba1387c..8927d95269 100644 --- a/packages/babel-types/src/definitions/core.js +++ b/packages/babel-types/src/definitions/core.js @@ -1,7 +1,15 @@ -import * as t from "../index"; -import define, { assertValueType, assertNodeType, assertEach, chain, assertOneOf } from "./index"; +/* @flow */ -define("ArrayExpression", { +import * as t from "../index"; +import defineType, { + assertValueType, + assertNodeType, + assertEach, + chain, + assertOneOf, +} from "./index"; + +defineType("ArrayExpression", { fields: { elements: { validate: assertValueType("array") @@ -11,18 +19,16 @@ define("ArrayExpression", { aliases: ["Expression"] }); -define("AssignmentExpression", { +defineType("AssignmentExpression", { fields: { - elements: { - operator: { - validate: assertValueType("string") - }, - left: { - validate: assertNodeType("LVal") - }, - right: { - validate: assertNodeType("Expression") - } + operator: { + validate: assertValueType("string") + }, + left: { + validate: assertNodeType("LVal") + }, + right: { + validate: assertNodeType("Expression") } }, builder: ["operator", "left", "right"], @@ -30,7 +36,7 @@ define("AssignmentExpression", { aliases: ["Expression"] }); -define("BinaryExpression", { +defineType("BinaryExpression", { builder: ["operator", "left", "right"], fields: { operator: { @@ -47,7 +53,17 @@ define("BinaryExpression", { aliases: ["Binary", "Expression"] }); -define("Directive", { +defineType("Directive", { + visitor: ["value"], + fields: { + value: { + validate: assertNodeType("DirectiveLiteral") + } + } +}); + +defineType("DirectiveLiteral", { + builder: ["value"], fields: { value: { validate: assertValueType("string") @@ -55,7 +71,7 @@ define("Directive", { } }); -define("BlockStatement", { +defineType("BlockStatement", { builder: ["body", "directives"], visitor: ["directives", "body"], fields: { @@ -70,7 +86,7 @@ define("BlockStatement", { aliases: ["Scopable", "BlockParent", "Block", "Statement"] }); -define("BreakStatement", { +defineType("BreakStatement", { visitor: ["label"], fields: { label: { @@ -81,7 +97,7 @@ define("BreakStatement", { aliases: ["Statement", "Terminatorless", "CompletionStatement"] }); -define("CallExpression", { +defineType("CallExpression", { visitor: ["callee", "arguments"], fields: { callee: { @@ -94,7 +110,7 @@ define("CallExpression", { aliases: ["Expression"] }); -define("CatchClause", { +defineType("CatchClause", { visitor: ["param", "body"], fields: { param: { @@ -107,7 +123,7 @@ define("CatchClause", { aliases: ["Scopable"] }); -define("ConditionalExpression", { +defineType("ConditionalExpression", { visitor: ["test", "consequent", "alternate"], fields: { test: { @@ -120,10 +136,10 @@ define("ConditionalExpression", { validate: assertNodeType("Expression") } }, - aliases: ["Expression"] + aliases: ["Expression", "Conditional"] }); -define("ContinueStatement", { +defineType("ContinueStatement", { visitor: ["label"], fields: { label: { @@ -134,11 +150,11 @@ define("ContinueStatement", { aliases: ["Statement", "Terminatorless", "CompletionStatement"] }); -define("DebuggerStatement", { +defineType("DebuggerStatement", { aliases: ["Statement"] }); -define("DoWhileStatement", { +defineType("DoWhileStatement", { visitor: ["test", "body"], fields: { test: { @@ -151,21 +167,21 @@ define("DoWhileStatement", { aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] }); -define("EmptyStatement", { +defineType("EmptyStatement", { aliases: ["Statement"] }); -define("ExpressionStatement", { +defineType("ExpressionStatement", { visitor: ["expression"], fields: { expression: { validate: assertNodeType("Expression") } }, - aliases: ["Statement"] + aliases: ["Statement", "ExpressionWrapper"] }); -define("File", { +defineType("File", { builder: ["program", "comments", "tokens"], visitor: ["program"], fields: { @@ -175,7 +191,7 @@ define("File", { } }); -define("ForInStatement", { +defineType("ForInStatement", { visitor: ["left", "right", "body"], aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], fields: { @@ -191,7 +207,7 @@ define("ForInStatement", { } }); -define("ForStatement", { +defineType("ForStatement", { visitor: ["init", "test", "update", "body"], aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"], fields: { @@ -210,7 +226,7 @@ define("ForStatement", { } }); -define("FunctionDeclaration", { +defineType("FunctionDeclaration", { builder: ["id", "params", "body", "generator", "async"], visitor: ["id", "params", "body", "returnType", "typeParameters"], fields: { @@ -232,11 +248,20 @@ define("FunctionDeclaration", { validate: assertValueType("boolean") } }, - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pure", "Declaration"] + aliases: [ + "Scopable", + "Function", + "BlockParent", + "FunctionParent", + "Statement", + "Pureish", + "Declaration" + ] }); -define("FunctionExpression", { - builder: ["id", "params", "body", "generator", "async"], +defineType("FunctionExpression", { + inherits: "FunctionDeclaration", + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], fields: { id: { validate: assertNodeType("Identifier"), @@ -256,12 +281,10 @@ define("FunctionExpression", { default: false, validate: assertValueType("boolean") } - }, - visitor: ["id", "params", "body", "returnType", "typeParameters"], - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pure"] + } }); -define("Identifier", { +defineType("Identifier", { builder: ["name"], visitor: ["typeAnnotation"], aliases: ["Expression", "LVal"], @@ -276,9 +299,9 @@ define("Identifier", { } }); -define("IfStatement", { +defineType("IfStatement", { visitor: ["test", "consequent", "alternate"], - aliases: ["Statement"], + aliases: ["Statement", "Conditional"], fields: { test: { validate: assertNodeType("Expression") @@ -294,7 +317,7 @@ define("IfStatement", { } }); -define("LabeledStatement", { +defineType("LabeledStatement", { visitor: ["label", "body"], aliases: ["Statement"], fields: { @@ -307,41 +330,41 @@ define("LabeledStatement", { } }); -define("StringLiteral", { +defineType("StringLiteral", { builder: ["value"], fields: { value: { validate: assertValueType("string") } }, - aliases: ["Expression", "Pure", "Literal", "Immutable"] + aliases: ["Expression", "Pureish", "Literal", "Immutable"] }); -define("NumberLiteral", { +defineType("NumberLiteral", { builder: ["value"], fields: { value: { validate: assertValueType("number") } }, - aliases: ["Expression", "Pure", "Literal", "Immutable"] + aliases: ["Expression", "Pureish", "Literal", "Immutable"] }); -define("NullLiteral", { - aliases: ["Expression", "Pure", "Literal", "Immutable"] +defineType("NullLiteral", { + aliases: ["Expression", "Pureish", "Literal", "Immutable"] }); -define("BooleanLiteral", { +defineType("BooleanLiteral", { builder: ["value"], fields: { value: { validate: assertValueType("boolean") } }, - aliases: ["Expression", "Pure", "Literal", "Immutable"] + aliases: ["Expression", "Pureish", "Literal", "Immutable"] }); -define("RegexLiteral", { +defineType("RegexLiteral", { builder: ["pattern", "flags"], aliases: ["Expression", "Literal"], fields: { @@ -355,7 +378,7 @@ define("RegexLiteral", { } }); -define("LogicalExpression", { +defineType("LogicalExpression", { builder: ["operator", "left", "right"], visitor: ["left", "right"], aliases: ["Binary", "Expression"], @@ -372,7 +395,7 @@ define("LogicalExpression", { } }); -define("MemberExpression", { +defineType("MemberExpression", { builder: ["object", "property", "computed"], visitor: ["object", "property"], aliases: ["Expression", "LVal"], @@ -382,7 +405,7 @@ define("MemberExpression", { }, property: { validate(node, key, val) { - var expectedType = node.computed ? "Expression" : "Identifier"; + let expectedType = node.computed ? "Expression" : "Identifier"; assertNodeType(expectedType)(node, key, val); } }, @@ -392,7 +415,7 @@ define("MemberExpression", { } }); -define("NewExpression", { +defineType("NewExpression", { visitor: ["callee", "arguments"], aliases: ["Expression"], fields: { @@ -405,17 +428,7 @@ define("NewExpression", { } }); -define("ObjectExpression", { - visitor: ["properties"], - aliases: ["Expression"], - fields: { - properties: { - validate: chain(assertValueType("array"), assertEach(assertNodeType("Property", "SpreadProperty"))) - } - } -}); - -define("Program", { +defineType("Program", { visitor: ["directives", "body"], builder: ["body", "directives"], fields: { @@ -430,12 +443,22 @@ define("Program", { aliases: ["Scopable", "BlockParent", "Block", "FunctionParent"] }); -define("Property", { - builder: ["kind", "key", "value", "computed", "method", "shorthand"], +defineType("ObjectExpression", { + visitor: ["properties"], + aliases: ["Expression"], + fields: { + properties: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("ObjectMethod", "ObjectProperty", "SpreadProperty"))) + } + } +}); + +defineType("ObjectMethod", { + builder: ["kind", "key", "params", "body", "computed"], fields: { kind: { - validate: chain(assertValueType("string"), assertOneOf("init", "get", "set")), - default: "init" + validate: chain(assertValueType("string"), assertOneOf("method", "get", "set")), + default: "method" }, computed: { validate: assertValueType("boolean"), @@ -443,37 +466,61 @@ define("Property", { }, key: { validate(node, key, val) { - var expectedTypes = node.computed ? "Expression" : ["Identifier", "Literal"]; + let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; + assertNodeType(...expectedTypes)(node, key, val); + } + }, + decorators: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("Decorator"))) + }, + body: { + validate: assertNodeType("BlockStatement") + }, + generator: { + default: false, + validate: assertValueType("boolean") + }, + async: { + default: false, + validate: assertValueType("boolean") + } + }, + visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], + aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method"] +}); + +defineType("ObjectProperty", { + builder: ["key", "value", "computed", "shorthand", "decorators"], + fields: { + computed: { + validate: assertValueType("boolean"), + default: false + }, + key: { + validate(node, key, val) { + let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; assertNodeType(...expectedTypes)(node, key, val); } }, value: { - validate(node, key, val) { - var expectedType = "Expression"; - if (node.kind === "get" || node.kind === "set" || node.method) { - expectedType = "FunctionExpression"; - } - assertNodeType(expectedType)(node, key, val); - } - }, - method: { - validate: assertValueType("boolean"), - default: false + validate: assertNodeType("Expression") }, shorthand: { validate: assertValueType("boolean"), default: false }, decorators: { - validate: chain(assertValueType("array"), assertEach(assertNodeType("Decorator"))) + validate: chain(assertValueType("array"), assertEach(assertNodeType("Decorator"))), + optional: true } }, visitor: ["key", "value", "decorators"], - aliases: ["UserWhitespacable"] + aliases: ["UserWhitespacable", "Property"] }); -define("RestElement", { +defineType("RestElement", { visitor: ["argument", "typeAnnotation"], + aliases: ["LVal"], fields: { argument: { validate: assertNodeType("LVal") @@ -481,17 +528,18 @@ define("RestElement", { } }); -define("ReturnStatement", { +defineType("ReturnStatement", { visitor: ["argument"], aliases: ["Statement", "Terminatorless", "CompletionStatement"], fields: { argument: { - validate: assertNodeType("Expression") + validate: assertNodeType("Expression"), + optional: true } } }); -define("SequenceExpression", { +defineType("SequenceExpression", { visitor: ["expressions"], fields: { expressions: { validate: assertValueType("array") } @@ -499,14 +547,14 @@ define("SequenceExpression", { aliases: ["Expression"] }); -define("SwitchCase", { +defineType("SwitchCase", { visitor: ["test", "consequent"], fields: { // todo } }); -define("SwitchStatement", { +defineType("SwitchStatement", { visitor: ["discriminant", "cases"], aliases: ["Statement", "BlockParent", "Scopable"], fields: { @@ -514,11 +562,11 @@ define("SwitchStatement", { } }); -define("ThisExpression", { +defineType("ThisExpression", { aliases: ["Expression"] }); -define("ThrowStatement", { +defineType("ThrowStatement", { visitor: ["argument"], aliases: ["Statement", "Terminatorless", "CompletionStatement"], fields: { @@ -529,7 +577,7 @@ define("ThrowStatement", { }); // todo: at least handler or finalizer should be set to be valid -define("TryStatement", { +defineType("TryStatement", { visitor: ["block", "handler", "finalizer"], aliases: ["Statement"], fields: { @@ -547,7 +595,7 @@ define("TryStatement", { } }); -define("UnaryExpression", { +defineType("UnaryExpression", { builder: ["operator", "argument", "prefix"], fields: { prefix: { @@ -564,7 +612,7 @@ define("UnaryExpression", { aliases: ["UnaryLike", "Expression"] }); -define("UpdateExpression", { +defineType("UpdateExpression", { builder: ["operator", "argument", "prefix"], fields: { prefix: { @@ -581,7 +629,7 @@ define("UpdateExpression", { aliases: ["Expression"] }); -define("VariableDeclaration", { +defineType("VariableDeclaration", { builder: ["kind", "declarations"], visitor: ["declarations"], aliases: ["Statement", "Declaration"], @@ -595,7 +643,7 @@ define("VariableDeclaration", { } }); -define("VariableDeclarator", { +defineType("VariableDeclarator", { visitor: ["id", "init"], fields: { id: { @@ -608,7 +656,7 @@ define("VariableDeclarator", { } }); -define("WhileStatement", { +defineType("WhileStatement", { visitor: ["test", "body"], aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"], fields: { @@ -621,7 +669,7 @@ define("WhileStatement", { } }); -define("WithStatement", { +defineType("WithStatement", { visitor: ["object", "body"], aliases: ["Statement"], fields: { diff --git a/packages/babel-types/src/definitions/es2015.js b/packages/babel-types/src/definitions/es2015.js index 09425ecebd..c42bd87df6 100644 --- a/packages/babel-types/src/definitions/es2015.js +++ b/packages/babel-types/src/definitions/es2015.js @@ -1,6 +1,14 @@ -import define, { assertNodeType, assertValueType, chain, assertEach, assertOneOf } from "./index"; +/* @flow */ -define("AssignmentPattern", { +import defineType, { + assertNodeType, + assertValueType, + chain, + assertEach, + assertOneOf, +} from "./index"; + +defineType("AssignmentPattern", { visitor: ["left", "right"], aliases: ["Pattern", "LVal"], fields: { @@ -13,7 +21,7 @@ define("AssignmentPattern", { } }); -define("ArrayPattern", { +defineType("ArrayPattern", { visitor: ["elements", "typeAnnotation"], aliases: ["Pattern", "LVal"], fields: { @@ -23,10 +31,10 @@ define("ArrayPattern", { } }); -define("ArrowFunctionExpression", { +defineType("ArrowFunctionExpression", { builder: ["params", "body", "async"], visitor: ["params", "body", "returnType"], - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pure"], + aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], fields: { params: { validate: chain(assertValueType("array"), assertEach(assertNodeType("LVal"))) @@ -41,19 +49,27 @@ define("ArrowFunctionExpression", { } }); -define("ClassBody", { +defineType("ClassBody", { visitor: ["body"], fields: { body: { - validate: chain(assertValueType("array"), assertEach(assertValueType("MethodDefinition", "ClassProperty"))) + validate: chain(assertValueType("array"), assertEach(assertValueType("ClassMethod", "ClassProperty"))) } } }); -define("ClassDeclaration", { +defineType("ClassDeclaration", { builder: ["id", "superClass", "body", "decorators"], - visitor: ["id", "body", "superClass", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Statement", "Declaration"], + visitor: [ + "id", + "body", + "superClass", + "typeParameters", + "superTypeParameters", + "implements", + "decorators" + ], + aliases: ["Scopable", "Class", "Statement", "Declaration", "Pureish"], fields: { id: { validate: assertNodeType("Identifier") @@ -71,10 +87,9 @@ define("ClassDeclaration", { } }); -define("ClassExpression", { - builder: ["id", "superClass", "body", "decorators"], - visitor: ["id", "body", "superClass", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Expression"], +defineType("ClassExpression", { + inherits: "ClassDeclaration", + aliases: ["Scopable", "Class", "Expression", "Pureish"], fields: { id: { optional: true, @@ -93,15 +108,15 @@ define("ClassExpression", { } }); -define("ExportAllDeclaration", { - visitor: ["source", "exported"], +defineType("ExportAllDeclaration", { + visitor: ["source"], aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], fields: { // todo } }); -define("ExportDefaultDeclaration", { +defineType("ExportDefaultDeclaration", { visitor: ["declaration"], aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], fields: { @@ -109,7 +124,7 @@ define("ExportDefaultDeclaration", { } }); -define("ExportNamedDeclaration", { +defineType("ExportNamedDeclaration", { visitor: ["declaration", "specifiers", "source"], aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], fields: { @@ -117,7 +132,7 @@ define("ExportNamedDeclaration", { } }); -define("ExportSpecifier", { +defineType("ExportSpecifier", { visitor: ["local", "exported"], aliases: ["ModuleSpecifier"], fields: { @@ -130,7 +145,7 @@ define("ExportSpecifier", { } }); -define("ForOfStatement", { +defineType("ForOfStatement", { visitor: ["left", "right", "body"], aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], fields: { @@ -146,12 +161,12 @@ define("ForOfStatement", { } }); -define("ImportDeclaration", { +defineType("ImportDeclaration", { visitor: ["specifiers", "source"], aliases: ["Statement", "Declaration", "ModuleDeclaration"], fields: { specifiers: { - // todo + validate: chain(assertValueType("array"), assertEach(assertNodeType("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"))) }, source: { validate: assertNodeType("StringLiteral") @@ -159,7 +174,7 @@ define("ImportDeclaration", { } }); -define("ImportDefaultSpecifier", { +defineType("ImportDefaultSpecifier", { visitor: ["local"], aliases: ["ModuleSpecifier"], fields: { @@ -169,7 +184,7 @@ define("ImportDefaultSpecifier", { } }); -define("ImportNamespaceSpecifier", { +defineType("ImportNamespaceSpecifier", { visitor: ["local"], aliases: ["ModuleSpecifier"], fields: { @@ -179,7 +194,7 @@ define("ImportNamespaceSpecifier", { } }); -define("ImportSpecifier", { +defineType("ImportSpecifier", { visitor: ["local", "imported"], aliases: ["ModuleSpecifier"], fields: { @@ -192,7 +207,7 @@ define("ImportSpecifier", { } }); -define("MetaProperty", { +defineType("MetaProperty", { visitor: ["meta", "property"], aliases: ["Expression"], fields: { @@ -206,9 +221,10 @@ define("MetaProperty", { } }); -define("MethodDefinition", { - builder: ["key", "value", "kind", "computed", "static"], - visitor: ["key", "value", "decorators"], +defineType("ClassMethod", { + aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], + builder: ["kind", "key", "params", "body", "computed", "static"], + visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], fields: { kind: { validate: chain(assertValueType("string"), assertOneOf("get", "set", "method", "constructor")), @@ -221,11 +237,31 @@ define("MethodDefinition", { static: { default: false, validate: assertValueType("boolean") + }, + key: { + validate(node, key, val) { + let expectedTypes = node.computed ? ["Expression"] : ["Identifier", "Literal"]; + assertNodeType(...expectedTypes)(node, key, val); + } + }, + params: { + validate: chain(assertValueType("array"), assertEach(assertNodeType("LVal"))) + }, + body: { + validate: assertNodeType("BlockStatement") + }, + generator: { + default: false, + validate: assertValueType("boolean") + }, + async: { + default: false, + validate: assertValueType("boolean") } } }); -define("ObjectPattern", { +defineType("ObjectPattern", { visitor: ["properties", "typeAnnotation"], aliases: ["Pattern", "LVal"], fields: { @@ -235,7 +271,7 @@ define("ObjectPattern", { } }); -define("SpreadElement", { +defineType("SpreadElement", { visitor: ["argument"], aliases: ["UnaryLike"], fields: { @@ -245,11 +281,11 @@ define("SpreadElement", { } }); -define("Super", { +defineType("Super", { aliases: ["Expression"] }); -define("TaggedTemplateExpression", { +defineType("TaggedTemplateExpression", { visitor: ["tag", "quasi"], aliases: ["Expression"], fields: { @@ -262,7 +298,7 @@ define("TaggedTemplateExpression", { } }); -define("TemplateElement", { +defineType("TemplateElement", { builder: ["value", "tail"], fields: { value: { @@ -275,7 +311,7 @@ define("TemplateElement", { } }); -define("TemplateLiteral", { +defineType("TemplateLiteral", { visitor: ["quasis", "expressions"], aliases: ["Expression", "Literal"], fields: { @@ -283,7 +319,7 @@ define("TemplateLiteral", { } }); -define("YieldExpression", { +defineType("YieldExpression", { builder: ["argument", "delegate"], visitor: ["argument"], aliases: ["Expression", "Terminatorless"], diff --git a/packages/babel-types/src/definitions/experimental.js b/packages/babel-types/src/definitions/experimental.js index 1e0d171782..45ee553327 100644 --- a/packages/babel-types/src/definitions/experimental.js +++ b/packages/babel-types/src/definitions/experimental.js @@ -1,43 +1,26 @@ -import define, { assertNodeType, assertValueType } from "./index"; +/* @flow */ -define("AwaitExpression", { - builder: ["argument", "all"], +import defineType, { assertNodeType } from "./index"; + +defineType("AwaitExpression", { + builder: ["argument"], visitor: ["argument"], aliases: ["Expression", "Terminatorless"], fields: { - all: { - validate: assertValueType("boolean"), - default: false - }, argument: { validate: assertNodeType("Expression"), } } }); -define("BindExpression", { +defineType("BindExpression", { visitor: ["object", "callee"], fields: { // todo } }); -define("ComprehensionBlock", { - visitor: ["left", "right"], - fields: { - // todo - } -}); - -define("ComprehensionExpression", { - visitor: ["filter", "blocks", "body"], - aliases: ["Expression", "Scopable"], - fields: { - // todo - } -}); - -define("Decorator", { +defineType("Decorator", { visitor: ["expression"], fields: { expression: { @@ -46,7 +29,7 @@ define("Decorator", { } }); -define("DoExpression", { +defineType("DoExpression", { visitor: ["body"], aliases: ["Expression"], fields: { @@ -56,7 +39,7 @@ define("DoExpression", { } }); -define("ExportDefaultSpecifier", { +defineType("ExportDefaultSpecifier", { visitor: ["exported"], aliases: ["ModuleSpecifier"], fields: { @@ -66,7 +49,7 @@ define("ExportDefaultSpecifier", { } }); -define("ExportNamespaceSpecifier", { +defineType("ExportNamespaceSpecifier", { visitor: ["exported"], aliases: ["ModuleSpecifier"], fields: { @@ -76,7 +59,7 @@ define("ExportNamespaceSpecifier", { } }); -define("RestProperty", { +defineType("RestProperty", { visitor: ["argument"], aliases: ["UnaryLike"], fields: { @@ -86,7 +69,7 @@ define("RestProperty", { } }); -define("SpreadProperty", { +defineType("SpreadProperty", { visitor: ["argument"], aliases: ["UnaryLike"], fields: { diff --git a/packages/babel-types/src/definitions/flow.js b/packages/babel-types/src/definitions/flow.js index f5fe07c9d6..4a7a26ca1e 100644 --- a/packages/babel-types/src/definitions/flow.js +++ b/packages/babel-types/src/definitions/flow.js @@ -1,13 +1,15 @@ -import define from "./index"; +/* @flow */ -define("AnyTypeAnnotation", { +import defineType from "./index"; + +defineType("AnyTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"], fields: { // todo } }); -define("ArrayTypeAnnotation", { +defineType("ArrayTypeAnnotation", { visitor: ["elementType"], aliases: ["Flow"], fields: { @@ -15,21 +17,21 @@ define("ArrayTypeAnnotation", { } }); -define("BooleanTypeAnnotation", { +defineType("BooleanTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"], fields: { // todo } }); -define("BooleanLiteralTypeAnnotation", { +defineType("BooleanLiteralTypeAnnotation", { aliases: ["Flow"], fields: { // todo } }); -define("ClassImplements", { +defineType("ClassImplements", { visitor: ["id", "typeParameters"], aliases: ["Flow"], fields: { @@ -37,15 +39,15 @@ define("ClassImplements", { } }); -define("ClassProperty", { +defineType("ClassProperty", { visitor: ["key", "value", "typeAnnotation", "decorators"], - aliases: ["Flow"], + aliases: ["Flow", "Property"], fields: { // todo } }); -define("DeclareClass", { +defineType("DeclareClass", { visitor: ["id", "typeParameters", "extends", "body"], aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], fields: { @@ -53,7 +55,7 @@ define("DeclareClass", { } }); -define("DeclareFunction", { +defineType("DeclareFunction", { visitor: ["id"], aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], fields: { @@ -61,7 +63,7 @@ define("DeclareFunction", { } }); -define("DeclareModule", { +defineType("DeclareModule", { visitor: ["id", "body"], aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], fields: { @@ -69,7 +71,7 @@ define("DeclareModule", { } }); -define("DeclareVariable", { +defineType("DeclareVariable", { visitor: ["id"], aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], fields: { @@ -77,7 +79,7 @@ define("DeclareVariable", { } }); -define("FunctionTypeAnnotation", { +defineType("FunctionTypeAnnotation", { visitor: ["typeParameters", "params", "rest", "returnType"], aliases: ["Flow"], fields: { @@ -85,7 +87,7 @@ define("FunctionTypeAnnotation", { } }); -define("FunctionTypeParam", { +defineType("FunctionTypeParam", { visitor: ["name", "typeAnnotation"], aliases: ["Flow"], fields: { @@ -93,7 +95,7 @@ define("FunctionTypeParam", { } }); -define("GenericTypeAnnotation", { +defineType("GenericTypeAnnotation", { visitor: ["id", "typeParameters"], aliases: ["Flow"], fields: { @@ -101,7 +103,7 @@ define("GenericTypeAnnotation", { } }); -define("InterfaceExtends", { +defineType("InterfaceExtends", { visitor: ["id", "typeParameters"], aliases: ["Flow"], fields: { @@ -109,7 +111,7 @@ define("InterfaceExtends", { } }); -define("InterfaceDeclaration", { +defineType("InterfaceDeclaration", { visitor: ["id", "typeParameters", "extends", "body"], aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], fields: { @@ -117,7 +119,7 @@ define("InterfaceDeclaration", { } }); -define("IntersectionTypeAnnotation", { +defineType("IntersectionTypeAnnotation", { visitor: ["types"], aliases: ["Flow"], fields: { @@ -125,11 +127,11 @@ define("IntersectionTypeAnnotation", { } }); -define("MixedTypeAnnotation", { +defineType("MixedTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"] }); -define("NullableTypeAnnotation", { +defineType("NullableTypeAnnotation", { visitor: ["typeAnnotation"], aliases: ["Flow"], fields: { @@ -137,35 +139,35 @@ define("NullableTypeAnnotation", { } }); -define("NumberLiteralTypeAnnotation", { +defineType("NumberLiteralTypeAnnotation", { aliases: ["Flow"], fields: { // todo } }); -define("NumberTypeAnnotation", { +defineType("NumberTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"], fields: { // todo } }); -define("StringLiteralTypeAnnotation", { +defineType("StringLiteralTypeAnnotation", { aliases: ["Flow"], fields: { // todo } }); -define("StringTypeAnnotation", { +defineType("StringTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"], fields: { // todo } }); -define("TupleTypeAnnotation", { +defineType("TupleTypeAnnotation", { visitor: ["types"], aliases: ["Flow"], fields: { @@ -173,7 +175,7 @@ define("TupleTypeAnnotation", { } }); -define("TypeofTypeAnnotation", { +defineType("TypeofTypeAnnotation", { visitor: ["argument"], aliases: ["Flow"], fields: { @@ -181,7 +183,7 @@ define("TypeofTypeAnnotation", { } }); -define("TypeAlias", { +defineType("TypeAlias", { visitor: ["id", "typeParameters", "right"], aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], fields: { @@ -189,7 +191,7 @@ define("TypeAlias", { } }); -define("TypeAnnotation", { +defineType("TypeAnnotation", { visitor: ["typeAnnotation"], aliases: ["Flow"], fields: { @@ -197,15 +199,15 @@ define("TypeAnnotation", { } }); -define("TypeCastExpression", { +defineType("TypeCastExpression", { visitor: ["expression", "typeAnnotation"], - aliases: ["Flow"], + aliases: ["Flow", "ExpressionWrapper"], fields: { // todo } }); -define("TypeParameterDeclaration", { +defineType("TypeParameterDeclaration", { visitor: ["params"], aliases: ["Flow"], fields: { @@ -213,7 +215,7 @@ define("TypeParameterDeclaration", { } }); -define("TypeParameterInstantiation", { +defineType("TypeParameterInstantiation", { visitor: ["params"], aliases: ["Flow"], fields: { @@ -221,7 +223,7 @@ define("TypeParameterInstantiation", { } }); -define("ObjectTypeAnnotation", { +defineType("ObjectTypeAnnotation", { visitor: ["properties", "indexers", "callProperties"], aliases: ["Flow"], fields: { @@ -229,7 +231,7 @@ define("ObjectTypeAnnotation", { } }); -define("ObjectTypeCallProperty", { +defineType("ObjectTypeCallProperty", { visitor: ["value"], aliases: ["Flow", "UserWhitespacable"], fields: { @@ -237,7 +239,7 @@ define("ObjectTypeCallProperty", { } }); -define("ObjectTypeIndexer", { +defineType("ObjectTypeIndexer", { visitor: ["id", "key", "value"], aliases: ["Flow", "UserWhitespacable"], fields: { @@ -245,7 +247,7 @@ define("ObjectTypeIndexer", { } }); -define("ObjectTypeProperty", { +defineType("ObjectTypeProperty", { visitor: ["key", "value"], aliases: ["Flow", "UserWhitespacable"], fields: { @@ -253,7 +255,7 @@ define("ObjectTypeProperty", { } }); -define("QualifiedTypeIdentifier", { +defineType("QualifiedTypeIdentifier", { visitor: ["id", "qualification"], aliases: ["Flow"], fields: { @@ -261,7 +263,7 @@ define("QualifiedTypeIdentifier", { } }); -define("UnionTypeAnnotation", { +defineType("UnionTypeAnnotation", { visitor: ["types"], aliases: ["Flow"], fields: { @@ -269,7 +271,7 @@ define("UnionTypeAnnotation", { } }); -define("VoidTypeAnnotation", { +defineType("VoidTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"], fields: { // todo diff --git a/packages/babel-types/src/definitions/index.js b/packages/babel-types/src/definitions/index.js index e9199969f8..b25bf63073 100644 --- a/packages/babel-types/src/definitions/index.js +++ b/packages/babel-types/src/definitions/index.js @@ -1,9 +1,11 @@ +/* @flow */ + import * as t from "../index"; -export var VISITOR_KEYS = {}; -export var ALIAS_KEYS = {}; -export var NODE_FIELDS = {}; -export var BUILDER_KEYS = {}; +export let VISITOR_KEYS = {}; +export let ALIAS_KEYS = {}; +export let NODE_FIELDS = {}; +export let BUILDER_KEYS = {}; function getType(val) { if (Array.isArray(val)) { @@ -17,37 +19,33 @@ function getType(val) { } } -export function assertContains(vals) { - return function (val, key) { - if (vals.indexOf(val) < 0) { - throw new TypeError(`Property ${key} with the value of ${JSON.stringify(val)} expected to be one of ${JSON.stringify(vals)}`); - } - }; -} - -export function assertEach(callback) { +export function assertEach(callback: Function): Function { return function (node, key, val) { if (!Array.isArray(val)) return; - for (var i = 0; i < val.length; i++) { + for (let i = 0; i < val.length; i++) { callback(node, `${key}[${i}]`, val[i]); } }; } -export function assertOneOf(...vals) { - return function (node, key, val) { +export function assertOneOf(...vals): Function { + function validate(node, key, val) { if (vals.indexOf(val) < 0) { throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(vals)} but got ${JSON.stringify(val)}`); } - }; + } + + validate.oneOf = vals; + + return validate; } -export function assertNodeType(...types) { - return function (node, key, val) { - var valid = false; +export function assertNodeType(...types: Array): Function { + function validate(node, key, val) { + let valid = false; - for (var type of types) { + for (let type of types) { if (t.is(type, val)) { valid = true; break; @@ -55,46 +53,66 @@ export function assertNodeType(...types) { } if (!valid) { - throw new TypeError(`Property ${key} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`); + throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val && val.type)}`); } - }; + } + + validate.oneOfNodeTypes = types; + + return validate; } -export function assertValueType(type) { - return function (node, key, val) { - var valid = getType(val) === type; +export function assertValueType(type: string): Function { + function validate(node, key, val) { + let valid = getType(val) === type; if (!valid) { - console.log(type, key, val); throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`); } - }; + } + + validate.type = type; + + return validate; } -export function chain(...fns) { +export function chain(...fns: Array): Function { return function (...args) { - for (var fn of fns) { + for (let fn of fns) { fn(...args); } }; } -export default function define(type, opts = {}) { - opts.fields = opts.fields || {}; - opts.visitor = opts.visitor || []; - opts.aliases = opts.aliases || []; - opts.builder = opts.builder || opts.visitor || []; +export default function defineType( + type: string, + opts: { + fields?: Object; + visitor?: Array; + aliases?: Array; + builder?: Array; + inherits?: string; + } = {}, +) { + let inherits = (opts.inherits && store[opts.inherits]) || {}; + + opts.fields = opts.fields || inherits.fields || {}; + opts.visitor = opts.visitor || inherits.visitor || []; + opts.aliases = opts.aliases || inherits.aliases || []; + opts.builder = opts.builder || inherits.builder || opts.visitor || []; // ensure all field keys are represented in `fields` - for (let key of (opts.visitor.concat(opts.builder): Array)) { + for (let key of (opts.visitor.concat(opts.builder): Array)) { opts.fields[key] = opts.fields[key] || {}; } for (let key in opts.fields) { - var field = opts.fields[key]; + let field = opts.fields[key]; if (field.default === undefined) { field.default = null; + } else if (!field.validate) { + field.validate = assertValueType(getType(field.default)); } } @@ -102,4 +120,8 @@ export default function define(type, opts = {}) { BUILDER_KEYS[type] = opts.builder; NODE_FIELDS[type] = opts.fields; ALIAS_KEYS[type] = opts.aliases; + + store[type] = opts; } + +let store = {}; diff --git a/packages/babel-types/src/definitions/jsx.js b/packages/babel-types/src/definitions/jsx.js index 2da69891c8..c11d2fdc17 100644 --- a/packages/babel-types/src/definitions/jsx.js +++ b/packages/babel-types/src/definitions/jsx.js @@ -1,6 +1,8 @@ -import define, { assertNodeType, assertValueType, chain, assertEach } from "./index"; +/* @flow */ -define("JSXAttribute", { +import defineType, { assertNodeType, assertValueType, chain, assertEach } from "./index"; + +defineType("JSXAttribute", { visitor: ["name", "value"], aliases: ["JSX", "Immutable"], fields: { @@ -14,7 +16,7 @@ define("JSXAttribute", { } }); -define("JSXClosingElement", { +defineType("JSXClosingElement", { visitor: ["name"], aliases: ["JSX", "Immutable"], fields: { @@ -24,7 +26,7 @@ define("JSXClosingElement", { } }); -define("JSXElement", { +defineType("JSXElement", { builder: ["openingElement", "closingElement", "children", "selfClosing"], visitor: ["openingElement", "children", "closingElement"], aliases: ["JSX", "Immutable", "Expression"], @@ -42,11 +44,11 @@ define("JSXElement", { } }); -define("JSXEmptyExpression", { +defineType("JSXEmptyExpression", { aliases: ["JSX", "Expression"] }); -define("JSXExpressionContainer", { +defineType("JSXExpressionContainer", { visitor: ["expression"], aliases: ["JSX", "Immutable"], fields: { @@ -56,12 +58,17 @@ define("JSXExpressionContainer", { } }); -define("JSXIdentifier", { +defineType("JSXIdentifier", { builder: ["name"], - aliases: ["JSX", "Expression"] + aliases: ["JSX", "Expression"], + fields: { + name: { + validate: assertValueType("string") + } + } }); -define("JSXMemberExpression", { +defineType("JSXMemberExpression", { visitor: ["object", "property"], aliases: ["JSX", "Expression"], fields: { @@ -74,7 +81,7 @@ define("JSXMemberExpression", { } }); -define("JSXNamespacedName", { +defineType("JSXNamespacedName", { visitor: ["namespace", "name"], aliases: ["JSX"], fields: { @@ -87,7 +94,7 @@ define("JSXNamespacedName", { } }); -define("JSXOpeningElement", { +defineType("JSXOpeningElement", { builder: ["name", "attributes", "selfClosing"], visitor: ["name", "attributes"], aliases: ["JSX", "Immutable"], @@ -100,12 +107,15 @@ define("JSXOpeningElement", { validate: assertValueType("boolean") }, attributes: { - validate: chain(assertValueType("array"), assertEach(assertNodeType("JSXAttribute", "JSXSpreadAttribute"))) + validate: chain( + assertValueType("array"), + assertEach(assertNodeType("JSXAttribute", "JSXSpreadAttribute")) + ) } } }); -define("JSXSpreadAttribute", { +defineType("JSXSpreadAttribute", { visitor: ["argument"], aliases: ["JSX"], fields: { @@ -115,7 +125,7 @@ define("JSXSpreadAttribute", { } }); -define("JSXText", { +defineType("JSXText", { aliases: ["JSX"], builder: ["value"], fields: { diff --git a/packages/babel-types/src/definitions/misc.js b/packages/babel-types/src/definitions/misc.js index 744beacc2d..23e010da14 100644 --- a/packages/babel-types/src/definitions/misc.js +++ b/packages/babel-types/src/definitions/misc.js @@ -1,15 +1,17 @@ -import define, { assertNodeType } from "./index"; +/* @flow */ -define("Noop", { +import defineType, { assertNodeType } from "./index"; + +defineType("Noop", { visitor: [] }); -define("ParenthesizedExpression", { +defineType("ParenthesizedExpression", { visitor: ["expression"], - aliases: ["Expression"], + aliases: ["Expression", "ExpressionWrapper"], fields: { expression: { - validate: assertNodeType("expression") + validate: assertNodeType("Expression") } } }); diff --git a/packages/babel-types/src/flow.js b/packages/babel-types/src/flow.js index d76ea258b2..86f53e3b4f 100644 --- a/packages/babel-types/src/flow.js +++ b/packages/babel-types/src/flow.js @@ -1,3 +1,5 @@ +/* @flow */ + import * as t from "./index"; /** @@ -5,8 +7,8 @@ import * as t from "./index"; * returns a `UnionTypeAnnotation` node containg them. */ -export function createUnionTypeAnnotation(types) { - var flattened = removeTypeDuplicates(types); +export function createUnionTypeAnnotation(types: Array) { + let flattened = removeTypeDuplicates(types); if (flattened.length === 1) { return flattened[0]; @@ -19,17 +21,17 @@ export function createUnionTypeAnnotation(types) { * Dedupe type annotations. */ -export function removeTypeDuplicates(nodes) { - var generics = {}; - var bases = {}; +export function removeTypeDuplicates(nodes: Array) { + let generics = {}; + let bases = {}; // store union type groups to circular references - var typeGroups = []; + let typeGroups = []; - var types = []; + let types = []; - for (var i = 0; i < nodes.length; i++) { - var node = nodes[i]; + for (let i = 0; i < nodes.length; i++) { + let node = nodes[i]; if (!node) continue; // detect duplicates @@ -62,7 +64,7 @@ export function removeTypeDuplicates(nodes) { let name = node.id.name; if (generics[name]) { - var existing = generics[name]; + let existing = generics[name]; if (existing.typeParameters) { if (node.typeParameters) { existing.typeParameters.params = removeTypeDuplicates( @@ -83,7 +85,7 @@ export function removeTypeDuplicates(nodes) { } // add back in bases - for (var type in bases) { + for (let type in bases) { types.push(bases[type]); } @@ -99,7 +101,7 @@ export function removeTypeDuplicates(nodes) { * Create a type anotation based on typeof expression. */ -export function createTypeAnnotationBasedOnTypeof(type) { +export function createTypeAnnotationBasedOnTypeof(type: string) { if (type === "string") { return t.stringTypeAnnotation(); } else if (type === "number") { diff --git a/packages/babel-types/src/index.js b/packages/babel-types/src/index.js index 31d53df153..e232281c1f 100644 --- a/packages/babel-types/src/index.js +++ b/packages/babel-types/src/index.js @@ -1,11 +1,12 @@ +/* @flow */ + import toFastProperties from "to-fast-properties"; import compact from "lodash/array/compact"; -import assign from "lodash/object/assign"; import loClone from "lodash/lang/clone"; import each from "lodash/collection/each"; import uniq from "lodash/array/uniq"; -var t = exports; +let t = exports; /** * Registers `is[Type]` and `assert[Type]` generated functions for a given `type`. @@ -13,7 +14,7 @@ var t = exports; */ function registerType(type: string, skipAliasCheck?: boolean) { - var is = t[`is${type}`] = function (node, opts) { + let is = t[`is${type}`] = function (node, opts) { return t.is(type, node, opts, skipAliasCheck); }; @@ -25,10 +26,6 @@ function registerType(type: string, skipAliasCheck?: boolean) { }; } -/** - * Constants. - */ - export const STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; export const FLATTENABLE_KEYS = ["body", "expressions"]; export const FOR_INIT_KEYS = ["left", "init"]; @@ -52,15 +49,17 @@ export const STRING_UNARY_OPERATORS = ["typeof"]; import "./definitions/init"; import { VISITOR_KEYS, ALIAS_KEYS, NODE_FIELDS, BUILDER_KEYS } from "./definitions"; export { VISITOR_KEYS, ALIAS_KEYS, NODE_FIELDS, BUILDER_KEYS }; -export * as react from "./react"; + +import * as _react from "./react"; +export { _react as react }; /** * Registers `is[Type]` and `assert[Type]` for all types. */ -each(t.VISITOR_KEYS, function (keys, type) { +for (let type in t.VISITOR_KEYS) { registerType(type, true); -}); +} /** * Flip `ALIAS_KEYS` for faster access in the reverse direction. @@ -70,7 +69,7 @@ t.FLIPPED_ALIAS_KEYS = {}; each(t.ALIAS_KEYS, function (aliases, type) { each(aliases, function (alias) { - var types = t.FLIPPED_ALIAS_KEYS[alias] = t.FLIPPED_ALIAS_KEYS[alias] || []; + let types = t.FLIPPED_ALIAS_KEYS[alias] = t.FLIPPED_ALIAS_KEYS[alias] || []; types.push(type); }); }); @@ -93,12 +92,10 @@ export const TYPES = Object.keys(t.VISITOR_KEYS).concat(Object.keys(t.FLIPPED_AL * Optionally, pass `skipAliasCheck` to directly compare `node.type` with `type`. */ -// @TODO should `skipAliasCheck` be removed? -/*eslint-disable no-unused-vars */ -export function is(type: string, node: Object, opts?: Object, skipAliasCheck?: boolean): boolean { +export function is(type: string, node: Object, opts?: Object): boolean { if (!node) return false; - var matches = isType(node.type, type); + let matches = isType(node.type, type); if (!matches) return false; if (typeof opts === "undefined") { @@ -107,7 +104,6 @@ export function is(type: string, node: Object, opts?: Object, skipAliasCheck?: b return t.shallowEqual(node, opts); } } -/*eslint-enable no-unused-vars */ /** * Test if a `nodeType` is a `targetType` or if `targetType` is an alias of `nodeType`. @@ -116,11 +112,11 @@ export function is(type: string, node: Object, opts?: Object, skipAliasCheck?: b export function isType(nodeType: string, targetType: string): boolean { if (nodeType === targetType) return true; - var aliases = t.FLIPPED_ALIAS_KEYS[targetType]; + let aliases = t.FLIPPED_ALIAS_KEYS[targetType]; if (aliases) { if (aliases[0] === nodeType) return true; - for (var alias of (aliases: Array)) { + for (let alias of (aliases: Array)) { if (nodeType === alias) return true; } } @@ -134,15 +130,15 @@ each(t.BUILDER_KEYS, function (keys, type) { // todo: error } - var node = {}; + let node = {}; node.type = type; - var i = 0; + let i = 0; - for (let key of (keys: Array)) { - var field = t.NODE_FIELDS[type][key]; + for (let key of (keys: Array)) { + let field = t.NODE_FIELDS[type][key]; - var arg = arguments[i++]; + let arg = arguments[i++]; if (arg === undefined) arg = loClone(field.default); node[key] = arg; @@ -163,13 +159,13 @@ each(t.BUILDER_KEYS, function (keys, type) { * Description */ -export function validate(node, key, val) { +export function validate(node?: Object, key: string, val: any) { if (!node) return; - var fields = t.NODE_FIELDS[node.type]; + let fields = t.NODE_FIELDS[node.type]; if (!fields) return; - var field = fields[key]; + let field = fields[key]; if (!field || !field.validate) return; if (field.optional && val == null) return; @@ -181,9 +177,9 @@ export function validate(node, key, val) { */ export function shallowEqual(actual: Object, expected: Object): boolean { - var keys = Object.keys(expected); + let keys = Object.keys(expected); - for (var key of (keys: Array)) { + for (let key of (keys: Array)) { if (actual[key] !== expected[key]) { return false; } @@ -217,7 +213,7 @@ export function prependToMemberExpression(member: Object, prepend: Object): Obje * Casting it to a block if it is not. */ -export function ensureBlock(node: Object, key: string = "body") { +export function ensureBlock(node: Object, key: string = "body"): Object { return node[key] = t.toBlock(node[key], node); } @@ -226,8 +222,8 @@ export function ensureBlock(node: Object, key: string = "body") { */ export function clone(node: Object): Object { - var newNode = {}; - for (var key in node) { + let newNode = {}; + for (let key in node) { if (key[0] === "_") continue; newNode[key] = node[key]; } @@ -240,12 +236,12 @@ export function clone(node: Object): Object { */ export function cloneDeep(node: Object): Object { - var newNode = {}; + let newNode = {}; - for (var key in node) { + for (let key in node) { if (key[0] === "_") continue; - var val = node[key]; + let val = node[key]; if (val) { if (val.type) { @@ -270,17 +266,17 @@ export function cloneDeep(node: Object): Object { */ export function buildMatchMemberExpression(match:string, allowPartial?: boolean): Function { - var parts = match.split("."); + let parts = match.split("."); return function (member) { // not a member expression if (!t.isMemberExpression(member)) return false; - var search = [member]; - var i = 0; + let search = [member]; + let i = 0; while (search.length) { - var node = search.shift(); + let node = search.shift(); if (allowPartial && i === parts.length) { return true; @@ -321,7 +317,7 @@ export function buildMatchMemberExpression(match:string, allowPartial?: boolean) */ export function removeComments(node: Object): Object { - for (var key of (COMMENT_KEYS: Array)) { + for (let key of COMMENT_KEYS) { delete node[key]; } return node; @@ -338,15 +334,15 @@ export function inheritsComments(child: Object, parent: Object): Object { return child; } -export function inheritTrailingComments(child, parent) { +export function inheritTrailingComments(child: Object, parent: Object) { _inheritComments("trailingComments", child, parent); } -export function inheritLeadingComments(child, parent) { +export function inheritLeadingComments(child: Object, parent: Object) { _inheritComments("leadingComments", child, parent); } -export function inheritInnerComments(child, parent) { +export function inheritInnerComments(child: Object, parent: Object) { _inheritComments("innerComments", child, parent); } @@ -363,13 +359,13 @@ function _inheritComments(key, child, parent) { export function inherits(child: Object, parent: Object): Object { if (!child || !parent) return child; - for (let key of (t.INHERIT_KEYS.optional: Array)) { + for (let key of (t.INHERIT_KEYS.optional: Array)) { if (child[key] == null) { child[key] = parent[key]; } } - for (let key of (t.INHERIT_KEYS.force: Array)) { + for (let key of (t.INHERIT_KEYS.force: Array)) { child[key] = parent[key]; } @@ -379,19 +375,29 @@ export function inherits(child: Object, parent: Object): Object { } /** - * Description + * TODO */ -export function directive(value) { - return t.expressionStatement(t.literal(value)); +export function assertNode(node?) { + if (!isNode(node)) { + throw new TypeError("Not a valid node " + (node && node.type)); + } +} + +/** + * TODO + */ + +export function isNode(node?): boolean { + return !!(node && VISITOR_KEYS[node.type]); } // Optimize property access. toFastProperties(t); toFastProperties(t.VISITOR_KEYS); -// Export all type checkers from other files. -assign(t, require("./retrievers")); -assign(t, require("./validators")); -assign(t, require("./converters")); -assign(t, require("./flow")); +// +export * from "./retrievers"; +export * from "./validators"; +export * from "./converters"; +export * from "./flow"; diff --git a/packages/babel-types/src/react.js b/packages/babel-types/src/react.js index 255c67c381..8ec3f457b1 100644 --- a/packages/babel-types/src/react.js +++ b/packages/babel-types/src/react.js @@ -1,15 +1,20 @@ +/* @flow */ + import * as t from "./index"; -export var isReactComponent = t.buildMatchMemberExpression("React.Component"); +export let isReactComponent = t.buildMatchMemberExpression("React.Component"); -export function isCompatTag(tagName) { - return tagName && /^[a-z]|\-/.test(tagName); +export function isCompatTag(tagName?: string): boolean { + return !!tagName && /^[a-z]|\-/.test(tagName); } -function cleanJSXElementLiteralChild(child, args) { - var lines = child.value.split(/\r\n|\n|\r/); +function cleanJSXElementLiteralChild( + child: { value: string }, + args: Array, +) { + let lines = child.value.split(/\r\n|\n|\r/); - var lastNonEmptyLine = 0; + let lastNonEmptyLine = 0; for (let i = 0; i < lines.length; i++) { if (lines[i].match(/[^ \t]/)) { @@ -17,17 +22,17 @@ function cleanJSXElementLiteralChild(child, args) { } } - var str = ""; + let str = ""; for (let i = 0; i < lines.length; i++) { - var line = lines[i]; + let line = lines[i]; - var isFirstLine = i === 0; - var isLastLine = i === lines.length - 1; - var isLastNonEmptyLine = i === lastNonEmptyLine; + let isFirstLine = i === 0; + let isLastLine = i === lines.length - 1; + let isLastNonEmptyLine = i === lastNonEmptyLine; // replace rendered whitespace tabs with spaces - var trimmedLine = line.replace(/\t/g, " "); + let trimmedLine = line.replace(/\t/g, " "); // trim whitespace touching a newline if (!isFirstLine) { @@ -51,11 +56,11 @@ function cleanJSXElementLiteralChild(child, args) { if (str) args.push(t.stringLiteral(str)); } -export function buildChildren(node) { - var elems = []; +export function buildChildren(node: Object): Array { + let elems = []; - for (var i = 0; i < node.children.length; i++) { - var child = node.children[i]; + for (let i = 0; i < node.children.length; i++) { + let child = node.children[i]; if (t.isJSXText(child)) { cleanJSXElementLiteralChild(child, elems); diff --git a/packages/babel-types/src/retrievers.js b/packages/babel-types/src/retrievers.js index 09ae7115e9..15dfc5a86d 100644 --- a/packages/babel-types/src/retrievers.js +++ b/packages/babel-types/src/retrievers.js @@ -1,22 +1,27 @@ +/* @flow */ + import * as t from "./index"; /** * Return a list of binding identifiers associated with the input `node`. */ -export function getBindingIdentifiers(node: Object, duplicates?): Object { - var search = [].concat(node); - var ids = Object.create(null); +export function getBindingIdentifiers( + node: Object, + duplicates?: boolean, +): Object { + let search = [].concat(node); + let ids = Object.create(null); while (search.length) { - var id = search.shift(); + let id = search.shift(); if (!id) continue; - var keys = t.getBindingIdentifiers.keys[id.type]; + let keys = t.getBindingIdentifiers.keys[id.type]; if (t.isIdentifier(id)) { if (duplicates) { - var _ids = ids[id.name] = ids[id.name] || []; + let _ids = ids[id.name] = ids[id.name] || []; _ids.push(id); } else { ids[id.name] = id; @@ -26,8 +31,8 @@ export function getBindingIdentifiers(node: Object, duplicates?): Object { search.push(node.declaration); } } else if (keys) { - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; + for (let i = 0; i < keys.length; i++) { + let key = keys[i]; if (id[key]) { search = search.concat(id[key]); } @@ -63,6 +68,10 @@ getBindingIdentifiers.keys = { ImportDefaultSpecifier: ["local"], ImportDeclaration: ["specifiers"], + ExportSpecifier: ["exported"], + ExportNamespaceSpecifier: ["exported"], + ExportDefaultSpecifier: ["exported"], + FunctionDeclaration: ["id", "params"], FunctionExpression: ["id", "params"], @@ -73,7 +82,7 @@ getBindingIdentifiers.keys = { UpdateExpression: ["argument"], SpreadProperty: ["argument"], - Property: ["value"], + ObjectProperty: ["value"], AssignmentPattern: ["left"], ArrayPattern: ["elements"], diff --git a/packages/babel-types/src/validators.js b/packages/babel-types/src/validators.js index aa60e901f8..6223a914ac 100644 --- a/packages/babel-types/src/validators.js +++ b/packages/babel-types/src/validators.js @@ -1,3 +1,5 @@ +/* @flow */ + import { getBindingIdentifiers } from "./retrievers"; import esutils from "esutils"; import * as t from "./index"; @@ -7,11 +9,11 @@ import * as t from "./index"; */ export function isBinding(node: Object, parent: Object): boolean { - var keys = getBindingIdentifiers.keys[parent.type]; + let keys = getBindingIdentifiers.keys[parent.type]; if (keys) { - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var val = parent[key]; + for (let i = 0; i < keys.length; i++) { + let key = keys[i]; + let val = parent[key]; if (Array.isArray(val)) { if (val.indexOf(node) >= 0) return true; } else { @@ -51,13 +53,13 @@ export function isReferenced(node: Object, parent: Object): boolean { // yes: { [NODE]: "" } // yes: { NODE } // no: { NODE: "" } - case "Property": + case "ObjectProperty": if (parent.key === node) { return parent.computed; } - // no: var NODE = init; - // yes: var id = NODE; + // no: let NODE = init; + // yes: let id = NODE; case "VariableDeclarator": return parent.id !== node; @@ -66,7 +68,7 @@ export function isReferenced(node: Object, parent: Object): boolean { case "ArrowFunctionExpression": case "FunctionDeclaration": case "FunctionExpression": - for (var param of (parent.params: Array)) { + for (let param of (parent.params: Array)) { if (param === node) return false; } @@ -113,7 +115,7 @@ export function isReferenced(node: Object, parent: Object): boolean { return parent.id !== node; // yes: class { [NODE](){} } - case "MethodDefinition": + case "ClassMethod": return parent.key === node && parent.computed; // no: NODE: for (;;) {} @@ -134,9 +136,9 @@ export function isReferenced(node: Object, parent: Object): boolean { return parent.right === node; // no: [NODE = foo] = []; - // no: [foo = NODE] = []; + // yes: [foo = NODE] = []; case "AssignmentPattern": - return false; + return parent.right === node; // no: [NODE] = []; // no: ({ NODE }) = []; diff --git a/packages/babel/README.md b/packages/babel/README.md new file mode 100644 index 0000000000..17590de468 --- /dev/null +++ b/packages/babel/README.md @@ -0,0 +1 @@ +# babel diff --git a/packages/babel/cli.js b/packages/babel/cli.js new file mode 100755 index 0000000000..655dad48cd --- /dev/null +++ b/packages/babel/cli.js @@ -0,0 +1,5 @@ +console.error("The CLI has been moved into the package `babel-cli`."); +console.log(); +console.log("$ npm install -g babel-cli"); +console.log(); +process.exit(1); diff --git a/packages/babel/index.js b/packages/babel/index.js new file mode 100644 index 0000000000..06ca959245 --- /dev/null +++ b/packages/babel/index.js @@ -0,0 +1 @@ +throw new Error("The node API for `babel` has been moved to `babel-core`."); diff --git a/packages/babel/package.json b/packages/babel/package.json new file mode 100644 index 0000000000..6363259eb9 --- /dev/null +++ b/packages/babel/package.json @@ -0,0 +1,15 @@ +{ + "name": "babel", + "version": "5.10.32", + "description": "Turn ES6 code into readable vanilla ES5 with source maps", + "author": "Sebastian McKenzie ", + "homepage": "https://babeljs.io/", + "license": "MIT", + "repository": "babel/babel", + "preferGlobal": true, + "bin": { + "babel": "./cli.js", + "babel-node": "./cli.js", + "babel-external-helpers": "./cli.js" + } +} \ No newline at end of file diff --git a/packages/babylon/README.md b/packages/babylon/README.md index 12fee1e55f..876a5b01ff 100644 --- a/packages/babylon/README.md +++ b/packages/babylon/README.md @@ -32,13 +32,12 @@ Significant diversions are expected to occur in the future such as streaming, EB the top level raises an error. Set this to `true` to accept such code. +- **allowSuperOutsideMethod** TODO + - **sourceType**: Indicate the mode the code should be parsed in. Can be either `"script"` or `"module"`. -- **features**: Object containing names of all the proposed syntax you want - to support. - -- **plugins**: Object containg the plugins that you want to enable. +- **plugins**: Array containing the plugins that you want to enable. ### Example @@ -47,29 +46,28 @@ require("babylon").parse("code", { // parse in strict mode and allow module declarations sourceType: "module", - features: { + features: [ // enable experimental async functions - asyncFunctions: true - } + "asyncFunctions", - plugins: { // enable jsx and flow syntax - jsx: true, - flow: true - } + "jsx", + "flow" + ] }); ``` -### Features - - - `asyncFunctions` - - `doExpressions` - - `comprehensions` - - `trailingFunctionCommas` - - `objectRestSpread` - - `decorators` - ### Plugins - `jsx` - `flow` + - `asyncFunctions` + - `classConstructorCall` + - `doExpressions` + - `trailingFunctionCommas` + - `objectRestSpread` + - `decorators` + - `classProperties` + - `exportExtensions` + - `exponentiationOperator` + - `asyncGenerators` diff --git a/packages/babylon/package.json b/packages/babylon/package.json index 0a2151b37d..fa99ac5b90 100644 --- a/packages/babylon/package.json +++ b/packages/babylon/package.json @@ -1,6 +1,6 @@ { "name": "babylon", - "version": "5.8.23", + "version": "5.10.32", "description": "A JavaScript parser", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,9 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20" + "babel-runtime": "^5.10.32" }, "bin": { "babylon": "./bin/babylon.js" } -} +} \ No newline at end of file diff --git a/packages/babylon/src/options.js b/packages/babylon/src/options.js index 3b97f93a63..7beddde5ad 100755 --- a/packages/babylon/src/options.js +++ b/packages/babylon/src/options.js @@ -12,10 +12,12 @@ export const defaultOptions = { // When enabled, import/export statements are not constrained to // appearing at the top of the program. allowImportExportEverywhere: false, - plugins: {}, - // Babel-specific options - features: {}, - strictMode: null + // TODO + allowSuperOutsideMethod: false, + // An array of plugins to enable + plugins: [], + // TODO + strictMode: null, }; // Interpret and default an options object diff --git a/packages/babylon/src/parser/comments.js b/packages/babylon/src/parser/comments.js index 5a3e96abcc..344ba7e2c0 100644 --- a/packages/babylon/src/parser/comments.js +++ b/packages/babylon/src/parser/comments.js @@ -40,9 +40,9 @@ pp.addComment = function (comment) { pp.processComment = function (node) { if (node.type === "Program" && node.body.length > 0) return; - var stack = this.state.commentStack; + let stack = this.state.commentStack; - var lastChild, trailingComments, i; + let lastChild, trailingComments, i; if (this.state.trailingComments.length > 0) { // If the first comment in trailingComments comes after the @@ -62,7 +62,7 @@ pp.processComment = function (node) { this.state.trailingComments.length = 0; } } else { - var lastInStack = last(stack); + let lastInStack = last(stack); if (stack.length > 0 && lastInStack.trailingComments && lastInStack.trailingComments[0].start >= node.end) { trailingComments = lastInStack.trailingComments; lastInStack.trailingComments = null; @@ -80,7 +80,7 @@ pp.processComment = function (node) { node.leadingComments = lastChild.leadingComments; lastChild.leadingComments = null; } else { - // A leading comment for an anonymous class had been stolen by its first MethodDefinition, + // A leading comment for an anonymous class had been stolen by its first ClassMethod, // so this takes back the leading comment. // See also: https://github.com/eslint/espree/issues/158 for (i = lastChild.leadingComments.length - 2; i >= 0; --i) { diff --git a/packages/babylon/src/parser/expression.js b/packages/babylon/src/parser/expression.js index 8c9898429c..b27bf3abd2 100644 --- a/packages/babylon/src/parser/expression.js +++ b/packages/babylon/src/parser/expression.js @@ -30,9 +30,10 @@ const pp = Parser.prototype; // strict mode, init properties are also not allowed to be repeated. pp.checkPropClash = function (prop, propHash) { - if (prop.computed || prop.method || prop.shorthand) return; + if (prop.computed || prop.method) return; - let key = prop.key, name; + let key = prop.key; + let name; switch (key.type) { case "Identifier": name = key.name; @@ -47,8 +48,7 @@ pp.checkPropClash = function (prop, propHash) { return; } - let kind = prop.kind; - if (name === "__proto__" && kind === "init") { + if (name === "__proto__" && prop.kind === "init") { if (propHash.proto) this.raise(key.start, "Redefinition of __proto__ property"); propHash.proto = true; } @@ -225,11 +225,11 @@ pp.parseExprSubscripts = function (refShorthandDefaultPos) { if (refShorthandDefaultPos && refShorthandDefaultPos.start) { return expr; } else { - return this.parseSubscripts(expr, startPos, startLoc); + return this.parseSubscripts(expr, startPos, startLoc); } }; -pp.parseSubscripts = function(base, startPos, startLoc, noCalls) { +pp.parseSubscripts = function (base, startPos, startLoc, noCalls) { for (;;) { if (!noCalls && this.eat(tt.doubleColon)) { let node = this.startNodeAt(startPos, startLoc); @@ -255,11 +255,11 @@ pp.parseSubscripts = function(base, startPos, startLoc, noCalls) { let node = this.startNodeAt(startPos, startLoc); node.callee = base; - node.arguments = this.parseCallExpressionArguments(tt.parenR, this.hasFeature("trailingFunctionCommas"), possibleAsync); + node.arguments = this.parseCallExpressionArguments(tt.parenR, this.hasPlugin("trailingFunctionCommas"), possibleAsync); base = this.finishNode(node, "CallExpression"); if (possibleAsync && this.shouldParseAsyncArrow()) { - base = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node); + return this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node); } else { this.toReferencedList(node.arguments); } @@ -307,7 +307,7 @@ pp.shouldParseAsyncArrow = function () { }; pp.parseAsyncArrowFromCallExpression = function (node, call) { - if (!this.hasFeature("asyncFunctions")) this.unexpected(); + if (!this.hasPlugin("asyncFunctions")) this.unexpected(); this.expect(tt.arrow); return this.parseArrowExpression(node, call.arguments, true); }; @@ -328,7 +328,7 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { let node, canBeArrow = this.state.potentialArrowAt === this.state.start; switch (this.state.type) { case tt._super: - if (!this.state.inFunction) { + if (!this.state.inMethod && !this.options.allowSuperOutsideMethod) { this.raise(this.state.start, "'super' outside of function or class"); } @@ -337,6 +337,9 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { if (!this.match(tt.parenL) && !this.match(tt.bracketL) && !this.match(tt.dot)) { this.unexpected(); } + if (this.match(tt.parenL) && this.state.inMethod !== "constructor" && !this.options.allowSuperOutsideMethod) { + this.raise(node.start, "super() outside of class constructor"); + } return this.finishNode(node, "Super"); case tt._this: @@ -349,18 +352,22 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { case tt.name: node = this.startNode(); - let id = this.parseIdentifier(true); + let allowAwait = this.hasPlugin("asyncFunctions") && this.state.value === "await" && this.state.inAsync; + let allowYield = this.shouldAllowYieldIdentifier(); + let id = this.parseIdentifier(allowAwait || allowYield); - if (this.hasFeature("asyncFunctions")) { + if (this.hasPlugin("asyncFunctions")) { if (id.name === "await") { - if (this.inAsync) return this.parseAwait(node); + if (this.state.inAsync || this.inModule) { + return this.parseAwait(node); + } } else if (id.name === "async" && this.match(tt._function) && !this.canInsertSemicolon()) { this.next(); return this.parseFunction(node, false, false, true); } else if (canBeArrow && id.name === "async" && this.match(tt.name)) { - var params = [this.parseIdentifier()]; + let params = [this.parseIdentifier()]; this.expect(tt.arrow); - // var foo = bar => {}; + // let foo = bar => {}; return this.parseArrowExpression(node, params, true); } } @@ -372,14 +379,14 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { return id; case tt._do: - if (this.hasFeature("doExpressions")) { + if (this.hasPlugin("doExpressions")) { let node = this.startNode(); this.next(); - var oldInFunction = this.state.inFunction; - var oldLabels = this.state.labels; + let oldInFunction = this.state.inFunction; + let oldLabels = this.state.labels; this.state.labels = []; this.state.inFunction = false; - node.body = this.parseBlock(); + node.body = this.parseBlock(false, true); this.state.inFunction = oldInFunction; this.state.labels = oldLabels; return this.finishNode(node, "DoExpression"); @@ -405,8 +412,7 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { case tt._true: case tt._false: node = this.startNode(); - node.rawValue = node.value = this.match(tt._true); - node.raw = this.state.type.keyword; + node.value = this.match(tt._true); this.next(); return this.finishNode(node, "BooleanLiteral"); @@ -416,10 +422,6 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { case tt.bracketL: node = this.startNode(); this.next(); - // check whether this is array comprehension or regular array - if (this.hasFeature("comprehensions") && this.match(tt._for)) { - return this.parseComprehension(node, false); - } node.elements = this.parseExprList(tt.bracketR, true, true, refShorthandDefaultPos); this.toReferencedList(node.elements); return this.finishNode(node, "ArrayExpression"); @@ -464,8 +466,9 @@ pp.parseExprAtom = function (refShorthandDefaultPos) { pp.parseLiteral = function (value, type) { let node = this.startNode(); - node.rawValue = node.value = value; - node.raw = this.input.slice(this.state.start, this.state.end); + this.addExtra(node, "rawValue", value); + this.addExtra(node, "raw", this.input.slice(this.state.start, this.state.end)); + node.value = value; this.next(); return this.finishNode(node, type); }; @@ -483,10 +486,6 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow let val; this.next(); - if (this.hasFeature("comprehensions") && this.match(tt._for)) { - return this.parseComprehension(this.startNodeAt(startPos, startLoc), true); - } - let innerStartPos = this.state.start, innerStartLoc = this.state.startLoc; let exprList = [], first = true; let refShorthandDefaultPos = { start: 0 }, spreadStart, innerParenStart, optionalCommaStart; @@ -495,7 +494,7 @@ pp.parseParenAndDistinguishExpression = function (startPos, startLoc, canBeArrow first = false; } else { this.expect(tt.comma); - if (this.match(tt.parenR) && this.hasFeature("trailingFunctionCommas")) { + if (this.match(tt.parenR) && this.hasPlugin("trailingFunctionCommas")) { optionalCommaStart = this.state.start; break; } @@ -572,7 +571,7 @@ pp.parseNew = function () { node.callee = this.parseNoCallExpr(); if (this.eat(tt.parenL)) { - node.arguments = this.parseExprList(tt.parenR, this.hasFeature("trailingFunctionCommas")); + node.arguments = this.parseExprList(tt.parenR, this.hasPlugin("trailingFunctionCommas")); this.toReferencedList(node.arguments); } else { node.arguments = []; @@ -613,10 +612,14 @@ pp.parseTemplate = function () { // Parse an object literal or binding pattern. pp.parseObj = function (isPattern, refShorthandDefaultPos) { - let node = this.startNode(), first = true, propHash = Object.create(null); - node.properties = []; let decorators = []; + let propHash = Object.create(null); + let first = true; + let node = this.startNode(); + + node.properties = []; this.next(); + while (!this.eat(tt.braceR)) { if (first) { first = false; @@ -634,24 +637,30 @@ pp.parseObj = function (isPattern, refShorthandDefaultPos) { prop.decorators = decorators; decorators = []; } - if (this.hasFeature("objectRestSpread") && this.match(tt.ellipsis)) { + + if (this.hasPlugin("objectRestSpread") && this.match(tt.ellipsis)) { prop = this.parseSpread(); prop.type = isPattern ? "RestProperty" : "SpreadProperty"; node.properties.push(prop); continue; } + prop.method = false; prop.shorthand = false; + if (isPattern || refShorthandDefaultPos) { startPos = this.state.start; startLoc = this.state.startLoc; } + if (!isPattern) { isGenerator = this.eat(tt.star); } - if (!isPattern && this.hasFeature("asyncFunctions") && this.isContextual("async")) { + + if (!isPattern && this.hasPlugin("asyncFunctions") && this.isContextual("async")) { if (isGenerator) this.unexpected(); - var asyncId = this.parseIdentifier(); + + let asyncId = this.parseIdentifier(); if (this.match(tt.colon) || this.match(tt.parenL) || this.match(tt.braceR)) { prop.key = asyncId; } else { @@ -661,43 +670,58 @@ pp.parseObj = function (isPattern, refShorthandDefaultPos) { } else { this.parsePropertyName(prop); } + this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos); this.checkPropClash(prop, propHash); - node.properties.push(this.finishNode(prop, "Property")); + + if (prop.shorthand) { + this.addExtra(prop, "shorthand", true); + } + + node.properties.push(prop); } + if (decorators.length) { this.raise(this.state.start, "You have trailing decorators with no property"); } + return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression"); }; pp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos) { if (this.eat(tt.colon)) { prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssign(false, refShorthandDefaultPos); - prop.kind = "init"; - } else if (this.match(tt.parenL)) { + return this.finishNode(prop, "ObjectProperty"); + } + + if (this.match(tt.parenL)) { if (isPattern) this.unexpected(); - prop.kind = "init"; + prop.kind = "method"; prop.method = true; - prop.value = this.parseMethod(isGenerator, isAsync); - } else if (!prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (!this.match(tt.comma) && !this.match(tt.braceR))) { + this.parseMethod(prop, isGenerator, isAsync); + return this.finishNode(prop, "ObjectMethod"); + } + + if (!prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && (!this.match(tt.comma) && !this.match(tt.braceR))) { if (isGenerator || isAsync || isPattern) this.unexpected(); prop.kind = prop.key.name; this.parsePropertyName(prop); - prop.value = this.parseMethod(false); + this.parseMethod(prop, false); let paramCount = prop.kind === "get" ? 0 : 1; - if (prop.value.params.length !== paramCount) { - let start = prop.value.start; + if (prop.params.length !== paramCount) { + let start = prop.start; if (prop.kind === "get") { this.raise(start, "getter should have no params"); } else { this.raise(start, "setter should have exactly one param"); } } - } else if (!prop.computed && prop.key.type === "Identifier") { - prop.kind = "init"; + return this.finishNode(prop, "ObjectMethod"); + } + + if (!prop.computed && prop.key.type === "Identifier") { if (isPattern) { - var illegalBinding = this.isKeyword(prop.key.name); + let illegalBinding = this.isKeyword(prop.key.name); if (!illegalBinding && this.state.strict) { illegalBinding = reservedWords.strictBind(prop.key.name) || reservedWords.strict(prop.key.name); } @@ -714,9 +738,10 @@ pp.parseObjPropValue = function (prop, startPos, startLoc, isGenerator, isAsync, prop.value = prop.key.__clone(); } prop.shorthand = true; - } else { - this.unexpected(); + return this.finishNode(prop, "ObjectProperty"); } + + this.unexpected(); }; pp.parsePropertyName = function (prop) { @@ -737,21 +762,23 @@ pp.initFunction = function (node, isAsync) { node.id = null; node.generator = false; node.expression = false; - if (this.hasFeature("asyncFunctions")) { + if (this.hasPlugin("asyncFunctions")) { node.async = !!isAsync; } }; // Parse object or class method. -pp.parseMethod = function (isGenerator, isAsync) { - let node = this.startNode(); +pp.parseMethod = function (node, isGenerator, isAsync) { + let oldInMethod = this.state.inMethod; + this.state.inMethod = node.kind || true; this.initFunction(node, isAsync); this.expect(tt.parenL); - node.params = this.parseBindingList(tt.parenR, false, this.hasFeature("trailingFunctionCommas")); + node.params = this.parseBindingList(tt.parenR, false, this.hasPlugin("trailingFunctionCommas")); node.generator = isGenerator; this.parseFunctionBody(node); - return this.finishNode(node, "FunctionExpression"); + this.state.inMethod = oldInMethod; + return node; }; // Parse arrow function expression with given parameters. @@ -768,8 +795,8 @@ pp.parseArrowExpression = function (node, params, isAsync) { pp.parseFunctionBody = function (node, allowExpression) { let isExpression = allowExpression && !this.match(tt.braceL); - var oldInAsync = this.inAsync; - this.inAsync = node.async; + let oldInAsync = this.state.inAsync; + this.state.inAsync = node.async; if (isExpression) { node.body = this.parseMaybeAssign(); node.expression = true; @@ -782,21 +809,23 @@ pp.parseFunctionBody = function (node, allowExpression) { node.expression = false; this.state.inFunction = oldInFunc; this.state.inGenerator = oldInGen; this.state.labels = oldLabels; } - this.inAsync = oldInAsync; + this.state.inAsync = oldInAsync; // If this is a strict mode function, verify that argument names // are not repeated, and it does not try to bind the words `eval` // or `arguments`. - var checkLVal = this.state.strict; - var checkLValStrict = false; + let checkLVal = this.state.strict; + let checkLValStrict = false; + let isStrict = false; // arrow function if (allowExpression) checkLVal = true; // normal function if (!isExpression && node.body.directives.length) { - for (var directive of (node.body.directives: Array)) { - if (directive.value === "use strict") { + for (let directive of (node.body.directives: Array)) { + if (directive.value.value === "use strict") { + isStrict = true; checkLVal = true; checkLValStrict = true; break; @@ -804,6 +833,11 @@ pp.parseFunctionBody = function (node, allowExpression) { } } + // + if (isStrict && node.id && node.id.type === "Identifier" && node.id.name === "yield") { + this.raise(node.id.start, "Binding yield in strict mode"); + } + if (checkLVal) { let nameHash = Object.create(null); let oldStrict = this.state.strict; @@ -870,6 +904,10 @@ pp.parseIdentifier = function (liberal) { this.unexpected(); } + if (!liberal && node.name === "await" && this.state.inAsync) { + this.raise(node.start, "invalid use of await inside of an async function"); + } + this.next(); return this.finishNode(node, "Identifier"); }; @@ -899,25 +937,3 @@ pp.parseYield = function () { } return this.finishNode(node, "YieldExpression"); }; - -// Parses array and generator comprehensions. - -pp.parseComprehension = function (node, isGenerator) { - node.blocks = []; - while (this.match(tt._for)) { - let block = this.startNode(); - this.next(); - this.expect(tt.parenL); - block.left = this.parseBindingAtom(); - this.checkLVal(block.left, true); - this.expectContextual("of"); - block.right = this.parseExpression(); - this.expect(tt.parenR); - node.blocks.push(this.finishNode(block, "ComprehensionBlock")); - } - node.filter = this.eat(tt._if) ? this.parseParenExpression() : null; - node.body = this.parseExpression(); - this.expect(isGenerator ? tt.parenR : tt.bracketR); - node.generator = isGenerator; - return this.finishNode(node, "ComprehensionExpression"); -}; diff --git a/packages/babylon/src/parser/index.js b/packages/babylon/src/parser/index.js index 59dd256bae..6f9e2b3c26 100644 --- a/packages/babylon/src/parser/index.js +++ b/packages/babylon/src/parser/index.js @@ -4,8 +4,6 @@ import { reservedWords } from "../util/identifier"; import { getOptions } from "../options"; import Tokenizer from "../tokenizer"; -// Registered plugins - export const plugins = {}; export default class Parser extends Tokenizer { @@ -14,12 +12,10 @@ export default class Parser extends Tokenizer { super(options, input); this.options = options; + this.inModule = this.options.sourceType === "module"; this.isReservedWord = reservedWords[6]; this.input = input; - this.loadPlugins(this.options.plugins); - - // Figure out if it's a module code. - this.inModule = this.options.sourceType === "module"; + this.plugins = this.loadPlugins(this.options.plugins); // If enabled, skip leading hashbang line. if (this.state.pos === 0 && this.input[0] === "#" && this.input[1] === "!") { @@ -27,20 +23,31 @@ export default class Parser extends Tokenizer { } } - hasFeature(name: string): boolean { - return !!this.options.features[name]; + hasPlugin(name: string): boolean { + return !!(this.plugins["*"] || this.plugins[name]); } extend(name: string, f: Function) { this[name] = f(this[name]); } - loadPlugins(plugins) { - for (let name in plugins) { - let plugin = exports.plugins[name]; - if (!plugin) throw new Error(`Plugin '${name}' not found`); - plugin(this, plugins[name]); + loadPlugins(plugins: Array) { + let pluginMap = {}; + + if (plugins.indexOf("flow") >= 0) { + // ensure flow plugin loads last + plugins.splice(plugins.indexOf("flow"), 1); + plugins.push("flow"); } + + for (let name of plugins) { + pluginMap[name] = true; + + let plugin = exports.plugins[name]; + if (plugin) plugin(this); + } + + return pluginMap; } parse(): { diff --git a/packages/babylon/src/parser/lval.js b/packages/babylon/src/parser/lval.js index 333b6457b8..4955ff5b5b 100644 --- a/packages/babylon/src/parser/lval.js +++ b/packages/babylon/src/parser/lval.js @@ -22,8 +22,18 @@ pp.toAssignable = function (node, isBinding) { node.type = "ObjectPattern"; for (let prop of (node.properties: Array)) { if (prop.type === "SpreadProperty") continue; - if (prop.kind !== "init") this.raise(prop.key.start, "Object pattern can't contain getter or setter"); - this.toAssignable(prop.value, isBinding); + + if (prop.type === "ObjectMethod") { + if (prop.kind === "get" || prop.kind === "set") { + this.raise(prop.key.start, "Object pattern can't contain getter or setter"); + } else { + this.raise(prop.key.start, "Object pattern can't contain methods"); + } + } + + if (prop.type === "ObjectProperty") { + this.toAssignable(prop.value, isBinding); + } } break; @@ -94,14 +104,25 @@ pp.parseSpread = function (refShorthandDefaultPos) { pp.parseRest = function () { let node = this.startNode(); this.next(); - node.argument = this.parseIdentifier(); + node.argument = this.parseBindingIdentifier(); return this.finishNode(node, "RestElement"); }; +pp.shouldAllowYieldIdentifier = function () { + return this.match(tt._yield) && !this.state.strict && !this.state.inGenerator; +}; + +pp.parseBindingIdentifier = function () { + return this.parseIdentifier(this.shouldAllowYieldIdentifier()); +}; + // Parses lvalue (assignable) atom. pp.parseBindingAtom = function () { switch (this.state.type) { + case tt._yield: + if (this.state.strict || this.state.inGenerator) this.unexpected(); + case tt.name: return this.parseIdentifier(true); @@ -120,7 +141,8 @@ pp.parseBindingAtom = function () { }; pp.parseBindingList = function (close, allowEmpty, allowTrailingComma) { - var elts = [], first = true; + let elts = []; + let first = true; while (!this.eat(close)) { if (first) { first = false; @@ -136,7 +158,7 @@ pp.parseBindingList = function (close, allowEmpty, allowTrailingComma) { this.expect(close); break; } else { - var left = this.parseMaybeDefault(); + let left = this.parseMaybeDefault(); this.parseAssignableListItemTypes(left); elts.push(this.parseMaybeDefault(null, null, left)); } @@ -187,7 +209,7 @@ pp.checkLVal = function (expr, isBinding, checkClashes) { case "ObjectPattern": for (let prop of (expr.properties: Array)) { - if (prop.type === "Property") prop = prop.value; + if (prop.type === "ObjectProperty") prop = prop.value; this.checkLVal(prop, isBinding, checkClashes); } break; diff --git a/packages/babylon/src/parser/node.js b/packages/babylon/src/parser/node.js index d3544bc816..e0dcf33b08 100644 --- a/packages/babylon/src/parser/node.js +++ b/packages/babylon/src/parser/node.js @@ -21,8 +21,8 @@ class Node { loc: SourceLocation; __clone(): Node { - var node2 = new Node; - for (var key in this) node2[key] = this[key]; + let node2 = new Node; + for (let key in this) node2[key] = this[key]; return node2; } } diff --git a/packages/babylon/src/parser/statement.js b/packages/babylon/src/parser/statement.js index 14cc0daa40..ef7649dc4b 100644 --- a/packages/babylon/src/parser/statement.js +++ b/packages/babylon/src/parser/statement.js @@ -16,7 +16,7 @@ const pp = Parser.prototype; pp.parseTopLevel = function (file, program) { program.sourceType = this.options.sourceType; - this.parseBlockBody(program, true, tt.eof); + this.parseBlockBody(program, true, true, tt.eof); file.program = this.finishNode(program, "Program"); file.comments = this.state.comments; @@ -30,11 +30,21 @@ const loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; // TODO pp.parseDirective = function () { - let node = this.startNode(); - node.raw = this.input.slice(this.state.start, this.state.end); - node.value = node.raw.slice(1, -1); // remove quotes + let directiveLiteral = this.startNode(); + let directive = this.startNode(); + + let raw = this.input.slice(this.state.start, this.state.end); + let val = directiveLiteral.value = raw.slice(1, -1); // remove quotes + + this.addExtra(directiveLiteral, "raw", raw); + this.addExtra(directiveLiteral, "rawValue", val); + this.next(); - return this.finishNode(node, "Directive"); + + directive.value = this.finishNode(directiveLiteral, "DirectiveLiteral"); + + this.semicolon(); + return this.finishNode(directive, "Directive"); }; // Parse a single statement. @@ -89,16 +99,18 @@ pp.parseStatement = function (declaration, topLevel) { case tt._export: case tt._import: if (!this.options.allowImportExportEverywhere) { - if (!topLevel) + if (!topLevel) { this.raise(this.state.start, "'import' and 'export' may only appear at the top level"); + } - if (!this.inModule) + if (!this.inModule) { this.raise(this.state.start, "'import' and 'export' may appear only with 'sourceType: module'"); + } } return starttype === tt._import ? this.parseImport(node) : this.parseExport(node); case tt.name: - if (this.hasFeature("asyncFunctions") && this.state.value === "async") { + if (this.hasPlugin("asyncFunctions") && this.state.value === "async") { // peek ahead and see if next token is a function let state = this.state.clone(); this.next(); @@ -147,7 +159,7 @@ pp.parseDecorators = function (allowExport) { }; pp.parseDecorator = function () { - if (!this.hasFeature("decorators")) { + if (!this.hasPlugin("decorators")) { this.unexpected(); } let node = this.startNode(); @@ -171,7 +183,8 @@ pp.parseBreakContinueStatement = function (node, keyword) { // Verify that there is an actual destination to break or // continue to. - for (var i = 0; i < this.state.labels.length; ++i) { + let i; + for (i = 0; i < this.state.labels.length; ++i) { let lab = this.state.labels[i]; if (node.label == null || lab.name === node.label.name) { if (lab.kind != null && (isBreak || lab.kind === "loop")) break; @@ -288,7 +301,8 @@ pp.parseSwitchStatement = function (node) { // nodes. `cur` is used to keep the node that we are currently // adding statements to. - for (var cur, sawDefault; !this.match(tt.braceR); ) { + let cur; + for (let sawDefault; !this.match(tt.braceR); ) { if (this.match(tt._case) || this.match(tt._default)) { let isCase = this.match(tt._case); if (cur) this.finishNode(cur, "SwitchCase"); @@ -304,8 +318,11 @@ pp.parseSwitchStatement = function (node) { } this.expect(tt.colon); } else { - if (!cur) this.unexpected(); - cur.consequent.push(this.parseStatement(true)); + if (cur) { + cur.consequent.push(this.parseStatement(true)); + } else { + this.unexpected(); + } } } if (cur) this.finishNode(cur, "SwitchCase"); @@ -325,19 +342,23 @@ pp.parseThrowStatement = function (node) { // Reused empty array added for node fields that are always empty. -var empty = []; +let empty = []; pp.parseTryStatement = function (node) { this.next(); + node.block = this.parseBlock(); node.handler = null; + if (this.match(tt._catch)) { let clause = this.startNode(); this.next(); + this.expect(tt.parenL); clause.param = this.parseBindingAtom(); this.checkLVal(clause.param, true, Object.create(null)); this.expect(tt.parenR); + clause.body = this.parseBlock(); node.handler = this.finishNode(clause, "CatchClause"); } @@ -416,35 +437,55 @@ pp.parseExpressionStatement = function (node, expr) { // strict"` declarations when `allowStrict` is true (used for // function bodies). -pp.parseBlock = function (allowStrict) { +pp.parseBlock = function (allowDirectives?) { let node = this.startNode(); this.expect(tt.braceL); - this.parseBlockBody(node, allowStrict, tt.braceR); + this.parseBlockBody(node, allowDirectives, false, tt.braceR); return this.finishNode(node, "BlockStatement"); }; // TODO -pp.parseBlockBody = function (node, allowStrict, end) { +pp.parseBlockBody = function (node, allowDirectives, topLevel, end) { node.body = []; node.directives = []; let parsedNonDirective = false; let oldStrict; + let octalPosition; while (!this.eat(end)) { - if (!parsedNonDirective && this.match(tt.string)) { - let stmt = this.parseDirective(); - node.directives.push(stmt); + if (allowDirectives && !parsedNonDirective && this.match(tt.string)) { + let oldState = this.state; + let lookahead = this.lookahead(); + this.state = lookahead; + let isDirective = this.isLineTerminator(); + this.state = oldState; - if (allowStrict && stmt.value === "use strict") { - oldStrict = this.state.strict; - this.setStrict(this.state.strict = true); + if (isDirective) { + if (this.state.containsOctal && !octalPosition) { + octalPosition = this.state.octalPosition; + } + + let stmt = this.parseDirective(); + node.directives.push(stmt); + + if (allowDirectives && stmt.value.value === "use strict") { + oldStrict = this.state.strict; + this.state.strict = true; + this.setStrict(true); + + if (octalPosition) { + this.raise(octalPosition, "Octal literal in strict mode"); + } + } + + continue; } - } else { - parsedNonDirective = true; - node.body.push(this.parseStatement(true)); } + + parsedNonDirective = true; + node.body.push(this.parseStatement(true, topLevel)); } if (oldStrict === false) { @@ -514,25 +555,39 @@ pp.parseVarHead = function (decl) { // `isStatement` parameter). pp.parseFunction = function (node, isStatement, allowExpressionBody, isAsync, optionalId) { - this.initFunction(node, isAsync); - node.generator = this.eat(tt.star); + let oldInMethod = this.state.inMethod; + this.state.inMethod = false; - if (isStatement && !optionalId && !this.match(tt.name)) { + this.initFunction(node, isAsync); + + if (this.match(tt.star)) { + if (node.async && !this.hasPlugin("asyncGenerators")) { + this.unexpected(); + } else { + node.generator = true; + this.next(); + } + } + + if (isStatement && !optionalId && !this.match(tt.name) && !this.match(tt._yield)) { this.unexpected(); } - if (this.match(tt.name)) { - node.id = this.parseIdentifier(); + if (this.match(tt.name) || this.match(tt._yield)) { + node.id = this.parseBindingIdentifier(); } this.parseFunctionParams(node); this.parseFunctionBody(node, allowExpressionBody); + + this.state.inMethod = oldInMethod; + return this.finishNode(node, isStatement ? "FunctionDeclaration" : "FunctionExpression"); }; pp.parseFunctionParams = function (node) { this.expect(tt.parenL); - node.params = this.parseBindingList(tt.parenR, false, this.hasFeature("trailingFunctionCommas")); + node.params = this.parseBindingList(tt.parenR, false, this.hasPlugin("trailingFunctionCommas")); }; // Parse a class declaration or literal (depending on the @@ -542,51 +597,99 @@ pp.parseClass = function (node, isStatement, optionalId) { this.next(); this.parseClassId(node, isStatement, optionalId); this.parseClassSuper(node); - var classBody = this.startNode(); + this.parseClassBody(node); + return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); +}; + +pp.isClassProperty = function () { + return this.match(tt.eq) || this.isLineTerminator(); +}; + +pp.parseClassBody = function (node) { + // class bodies are implicitly strict + let oldStrict = this.state.strict; + this.state.strict = true; + + let hadConstructorCall = false; let hadConstructor = false; - classBody.body = []; - this.expect(tt.braceL); let decorators = []; + let classBody = this.startNode(); + + classBody.body = []; + + this.expect(tt.braceL); + while (!this.eat(tt.braceR)) { - if (this.eat(tt.semi)) continue; + if (this.eat(tt.semi)) { + continue; + } + if (this.match(tt.at)) { decorators.push(this.parseDecorator()); continue; } - var method = this.startNode(); + + let method = this.startNode(); + + // steal the decorators if there are any if (decorators.length) { method.decorators = decorators; decorators = []; } + + let isConstructorCall = false; let isMaybeStatic = this.match(tt.name) && this.state.value === "static"; - var isGenerator = this.eat(tt.star), isAsync = false; + let isGenerator = this.eat(tt.star); + let isGetSet = false; + let isAsync = false; + this.parsePropertyName(method); + method.static = isMaybeStatic && !this.match(tt.parenL); if (method.static) { if (isGenerator) this.unexpected(); isGenerator = this.eat(tt.star); this.parsePropertyName(method); } - if (!isGenerator && method.key.type === "Identifier" && !method.computed && this.isClassProperty()) { - classBody.body.push(this.parseClassProperty(method)); - continue; + + if (!isGenerator && method.key.type === "Identifier" && !method.computed) { + if (this.isClassProperty()) { + classBody.body.push(this.parseClassProperty(method)); + continue; + } + + if (this.hasPlugin("classConstructorCall") && method.key.name === "call" && this.match(tt.name) && this.state.value === "constructor") { + isConstructorCall = true; + this.parsePropertyName(method); + } } - if (this.hasFeature("asyncFunctions") && !this.match(tt.parenL) && - !method.computed && method.key.type === "Identifier" && method.key.name === "async") { + + let isAsyncMethod = this.hasPlugin("asyncFunctions") && !this.match(tt.parenL) && !method.computed && method.key.type === "Identifier" && method.key.name === "async"; + if (isAsyncMethod) { + if (this.hasPlugin("asyncGenerators") && this.eat(tt.star)) isGenerator = true; isAsync = true; this.parsePropertyName(method); } - let isGetSet = false; + method.kind = "method"; + if (!method.computed) { - let {key} = method; + let { key } = method; + + // handle get/set methods + // eg. class Foo { get bar() {} set bar() {} } if (!isAsync && !isGenerator && key.type === "Identifier" && !this.match(tt.parenL) && (key.name === "get" || key.name === "set")) { isGetSet = true; method.kind = key.name; key = this.parsePropertyName(method); } - if (!method.static && (key.type === "Identifier" && key.name === "constructor" || - key.type === "StringLiteral" && key.value === "constructor")) { + + // disallow invalid constructors + let isConstructor = !isConstructorCall && !method.static && ( + (key.type === "Identifier" && key.name === "constructor") || + (key.type === "StringLiteral" && key.value === "constructor") + ); + if (isConstructor) { if (hadConstructor) this.raise(key.start, "Duplicate constructor in the same class"); if (isGetSet) this.raise(key.start, "Constructor can't have get/set modifier"); if (isGenerator) this.raise(key.start, "Constructor can't be a generator"); @@ -594,15 +697,37 @@ pp.parseClass = function (node, isStatement, optionalId) { method.kind = "constructor"; hadConstructor = true; } + + // disallow static prototype method + let isStaticPrototype = method.static && ( + (key.type === "Identifier" && key.name === "prototype") || + (key.type === "StringLiteral" && key.value === "prototype") + ); + if (isStaticPrototype) { + this.raise(key.start, "Classes may not have static property named prototype"); + } } - if (method.kind === "constructor" && method.decorators) { + + // convert constructor to a constructor call + if (isConstructorCall) { + if (hadConstructorCall) this.raise(method.start, "Duplicate constructor call in the same class"); + method.kind = "constructorCall"; + hadConstructorCall = true; + } + + // disallow decorators on class constructors + if ((method.kind === "constructor" || method.kind === "constructorCall") && method.decorators) { this.raise(method.start, "You can't attach decorators to a class constructor"); } + this.parseClassMethod(classBody, method, isGenerator, isAsync); + + // get methods aren't allowed to have any parameters + // set methods must have exactly 1 parameter if (isGetSet) { let paramCount = method.kind === "get" ? 0 : 1; - if (method.value.params.length !== paramCount) { - let start = method.value.start; + if (method.params.length !== paramCount) { + let start = method.start; if (method.kind === "get") { this.raise(start, "getter should have no params"); } else { @@ -617,16 +742,13 @@ pp.parseClass = function (node, isStatement, optionalId) { } node.body = this.finishNode(classBody, "ClassBody"); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); -}; -pp.isClassProperty = function () { - return this.match(tt.eq) || (this.match(tt.semi) || this.canInsertSemicolon()); + this.state.strict = oldStrict; }; pp.parseClassProperty = function (node) { if (this.match(tt.eq)) { - if (!this.hasFeature("classProperties")) this.unexpected(); + if (!this.hasPlugin("classProperties")) this.unexpected(); this.next(); node.value = this.parseMaybeAssign(); } else { @@ -637,8 +759,8 @@ pp.parseClassProperty = function (node) { }; pp.parseClassMethod = function (classBody, method, isGenerator, isAsync) { - method.value = this.parseMethod(isGenerator, isAsync); - classBody.body.push(this.finishNode(method, "MethodDefinition")); + this.parseMethod(method, isGenerator, isAsync); + classBody.body.push(this.finishNode(method, "ClassMethod")); }; pp.parseClassId = function (node, isStatement, optionalId) { @@ -665,7 +787,7 @@ pp.parseExport = function (node) { if (this.match(tt.star)) { let specifier = this.startNode(); this.next(); - if (this.hasFeature("exportExtensions") && this.eatContextual("as")) { + if (this.hasPlugin("exportExtensions") && this.eatContextual("as")) { specifier.exported = this.parseIdentifier(); node.specifiers = [this.finishNode(specifier, "ExportNamespaceSpecifier")]; this.parseExportSpecifiersMaybe(node); @@ -674,7 +796,7 @@ pp.parseExport = function (node) { this.parseExportFrom(node, true); return this.finishNode(node, "ExportAllDeclaration"); } - } else if (this.hasFeature("exportExtensions") && this.isExportDefaultSpecifier()) { + } else if (this.hasPlugin("exportExtensions") && this.isExportDefaultSpecifier()) { let specifier = this.startNode(); specifier.exported = this.parseIdentifier(true); node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; @@ -730,7 +852,7 @@ pp.isExportDefaultSpecifier = function () { return false; } - var lookahead = this.lookahead(); + let lookahead = this.lookahead(); return lookahead.type === tt.comma || (lookahead.type === tt.name && lookahead.value === "from"); }; @@ -756,12 +878,12 @@ pp.parseExportFrom = function (node, expect?) { }; pp.shouldParseExportDeclaration = function () { - return this.hasFeature("asyncFunctions") && this.isContextual("async"); + return this.hasPlugin("asyncFunctions") && this.isContextual("async"); }; pp.checkExport = function (node) { if (this.state.decorators.length) { - var isClass = node.declaration && (node.declaration.type === "ClassDeclaration" || node.declaration.type === "ClassExpression"); + let isClass = node.declaration && (node.declaration.type === "ClassDeclaration" || node.declaration.type === "ClassExpression"); if (!node.declaration || !isClass) { this.raise(node.start, "You can only use decorators on an export when exporting a class"); } @@ -826,10 +948,10 @@ pp.parseImport = function (node) { // Parses a comma-separated list of module imports. pp.parseImportSpecifiers = function (node) { - var first = true; + let first = true; if (this.match(tt.name)) { // import defaultObj, { x, y as z } from '...' - var startPos = this.state.start, startLoc = this.state.startLoc; + let startPos = this.state.start, startLoc = this.state.startLoc; node.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(), startPos, startLoc)); if (!this.eat(tt.comma)) return; } @@ -862,7 +984,7 @@ pp.parseImportSpecifiers = function (node) { }; pp.parseImportSpecifierDefault = function (id, startPos, startLoc) { - var node = this.startNodeAt(startPos, startLoc); + let node = this.startNodeAt(startPos, startLoc); node.local = id; this.checkLVal(node.local, true); return this.finishNode(node, "ImportDefaultSpecifier"); diff --git a/packages/babylon/src/parser/util.js b/packages/babylon/src/parser/util.js index e20e2467c9..64d4bffe3c 100644 --- a/packages/babylon/src/parser/util.js +++ b/packages/babylon/src/parser/util.js @@ -13,7 +13,7 @@ const pp = Parser.prototype; pp.addExtra = function (node, key, val) { if (!node) return; - var extra = node.extra = node.extra || {}; + let extra = node.extra = node.extra || {}; extra[key] = val; }; diff --git a/packages/babylon/src/plugins/flow.js b/packages/babylon/src/plugins/flow.js index 7fe1d97d19..25e0ced340 100644 --- a/packages/babylon/src/plugins/flow.js +++ b/packages/babylon/src/plugins/flow.js @@ -3,13 +3,13 @@ import { types as tt } from "../tokenizer/types"; import Parser from "../parser"; -var pp = Parser.prototype; +let pp = Parser.prototype; pp.flowParseTypeInitialiser = function (tok) { - var oldInType = this.state.inType; + let oldInType = this.state.inType; this.state.inType = true; this.expect(tok || tt.colon); - var type = this.flowParseType(); + let type = this.flowParseType(); this.state.inType = oldInType; return type; }; @@ -23,10 +23,10 @@ pp.flowParseDeclareClass = function (node) { pp.flowParseDeclareFunction = function (node) { this.next(); - var id = node.id = this.parseIdentifier(); + let id = node.id = this.parseIdentifier(); - var typeNode = this.startNode(); - var typeContainer = this.startNode(); + let typeNode = this.startNode(); + let typeContainer = this.startNode(); if (this.isRelational("<")) { typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); @@ -35,7 +35,7 @@ pp.flowParseDeclareFunction = function (node) { } this.expect(tt.parenL); - var tmp = this.flowParseFunctionTypeParams(); + let tmp = this.flowParseFunctionTypeParams(); typeNode.params = tmp.params; typeNode.rest = tmp.rest; this.expect(tt.parenR); @@ -81,11 +81,11 @@ pp.flowParseDeclareModule = function (node) { node.id = this.parseIdentifier(); } - var bodyNode = node.body = this.startNode(); - var body = bodyNode.body = []; + let bodyNode = node.body = this.startNode(); + let body = bodyNode.body = []; this.expect(tt.braceL); while (!this.match(tt.braceR)) { - var node2 = this.startNode(); + let node2 = this.startNode(); // todo: declare check this.next(); @@ -122,7 +122,7 @@ pp.flowParseInterfaceish = function (node, allowStatic) { }; pp.flowParseInterfaceExtends = function () { - var node = this.startNode(); + let node = this.startNode(); node.id = this.parseIdentifier(); if (this.isRelational("<")) { @@ -159,7 +159,7 @@ pp.flowParseTypeAlias = function (node) { // Type annotations pp.flowParseTypeParameterDeclaration = function () { - var node = this.startNode(); + let node = this.startNode(); node.params = []; this.expectRelational("<"); @@ -175,7 +175,7 @@ pp.flowParseTypeParameterDeclaration = function () { }; pp.flowParseTypeParameterInstantiation = function () { - var node = this.startNode(), oldInType = this.state.inType; + let node = this.startNode(), oldInType = this.state.inType; node.params = []; this.state.inType = true; @@ -238,7 +238,7 @@ pp.flowParseObjectTypeMethodish = function (node) { }; pp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) { - var node = this.startNodeAt(startPos, startLoc); + let node = this.startNodeAt(startPos, startLoc); node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(startPos, startLoc)); node.static = isStatic; node.key = key; @@ -248,7 +248,7 @@ pp.flowParseObjectTypeMethod = function (startPos, startLoc, isStatic, key) { }; pp.flowParseObjectTypeCallProperty = function (node, isStatic) { - var valueNode = this.startNode(); + let valueNode = this.startNode(); node.static = isStatic; node.value = this.flowParseObjectTypeMethodish(valueNode); this.flowObjectTypeSemicolon(); @@ -256,10 +256,10 @@ pp.flowParseObjectTypeCallProperty = function (node, isStatic) { }; pp.flowParseObjectType = function (allowStatic) { - var nodeStart = this.startNode(); - var node; - var propertyKey; - var isStatic; + let nodeStart = this.startNode(); + let node; + let propertyKey; + let isStatic; nodeStart.callProperties = []; nodeStart.properties = []; @@ -268,8 +268,8 @@ pp.flowParseObjectType = function (allowStatic) { this.expect(tt.braceL); while (!this.match(tt.braceR)) { - var optional = false; - var startPos = this.state.start, startLoc = this.state.startLoc; + let optional = false; + let startPos = this.state.start, startLoc = this.state.startLoc; node = this.startNode(); if (allowStatic && this.isContextual("static")) { this.next(); @@ -315,13 +315,13 @@ pp.flowObjectTypeSemicolon = function () { }; pp.flowParseGenericType = function (startPos, startLoc, id) { - var node = this.startNodeAt(startPos, startLoc); + let node = this.startNodeAt(startPos, startLoc); node.typeParameters = null; node.id = id; while (this.eat(tt.dot)) { - var node2 = this.startNodeAt(startPos, startLoc); + let node2 = this.startNodeAt(startPos, startLoc); node2.qualification = node.id; node2.id = this.parseIdentifier(); node.id = this.finishNode(node2, "QualifiedTypeIdentifier"); @@ -335,14 +335,14 @@ pp.flowParseGenericType = function (startPos, startLoc, id) { }; pp.flowParseTypeofType = function () { - var node = this.startNode(); + let node = this.startNode(); this.expect(tt._typeof); node.argument = this.flowParsePrimaryType(); return this.finishNode(node, "TypeofTypeAnnotation"); }; pp.flowParseTupleType = function () { - var node = this.startNode(); + let node = this.startNode(); node.types = []; this.expect(tt.bracketL); // We allow trailing commas @@ -356,8 +356,8 @@ pp.flowParseTupleType = function () { }; pp.flowParseFunctionTypeParam = function () { - var optional = false; - var node = this.startNode(); + let optional = false; + let node = this.startNode(); node.name = this.parseIdentifier(); if (this.eat(tt.question)) { optional = true; @@ -368,7 +368,7 @@ pp.flowParseFunctionTypeParam = function () { }; pp.flowParseFunctionTypeParams = function () { - var ret = { params: [], rest: null }; + let ret = { params: [], rest: null }; while (this.match(tt.name)) { ret.params.push(this.flowParseFunctionTypeParam()); if (!this.match(tt.parenR)) { @@ -411,11 +411,11 @@ pp.flowIdentToTypeAnnotation = function (startPos, startLoc, node, id) { // primary types are kind of like primary expressions...they're the // primitives with which other types are constructed. pp.flowParsePrimaryType = function () { - var startPos = this.state.start, startLoc = this.state.startLoc; - var node = this.startNode(); - var tmp; - var type; - var isGroupedType = false; + let startPos = this.state.start, startLoc = this.state.startLoc; + let node = this.startNode(); + let tmp; + let type; + let isGroupedType = false; switch (this.state.type) { case tt.name: @@ -449,7 +449,7 @@ pp.flowParsePrimaryType = function () { // Check to see if this is actually a grouped type if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) { if (this.match(tt.name)) { - var token = this.lookahead().type; + let token = this.lookahead().type; isGroupedType = token !== tt.question && token !== tt.colon; } else { isGroupedType = true; @@ -490,8 +490,9 @@ pp.flowParsePrimaryType = function () { return this.finishNode(node, "FunctionTypeAnnotation"); case tt.string: - node.rawValue = node.value = this.state.value; - node.raw = this.input.slice(this.state.start, this.state.end); + node.value = this.state.value; + this.addExtra(node, "rawValue", node.value); + this.addExtra(node, "raw", this.input.slice(this.state.start, this.state.end)); this.next(); return this.finishNode(node, "StringLiteralTypeAnnotation"); @@ -501,8 +502,9 @@ pp.flowParsePrimaryType = function () { return this.finishNode(node, "BooleanLiteralTypeAnnotation"); case tt.num: - node.rawValue = node.value = this.state.value; - node.raw = this.input.slice(this.state.start, this.state.end); + node.value = this.state.value; + this.addExtra(node, "rawValue", node.value); + this.addExtra(node, "raw", this.input.slice(this.state.start, this.state.end)); this.next(); return this.finishNode(node, "NumberLiteralTypeAnnotation"); @@ -516,8 +518,8 @@ pp.flowParsePrimaryType = function () { }; pp.flowParsePostfixType = function () { - var node = this.startNode(); - var type = node.elementType = this.flowParsePrimaryType(); + let node = this.startNode(); + let type = node.elementType = this.flowParsePrimaryType(); if (this.match(tt.bracketL)) { this.expect(tt.bracketL); this.expect(tt.bracketR); @@ -528,7 +530,7 @@ pp.flowParsePostfixType = function () { }; pp.flowParsePrefixType = function () { - var node = this.startNode(); + let node = this.startNode(); if (this.eat(tt.question)) { node.typeAnnotation = this.flowParsePrefixType(); return this.finishNode(node, "NullableTypeAnnotation"); @@ -538,8 +540,8 @@ pp.flowParsePrefixType = function () { }; pp.flowParseIntersectionType = function () { - var node = this.startNode(); - var type = this.flowParsePrefixType(); + let node = this.startNode(); + let type = this.flowParsePrefixType(); node.types = [type]; while (this.eat(tt.bitwiseAND)) { node.types.push(this.flowParsePrefixType()); @@ -548,8 +550,8 @@ pp.flowParseIntersectionType = function () { }; pp.flowParseUnionType = function () { - var node = this.startNode(); - var type = this.flowParseIntersectionType(); + let node = this.startNode(); + let type = this.flowParseIntersectionType(); node.types = [type]; while (this.eat(tt.bitwiseOR)) { node.types.push(this.flowParseIntersectionType()); @@ -558,22 +560,22 @@ pp.flowParseUnionType = function () { }; pp.flowParseType = function () { - var oldInType = this.state.inType; + let oldInType = this.state.inType; this.state.inType = true; - var type = this.flowParseUnionType(); + let type = this.flowParseUnionType(); this.state.inType = oldInType; return type; }; pp.flowParseTypeAnnotation = function () { - var node = this.startNode(); + let node = this.startNode(); node.typeAnnotation = this.flowParseTypeInitialiser(); return this.finishNode(node, "TypeAnnotation"); }; pp.flowParseTypeAnnotatableIdentifier = function (requireTypeAnnotation, canBeOptionalParam) { - var ident = this.parseIdentifier(); - var isOptionalParam = false; + let ident = this.parseIdentifier(); + let isOptionalParam = false; if (canBeOptionalParam && this.eat(tt.question)) { this.expect(tt.question); @@ -612,7 +614,7 @@ export default function (instance) { return function (declaration, topLevel) { // strict mode handling of `interface` since it's a reserved word if (this.state.strict && this.match(tt.name) && this.state.value === "interface") { - var node = this.startNode(); + let node = this.startNode(); this.next(); return this.flowParseInterface(node); } else { @@ -652,7 +654,7 @@ export default function (instance) { instance.extend("parseParenItem", function () { return function (node, startLoc, startPos, forceArrow?) { if (this.match(tt.colon)) { - var typeCastNode = this.startNodeAt(startLoc, startPos); + let typeCastNode = this.startNodeAt(startLoc, startPos); typeCastNode.expression = node; typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); @@ -662,7 +664,7 @@ export default function (instance) { if (this.eat(tt.arrow)) { // ((lol): number => {}); - var func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), [node]); + let func = this.parseArrowExpression(this.startNodeAt(startLoc, startPos), [node]); func.returnType = typeCastNode.typeAnnotation; return func; } else { @@ -689,7 +691,7 @@ export default function (instance) { if (this.isContextual("type")) { node.exportKind = "type"; - var declarationNode = this.startNode(); + let declarationNode = this.startNode(); this.next(); if (this.match(tt.braceL)) { @@ -754,8 +756,8 @@ export default function (instance) { // turn type casts that we found in function parameter head into type annotated params instance.extend("toAssignableList", function (inner) { return function (exprList, isBinding) { - for (var i = 0; i < exprList.length; i++) { - var expr = exprList[i]; + for (let i = 0; i < exprList.length; i++) { + let expr = exprList[i]; if (expr && expr.type === "TypeCastExpression") { exprList[i] = typeCastToParameter(expr); } @@ -768,8 +770,8 @@ export default function (instance) { // type casts that we've found that are illegal in this context instance.extend("toReferencedList", function () { return function (exprList) { - for (var i = 0; i < exprList.length; i++) { - var expr = exprList[i]; + for (let i = 0; i < exprList.length; i++) { + let expr = exprList[i]; if (expr && expr._exprListItem && expr.type === "TypeCastExpression") { this.raise(expr.start, "Unexpected type cast"); } @@ -783,8 +785,8 @@ export default function (instance) { // the position where this function is cal;ed instance.extend("parseExprListItem", function (inner) { return function (allowEmpty, refShorthandDefaultPos) { - var container = this.startNode(); - var node = inner.call(this, allowEmpty, refShorthandDefaultPos); + let container = this.startNode(); + let node = inner.call(this, allowEmpty, refShorthandDefaultPos); if (this.match(tt.colon)) { container._exprListItem = true; container.expression = node; @@ -816,13 +818,11 @@ export default function (instance) { // parse type parameters for class methods instance.extend("parseClassMethod", function () { return function (classBody, method, isGenerator, isAsync) { - var typeParameters; if (this.isRelational("<")) { - typeParameters = this.flowParseTypeParameterDeclaration(); + method.typeParameters = this.flowParseTypeParameterDeclaration(); } - method.value = this.parseMethod(isGenerator, isAsync); - method.value.typeParameters = typeParameters; - classBody.body.push(this.finishNode(method, "MethodDefinition")); + this.parseMethod(method, isGenerator, isAsync); + classBody.body.push(this.finishNode(method, "ClassMethod")); }; }); @@ -835,7 +835,7 @@ export default function (instance) { } if (this.isContextual("implements")) { this.next(); - var implemented = node.implements = []; + let implemented = node.implements = []; do { let node = this.startNode(); node.id = this.parseIdentifier(); @@ -853,7 +853,7 @@ export default function (instance) { // parse type parameters for object method shorthand instance.extend("parseObjPropValue", function (inner) { return function (prop) { - var typeParameters; + let typeParameters; // method shorthand if (this.isRelational("<")) { @@ -865,7 +865,7 @@ export default function (instance) { // add typeParameters if we found them if (typeParameters) { - prop.value.typeParameters = typeParameters; + (prop.value || prop).typeParameters = typeParameters; } }; }); @@ -889,14 +889,14 @@ export default function (instance) { return function (node) { node.importKind = "value"; - var kind = null; + let kind = null; if (this.match(tt._typeof)) { kind = "typeof"; } else if (this.isContextual("type")) { kind = "type"; } if (kind) { - var lh = this.lookahead(); + let lh = this.lookahead(); if ((lh.type === tt.name && lh.value !== "from") || lh.type === tt.braceL || lh.type === tt.star) { this.next(); node.importKind = kind; @@ -917,7 +917,7 @@ export default function (instance) { }; }); - // parse flow type annotations on variable declarator heads - var foo: string = bar + // parse flow type annotations on variable declarator heads - let foo: string = bar instance.extend("parseVarHead", function (inner) { return function (decl) { inner.call(this, decl); @@ -928,7 +928,7 @@ export default function (instance) { }; }); - // parse the return type of an async arrow function - var foo = (async (): number => {}); + // parse the return type of an async arrow function - let foo = (async (): number => {}); instance.extend("parseAsyncArrowFromCallExpression", function (inner) { return function (node, call) { if (this.match(tt.colon)) { @@ -953,7 +953,7 @@ export default function (instance) { startLoc = startLoc || this.state.startLoc; if (this.lookahead().type === tt.parenR) { - // var foo = (): number => {}; + // let foo = (): number => {}; this.expect(tt.parenL); this.expect(tt.parenR); @@ -962,11 +962,11 @@ export default function (instance) { this.expect(tt.arrow); return this.parseArrowExpression(node, [], isAsync); } else { - // var foo = (foo): number => {}; + // let foo = (foo): number => {}; let node = inner.call(this, startPos, startLoc, canBeArrow, isAsync); if (this.match(tt.colon)) { - var state = this.state.clone(); + let state = this.state.clone(); try { return this.parseParenItem(node, startPos, startLoc, true); } catch (err) { diff --git a/packages/babylon/src/plugins/jsx/index.js b/packages/babylon/src/plugins/jsx/index.js index c373f88b8d..2d466d4ece 100644 --- a/packages/babylon/src/plugins/jsx/index.js +++ b/packages/babylon/src/plugins/jsx/index.js @@ -26,7 +26,7 @@ tt.jsxTagStart.updateContext = function() { }; tt.jsxTagEnd.updateContext = function(prevType) { - var out = this.state.context.pop(); + let out = this.state.context.pop(); if (out === tc.j_oTag && prevType === tt.slash || out === tc.j_cTag) { this.state.context.pop(); this.state.exprAllowed = this.curContext() === tc.j_expr; @@ -35,18 +35,19 @@ tt.jsxTagEnd.updateContext = function(prevType) { } }; -var pp = Parser.prototype; +let pp = Parser.prototype; // Reads inline JSX contents token. pp.jsxReadToken = function() { - var out = "", chunkStart = this.state.pos; + let out = ""; + let chunkStart = this.state.pos; for (;;) { if (this.state.pos >= this.input.length) { this.raise(this.state.start, "Unterminated JSX contents"); } - var ch = this.input.charCodeAt(this.state.pos); + let ch = this.input.charCodeAt(this.state.pos); switch (ch) { case 60: // "<" @@ -80,8 +81,8 @@ pp.jsxReadToken = function() { }; pp.jsxReadNewLine = function(normalizeCRLF) { - var ch = this.input.charCodeAt(this.state.pos); - var out; + let ch = this.input.charCodeAt(this.state.pos); + let out; ++this.state.pos; if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { ++this.state.pos; @@ -96,13 +97,14 @@ pp.jsxReadNewLine = function(normalizeCRLF) { }; pp.jsxReadString = function(quote) { - var out = "", chunkStart = ++this.state.pos; + let out = ""; + let chunkStart = ++this.state.pos; for (;;) { if (this.state.pos >= this.input.length) { this.raise(this.state.start, "Unterminated string constant"); } - var ch = this.input.charCodeAt(this.state.pos); + let ch = this.input.charCodeAt(this.state.pos); if (ch === quote) break; if (ch === 38) { // "&" out += this.input.slice(chunkStart, this.state.pos); @@ -121,10 +123,12 @@ pp.jsxReadString = function(quote) { }; pp.jsxReadEntity = function() { - var str = "", count = 0, entity; - var ch = this.input[this.state.pos]; + let str = ""; + let count = 0; + let entity; + let ch = this.input[this.state.pos]; - var startPos = ++this.state.pos; + let startPos = ++this.state.pos; while (this.state.pos < this.input.length && count++ < 10) { ch = this.input[this.state.pos++]; if (ch === ";") { @@ -161,7 +165,8 @@ pp.jsxReadEntity = function() { // by isIdentifierStart in readToken. pp.jsxReadWord = function() { - var ch, start = this.state.pos; + let ch; + let start = this.state.pos; do { ch = this.input.charCodeAt(++this.state.pos); } while (isIdentifierChar(ch) || ch === 45); // "-" @@ -187,7 +192,7 @@ function getQualifiedJSXName(object) { // Parse next token as JSX identifier pp.jsxParseIdentifier = function() { - var node = this.startNode(); + let node = this.startNode(); if (this.match(tt.jsxName)) { node.name = this.state.value; } else if (this.state.type.keyword) { @@ -202,11 +207,11 @@ pp.jsxParseIdentifier = function() { // Parse namespaced identifier. pp.jsxParseNamespacedName = function() { - var startPos = this.state.start, startLoc = this.state.startLoc; - var name = this.jsxParseIdentifier(); + let startPos = this.state.start, startLoc = this.state.startLoc; + let name = this.jsxParseIdentifier(); if (!this.eat(tt.colon)) return name; - var node = this.startNodeAt(startPos, startLoc); + let node = this.startNodeAt(startPos, startLoc); node.namespace = name; node.name = this.jsxParseIdentifier(); return this.finishNode(node, "JSXNamespacedName"); @@ -216,10 +221,10 @@ pp.jsxParseNamespacedName = function() { // or single identifier. pp.jsxParseElementName = function() { - var startPos = this.state.start, startLoc = this.state.startLoc; - var node = this.jsxParseNamespacedName(); + let startPos = this.state.start, startLoc = this.state.startLoc; + let node = this.jsxParseNamespacedName(); while (this.eat(tt.dot)) { - var newNode = this.startNodeAt(startPos, startLoc); + let newNode = this.startNodeAt(startPos, startLoc); newNode.object = node; newNode.property = this.jsxParseIdentifier(); node = this.finishNode(newNode, "JSXMemberExpression"); @@ -230,7 +235,7 @@ pp.jsxParseElementName = function() { // Parses any type of JSX attribute value. pp.jsxParseAttributeValue = function() { - var node; + let node; switch (this.state.type) { case tt.braceL: node = this.jsxParseExpressionContainer(); @@ -243,7 +248,7 @@ pp.jsxParseAttributeValue = function() { case tt.jsxTagStart: case tt.string: node = this.parseExprAtom(); - node.rawValue = null; + node.extra = null; return node; default: @@ -251,27 +256,20 @@ pp.jsxParseAttributeValue = function() { } }; -// JSXEmptyExpression is unique type since it doesn"t actually parse anything, +// JSXEmptyExpression is unique type since it doesn't actually parse anything, // and so it should start at the end of last read token (left brace) and finish // at the beginning of the next one (right brace). pp.jsxParseEmptyExpression = function() { - var tmp = this.state.start; - this.state.start = this.state.lastTokEnd; - this.state.lastTokEnd = tmp; - - tmp = this.state.startLoc; - this.state.startLoc = this.state.lastTokEndLoc; - this.state.lastTokEndLoc = tmp; - - return this.finishNode(this.startNode(), "JSXEmptyExpression"); + let node = this.startNodeAt(this.lastTokEnd, this.lastTokEndLoc); + return this.finishNodeAt(node, "JSXEmptyExpression", this.start, this.startLoc); }; // Parses JSX expression enclosed into curly brackets. pp.jsxParseExpressionContainer = function() { - var node = this.startNode(); + let node = this.startNode(); this.next(); if (this.match(tt.braceR)) { node.expression = this.jsxParseEmptyExpression(); @@ -285,7 +283,7 @@ pp.jsxParseExpressionContainer = function() { // Parses following JSX attribute name-value pair. pp.jsxParseAttribute = function() { - var node = this.startNode(); + let node = this.startNode(); if (this.eat(tt.braceL)) { this.expect(tt.ellipsis); node.argument = this.parseMaybeAssign(); @@ -300,7 +298,7 @@ pp.jsxParseAttribute = function() { // Parses JSX opening tag starting after "<". pp.jsxParseOpeningElementAt = function(startPos, startLoc) { - var node = this.startNodeAt(startPos, startLoc); + let node = this.startNodeAt(startPos, startLoc); node.attributes = []; node.name = this.jsxParseElementName(); while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) { @@ -314,7 +312,7 @@ pp.jsxParseOpeningElementAt = function(startPos, startLoc) { // Parses JSX closing tag starting after "= this.input.length) return this.finishToken(tt.eof); @@ -162,7 +154,7 @@ export default class Tokenizer { } pushComment(block, text, start, end, startLoc, endLoc) { - var comment = { + let comment = { type: block ? "CommentBlock" : "CommentLine", value: text, start: start, @@ -308,11 +300,11 @@ export default class Tokenizer { } readToken_mult_modulo(code) { // '%*' - var type = code === 42 ? tt.star : tt.modulo; - var width = 1; - var next = this.input.charCodeAt(this.state.pos + 1); + let type = code === 42 ? tt.star : tt.modulo; + let width = 1; + let next = this.input.charCodeAt(this.state.pos + 1); - if (next === 42 && this.hasFeature("exponentiationOperator")) { // '*' + if (next === 42 && this.hasPlugin("exponentiationOperator")) { // '*' width++; next = this.input.charCodeAt(this.state.pos + 2); type = tt.exponent; @@ -415,7 +407,7 @@ export default class Tokenizer { case 125: ++this.state.pos; return this.finishToken(tt.braceR); case 58: - if (this.hasFeature("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { + if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { return this.finishOp(tt.doubleColon, 2); } else { ++this.state.pos; @@ -694,8 +686,14 @@ export default class Tokenizer { octalStr = octalStr.slice(0, -1); octal = parseInt(octalStr, 8); } - if (octal > 0 && (this.state.strict || inTemplate)) { - this.raise(this.state.pos - 2, "Octal literal in strict mode"); + if (octal > 0) { + if (!this.state.containsOctal) { + this.state.containsOctal = true; + this.state.octalPosition = this.state.pos - 2; + } + if (this.state.strict || inTemplate) { + this.raise(this.state.pos - 2, "Octal literal in strict mode"); + } } this.state.pos += octalStr.length - 1; return String.fromCharCode(octal); diff --git a/packages/babylon/src/tokenizer/state.js b/packages/babylon/src/tokenizer/state.js index b536a1fd8a..63107de019 100644 --- a/packages/babylon/src/tokenizer/state.js +++ b/packages/babylon/src/tokenizer/state.js @@ -14,7 +14,7 @@ export default class State { this.potentialArrowAt = -1; - this.inFunction = this.inGenerator = false; + this.inMethod = this.inFunction = this.inGenerator = this.inAsync = false; this.labels = []; @@ -42,7 +42,8 @@ export default class State { this.context = [ct.b_stat]; this.exprAllowed = true; - this.containsEsc = false; + this.containsEsc = this.containsOctal = false; + this.octalPosition = null; return this; } @@ -59,6 +60,7 @@ export default class State { // Flags to track whether we are in a function, a generator. inFunction: boolean; inGenerator: boolean; + inMethod: boolean; // Labels in scope. labels: Array; @@ -115,16 +117,20 @@ export default class State { // escape sequences must not be interpreted as keywords. containsEsc: boolean; + // TODO + containsOctal: boolean; + octalPosition: ?number; + curPosition() { return new Position(this.curLine, this.pos - this.lineStart); } clone(skipArrays?) { - var state = new State; - for (var key in this) { - var val = this[key]; + let state = new State; + for (let key in this) { + let val = this[key]; - if (!skipArrays && Array.isArray(val)) { + if ((!skipArrays || key === "context") && Array.isArray(val)) { val = val.slice(); } diff --git a/packages/babylon/src/tokenizer/types.js b/packages/babylon/src/tokenizer/types.js index 90b60f4ca2..fa8ff99bab 100644 --- a/packages/babylon/src/tokenizer/types.js +++ b/packages/babylon/src/tokenizer/types.js @@ -115,7 +115,7 @@ kw("catch"); kw("continue"); kw("debugger"); kw("default", beforeExpr); -kw("do", {isLoop: true}); +kw("do", {isLoop: true, beforeExpr: true}); kw("else", beforeExpr); kw("finally"); kw("for", {isLoop: true}); diff --git a/packages/babylon/src/util/identifier.js b/packages/babylon/src/util/identifier.js index 947e993ade..09045f8af0 100644 --- a/packages/babylon/src/util/identifier.js +++ b/packages/babylon/src/util/identifier.js @@ -49,7 +49,7 @@ nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; // offset starts at 0x10000, and each pair of numbers represents an // offset to the next range, and then a size of the range. They were // generated by tools/generate-identifier-regex.js -var astralIdentifierStartCodes = [ +let astralIdentifierStartCodes = [ 0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 17, 26, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 99, 39, 9, 51, 157, 310, 10, 21, 11, 7, 153, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 98, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 26, 45, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, @@ -62,7 +62,7 @@ var astralIdentifierStartCodes = [ 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42710, 42, 4148, 12, 221, 16355, 541 ]; -var astralIdentifierCodes = [ +let astralIdentifierCodes = [ 509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 1306, 2, 54, 14, 32, 9, 16, 3, 46, 10, 54, 9, 7, 2, 37, 13, 2, 9, 52, 0, 13, 2, 49, 13, 16, 9, 83, 11, 168, 11, 6, 9, 8, 2, 57, 0, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 316, 19, 13, 9, 214, 6, 3, 8, 112, 16, 16, 9, 82, 12, 9, 9, 535, 9, 20855, 9, 135, 4, 60, 6, diff --git a/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json b/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json index 3599105db1..e42c57b979 100755 --- a/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json +++ b/packages/babylon/test/fixtures/comments/basic/export-default-anonymous-class/expected.json @@ -74,7 +74,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 103, "end": 119, "loc": { @@ -107,41 +107,26 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 110, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 112, "end": 119, "loc": { "start": { "line": 8, - "column": 11 + "column": 13 }, "end": { "line": 9, "column": 5 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 112, - "end": 119, - "loc": { - "start": { - "line": 8, - "column": 13 - }, - "end": { - "line": 9, - "column": 5 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] }, "leadingComments": [ { diff --git a/packages/babylon/test/fixtures/core/uncategorised/542/actual.js b/packages/babylon/test/fixtures/core/uncategorised/.542/actual.js similarity index 100% rename from packages/babylon/test/fixtures/core/uncategorised/542/actual.js rename to packages/babylon/test/fixtures/core/uncategorised/.542/actual.js diff --git a/packages/babylon/test/fixtures/core/uncategorised/542/options.json b/packages/babylon/test/fixtures/core/uncategorised/.542/options.json similarity index 100% rename from packages/babylon/test/fixtures/core/uncategorised/542/options.json rename to packages/babylon/test/fixtures/core/uncategorised/.542/options.json diff --git a/packages/babylon/test/fixtures/core/uncategorised/543/actual.js b/packages/babylon/test/fixtures/core/uncategorised/.543/actual.js similarity index 100% rename from packages/babylon/test/fixtures/core/uncategorised/543/actual.js rename to packages/babylon/test/fixtures/core/uncategorised/.543/actual.js diff --git a/packages/babylon/test/fixtures/core/uncategorised/543/options.json b/packages/babylon/test/fixtures/core/uncategorised/.543/options.json similarity index 100% rename from packages/babylon/test/fixtures/core/uncategorised/543/options.json rename to packages/babylon/test/fixtures/core/uncategorised/.543/options.json diff --git a/packages/babylon/test/fixtures/core/uncategorised/544/actual.js b/packages/babylon/test/fixtures/core/uncategorised/.544/actual.js similarity index 100% rename from packages/babylon/test/fixtures/core/uncategorised/544/actual.js rename to packages/babylon/test/fixtures/core/uncategorised/.544/actual.js diff --git a/packages/babylon/test/fixtures/core/uncategorised/544/options.json b/packages/babylon/test/fixtures/core/uncategorised/.544/options.json similarity index 100% rename from packages/babylon/test/fixtures/core/uncategorised/544/options.json rename to packages/babylon/test/fixtures/core/uncategorised/.544/options.json diff --git a/packages/babylon/test/fixtures/core/uncategorised/22/expected.json b/packages/babylon/test/fixtures/core/uncategorised/22/expected.json index 0ea258d194..f0a884e6c3 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/22/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/22/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 16, "loc": { @@ -140,8 +140,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/23/expected.json b/packages/babylon/test/fixtures/core/uncategorised/23/expected.json index 6000da8339..dd3a42f49d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/23/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/23/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 12, "loc": { @@ -140,8 +140,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/24/expected.json b/packages/babylon/test/fixtures/core/uncategorised/24/expected.json index a958d6780e..cbc5697de4 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/24/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/24/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 14, "loc": { @@ -140,8 +140,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/25/expected.json b/packages/babylon/test/fixtures/core/uncategorised/25/expected.json index d4911b1226..bff1f7f9e9 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/25/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/25/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 15, "loc": { @@ -140,8 +140,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/26/expected.json b/packages/babylon/test/fixtures/core/uncategorised/26/expected.json index 61e13ba2b5..ced9c6f1e5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/26/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 14, "loc": { @@ -140,8 +140,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/27/expected.json b/packages/babylon/test/fixtures/core/uncategorised/27/expected.json index e7f3c00497..6cfa1d9324 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/27/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/27/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 18, "loc": { @@ -144,8 +144,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/275/expected.json b/packages/babylon/test/fixtures/core/uncategorised/275/expected.json index 0ddcce0c63..1586888a8b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/275/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/275/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 8, "end": 24, "loc": { @@ -109,8 +109,7 @@ "raw": "\"Error\"" }, "value": "Error" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/28/expected.json b/packages/babylon/test/fixtures/core/uncategorised/28/expected.json index d7de811e96..0f013c127d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/28/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/28/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 10, "loc": { @@ -140,11 +140,10 @@ "raw": "1" }, "value": 1 - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 16, "loc": { @@ -195,8 +194,7 @@ "raw": "2" }, "value": 2 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/29/expected.json b/packages/babylon/test/fixtures/core/uncategorised/29/expected.json index 6cd7aee600..1462403c0d 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/29/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/29/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 36, "loc": { @@ -122,78 +122,65 @@ "name": "width" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, "end": 36, "loc": { "start": { "line": 1, - "column": 15 + "column": 18 }, "end": { "line": 1, "column": 36 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 18 + "body": [ + { + "type": "ReturnStatement", + "start": 20, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 34 + } }, - "end": { - "line": 1, - "column": 36 - } - }, - "body": [ - { - "type": "ReturnStatement", - "start": 20, + "argument": { + "type": "Identifier", + "start": 27, "end": 34, "loc": { "start": { "line": 1, - "column": 20 + "column": 27 }, "end": { "line": 1, "column": 34 } }, - "argument": { - "type": "Identifier", - "start": 27, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "name": "m_width" - } + "name": "m_width" } - ] - } + } + ], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/30/expected.json b/packages/babylon/test/fixtures/core/uncategorised/30/expected.json index bfcf233e05..7694f2fd33 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/30/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/30/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 20, "loc": { @@ -122,46 +122,33 @@ "name": "undef" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, "end": 20, "loc": { "start": { "line": 1, - "column": 15 + "column": 18 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/31/expected.json b/packages/babylon/test/fixtures/core/uncategorised/31/expected.json index a81f0be417..966b9f90ca 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/31/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/31/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 17, "loc": { @@ -122,46 +122,33 @@ "name": "if" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 17, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 17 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/32/expected.json b/packages/babylon/test/fixtures/core/uncategorised/32/expected.json index 755ded80c2..0ab2082d42 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/32/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/32/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 19, "loc": { @@ -122,46 +122,33 @@ "name": "true" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, "end": 19, "loc": { "start": { "line": 1, - "column": 14 + "column": 17 }, "end": { "line": 1, "column": 19 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/33/expected.json b/packages/babylon/test/fixtures/core/uncategorised/33/expected.json index c8111bb6cc..ccc78d04a7 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/33/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/33/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 20, "loc": { @@ -122,46 +122,33 @@ "name": "false" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, "end": 20, "loc": { "start": { "line": 1, - "column": 15 + "column": 18 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/34/expected.json b/packages/babylon/test/fixtures/core/uncategorised/34/expected.json index dd04ddeac2..c8ef1380a8 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/34/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/34/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 19, "loc": { @@ -122,46 +122,33 @@ "name": "null" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, "end": 19, "loc": { "start": { "line": 1, - "column": 14 + "column": 17 }, "end": { "line": 1, "column": 19 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/35/expected.json b/packages/babylon/test/fixtures/core/uncategorised/35/expected.json index da3ec9be77..6a4504c896 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/35/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/35/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 22, "loc": { @@ -126,41 +126,26 @@ "value": "undef" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 22, "loc": { "start": { "line": 1, - "column": 17 + "column": 20 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/36/expected.json b/packages/babylon/test/fixtures/core/uncategorised/36/expected.json index a7cfe82d4d..7ff1fbb46b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/36/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/36/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 17, "loc": { @@ -126,41 +126,26 @@ "value": 10 }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 17, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 17 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/37/expected.json b/packages/babylon/test/fixtures/core/uncategorised/37/expected.json index 04f9698103..ad75991dc1 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/37/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/37/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 34, "loc": { @@ -122,58 +122,58 @@ "name": "width" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 19, "end": 34, "loc": { "start": { "line": 1, - "column": 15 + "column": 19 }, "end": { "line": 1, "column": 34 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 16, - "end": 17, + "type": "ExpressionStatement", + "start": 21, + "end": 32, "loc": { "start": { "line": 1, - "column": 16 + "column": 21 }, "end": { "line": 1, - "column": 17 + "column": 32 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 21, "end": 32, "loc": { @@ -186,63 +186,50 @@ "column": 32 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 21, - "end": 32, + "end": 28, "loc": { "start": { "line": 1, "column": 21 }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "m_width" + }, + "right": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, "end": { "line": 1, "column": 32 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 21, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "name": "m_width" - }, - "right": { - "type": "Identifier", - "start": 31, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "name": "w" - } + "name": "w" } } - ] - } + } + ], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/38/expected.json b/packages/babylon/test/fixtures/core/uncategorised/38/expected.json index 360b95f14c..e290b184de 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/38/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/38/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 28, "loc": { @@ -122,58 +122,58 @@ "name": "if" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 16, "end": 28, "loc": { "start": { "line": 1, - "column": 12 + "column": 16 }, "end": { "line": 1, "column": 28 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 13, - "end": 14, + "type": "ExpressionStatement", + "start": 18, + "end": 26, "loc": { "start": { "line": 1, - "column": 13 + "column": 18 }, "end": { "line": 1, - "column": 14 + "column": 26 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 16, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 18, "end": 26, "loc": { @@ -186,63 +186,50 @@ "column": 26 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 18, - "end": 26, + "end": 22, "loc": { "start": { "line": 1, "column": 18 }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "m_if" + }, + "right": { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, "end": { "line": 1, "column": 26 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 18, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "name": "m_if" - }, - "right": { - "type": "Identifier", - "start": 25, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "name": "w" - } + "name": "w" } } - ] - } + } + ], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/39/expected.json b/packages/babylon/test/fixtures/core/uncategorised/39/expected.json index 3a2ec9b899..60ca06a14b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/39/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/39/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 32, "loc": { @@ -122,58 +122,58 @@ "name": "true" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, "end": 32, "loc": { "start": { "line": 1, - "column": 14 + "column": 18 }, "end": { "line": 1, "column": 32 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 15, - "end": 16, + "type": "ExpressionStatement", + "start": 20, + "end": 30, "loc": { "start": { "line": 1, - "column": 15 + "column": 20 }, "end": { "line": 1, - "column": 16 + "column": 30 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 20, "end": 30, "loc": { @@ -186,63 +186,50 @@ "column": 30 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 20, - "end": 30, + "end": 26, "loc": { "start": { "line": 1, "column": 20 }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "m_true" + }, + "right": { + "type": "Identifier", + "start": 29, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 29 + }, "end": { "line": 1, "column": 30 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 20, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "name": "m_true" - }, - "right": { - "type": "Identifier", - "start": 29, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "name": "w" - } + "name": "w" } } - ] - } + } + ], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/40/expected.json b/packages/babylon/test/fixtures/core/uncategorised/40/expected.json index 198c6f8e8d..2e92b355f6 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/40/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/40/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 34, "loc": { @@ -122,58 +122,58 @@ "name": "false" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 19, "end": 34, "loc": { "start": { "line": 1, - "column": 15 + "column": 19 }, "end": { "line": 1, "column": 34 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 16, - "end": 17, + "type": "ExpressionStatement", + "start": 21, + "end": 32, "loc": { "start": { "line": 1, - "column": 16 + "column": 21 }, "end": { "line": 1, - "column": 17 + "column": 32 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 21, "end": 32, "loc": { @@ -186,63 +186,50 @@ "column": 32 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 21, - "end": 32, + "end": 28, "loc": { "start": { "line": 1, "column": 21 }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "m_false" + }, + "right": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, "end": { "line": 1, "column": 32 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 21, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "name": "m_false" - }, - "right": { - "type": "Identifier", - "start": 31, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "name": "w" - } + "name": "w" } } - ] - } + } + ], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/41/expected.json b/packages/babylon/test/fixtures/core/uncategorised/41/expected.json index 8624ffd5ef..af9300d188 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/41/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/41/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 32, "loc": { @@ -122,58 +122,58 @@ "name": "null" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, "end": 32, "loc": { "start": { "line": 1, - "column": 14 + "column": 18 }, "end": { "line": 1, "column": 32 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 15, - "end": 16, + "type": "ExpressionStatement", + "start": 20, + "end": 30, "loc": { "start": { "line": 1, - "column": 15 + "column": 20 }, "end": { "line": 1, - "column": 16 + "column": 30 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 20, "end": 30, "loc": { @@ -186,63 +186,50 @@ "column": 30 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 20, - "end": 30, + "end": 26, "loc": { "start": { "line": 1, "column": 20 }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "m_null" + }, + "right": { + "type": "Identifier", + "start": 29, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 29 + }, "end": { "line": 1, "column": 30 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 20, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "name": "m_null" - }, - "right": { - "type": "Identifier", - "start": 29, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "name": "w" - } + "name": "w" } } - ] - } + } + ], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/core/uncategorised/42/expected.json b/packages/babylon/test/fixtures/core/uncategorised/42/expected.json index 359994f749..7bc3ec6059 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/42/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/42/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 34, "loc": { @@ -126,58 +126,58 @@ "value": "null" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 16, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 17, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, "end": 34, "loc": { "start": { "line": 1, - "column": 16 + "column": 20 }, "end": { "line": 1, "column": 34 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 17, - "end": 18, + "type": "ExpressionStatement", + "start": 22, + "end": 32, "loc": { "start": { "line": 1, - "column": 17 + "column": 22 }, "end": { "line": 1, - "column": 18 + "column": 32 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 22, "end": 32, "loc": { @@ -190,58 +190,43 @@ "column": 32 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 22, - "end": 32, + "end": 28, "loc": { "start": { "line": 1, "column": 22 }, + "end": { + "line": 1, + "column": 28 + } + }, + "name": "m_null" + }, + "right": { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, "end": { "line": 1, "column": 32 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 22, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "name": "m_null" - }, - "right": { - "type": "Identifier", - "start": 31, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "name": "w" - } + "name": "w" } } - ], - "directives": [] - } + } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/43/expected.json b/packages/babylon/test/fixtures/core/uncategorised/43/expected.json index 40439f6021..7a72b8763e 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/43/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/43/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 30, "loc": { @@ -126,58 +126,58 @@ "value": 10 }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "w" + } + ], + "body": { + "type": "BlockStatement", + "start": 16, "end": 30, "loc": { "start": { "line": 1, - "column": 12 + "column": 16 }, "end": { "line": 1, "column": 30 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 13, - "end": 14, + "type": "ExpressionStatement", + "start": 18, + "end": 28, "loc": { "start": { "line": 1, - "column": 13 + "column": 18 }, "end": { "line": 1, - "column": 14 + "column": 28 } }, - "name": "w" - } - ], - "body": { - "type": "BlockStatement", - "start": 16, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", "start": 18, "end": 28, "loc": { @@ -190,58 +190,43 @@ "column": 28 } }, - "expression": { - "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "Identifier", "start": 18, - "end": 28, + "end": 24, "loc": { "start": { "line": 1, "column": 18 }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "m_null" + }, + "right": { + "type": "Identifier", + "start": 27, + "end": 28, + "loc": { + "start": { + "line": 1, + "column": 27 + }, "end": { "line": 1, "column": 28 } }, - "operator": "=", - "left": { - "type": "Identifier", - "start": 18, - "end": 24, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 24 - } - }, - "name": "m_null" - }, - "right": { - "type": "Identifier", - "start": 27, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "name": "w" - } + "name": "w" } } - ], - "directives": [] - } + } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/core/uncategorised/44/expected.json b/packages/babylon/test/fixtures/core/uncategorised/44/expected.json index 717aa6f7e7..b1dc510c8b 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/44/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/44/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 13, "loc": { @@ -140,8 +140,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/core/uncategorised/45/expected.json b/packages/babylon/test/fixtures/core/uncategorised/45/expected.json index 01d280ce5b..e7eb6404f5 100644 --- a/packages/babylon/test/fixtures/core/uncategorised/45/expected.json +++ b/packages/babylon/test/fixtures/core/uncategorised/45/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 13, "loc": { @@ -140,8 +140,7 @@ "raw": "43" }, "value": 43 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json index 16876bb02e..a0efeec910 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/patterned-catch/expected.json @@ -136,7 +136,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 21, "end": 22, "loc": { @@ -168,7 +168,6 @@ }, "name": "c" }, - "kind": "init", "value": { "type": "Identifier", "start": 21, @@ -187,7 +186,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 24, "end": 29, "loc": { @@ -269,11 +268,10 @@ }, "value": 0 } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 31, "end": 38, "loc": { @@ -355,11 +353,10 @@ }, "value": 0 } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 40, "end": 43, "loc": { @@ -391,7 +388,6 @@ }, "name": "h" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 40, diff --git a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json index 2d14e8848e..1c46501964 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-array-pattern/with-object-pattern/expected.json @@ -88,7 +88,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 7, "loc": { @@ -120,7 +120,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 6, diff --git a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json index fbd87bd0c4..8025e7a342 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-arrow-function/migrated_0005/expected.json @@ -93,7 +93,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 8, "end": 20, "loc": { @@ -144,8 +144,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/actual.js b/packages/babylon/test/fixtures/esprima/es2015-class/.migrated_0026/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-class/.migrated_0026/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/.migrated_0026/expected.json similarity index 98% rename from packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-class/.migrated_0026/expected.json index 7354aa5050..c69f6a312a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0026/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/.migrated_0026/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json index e60d7294c3..3e510efdc1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0004/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 14, "loc": { @@ -107,45 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 10, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 14, "loc": { "start": { "line": 1, - "column": 10 + "column": 12 }, "end": { "line": 1, "column": 14 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json index 4ead53f755..1ec03c3f48 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0005/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 14, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 10, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 14, "loc": { "start": { "line": 1, - "column": 10 + "column": 12 }, "end": { "line": 1, "column": 14 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 14, "end": 19, "loc": { @@ -176,45 +162,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, "end": 19, "loc": { "start": { "line": 1, - "column": 15 + "column": 17 }, "end": { "line": 1, "column": 19 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json index a4bb492dbb..c883c50114 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0006/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 14, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 10, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 14, "loc": { "start": { "line": 1, - "column": 10 + "column": 12 }, "end": { "line": 1, "column": 14 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 15, "end": 20, "loc": { @@ -176,45 +162,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 16, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, "end": 20, "loc": { "start": { "line": 1, - "column": 16 + "column": 18 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json index 77aa858ee4..57df44f925 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0007/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 14, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 10, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 14, "loc": { "start": { "line": 1, - "column": 10 + "column": 12 }, "end": { "line": 1, "column": 14 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 15, "end": 20, "loc": { @@ -176,45 +162,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 16, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 18, "end": 20, "loc": { "start": { "line": 1, - "column": 16 + "column": 18 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json index f0da7ec99b..129657a7fc 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0008/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 15, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 11, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 13, "end": 15, "loc": { "start": { "line": 1, - "column": 11 + "column": 13 }, "end": { "line": 1, "column": 15 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 13, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 16, "end": 21, "loc": { @@ -176,45 +162,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, "end": 21, "loc": { "start": { "line": 1, - "column": 17 + "column": 19 }, "end": { "line": 1, "column": 21 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json index 0cd6f1a23f..aa0a5f9344 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0009/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 19, "loc": { @@ -107,45 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, "end": 19, "loc": { "start": { "line": 1, - "column": 15 + "column": 17 }, "end": { "line": 1, "column": 19 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json index b2101dd75c..92e8ef8e43 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0010/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 18, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, "end": 18, "loc": { "start": { "line": 1, - "column": 14 + "column": 16 }, "end": { "line": 1, "column": 18 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 16, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 19, "end": 29, "loc": { @@ -176,62 +162,49 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 24, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "c" + } + ], + "body": { + "type": "BlockStatement", + "start": 27, "end": 29, "loc": { "start": { "line": 1, - "column": 24 + "column": 27 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 25, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "name": "c" - } - ], - "body": { - "type": "BlockStatement", - "start": 27, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json index 1c0665ae72..c6498e9b27 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0011/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 21, "loc": { @@ -107,44 +107,30 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, "end": 21, "loc": { "start": { "line": 1, - "column": 17 + "column": 19 }, "end": { "line": 1, "column": 21 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 22, "end": 38, "loc": { @@ -176,44 +162,30 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 34, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 36, "end": 38, "loc": { "start": { "line": 1, - "column": 34 + "column": 36 }, "end": { "line": 1, "column": 38 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 36, - "end": 38, - "loc": { - "start": { - "line": 1, - "column": 36 - }, - "end": { - "line": 1, - "column": 38 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 39, "end": 56, "loc": { @@ -245,62 +217,49 @@ }, "static": true, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 51, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 52, + "end": 53, + "loc": { + "start": { + "line": 1, + "column": 52 + }, + "end": { + "line": 1, + "column": 53 + } + }, + "name": "b" + } + ], + "body": { + "type": "BlockStatement", + "start": 54, "end": 56, "loc": { "start": { "line": 1, - "column": 51 + "column": 54 }, "end": { "line": 1, "column": 56 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 52, - "end": 53, - "loc": { - "start": { - "line": 1, - "column": 52 - }, - "end": { - "line": 1, - "column": 53 - } - }, - "name": "b" - } - ], - "body": { - "type": "BlockStatement", - "start": 54, - "end": 56, - "loc": { - "start": { - "line": 1, - "column": 54 - }, - "end": { - "line": 1, - "column": 56 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json index b1acc4da5f..fa54d94267 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0012/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 21, "loc": { @@ -107,45 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, "end": 21, "loc": { "start": { "line": 1, - "column": 17 + "column": 19 }, "end": { "line": 1, "column": 21 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json index a366c8ad3f..c7ff2d5228 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0013/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 23, "loc": { @@ -107,45 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 19, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, "end": 23, "loc": { "start": { "line": 1, - "column": 19 + "column": 21 }, "end": { "line": 1, "column": 23 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 21, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json index b9887ebdf9..3a78f1bd7d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0014/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 22, "loc": { @@ -107,44 +107,30 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 18, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 22, "loc": { "start": { "line": 1, - "column": 18 + "column": 20 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 37, "loc": { @@ -176,45 +162,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 33, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, "end": 37, "loc": { "start": { "line": 1, - "column": 33 + "column": 35 }, "end": { "line": 1, "column": 37 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 35, - "end": 37, - "loc": { - "start": { - "line": 1, - "column": 35 - }, - "end": { - "line": 1, - "column": 37 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json index 7e151a458e..ade3ae124b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0015/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 26, "loc": { @@ -107,45 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, "end": 26, "loc": { "start": { "line": 1, - "column": 22 + "column": 24 }, "end": { "line": 1, "column": 26 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 24, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json index a887878c99..2a2d1f81f9 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0017/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 22, "loc": { @@ -107,45 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 18, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 22, "loc": { "start": { "line": 1, - "column": 18 + "column": 20 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json index 4ce9a1e28c..8a0d50c2c6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0018/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 24, "loc": { @@ -107,45 +107,32 @@ }, "static": false, "kind": "constructor", - "value": { - "type": "FunctionExpression", - "start": 20, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 22, "end": 24, "loc": { "start": { "line": 1, - "column": 20 + "column": 22 }, "end": { "line": 1, "column": 24 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 22, - "end": 24, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 24 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json index d991009313..72bb521716 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0019/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 26, "loc": { @@ -111,45 +111,30 @@ }, "static": false, "kind": "constructor", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, "end": 26, "loc": { "start": { "line": 1, - "column": 22 + "column": 24 }, "end": { "line": 1, "column": 26 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 24, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 27, "end": 46, "loc": { @@ -185,41 +170,26 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 42, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 44, "end": 46, "loc": { "start": { "line": 1, - "column": 42 + "column": 44 }, "end": { "line": 1, "column": 46 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 44, - "end": 46, - "loc": { - "start": { - "line": 1, - "column": 44 - }, - "end": { - "line": 1, - "column": 46 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json index 0241df155f..8ee060397d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0020/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 31, "loc": { @@ -107,44 +107,30 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 27, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, "end": 31, "loc": { "start": { "line": 1, - "column": 27 + "column": 29 }, "end": { "line": 1, "column": 31 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 29, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 31 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 32, "end": 54, "loc": { @@ -176,45 +162,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 50, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 52, "end": 54, "loc": { "start": { "line": 1, - "column": 50 + "column": 52 }, "end": { "line": 1, "column": 54 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 52, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 52 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json index 21d43a0b9f..05b3f0a4ac 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-class/migrated_0021/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 33, "loc": { @@ -111,41 +111,26 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 29, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 31, "end": 33, "loc": { "start": { "line": 1, - "column": 29 + "column": 31 }, "end": { "line": 1, "column": 33 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 31, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 33 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json index 0fdbc8a52e..64c3b49fae 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-default-parameter-value/migrated_0002/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 25, "loc": { @@ -208,8 +208,7 @@ "body": [], "directives": [] } - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json index 70b18e9e2e..9c12c4fa9c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-array-pattern/nested-cover-grammar/expected.json @@ -88,7 +88,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 5, "loc": { @@ -120,7 +120,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 2, diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json index e4d7cfd018..559a8db8fc 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/nested-cover-grammar/expected.json @@ -373,7 +373,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 21, "end": 27, "loc": { @@ -405,7 +405,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 21, diff --git a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json index 4521c6e3bf..aab8a1a69e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-destructuring-assignment-object-pattern/object-pattern-assignment/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 7, "end": 8, "loc": { @@ -105,7 +105,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 7, @@ -124,7 +123,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 14, "end": 17, "loc": { @@ -171,11 +170,10 @@ } }, "name": "a" - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 23, "end": 28, "loc": { @@ -253,11 +251,10 @@ }, "name": "a" } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 34, "end": 41, "loc": { @@ -305,7 +302,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 39, "end": 40, "loc": { @@ -337,7 +334,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 39, @@ -356,11 +352,10 @@ } } ] - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 47, "end": 63, "loc": { @@ -455,11 +450,10 @@ "name": "a" }, "computed": true - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 69, "end": 77, "loc": { @@ -537,8 +531,7 @@ "name": "a" }, "computed": false - }, - "kind": "init" + } } ] }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json index 5d9a5f6369..ae7eefb6d2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-export-declaration/export-default-object/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 17, "end": 23, "loc": { @@ -109,8 +109,7 @@ "raw": "1" }, "value": 1 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json index 2fcb51b5b1..bf3b9e73b7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern-const/expected.json @@ -87,7 +87,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 13, "loc": { @@ -119,7 +119,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 12, @@ -138,7 +137,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 15, "end": 16, "loc": { @@ -170,7 +169,6 @@ }, "name": "y" }, - "kind": "init", "value": { "type": "Identifier", "start": 15, @@ -227,6 +225,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json index 9cfd59a3ab..025d0acd2b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-for-of/for-of-object-pattern/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 7, "loc": { @@ -90,7 +90,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 6, @@ -109,7 +108,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 10, "loc": { @@ -141,7 +140,6 @@ }, "name": "y" }, - "kind": "init", "value": { "type": "Identifier", "start": 9, @@ -193,6 +191,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/actual.js b/packages/babylon/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/options.json b/packages/babylon/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-generator/generator-parameter-binding-property-reserved/options.json rename to packages/babylon/test/fixtures/esprima/es2015-generator/.generator-parameter-binding-property-reserved/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json index 7c3e3bcb37..ef567c630d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-params/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 19, "loc": { @@ -90,91 +90,76 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 8, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "x" + }, + { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "y" + }, + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "z" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, "end": 19, "loc": { "start": { "line": 1, - "column": 7 + "column": 17 }, "end": { "line": 1, "column": 19 } }, - "id": null, - "generator": true, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 8, - "end": 9, - "loc": { - "start": { - "line": 1, - "column": 8 - }, - "end": { - "line": 1, - "column": 9 - } - }, - "name": "x" - }, - { - "type": "Identifier", - "start": 11, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "name": "y" - }, - { - "type": "Identifier", - "start": 14, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 14 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "name": "z" - } - ], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json index 8b5ee65941..a261ce50a1 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-delegate/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 23, "loc": { @@ -90,44 +90,44 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, "end": 23, "loc": { "start": { "line": 1, - "column": 7 + "column": 10 }, "end": { "line": 1, "column": 23 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 10, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 10 + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 21 + } }, - "end": { - "line": 1, - "column": 23 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 12, - "end": 21, + "end": 20, "loc": { "start": { "line": 1, @@ -135,49 +135,34 @@ }, "end": { "line": 1, - "column": 21 + "column": 20 } }, - "expression": { - "type": "YieldExpression", - "start": 12, + "delegate": true, + "argument": { + "type": "NumberLiteral", + "start": 19, "end": 20, "loc": { "start": { "line": 1, - "column": 12 + "column": 19 }, "end": { "line": 1, "column": 20 } }, - "delegate": true, - "argument": { - "type": "NumberLiteral", - "start": 19, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "extra": { - "rawValue": 3, - "raw": "3" - }, - "value": 3 - } + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } - ], - "directives": [] - } + } + ], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json index 14d2a18a84..d43ba66132 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-expression/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 22, "loc": { @@ -90,44 +90,44 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, "end": 22, "loc": { "start": { "line": 1, - "column": 7 + "column": 10 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 10, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 10 + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 20 + } }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 12, - "end": 20, + "end": 19, "loc": { "start": { "line": 1, @@ -135,49 +135,34 @@ }, "end": { "line": 1, - "column": 20 + "column": 19 } }, - "expression": { - "type": "YieldExpression", - "start": 12, + "delegate": false, + "argument": { + "type": "NumberLiteral", + "start": 18, "end": 19, "loc": { "start": { "line": 1, - "column": 12 + "column": 18 }, "end": { "line": 1, "column": 19 } }, - "delegate": false, - "argument": { - "type": "NumberLiteral", - "start": 18, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "extra": { - "rawValue": 3, - "raw": "3" - }, - "value": 3 - } + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } } - ], - "directives": [] - } + } + ], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json index 110cc9c9cb..addacb6d05 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield-line-terminator/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 26, "loc": { @@ -90,42 +90,42 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, "end": 26, "loc": { "start": { "line": 1, - "column": 7 + "column": 10 }, "end": { "line": 4, "column": 1 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 10, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 10 + "body": [ + { + "type": "ExpressionStatement", + "start": 15, + "end": 20, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 2, + "column": 7 + } }, - "end": { - "line": 4, - "column": 1 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 15, "end": 20, "loc": { @@ -138,26 +138,26 @@ "column": 7 } }, - "expression": { - "type": "YieldExpression", - "start": 15, - "end": 20, - "loc": { - "start": { - "line": 2, - "column": 2 - }, - "end": { - "line": 2, - "column": 7 - } - }, - "delegate": false, - "argument": null + "delegate": false, + "argument": null + } + }, + { + "type": "ExpressionStatement", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 3, + "column": 2 + }, + "end": { + "line": 3, + "column": 3 } }, - { - "type": "ExpressionStatement", + "expression": { + "type": "NumberLiteral", "start": 23, "end": 24, "loc": { @@ -170,30 +170,15 @@ "column": 3 } }, - "expression": { - "type": "NumberLiteral", - "start": 23, - "end": 24, - "loc": { - "start": { - "line": 3, - "column": 2 - }, - "end": { - "line": 3, - "column": 3 - } - }, - "extra": { - "rawValue": 3, - "raw": "3" - }, - "value": 3 - } + "extra": { + "rawValue": 3, + "raw": "3" + }, + "value": 3 } - ], - "directives": [] - } + } + ], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json index c749a9dbaf..9bd0e0fc9b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method-with-yield/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 20, "loc": { @@ -90,44 +90,44 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, "end": 20, "loc": { "start": { "line": 1, - "column": 7 + "column": 10 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 10, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 10 + "body": [ + { + "type": "ExpressionStatement", + "start": 12, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 12 + }, + "end": { + "line": 1, + "column": 18 + } }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 12, - "end": 18, + "end": 17, "loc": { "start": { "line": 1, @@ -135,30 +135,15 @@ }, "end": { "line": 1, - "column": 18 + "column": 17 } }, - "expression": { - "type": "YieldExpression", - "start": 12, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "delegate": false, - "argument": null - } + "delegate": false, + "argument": null } - ], - "directives": [] - } + } + ], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json index a5bb9c44cb..1edf3cf6b7 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/generator-method/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 12, "loc": { @@ -90,42 +90,27 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 10, "end": 12, "loc": { "start": { "line": 1, - "column": 7 + "column": 10 }, "end": { "line": 1, "column": 12 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 10, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 10 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json index d257165465..39c163121b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method-with-computed-name/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 12, "end": 30, "loc": { @@ -107,45 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 25, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, "end": 30, "loc": { "start": { "line": 1, - "column": 25 + "column": 28 }, "end": { "line": 1, "column": 30 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 28, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json index bebbec9f26..655985c272 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-generator/static-generator-method/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 12, "end": 28, "loc": { @@ -107,45 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 23, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 26, "end": 28, "loc": { "start": { "line": 1, - "column": 23 + "column": 26 }, "end": { "line": 1, "column": 28 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 26, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 26 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_function_wait/options.json rename to packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_function_wait/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/actual.js b/packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/expected.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/options.json b/packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-identifier/invalid_lone_surrogate/options.json rename to packages/babylon/test/fixtures/esprima/es2015-identifier/.invalid_lone_surrogate/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/actual.js b/packages/babylon/test/fixtures/esprima/es2015-meta-property/.invalid-new-target/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-meta-property/.invalid-new-target/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/expected.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/.invalid-new-target/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-meta-property/.invalid-new-target/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/options.json b/packages/babylon/test/fixtures/esprima/es2015-meta-property/.invalid-new-target/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-meta-property/invalid-new-target/options.json rename to packages/babylon/test/fixtures/esprima/es2015-meta-property/.invalid-new-target/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json index 5d4235ff90..880dce74c2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0000/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 18, "loc": { @@ -121,47 +121,34 @@ }, "name": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 12, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 18, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 18 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json index 9e72a8c644..7d5dce4954 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0001/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 22, "loc": { @@ -121,64 +121,51 @@ }, "name": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 12, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "test" + } + ], + "body": { + "type": "BlockStatement", + "start": 19, "end": 22, "loc": { "start": { "line": 1, - "column": 12 + "column": 19 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 13, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "name": "test" - } - ], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json index e964b38846..1030bf0af2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0002/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 20, "loc": { @@ -125,42 +125,27 @@ }, "value": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 14, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, "end": 20, "loc": { "start": { "line": 1, - "column": 14 + "column": 17 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json index 986432a828..0b0d3f1c10 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0003/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 15, "loc": { @@ -121,47 +121,34 @@ }, "name": "get" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 15, "loc": { "start": { "line": 1, - "column": 9 + "column": 12 }, "end": { "line": 1, "column": 15 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json index 8d18a3447c..b118b76443 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-method-definition/migrated_0004/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 15, "loc": { @@ -121,47 +121,34 @@ }, "name": "set" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 15, "loc": { "start": { "line": 1, - "column": 9 + "column": 12 }, "end": { "line": 1, "column": 15 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-getter-literal-identifier/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-getter-literal-identifier/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-getter-literal-identifier/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-getter-literal-identifier/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-getter-literal-identifier/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-getter-literal-identifier/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-getter-literal-identifier/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-literal/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-literal/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-literal/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-literal/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-literal/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-literal/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-literal/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-shorthand/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-shorthand/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-shorthand/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-shorthand/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-shorthand/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifier-shorthand/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifier-shorthand/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/expected.json new file mode 100644 index 0000000000..853ec2ca42 --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/expected.json @@ -0,0 +1,167 @@ +{ + "type": "File", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "properties": [ + { + "type": "ObjectProperty", + "start": 3, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NullLiteral", + "start": 14, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 18 + } + } + } + }, + { + "type": "ObjectProperty", + "start": 20, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 20, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NullLiteral", + "start": 31, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 35 + } + } + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-identifiers/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-identifiers/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-identifier/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-identifier/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-identifier/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-identifier/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-identifier/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-identifier/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-identifier/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-shorthand/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-shorthand/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-shorthand/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-shorthand/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-shorthand/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literal-shorthand/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literal-shorthand/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literals/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literals/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literals/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literals/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literals/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-literals/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-literals/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-setter-literal-identifier/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-setter-literal-identifier/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-setter-literal-identifier/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-setter-literal-identifier/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-setter-literal-identifier/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-setter-literal-identifier/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-setter-literal-identifier/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-identifier/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-identifier/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-identifier/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-identifier/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-identifier/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-identifier/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-identifier/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-literal/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-literal/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-literal/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-literal/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-literal/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthand-literal/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthand-literal/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/actual.js b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthands/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthands/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthands/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthands/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthands/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-object-initialiser/invalid-proto-shorthands/options.json rename to packages/babylon/test/fixtures/esprima/es2015-object-initialiser/.invalid-proto-shorthands/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json index 370894461a..41fa69789a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter-setter/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 18, "loc": { @@ -104,11 +104,10 @@ "column": 18 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 20, "end": 37, "loc": { @@ -141,45 +140,30 @@ "name": "__proto__" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 33, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, "end": 37, "loc": { "start": { "line": 1, - "column": 33 + "column": 35 }, "end": { "line": 1, "column": 37 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 35, - "end": 37, - "loc": { - "start": { - "line": 1, - "column": 35 - }, - "end": { - "line": 1, - "column": 37 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } }, { - "type": "Property", + "type": "ObjectMethod", "start": 39, "end": 57, "loc": { @@ -212,58 +196,43 @@ "name": "__proto__" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 52, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 53, + "end": 54, + "loc": { + "start": { + "line": 1, + "column": 53 + }, + "end": { + "line": 1, + "column": 54 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 55, "end": 57, "loc": { "start": { "line": 1, - "column": 52 + "column": 55 }, "end": { "line": 1, "column": 57 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 53, - "end": 54, - "loc": { - "start": { - "line": 1, - "column": 53 - }, - "end": { - "line": 1, - "column": 54 - } - }, - "name": "x" - } - ], - "body": { - "type": "BlockStatement", - "start": 55, - "end": 57, - "loc": { - "start": { - "line": 1, - "column": 55 - }, - "end": { - "line": 1, - "column": 57 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json index 987143a14c..73ee6c7acf 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-getter/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 18, "loc": { @@ -104,11 +104,10 @@ "column": 18 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 20, "end": 37, "loc": { @@ -141,41 +140,26 @@ "name": "__proto__" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 33, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 35, "end": 37, "loc": { "start": { "line": 1, - "column": 33 + "column": 35 }, "end": { "line": 1, "column": 37 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 35, - "end": 37, - "loc": { - "start": { - "line": 1, - "column": 35 - }, - "end": { - "line": 1, - "column": 37 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json index 63dc917941..8213ba1bb4 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-method/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 18, "loc": { @@ -104,11 +104,10 @@ "column": 18 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 20, "end": 33, "loc": { @@ -140,42 +139,27 @@ }, "name": "__proto__" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 29, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 31, "end": 33, "loc": { "start": { "line": 1, - "column": 29 + "column": 31 }, "end": { "line": 1, "column": 33 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 31, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 33 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json index 70085edf6a..3e06b6b52c 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-identifier-setter/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 18, "loc": { @@ -104,11 +104,10 @@ "column": 18 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 20, "end": 38, "loc": { @@ -141,58 +140,43 @@ "name": "__proto__" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 33, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 34, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 34 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 36, "end": 38, "loc": { "start": { "line": 1, - "column": 33 + "column": 36 }, "end": { "line": 1, "column": 38 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 34, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 34 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "name": "x" - } - ], - "body": { - "type": "BlockStatement", - "start": 36, - "end": 38, - "loc": { - "start": { - "line": 1, - "column": 36 - }, - "end": { - "line": 1, - "column": 38 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json index 48f265cc99..a1524c4a1f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter-setter/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 20, "loc": { @@ -108,11 +108,10 @@ "column": 20 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 22, "end": 39, "loc": { @@ -145,45 +144,30 @@ "name": "__proto__" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 35, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 37, "end": 39, "loc": { "start": { "line": 1, - "column": 35 + "column": 37 }, "end": { "line": 1, "column": 39 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 37, - "end": 39, - "loc": { - "start": { - "line": 1, - "column": 37 - }, - "end": { - "line": 1, - "column": 39 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } }, { - "type": "Property", + "type": "ObjectMethod", "start": 41, "end": 59, "loc": { @@ -216,58 +200,43 @@ "name": "__proto__" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 54, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 55, + "end": 56, + "loc": { + "start": { + "line": 1, + "column": 55 + }, + "end": { + "line": 1, + "column": 56 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 57, "end": 59, "loc": { "start": { "line": 1, - "column": 54 + "column": 57 }, "end": { "line": 1, "column": 59 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 55, - "end": 56, - "loc": { - "start": { - "line": 1, - "column": 55 - }, - "end": { - "line": 1, - "column": 56 - } - }, - "name": "x" - } - ], - "body": { - "type": "BlockStatement", - "start": 57, - "end": 59, - "loc": { - "start": { - "line": 1, - "column": 57 - }, - "end": { - "line": 1, - "column": 59 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json index c6bdefacea..5fe032f20e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-getter/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 20, "loc": { @@ -108,11 +108,10 @@ "column": 20 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 22, "end": 39, "loc": { @@ -145,41 +144,26 @@ "name": "__proto__" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 35, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 37, "end": 39, "loc": { "start": { "line": 1, - "column": 35 + "column": 37 }, "end": { "line": 1, "column": 39 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 37, - "end": 39, - "loc": { - "start": { - "line": 1, - "column": 37 - }, - "end": { - "line": 1, - "column": 39 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json index f414d0c2e1..2a6d87e4c9 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-method/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 20, "loc": { @@ -108,11 +108,10 @@ "column": 20 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 22, "end": 35, "loc": { @@ -144,42 +143,27 @@ }, "name": "__proto__" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 31, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 33, "end": 35, "loc": { "start": { "line": 1, - "column": 31 + "column": 33 }, "end": { "line": 1, "column": 35 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 33, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json index 501fa19f68..d0c7453baa 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-initialiser/proto-literal-setter/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 20, "loc": { @@ -108,11 +108,10 @@ "column": 20 } } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 22, "end": 40, "loc": { @@ -145,58 +144,43 @@ "name": "__proto__" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 35, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 36, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 37 + } + }, + "name": "x" + } + ], + "body": { + "type": "BlockStatement", + "start": 38, "end": 40, "loc": { "start": { "line": 1, - "column": 35 + "column": 38 }, "end": { "line": 1, "column": 40 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 36, - "end": 37, - "loc": { - "start": { - "line": 1, - "column": 36 - }, - "end": { - "line": 1, - "column": 37 - } - }, - "name": "x" - } - ], - "body": { - "type": "BlockStatement", - "start": 38, - "end": 40, - "loc": { - "start": { - "line": 1, - "column": 38 - }, - "end": { - "line": 1, - "column": 40 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json index 83f868da39..660265dd75 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-literal-property-value-shorthand/migrated_0000/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 7, "loc": { @@ -121,7 +121,6 @@ }, "name": "y" }, - "kind": "init", "value": { "type": "Identifier", "start": 6, @@ -140,7 +139,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 10, "loc": { @@ -172,7 +171,6 @@ }, "name": "z" }, - "kind": "init", "value": { "type": "Identifier", "start": 9, @@ -194,6 +192,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json index 6b892f7870..7c4ad06015 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/elision/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json index 2b2774d691..91ef151596 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/nested/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 9, "loc": { @@ -120,8 +120,7 @@ } }, "properties": [] - }, - "kind": "init" + } } ] }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json index a7861a314f..385e1d7b27 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-object-pattern/properties/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -124,7 +123,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 7, "end": 10, "loc": { @@ -156,7 +155,6 @@ }, "name": "b" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 7, @@ -210,7 +208,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 11, "end": 14, "loc": { @@ -257,11 +255,10 @@ } }, "name": "d" - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 15, "end": 20, "loc": { @@ -343,11 +340,10 @@ }, "value": 0 } - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 21, "end": 28, "loc": { @@ -411,8 +407,7 @@ "name": "h" } ] - }, - "kind": "init" + } } ] }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json index e7736168c6..b5c022b8a6 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-method/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 29, "loc": { @@ -201,15 +201,16 @@ "column": 29 } }, - "body": [] + "body": [], + "directives": [] } - }, - "kind": "init" + } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json index aee5d3439b..18295991cb 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-rest-parameter/object-shorthand-method/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 25, "loc": { @@ -121,79 +121,66 @@ }, "name": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 12, - "end": 25, - "loc": { - "start": { - "line": 1, - "column": 12 + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "RestElement", + "start": 13, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 20 + } }, - "end": { - "line": 1, - "column": 25 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "RestElement", - "start": 13, + "argument": { + "type": "Identifier", + "start": 16, "end": 20, "loc": { "start": { "line": 1, - "column": 13 + "column": 16 }, "end": { "line": 1, "column": 20 } }, - "argument": { - "type": "Identifier", - "start": 16, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "name": "test" - } + "name": "test" } - ], - "body": { - "type": "BlockStatement", - "start": 22, - "end": 25, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 25 - } - }, - "body": [] } + ], + "body": { + "type": "BlockStatement", + "start": 22, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "body": [], + "directives": [] } } ] } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_access/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_access/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_access/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_access/options.json rename to packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_access/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/actual.js b/packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/expected.json similarity index 99% rename from packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/expected.json index 9f101bba08..051ec3a5b8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 14, "end": 37, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/options.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-super-property/invalid_super_id/options.json rename to packages/babylon/test/fixtures/esprima/es2015-super-property/.invalid_super_id/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json index b94e426219..76dcbec057 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/arrow_super/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 67, "loc": { @@ -122,41 +122,41 @@ }, "static": false, "kind": "constructor", - "value": { - "type": "FunctionExpression", - "start": 35, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 38, "end": 67, "loc": { "start": { "line": 2, - "column": 15 + "column": 18 }, "end": { "line": 4, "column": 5 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 38, - "end": 67, - "loc": { - "start": { - "line": 2, - "column": 18 + "body": [ + { + "type": "ExpressionStatement", + "start": 48, + "end": 61, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 21 + } }, - "end": { - "line": 4, - "column": 5 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "ArrowFunctionExpression", "start": 48, "end": 61, "loc": { @@ -169,28 +169,28 @@ "column": 21 } }, - "expression": { - "type": "ArrowFunctionExpression", - "start": 48, + "id": null, + "generator": false, + "expression": true, + "params": [], + "body": { + "type": "CallExpression", + "start": 54, "end": 61, "loc": { "start": { "line": 3, - "column": 8 + "column": 14 }, "end": { "line": 3, "column": 21 } }, - "id": null, - "generator": false, - "expression": true, - "params": [], - "body": { - "type": "CallExpression", + "callee": { + "type": "Super", "start": 54, - "end": 61, + "end": 59, "loc": { "start": { "line": 3, @@ -198,35 +198,22 @@ }, "end": { "line": 3, - "column": 21 + "column": 19 } - }, - "callee": { - "type": "Super", - "start": 54, - "end": 59, - "loc": { - "start": { - "line": 3, - "column": 14 - }, - "end": { - "line": 3, - "column": 19 - } - } - }, - "arguments": [] - } + } + }, + "arguments": [] } } - ] - } + } + ], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json index dd99c7bb8e..aad408ba61 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/constructor_super/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 62, "loc": { @@ -122,43 +122,43 @@ }, "static": false, "kind": "constructor", - "value": { - "type": "FunctionExpression", - "start": 35, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 38, "end": 62, "loc": { "start": { "line": 2, - "column": 15 + "column": 18 }, "end": { "line": 4, "column": 5 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 38, - "end": 62, - "loc": { - "start": { - "line": 2, - "column": 18 + "body": [ + { + "type": "ExpressionStatement", + "start": 48, + "end": 56, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 16 + } }, - "end": { - "line": 4, - "column": 5 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "CallExpression", "start": 48, - "end": 56, + "end": 55, "loc": { "start": { "line": 3, @@ -166,13 +166,13 @@ }, "end": { "line": 3, - "column": 16 + "column": 15 } }, - "expression": { - "type": "CallExpression", + "callee": { + "type": "Super", "start": 48, - "end": 55, + "end": 53, "loc": { "start": { "line": 3, @@ -180,34 +180,21 @@ }, "end": { "line": 3, - "column": 15 + "column": 13 } - }, - "callee": { - "type": "Super", - "start": 48, - "end": 53, - "loc": { - "start": { - "line": 3, - "column": 8 - }, - "end": { - "line": 3, - "column": 13 - } - } - }, - "arguments": [] - } + } + }, + "arguments": [] } - ] - } + } + ], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json index d86a834f70..4bf3b459c2 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/new_super/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 61, "loc": { @@ -122,41 +122,41 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 27, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 30, "end": 61, "loc": { "start": { "line": 2, - "column": 7 + "column": 10 }, "end": { "line": 4, "column": 5 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 30, - "end": 61, - "loc": { - "start": { - "line": 2, - "column": 10 + "body": [ + { + "type": "ExpressionStatement", + "start": 40, + "end": 55, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 23 + } }, - "end": { - "line": 4, - "column": 5 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "NewExpression", "start": 40, "end": 55, "loc": { @@ -169,77 +169,64 @@ "column": 23 } }, - "expression": { - "type": "NewExpression", - "start": 40, - "end": 55, + "callee": { + "type": "MemberExpression", + "start": 44, + "end": 53, "loc": { "start": { "line": 3, - "column": 8 + "column": 12 }, "end": { "line": 3, - "column": 23 + "column": 21 } }, - "callee": { - "type": "MemberExpression", + "object": { + "type": "Super", "start": 44, - "end": 53, + "end": 49, "loc": { "start": { "line": 3, "column": 12 }, + "end": { + "line": 3, + "column": 17 + } + } + }, + "property": { + "type": "Identifier", + "start": 50, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 18 + }, "end": { "line": 3, "column": 21 } }, - "object": { - "type": "Super", - "start": 44, - "end": 49, - "loc": { - "start": { - "line": 3, - "column": 12 - }, - "end": { - "line": 3, - "column": 17 - } - } - }, - "property": { - "type": "Identifier", - "start": 50, - "end": 53, - "loc": { - "start": { - "line": 3, - "column": 18 - }, - "end": { - "line": 3, - "column": 21 - } - }, - "name": "bar" - }, - "computed": false + "name": "bar" }, - "arguments": [] - } + "computed": false + }, + "arguments": [] } - ] - } + } + ], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json index fc8eabf3ce..0187540a76 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_computed/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 59, "loc": { @@ -122,57 +122,57 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 25, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, "end": 59, "loc": { "start": { "line": 2, - "column": 5 + "column": 8 }, "end": { "line": 4, "column": 5 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 28, - "end": 59, - "loc": { - "start": { - "line": 2, - "column": 8 + "body": [ + { + "type": "ReturnStatement", + "start": 38, + "end": 53, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 23 + } }, - "end": { - "line": 4, - "column": 5 - } - }, - "body": [ - { - "type": "ReturnStatement", - "start": 38, + "argument": { + "type": "MemberExpression", + "start": 45, "end": 53, "loc": { "start": { "line": 3, - "column": 8 + "column": 15 }, "end": { "line": 3, "column": 23 } }, - "argument": { - "type": "MemberExpression", + "object": { + "type": "Super", "start": 45, - "end": 53, + "end": 50, "loc": { "start": { "line": 3, @@ -180,50 +180,35 @@ }, "end": { "line": 3, - "column": 23 + "column": 20 + } + } + }, + "property": { + "type": "NumberLiteral", + "start": 51, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 21 + }, + "end": { + "line": 3, + "column": 22 } }, - "object": { - "type": "Super", - "start": 45, - "end": 50, - "loc": { - "start": { - "line": 3, - "column": 15 - }, - "end": { - "line": 3, - "column": 20 - } - } + "extra": { + "rawValue": 1, + "raw": "1" }, - "property": { - "type": "NumberLiteral", - "start": 51, - "end": 52, - "loc": { - "start": { - "line": 3, - "column": 21 - }, - "end": { - "line": 3, - "column": 22 - } - }, - "extra": { - "rawValue": 1, - "raw": "1" - }, - "value": 1 - }, - "computed": true - } + "value": 1 + }, + "computed": true } - ], - "directives": [] - } + } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json index ad4ef9c6c4..9b939e582b 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-super-property/super_member/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 58, "loc": { @@ -122,108 +122,95 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 25, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, "end": 58, "loc": { "start": { "line": 2, - "column": 5 + "column": 8 }, "end": { "line": 4, "column": 5 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 28, - "end": 58, - "loc": { - "start": { - "line": 2, - "column": 8 + "body": [ + { + "type": "ReturnStatement", + "start": 38, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 8 + }, + "end": { + "line": 3, + "column": 22 + } }, - "end": { - "line": 4, - "column": 5 - } - }, - "body": [ - { - "type": "ReturnStatement", - "start": 38, + "argument": { + "type": "MemberExpression", + "start": 45, "end": 52, "loc": { "start": { "line": 3, - "column": 8 + "column": 15 }, "end": { "line": 3, "column": 22 } }, - "argument": { - "type": "MemberExpression", + "object": { + "type": "Super", "start": 45, - "end": 52, + "end": 50, "loc": { "start": { "line": 3, "column": 15 }, + "end": { + "line": 3, + "column": 20 + } + } + }, + "property": { + "type": "Identifier", + "start": 51, + "end": 52, + "loc": { + "start": { + "line": 3, + "column": 21 + }, "end": { "line": 3, "column": 22 } }, - "object": { - "type": "Super", - "start": 45, - "end": 50, - "loc": { - "start": { - "line": 3, - "column": 15 - }, - "end": { - "line": 3, - "column": 20 - } - } - }, - "property": { - "type": "Identifier", - "start": 51, - "end": 52, - "loc": { - "start": { - "line": 3, - "column": 21 - }, - "end": { - "line": 3, - "column": 22 - } - }, - "name": "y" - }, - "computed": false - } + "name": "y" + }, + "computed": false } - ] - } + } + ], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/.octal-literal/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-template-literals/.octal-literal/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/.octal-literal/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-template-literals/.octal-literal/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/.octal-literal/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-template-literals/octal-literal/options.json rename to packages/babylon/test/fixtures/esprima/es2015-template-literals/.octal-literal/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/actual.js b/packages/babylon/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/expected.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/options.json b/packages/babylon/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-template-literals/strict-octal-literal/options.json rename to packages/babylon/test/fixtures/esprima/es2015-template-literals/.strict-octal-literal/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-arrow-default/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-arrow-default/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-arrow-default/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-arrow-default/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-arrow-default/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-arrow-default/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-arrow-default/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-name/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-name/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-name/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-name/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-name/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-name/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-name/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-parameter/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-parameter/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-parameter/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-parameter/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-parameter/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-parameter/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-parameter/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-rest/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-rest/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-rest/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-rest/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-rest/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-expression-rest/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-expression-rest/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-parameter/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-parameter/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-parameter/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-parameter/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-parameter/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-parameter/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-parameter/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-rest/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-rest/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-rest/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-rest/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-rest/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-generator-rest/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-generator-rest/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-array-pattern/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-array-pattern/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-array-pattern/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-array-pattern/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-array-pattern/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-array-pattern/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-array-pattern/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-default/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-default/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-default/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-default/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-default/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-default/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-default/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-name/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-name/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-name/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-name/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-name/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/invalid-yield-strict-arrow-parameter-name/options.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.invalid-yield-strict-arrow-parameter-name/options.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-arrow-concise-body/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-arrow-concise-body/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-arrow-concise-body/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-arrow-concise-body/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-arrow-concise-body/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-expression/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-function-expression/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-expression/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-function-expression/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/actual.js b/packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-function-parameter/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/actual.js rename to packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-function-parameter/actual.js diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-function-parameter/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-function-parameter/expected.json rename to packages/babylon/test/fixtures/esprima/es2015-yield/.yield-generator-function-parameter/expected.json diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json index 350b3f3ac2..09eb1bcbb8 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-element/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 14, "loc": { @@ -120,8 +120,7 @@ } }, "name": "yield" - }, - "kind": "init" + } } ] }, @@ -145,6 +144,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json index 65944e5be1..7b85a9fef5 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-binding-property/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 14, "loc": { @@ -120,8 +120,7 @@ } }, "name": "x" - }, - "kind": "init" + } } ] }, @@ -145,6 +144,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json index dbe92db430..660094298e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-method/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 14, "loc": { @@ -90,42 +90,27 @@ }, "name": "yield" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 14, "loc": { "start": { "line": 1, - "column": 9 + "column": 12 }, "end": { "line": 1, "column": 14 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json index f491ff04fd..b212d5a14f 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-generator-parameter-object-pattern/expected.json @@ -77,7 +77,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 13, "end": 21, "loc": { @@ -124,8 +124,7 @@ } }, "name": "y" - }, - "kind": "init" + } } ] } @@ -144,9 +143,11 @@ "column": 25 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json index 7ef2282cd6..73a6d2827d 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-method/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 13, "loc": { @@ -90,42 +90,27 @@ }, "name": "yield" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 8, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 11, "end": 13, "loc": { "start": { "line": 1, - "column": 8 + "column": 11 }, "end": { "line": 1, "column": 13 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 11, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json index 68bee782bd..f0dc7b4f27 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-parameter-object-pattern/expected.json @@ -77,7 +77,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 20, "loc": { @@ -124,8 +124,7 @@ } }, "name": "y" - }, - "kind": "init" + } } ] } @@ -144,9 +143,11 @@ "column": 24 } }, - "body": [] + "body": [], + "directives": [] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json index c48e078e6b..687e8f341a 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-binding-property/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 20, "end": 28, "loc": { @@ -120,8 +120,7 @@ } }, "name": "x" - }, - "kind": "init" + } } ] }, diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json index 2773f3f558..e71a000bbe 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-strict-method/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 17, "end": 27, "loc": { @@ -90,42 +90,27 @@ }, "name": "yield" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 22, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 25, "end": 27, "loc": { "start": { "line": 1, - "column": 22 + "column": 25 }, "end": { "line": 1, "column": 27 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 25, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 27 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json index 4e179ca792..ef8158ed4e 100644 --- a/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json +++ b/packages/babylon/test/fixtures/esprima/es2015-yield/yield-super-property/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 20, "end": 39, "loc": { @@ -122,41 +122,41 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 21, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 24, "end": 39, "loc": { "start": { "line": 1, - "column": 21 + "column": 24 }, "end": { "line": 1, "column": 39 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 24, - "end": 39, - "loc": { - "start": { - "line": 1, - "column": 24 + "body": [ + { + "type": "ExpressionStatement", + "start": 26, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 37 + } }, - "end": { - "line": 1, - "column": 39 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "MemberExpression", "start": 26, "end": 37, "loc": { @@ -169,61 +169,48 @@ "column": 37 } }, - "expression": { - "type": "MemberExpression", + "object": { + "type": "Super", "start": 26, - "end": 37, + "end": 31, "loc": { "start": { "line": 1, "column": 26 }, + "end": { + "line": 1, + "column": 31 + } + } + }, + "property": { + "type": "Identifier", + "start": 32, + "end": 37, + "loc": { + "start": { + "line": 1, + "column": 32 + }, "end": { "line": 1, "column": 37 } }, - "object": { - "type": "Super", - "start": 26, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 26 - }, - "end": { - "line": 1, - "column": 31 - } - } - }, - "property": { - "type": "Identifier", - "start": 32, - "end": 37, - "loc": { - "start": { - "line": 1, - "column": 32 - }, - "end": { - "line": 1, - "column": 37 - } - }, - "name": "yield" - }, - "computed": false - } + "name": "yield" + }, + "computed": false } - ] - } + } + ], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.GH-1106-09/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.GH-1106-09/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.GH-1106-09/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.GH-1106-09/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.GH-1106-09/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/GH-1106-09/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.GH-1106-09/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0033/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0033/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0033/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0033/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0033/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0033/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0033/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0034/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0034/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0034/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0034/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0034/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0034/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0034/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0035/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0035/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0035/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0035/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0035/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0035/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0035/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0036/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0036/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0036/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0036/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0036/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0036/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0036/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0037/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0037/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0037/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0037/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0037/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0037/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0037/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0041/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0041/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0041/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0041/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0041/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0041/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0041/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0042/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0042/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0042/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0042/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0042/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0042/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0042/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0043/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0043/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0043/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0043/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0043/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0043/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0043/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0044/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0044/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0044/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0044/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0044/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0044/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0044/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0048/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0048/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0048/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0048/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0048/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0048/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0048/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0049/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0049/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0049/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0049/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0049/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0049/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0049/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0050/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0050/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0050/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0050/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0050/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0050/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0050/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0051/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0051/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0051/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0051/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0051/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0051/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0051/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0075/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0075/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0075/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0075/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0075/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0137/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0137/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0137/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0137/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0137/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0137/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0137/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0163/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0163/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0163/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0163/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0163/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0163/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0163/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0165/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0165/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0165/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0165/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0165/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0165/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0165/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0166/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0166/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0166/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0166/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0166/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0166/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0166/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0167/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0167/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0167/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0167/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0167/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0167/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0167/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0169/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0169/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0169/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0169/expected.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0169/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0169/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0169/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/expected.json new file mode 100644 index 0000000000..d6b7e5702f --- /dev/null +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/expected.json @@ -0,0 +1,206 @@ +{ + "type": "File", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "expression": { + "type": "AssignmentExpression", + "start": 0, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "operator": "=", + "left": { + "type": "Identifier", + "start": 0, + "end": 1, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 1 + } + }, + "name": "x" + }, + "right": { + "type": "ObjectExpression", + "start": 4, + "end": 36, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 36 + } + }, + "properties": [ + { + "type": "ObjectProperty", + "start": 6, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 6, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NumberLiteral", + "start": 17, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 + } + }, + { + "type": "ObjectProperty", + "start": 21, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 21, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NumberLiteral", + "start": 32, + "end": 34, + "loc": { + "start": { + "line": 1, + "column": 32 + }, + "end": { + "line": 1, + "column": 34 + } + }, + "extra": { + "rawValue": 43, + "raw": "43" + }, + "value": 43 + } + } + ] + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0250/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0250/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/actual.js b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/actual.js rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/actual.js diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/expected.json similarity index 98% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/expected.json index 0fa4cd9032..374479f48a 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/expected.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 18, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/options.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/options.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0277/options.json rename to packages/babylon/test/fixtures/esprima/invalid-syntax/.migrated_0277/options.json diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json index 5830cef10e..ee4de023b7 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0270/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 29, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json index 6cc3ea74c2..d1b5f89276 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0271/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 31, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json index 966e05ade4..1e47cb6c1c 100644 --- a/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json +++ b/packages/babylon/test/fixtures/esprima/invalid-syntax/migrated_0278/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 28, "loc": { diff --git a/packages/babylon/test/fixtures/esprima/statement-if/migrated_0003/actual.js b/packages/babylon/test/fixtures/esprima/statement-if/.migrated_0003/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/statement-if/migrated_0003/actual.js rename to packages/babylon/test/fixtures/esprima/statement-if/.migrated_0003/actual.js diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/.migrated_0021/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/actual.js rename to packages/babylon/test/fixtures/esprima/statement-iteration/.migrated_0021/actual.js diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/expected.json b/packages/babylon/test/fixtures/esprima/statement-iteration/.migrated_0021/expected.json similarity index 100% rename from packages/babylon/test/fixtures/esprima/statement-iteration/migrated_0021/expected.json rename to packages/babylon/test/fixtures/esprima/statement-iteration/.migrated_0021/expected.json diff --git a/packages/babylon/test/fixtures/esprima/statement-iteration/pattern-in-for-in/actual.js b/packages/babylon/test/fixtures/esprima/statement-iteration/.pattern-in-for-in/actual.js similarity index 100% rename from packages/babylon/test/fixtures/esprima/statement-iteration/pattern-in-for-in/actual.js rename to packages/babylon/test/fixtures/esprima/statement-iteration/.pattern-in-for-in/actual.js diff --git a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json index 0ddcce0c63..1586888a8b 100644 --- a/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json +++ b/packages/babylon/test/fixtures/esprima/statement-throw/migrated_0002/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 8, "end": 24, "loc": { @@ -109,8 +109,7 @@ "raw": "\"Error\"" }, "value": "Error" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/experimental/async-functions/object-last-property-shorthand/expected.json b/packages/babylon/test/fixtures/experimental/async-functions/object-last-property-shorthand/expected.json index b43eede7d6..bd3c1e7695 100644 --- a/packages/babylon/test/fixtures/experimental/async-functions/object-last-property-shorthand/expected.json +++ b/packages/babylon/test/fixtures/experimental/async-functions/object-last-property-shorthand/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 11, "loc": { @@ -120,7 +120,6 @@ }, "name": "async" }, - "kind": "init", "value": { "type": "Identifier", "start": 6, @@ -143,6 +142,7 @@ ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json b/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json index 26dffdc586..339a3925ef 100644 --- a/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json +++ b/packages/babylon/test/fixtures/experimental/async-functions/pattern/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 7, "end": 12, "loc": { @@ -105,7 +105,6 @@ }, "name": "async" }, - "kind": "init", "value": { "type": "Identifier", "start": 7, diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/.duplicate/actual.js b/packages/babylon/test/fixtures/experimental/class-constructor-call/.duplicate/actual.js new file mode 100644 index 0000000000..6fd5dd7d11 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/.duplicate/actual.js @@ -0,0 +1,4 @@ +class Foo { + call constructor() {} + call constructor() {} +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/actual.js b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/actual.js new file mode 100644 index 0000000000..9a3bd5d8d6 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/actual.js @@ -0,0 +1,5 @@ +class Foo { + *call constructor() { + foo(); + } +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/options.json b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/options.json new file mode 100644 index 0000000000..ef2b7c682f --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-generator/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:8)" +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/actual.js b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/actual.js new file mode 100644 index 0000000000..e3155a24a8 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/actual.js @@ -0,0 +1,5 @@ +class Foo { + call foobar() { + foo(); + } +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/options.json b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/options.json new file mode 100644 index 0000000000..4e84114247 --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/illegal-key/options.json @@ -0,0 +1,3 @@ +{ + "throws": "Unexpected token (2:7)" +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/options.json b/packages/babylon/test/fixtures/experimental/class-constructor-call/options.json new file mode 100644 index 0000000000..253cf5199b --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/options.json @@ -0,0 +1,3 @@ +{ + "plugins": ["classConstructorCall"] +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/plain/actual.js b/packages/babylon/test/fixtures/experimental/class-constructor-call/plain/actual.js new file mode 100644 index 0000000000..1f8b64ef4a --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/plain/actual.js @@ -0,0 +1,5 @@ +class Foo { + call constructor() { + foo(); + } +} diff --git a/packages/babylon/test/fixtures/experimental/class-constructor-call/plain/expected.json b/packages/babylon/test/fixtures/experimental/class-constructor-call/plain/expected.json new file mode 100644 index 0000000000..49c89dadbc --- /dev/null +++ b/packages/babylon/test/fixtures/experimental/class-constructor-call/plain/expected.json @@ -0,0 +1,186 @@ +{ + "type": "File", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ClassDeclaration", + "start": 0, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "id": { + "type": "Identifier", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 + }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "Foo" + }, + "superClass": null, + "body": { + "type": "ClassBody", + "start": 10, + "end": 51, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 5, + "column": 1 + } + }, + "body": [ + { + "type": "ClassMethod", + "start": 14, + "end": 49, + "loc": { + "start": { + "line": 2, + "column": 2 + }, + "end": { + "line": 4, + "column": 3 + } + }, + "computed": false, + "key": { + "type": "Identifier", + "start": 19, + "end": 30, + "loc": { + "start": { + "line": 2, + "column": 7 + }, + "end": { + "line": 2, + "column": 18 + } + }, + "name": "constructor" + }, + "static": false, + "kind": "constructorCall", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 33, + "end": 49, + "loc": { + "start": { + "line": 2, + "column": 21 + }, + "end": { + "line": 4, + "column": 3 + } + }, + "body": [ + { + "type": "ExpressionStatement", + "start": 39, + "end": 45, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 10 + } + }, + "expression": { + "type": "CallExpression", + "start": 39, + "end": 44, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 9 + } + }, + "callee": { + "type": "Identifier", + "start": 39, + "end": 42, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 3, + "column": 7 + } + }, + "name": "foo" + }, + "arguments": [] + } + } + ], + "directives": [] + } + } + ] + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/24/actual.js b/packages/babylon/test/fixtures/experimental/uncategorised/.24/actual.js similarity index 100% rename from packages/babylon/test/fixtures/experimental/uncategorised/24/actual.js rename to packages/babylon/test/fixtures/experimental/uncategorised/.24/actual.js diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/24/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/.24/expected.json similarity index 100% rename from packages/babylon/test/fixtures/experimental/uncategorised/24/expected.json rename to packages/babylon/test/fixtures/experimental/uncategorised/.24/expected.json diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/24/options.json b/packages/babylon/test/fixtures/experimental/uncategorised/.24/options.json similarity index 100% rename from packages/babylon/test/fixtures/experimental/uncategorised/24/options.json rename to packages/babylon/test/fixtures/experimental/uncategorised/.24/options.json diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json index a9e67765ef..f017a9cc8e 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/10/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json index 5da577c081..64c2046836 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/11/expected.json @@ -76,7 +76,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 11, "end": 12, "loc": { @@ -108,7 +108,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 11, diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/13/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/13/expected.json index bbf2490867..13c6c8dc0c 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/13/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/13/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -121,7 +121,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -174,6 +173,7 @@ } } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json index de5cd3bace..761b028be8 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/14/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 3, "loc": { @@ -90,7 +90,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 2, @@ -140,7 +139,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 11, "end": 12, "loc": { @@ -172,7 +171,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 11, @@ -222,7 +220,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 20, "end": 21, "loc": { @@ -254,7 +252,6 @@ }, "name": "c" }, - "kind": "init", "value": { "type": "Identifier", "start": 20, diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json index d6700e7b80..05a0c068cb 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/21/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 10, "end": 14, "loc": { @@ -140,11 +140,10 @@ "raw": "1" }, "value": 1 - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectMethod", "start": 16, "end": 52, "loc": { @@ -176,60 +175,60 @@ }, "name": "foo" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 25, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "async": true, + "params": [ + { + "type": "Identifier", + "start": 26, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 26 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "name": "promise" + } + ], + "body": { + "type": "BlockStatement", + "start": 35, "end": 52, "loc": { "start": { "line": 1, - "column": 25 + "column": 35 }, "end": { "line": 1, "column": 52 } }, - "id": null, - "generator": false, - "expression": false, - "async": true, - "params": [ + "body": [ { - "type": "Identifier", - "start": 26, - "end": 33, + "type": "ExpressionStatement", + "start": 37, + "end": 50, "loc": { "start": { "line": 1, - "column": 26 + "column": 37 }, "end": { "line": 1, - "column": 33 + "column": 50 } }, - "name": "promise" - } - ], - "body": { - "type": "BlockStatement", - "start": 35, - "end": 52, - "loc": { - "start": { - "line": 1, - "column": 35 - }, - "end": { - "line": 1, - "column": 52 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AwaitExpression", "start": 37, "end": 50, "loc": { @@ -242,42 +241,27 @@ "column": 50 } }, - "expression": { - "type": "AwaitExpression", - "start": 37, + "all": false, + "argument": { + "type": "Identifier", + "start": 43, "end": 50, "loc": { "start": { "line": 1, - "column": 37 + "column": 43 }, "end": { "line": 1, "column": 50 } }, - "all": false, - "argument": { - "type": "Identifier", - "start": 43, - "end": 50, - "loc": { - "start": { - "line": 1, - "column": 43 - }, - "end": { - "line": 1, - "column": 50 - } - }, - "name": "promise" - } + "name": "promise" } } - ], - "directives": [] - } + } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json index 3f2e2fe5b0..a0fd07d512 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/22/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 12, "end": 48, "loc": { @@ -107,59 +107,59 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 21, + "id": null, + "generator": false, + "expression": false, + "async": true, + "params": [ + { + "type": "Identifier", + "start": 22, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "name": "promise" + } + ], + "body": { + "type": "BlockStatement", + "start": 31, "end": 48, "loc": { "start": { "line": 1, - "column": 21 + "column": 31 }, "end": { "line": 1, "column": 48 } }, - "id": null, - "generator": false, - "expression": false, - "async": true, - "params": [ + "body": [ { - "type": "Identifier", - "start": 22, - "end": 29, + "type": "ExpressionStatement", + "start": 33, + "end": 46, "loc": { "start": { "line": 1, - "column": 22 + "column": 33 }, "end": { "line": 1, - "column": 29 + "column": 46 } }, - "name": "promise" - } - ], - "body": { - "type": "BlockStatement", - "start": 31, - "end": 48, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 48 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "AwaitExpression", "start": 33, "end": 46, "loc": { @@ -172,46 +172,33 @@ "column": 46 } }, - "expression": { - "type": "AwaitExpression", - "start": 33, + "all": false, + "argument": { + "type": "Identifier", + "start": 39, "end": 46, "loc": { "start": { "line": 1, - "column": 33 + "column": 39 }, "end": { "line": 1, "column": 46 } }, - "all": false, - "argument": { - "type": "Identifier", - "start": 39, - "end": 46, - "loc": { - "start": { - "line": 1, - "column": 39 - }, - "end": { - "line": 1, - "column": 46 - } - }, - "name": "promise" - } + "name": "promise" } } - ] - } + } + ], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json index 169869cbf6..0c05743d58 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/29/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 13, "end": 23, "loc": { @@ -107,41 +107,27 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 18, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 21, "end": 23, "loc": { "start": { "line": 1, - "column": 18 + "column": 21 }, "end": { "line": 1, "column": 23 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 21, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json index 60fc936189..a5e072a934 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/30/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 25, "loc": { @@ -139,8 +139,7 @@ "raw": "\"test\"" }, "value": "test" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json index 55dbd1960c..1078686a77 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/31/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 12, "end": 22, "loc": { @@ -120,43 +120,28 @@ }, "name": "async" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 17, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 22, "loc": { "start": { "line": 1, - "column": 17 + "column": 20 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "async": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/35/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/35/expected.json index 03c8437135..ff000260aa 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/35/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/35/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 17, "end": 25, "loc": { @@ -140,45 +140,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 20, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 23, "end": 25, "loc": { "start": { "line": 1, - "column": 20 + "column": 23 }, "end": { "line": 1, "column": 25 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 23, - "end": 25, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 25 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/36/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/36/expected.json index 50d2011f36..118d2b69c5 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/36/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/36/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 17, "end": 30, "loc": { @@ -140,62 +140,49 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 24, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 25, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "f" + } + ], + "body": { + "type": "BlockStatement", + "start": 28, "end": 30, "loc": { "start": { "line": 1, - "column": 24 + "column": 28 }, "end": { "line": 1, "column": 30 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 25, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "name": "f" - } - ], - "body": { - "type": "BlockStatement", - "start": 28, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/37/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/37/expected.json index ac0fa38fc3..ad67c94592 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/37/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/37/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 17, "end": 29, "loc": { @@ -140,45 +140,32 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 24, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, "end": 29, "loc": { "start": { "line": 1, - "column": 24 + "column": 27 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 27, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/38/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/38/expected.json index c538000216..d55670aa51 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/38/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/38/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 22, "end": 30, "loc": { @@ -171,45 +171,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 25, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 28, "end": 30, "loc": { "start": { "line": 1, - "column": 25 + "column": 28 }, "end": { "line": 1, "column": 30 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 28, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json index da6ab2aeb4..b8e2fae3e8 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/39/expected.json @@ -104,7 +104,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 22, "loc": { @@ -188,8 +188,7 @@ "raw": "\"bar\"" }, "value": "bar" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json index 0ca312dba2..1186fc6b42 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/49/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 17, "end": 27, "loc": { @@ -173,8 +173,7 @@ "raw": "'wow'" }, "value": "wow" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/experimental/uncategorised/57/expected.json b/packages/babylon/test/fixtures/experimental/uncategorised/57/expected.json index ebb3ee0019..84ddd9f145 100644 --- a/packages/babylon/test/fixtures/experimental/uncategorised/57/expected.json +++ b/packages/babylon/test/fixtures/experimental/uncategorised/57/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 12, "end": 23, "loc": { @@ -107,62 +107,49 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 15, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 16, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "a" + } + ], + "body": { + "type": "BlockStatement", + "start": 20, "end": 23, "loc": { "start": { "line": 1, - "column": 15 + "column": 20 }, "end": { "line": 1, "column": 23 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 16, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "name": "a" - } - ], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/actual.js b/packages/babylon/test/fixtures/flow/regression/.arrow-function-parens-with-return-type/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/actual.js rename to packages/babylon/test/fixtures/flow/regression/.arrow-function-parens-with-return-type/actual.js diff --git a/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/expected.json b/packages/babylon/test/fixtures/flow/regression/.arrow-function-parens-with-return-type/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/expected.json rename to packages/babylon/test/fixtures/flow/regression/.arrow-function-parens-with-return-type/expected.json diff --git a/packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/options.json b/packages/babylon/test/fixtures/flow/regression/.arrow-function-parens-with-return-type/options.json similarity index 100% rename from packages/babylon/test/fixtures/flow/regression/arrow-function-parens-with-return-type/options.json rename to packages/babylon/test/fixtures/flow/regression/.arrow-function-parens-with-return-type/options.json diff --git a/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json b/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json index f56868b0ee..9fc301b2fd 100644 --- a/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json +++ b/packages/babylon/test/fixtures/flow/regression/issue-2083/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 14, "end": 110, "loc": { @@ -107,93 +107,94 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 110, "loc": { "start": { "line": 2, - "column": 5 + "column": 8 }, "end": { "line": 6, "column": 3 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 110, - "loc": { - "start": { - "line": 2, - "column": 8 + "body": [ + { + "type": "SwitchStatement", + "start": 26, + "end": 106, + "loc": { + "start": { + "line": 3, + "column": 4 + }, + "end": { + "line": 5, + "column": 5 + } }, - "end": { - "line": 6, - "column": 3 - } - }, - "body": [ - { - "type": "SwitchStatement", - "start": 26, - "end": 106, + "discriminant": { + "type": "NumberLiteral", + "start": 34, + "end": 35, "loc": { "start": { "line": 3, - "column": 4 + "column": 12 }, "end": { - "line": 5, - "column": 5 + "line": 3, + "column": 13 } }, - "discriminant": { - "type": "NumberLiteral", - "start": 34, - "end": 35, + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 + }, + "cases": [ + { + "type": "SwitchCase", + "start": 45, + "end": 100, "loc": { "start": { - "line": 3, - "column": 12 + "line": 4, + "column": 6 }, "end": { - "line": 3, - "column": 13 + "line": 4, + "column": 61 } }, - "extra": { - "rawValue": 1, - "raw": "1" - }, - "value": 1 - }, - "cases": [ - { - "type": "SwitchCase", - "start": 45, - "end": 100, + "consequent": [], + "test": { + "type": "BinaryExpression", + "start": 51, + "end": 98, "loc": { "start": { "line": 4, - "column": 6 + "column": 12 }, "end": { "line": 4, - "column": 61 + "column": 59 } }, - "consequent": [], - "test": { - "type": "BinaryExpression", + "left": { + "type": "MemberExpression", "start": 51, - "end": 98, + "end": 71, "loc": { "start": { "line": 4, @@ -201,120 +202,105 @@ }, "end": { "line": 4, - "column": 59 + "column": 32 } }, - "left": { - "type": "MemberExpression", + "object": { + "type": "Identifier", "start": 51, - "end": 71, + "end": 61, "loc": { "start": { "line": 4, "column": 12 }, + "end": { + "line": 4, + "column": 22 + } + }, + "name": "MatrixType" + }, + "property": { + "type": "Identifier", + "start": 62, + "end": 71, + "loc": { + "start": { + "line": 4, + "column": 23 + }, "end": { "line": 4, "column": 32 } }, - "object": { - "type": "Identifier", - "start": 51, - "end": 61, - "loc": { - "start": { - "line": 4, - "column": 12 - }, - "end": { - "line": 4, - "column": 22 - } - }, - "name": "MatrixType" - }, - "property": { - "type": "Identifier", - "start": 62, - "end": 71, - "loc": { - "start": { - "line": 4, - "column": 23 - }, - "end": { - "line": 4, - "column": 32 - } - }, - "name": "IsScaling" - }, - "computed": false + "name": "IsScaling" }, - "operator": "|", - "right": { - "type": "MemberExpression", + "computed": false + }, + "operator": "|", + "right": { + "type": "MemberExpression", + "start": 74, + "end": 98, + "loc": { + "start": { + "line": 4, + "column": 35 + }, + "end": { + "line": 4, + "column": 59 + } + }, + "object": { + "type": "Identifier", "start": 74, - "end": 98, + "end": 84, "loc": { "start": { "line": 4, "column": 35 }, + "end": { + "line": 4, + "column": 45 + } + }, + "name": "MatrixType" + }, + "property": { + "type": "Identifier", + "start": 85, + "end": 98, + "loc": { + "start": { + "line": 4, + "column": 46 + }, "end": { "line": 4, "column": 59 } }, - "object": { - "type": "Identifier", - "start": 74, - "end": 84, - "loc": { - "start": { - "line": 4, - "column": 35 - }, - "end": { - "line": 4, - "column": 45 - } - }, - "name": "MatrixType" - }, - "property": { - "type": "Identifier", - "start": 85, - "end": 98, - "loc": { - "start": { - "line": 4, - "column": 46 - }, - "end": { - "line": 4, - "column": 59 - } - }, - "name": "IsTranslation" - }, - "computed": false + "name": "IsTranslation" }, - "extra": { - "parenthesized": true - } + "computed": false + }, + "extra": { + "parenthesized": true } } - ] - } - ], - "directives": [] - } + } + ] + } + ], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 114, "end": 162, "loc": { @@ -346,71 +332,72 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 117, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 120, "end": 162, "loc": { "start": { "line": 8, - "column": 5 + "column": 8 }, "end": { "line": 10, "column": 3 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 120, - "end": 162, - "loc": { - "start": { - "line": 8, - "column": 8 + "body": [ + { + "type": "SwitchStatement", + "start": 126, + "end": 158, + "loc": { + "start": { + "line": 9, + "column": 4 + }, + "end": { + "line": 9, + "column": 36 + } }, - "end": { - "line": 10, - "column": 3 - } - }, - "body": [ - { - "type": "SwitchStatement", - "start": 126, - "end": 158, + "discriminant": { + "type": "BinaryExpression", + "start": 134, + "end": 154, "loc": { "start": { "line": 9, - "column": 4 + "column": 12 }, "end": { "line": 9, - "column": 36 + "column": 32 } }, - "discriminant": { + "left": { "type": "BinaryExpression", - "start": 134, - "end": 154, + "start": 135, + "end": 145, "loc": { "start": { "line": 9, - "column": 12 + "column": 13 }, "end": { "line": 9, - "column": 32 + "column": 23 } }, "left": { - "type": "BinaryExpression", + "type": "Identifier", "start": 135, - "end": 145, + "end": 140, "loc": { "start": { "line": 9, @@ -418,73 +405,58 @@ }, "end": { "line": 9, - "column": 23 + "column": 18 } }, - "left": { - "type": "Identifier", - "start": 135, - "end": 140, - "loc": { - "start": { - "line": 9, - "column": 13 - }, - "end": { - "line": 9, - "column": 18 - } - }, - "name": "typeA" - }, - "operator": "<<", - "right": { - "type": "NumberLiteral", - "start": 144, - "end": 145, - "loc": { - "start": { - "line": 9, - "column": 22 - }, - "end": { - "line": 9, - "column": 23 - } - }, - "extra": { - "rawValue": 4, - "raw": "4" - }, - "value": 4 - }, - "extra": { - "parenthesized": true - } + "name": "typeA" }, - "operator": "|", + "operator": "<<", "right": { - "type": "Identifier", - "start": 149, - "end": 154, + "type": "NumberLiteral", + "start": 144, + "end": 145, "loc": { "start": { "line": 9, - "column": 27 + "column": 22 }, "end": { "line": 9, - "column": 32 + "column": 23 } }, - "name": "typeB" + "extra": { + "rawValue": 4, + "raw": "4" + }, + "value": 4 + }, + "extra": { + "parenthesized": true } }, - "cases": [] - } - ], - "directives": [] - } + "operator": "|", + "right": { + "type": "Identifier", + "start": 149, + "end": 154, + "loc": { + "start": { + "line": 9, + "column": 27 + }, + "end": { + "line": 9, + "column": 32 + } + }, + "name": "typeB" + } + }, + "cases": [] + } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/69/actual.js b/packages/babylon/test/fixtures/flow/type-annotations/.69/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/69/actual.js rename to packages/babylon/test/fixtures/flow/type-annotations/.69/actual.js diff --git a/packages/babylon/test/fixtures/flow/type-annotations/69/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/.69/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/69/expected.json rename to packages/babylon/test/fixtures/flow/type-annotations/.69/expected.json diff --git a/packages/babylon/test/fixtures/flow/type-annotations/70/actual.js b/packages/babylon/test/fixtures/flow/type-annotations/.70/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/70/actual.js rename to packages/babylon/test/fixtures/flow/type-annotations/.70/actual.js diff --git a/packages/babylon/test/fixtures/flow/type-annotations/70/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/.70/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/70/expected.json rename to packages/babylon/test/fixtures/flow/type-annotations/.70/expected.json diff --git a/packages/babylon/test/fixtures/flow/type-annotations/71/actual.js b/packages/babylon/test/fixtures/flow/type-annotations/.71/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/71/actual.js rename to packages/babylon/test/fixtures/flow/type-annotations/.71/actual.js diff --git a/packages/babylon/test/fixtures/flow/type-annotations/71/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/.71/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/71/expected.json rename to packages/babylon/test/fixtures/flow/type-annotations/.71/expected.json diff --git a/packages/babylon/test/fixtures/flow/type-annotations/75/actual.js b/packages/babylon/test/fixtures/flow/type-annotations/.75/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/75/actual.js rename to packages/babylon/test/fixtures/flow/type-annotations/.75/actual.js diff --git a/packages/babylon/test/fixtures/flow/type-annotations/75/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/.75/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/75/expected.json rename to packages/babylon/test/fixtures/flow/type-annotations/.75/expected.json diff --git a/packages/babylon/test/fixtures/flow/type-annotations/76/actual.js b/packages/babylon/test/fixtures/flow/type-annotations/.76/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/76/actual.js rename to packages/babylon/test/fixtures/flow/type-annotations/.76/actual.js diff --git a/packages/babylon/test/fixtures/flow/type-annotations/76/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/.76/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/76/expected.json rename to packages/babylon/test/fixtures/flow/type-annotations/.76/expected.json diff --git a/packages/babylon/test/fixtures/flow/type-annotations/77/actual.js b/packages/babylon/test/fixtures/flow/type-annotations/.77/actual.js similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/77/actual.js rename to packages/babylon/test/fixtures/flow/type-annotations/.77/actual.js diff --git a/packages/babylon/test/fixtures/flow/type-annotations/77/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/.77/expected.json similarity index 100% rename from packages/babylon/test/fixtures/flow/type-annotations/77/expected.json rename to packages/babylon/test/fixtures/flow/type-annotations/.77/expected.json diff --git a/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json index 455aaeaa26..e21b48d766 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/20/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 30, "loc": { @@ -122,88 +122,74 @@ "name": "fooProp" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 14, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 14 + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } }, - "end": { - "line": 1, - "column": 30 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 15, + "name": "value", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 20, "end": 27, "loc": { "start": { "line": 1, - "column": 15 + "column": 20 }, "end": { "line": 1, "column": 27 } }, - "name": "value", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 20, + "type": "NumberTypeAnnotation", + "start": 21, "end": 27, "loc": { "start": { "line": 1, - "column": 20 + "column": 21 }, "end": { "line": 1, "column": 27 } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 21, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 27 - } - } } } } - ], - "body": { - "type": "BlockStatement", - "start": 28, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "body": [], - "directives": [] } + ], + "body": { + "type": "BlockStatement", + "start": 28, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json index 3360af33e4..d1ddc78e40 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/21/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 35, "loc": { @@ -122,118 +122,104 @@ "name": "fooProp" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 14, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 14 + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 27 + } }, - "end": { - "line": 1, - "column": 35 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 15, + "name": "value", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 20, "end": 27, "loc": { "start": { "line": 1, - "column": 15 + "column": 20 }, "end": { "line": 1, "column": 27 } }, - "name": "value", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 20, + "type": "NumberTypeAnnotation", + "start": 21, "end": 27, "loc": { "start": { "line": 1, - "column": 20 + "column": 21 }, "end": { "line": 1, "column": 27 } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 21, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 27 - } - } } } } - ], - "returnType": { - "type": "TypeAnnotation", - "start": 28, + } + ], + "returnType": { + "type": "TypeAnnotation", + "start": 28, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 33 + } + }, + "typeAnnotation": { + "type": "VoidTypeAnnotation", + "start": 29, "end": 33, "loc": { "start": { "line": 1, - "column": 28 + "column": 29 }, "end": { "line": 1, "column": 33 } - }, - "typeAnnotation": { - "type": "VoidTypeAnnotation", - "start": 29, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 33 - } - } } - }, - "body": { - "type": "BlockStatement", - "start": 33, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 35 - } - }, - "body": [], - "directives": [] } + }, + "body": { + "type": "BlockStatement", + "start": 33, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 33 + }, + "end": { + "line": 1, + "column": 35 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json index 2d660b9f77..4725285737 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/22/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 25, "loc": { @@ -122,71 +122,57 @@ "name": "fooProp" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "returnType": { + "type": "TypeAnnotation", + "start": 16, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 16 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "typeAnnotation": { + "type": "NumberTypeAnnotation", + "start": 17, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 23 + } + } + } + }, + "body": { + "type": "BlockStatement", + "start": 23, "end": 25, "loc": { "start": { "line": 1, - "column": 14 + "column": 23 }, "end": { "line": 1, "column": 25 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "returnType": { - "type": "TypeAnnotation", - "start": 16, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 17, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 23 - } - } - } - }, - "body": { - "type": "BlockStatement", - "start": 23, - "end": 25, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 25 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json index 75457f8544..0eb9320e3c 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/23/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 20, "loc": { @@ -121,56 +121,58 @@ }, "name": "id" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 8, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 8 + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 9, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 9 + }, + "end": { + "line": 1, + "column": 13 + } }, - "end": { - "line": 1, - "column": 20 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 9, + "name": "x", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 10, "end": 13, "loc": { "start": { "line": 1, - "column": 9 + "column": 10 }, "end": { "line": 1, "column": 13 } }, - "name": "x", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 10, + "type": "GenericTypeAnnotation", + "start": 12, "end": 13, "loc": { "start": { "line": 1, - "column": 10 + "column": 12 }, "end": { "line": 1, "column": 13 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 12, "end": 13, "loc": { @@ -183,43 +185,43 @@ "column": 13 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 12, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "name": "T" - } + "name": "T" } } } - ], - "returnType": { - "type": "TypeAnnotation", - "start": 14, + } + ], + "returnType": { + "type": "TypeAnnotation", + "start": 14, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "typeAnnotation": { + "type": "GenericTypeAnnotation", + "start": 16, "end": 17, "loc": { "start": { "line": 1, - "column": 14 + "column": 16 }, "end": { "line": 1, "column": 17 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 16, "end": 17, "loc": { @@ -232,75 +234,59 @@ "column": 17 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 16, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "name": "T" - } + "name": "T" + } + } + }, + "body": { + "type": "BlockStatement", + "start": 18, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 20 } }, - "body": { - "type": "BlockStatement", - "start": 18, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 20 - } + "body": [], + "directives": [] + }, + "typeParameters": { + "type": "TypeParameterDeclaration", + "start": 5, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 5 }, - "body": [], - "directives": [] + "end": { + "line": 1, + "column": 8 + } }, - "typeParameters": { - "type": "TypeParameterDeclaration", - "start": 5, - "end": 8, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 8 - } - }, - "params": [ - { - "type": "Identifier", - "start": 6, - "end": 7, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 7 - } + "params": [ + { + "type": "Identifier", + "start": 6, + "end": 7, + "loc": { + "start": { + "line": 1, + "column": 6 }, - "name": "T" - } - ] - } + "end": { + "line": 1, + "column": 7 + } + }, + "name": "T" + } + ] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json index 9990d3f183..ef4b2fa15b 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/24/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 21, "loc": { @@ -121,56 +121,58 @@ }, "name": "id" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 9 + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } }, - "end": { - "line": 1, - "column": 21 - } - }, - "id": null, - "generator": true, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 10, + "name": "x", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 11, "end": 14, "loc": { "start": { "line": 1, - "column": 10 + "column": 11 }, "end": { "line": 1, "column": 14 } }, - "name": "x", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 11, + "type": "GenericTypeAnnotation", + "start": 13, "end": 14, "loc": { "start": { "line": 1, - "column": 11 + "column": 13 }, "end": { "line": 1, "column": 14 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 13, "end": 14, "loc": { @@ -183,43 +185,43 @@ "column": 14 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 13, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "name": "T" - } + "name": "T" } } } - ], - "returnType": { - "type": "TypeAnnotation", - "start": 15, + } + ], + "returnType": { + "type": "TypeAnnotation", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "typeAnnotation": { + "type": "GenericTypeAnnotation", + "start": 17, "end": 18, "loc": { "start": { "line": 1, - "column": 15 + "column": 17 }, "end": { "line": 1, "column": 18 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 17, "end": 18, "loc": { @@ -232,75 +234,59 @@ "column": 18 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 17, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "name": "T" - } + "name": "T" + } + } + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 } }, - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } + "body": [], + "directives": [] + }, + "typeParameters": { + "type": "TypeParameterDeclaration", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 }, - "body": [], - "directives": [] + "end": { + "line": 1, + "column": 9 + } }, - "typeParameters": { - "type": "TypeParameterDeclaration", - "start": 6, - "end": 9, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 9 - } - }, - "params": [ - { - "type": "Identifier", - "start": 7, - "end": 8, - "loc": { - "start": { - "line": 1, - "column": 7 - }, - "end": { - "line": 1, - "column": 8 - } + "params": [ + { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 }, - "name": "T" - } - ] - } + "end": { + "line": 1, + "column": 8 + } + }, + "name": "T" + } + ] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/25/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/25/expected.json index 7a1c41ce8a..f651d57f91 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/25/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/25/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 26, "loc": { @@ -121,57 +121,58 @@ }, "name": "id" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 14, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 14 + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "async": true, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 19 + } }, - "end": { - "line": 1, - "column": 26 - } - }, - "id": null, - "generator": false, - "expression": false, - "async": true, - "params": [ - { - "type": "Identifier", - "start": 15, + "name": "x", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 16, "end": 19, "loc": { "start": { "line": 1, - "column": 15 + "column": 16 }, "end": { "line": 1, "column": 19 } }, - "name": "x", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 16, + "type": "GenericTypeAnnotation", + "start": 18, "end": 19, "loc": { "start": { "line": 1, - "column": 16 + "column": 18 }, "end": { "line": 1, "column": 19 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 18, "end": 19, "loc": { @@ -184,43 +185,43 @@ "column": 19 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 18, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "name": "T" - } + "name": "T" } } } - ], - "returnType": { - "type": "TypeAnnotation", - "start": 20, + } + ], + "returnType": { + "type": "TypeAnnotation", + "start": 20, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 20 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "typeAnnotation": { + "type": "GenericTypeAnnotation", + "start": 22, "end": 23, "loc": { "start": { "line": 1, - "column": 20 + "column": 22 }, "end": { "line": 1, "column": 23 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 22, "end": 23, "loc": { @@ -233,81 +234,66 @@ "column": 23 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 22, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "name": "T" - } + "name": "T" + } + } + }, + "body": { + "type": "BlockStatement", + "start": 24, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 26 } }, - "body": { - "type": "BlockStatement", - "start": 24, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 26 - } + "body": [], + "directives": [] + }, + "typeParameters": { + "type": "TypeParameterDeclaration", + "start": 11, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 11 }, - "body": [] + "end": { + "line": 1, + "column": 14 + } }, - "typeParameters": { - "type": "TypeParameterDeclaration", - "start": 11, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "params": [ - { - "type": "Identifier", - "start": 12, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 13 - } + "params": [ + { + "type": "Identifier", + "start": 12, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 12 }, - "name": "T" - } - ] - } + "end": { + "line": 1, + "column": 13 + } + }, + "name": "T" + } + ] } } ] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json index c59c5c0979..32323b6fb7 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/26/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 21, "loc": { @@ -125,56 +125,58 @@ }, "value": 123 }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 9 + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 10, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 14 + } }, - "end": { - "line": 1, - "column": 21 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 10, + "name": "x", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 11, "end": 14, "loc": { "start": { "line": 1, - "column": 10 + "column": 11 }, "end": { "line": 1, "column": 14 } }, - "name": "x", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 11, + "type": "GenericTypeAnnotation", + "start": 13, "end": 14, "loc": { "start": { "line": 1, - "column": 11 + "column": 13 }, "end": { "line": 1, "column": 14 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 13, "end": 14, "loc": { @@ -187,43 +189,43 @@ "column": 14 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 13, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "name": "T" - } + "name": "T" } } } - ], - "returnType": { - "type": "TypeAnnotation", - "start": 15, + } + ], + "returnType": { + "type": "TypeAnnotation", + "start": 15, + "end": 18, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 18 + } + }, + "typeAnnotation": { + "type": "GenericTypeAnnotation", + "start": 17, "end": 18, "loc": { "start": { "line": 1, - "column": 15 + "column": 17 }, "end": { "line": 1, "column": 18 } }, - "typeAnnotation": { - "type": "GenericTypeAnnotation", + "typeParameters": null, + "id": { + "type": "Identifier", "start": 17, "end": 18, "loc": { @@ -236,75 +238,59 @@ "column": 18 } }, - "typeParameters": null, - "id": { - "type": "Identifier", - "start": 17, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "name": "T" - } + "name": "T" + } + } + }, + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 } }, - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } + "body": [], + "directives": [] + }, + "typeParameters": { + "type": "TypeParameterDeclaration", + "start": 6, + "end": 9, + "loc": { + "start": { + "line": 1, + "column": 6 }, - "body": [], - "directives": [] + "end": { + "line": 1, + "column": 9 + } }, - "typeParameters": { - "type": "TypeParameterDeclaration", - "start": 6, - "end": 9, - "loc": { - "start": { - "line": 1, - "column": 6 - }, - "end": { - "line": 1, - "column": 9 - } - }, - "params": [ - { - "type": "Identifier", - "start": 7, - "end": 8, - "loc": { - "start": { - "line": 1, - "column": 7 - }, - "end": { - "line": 1, - "column": 8 - } + "params": [ + { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 }, - "name": "T" - } - ] - } + "end": { + "line": 1, + "column": 8 + } + }, + "name": "T" + } + ] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json index 7e23e4be3b..71c96e968a 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/27/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 11, "end": 38, "loc": { @@ -107,88 +107,74 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 22, - "end": 38, - "loc": { - "start": { - "line": 1, - "column": 22 + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 23, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 35 + } }, - "end": { - "line": 1, - "column": 38 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 23, + "name": "value", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 28, "end": 35, "loc": { "start": { "line": 1, - "column": 23 + "column": 28 }, "end": { "line": 1, "column": 35 } }, - "name": "value", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 28, + "type": "NumberTypeAnnotation", + "start": 29, "end": 35, "loc": { "start": { "line": 1, - "column": 28 + "column": 29 }, "end": { "line": 1, "column": 35 } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 29, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 35 - } - } } } } - ], - "body": { - "type": "BlockStatement", - "start": 36, - "end": 38, - "loc": { - "start": { - "line": 1, - "column": 36 - }, - "end": { - "line": 1, - "column": 38 - } - }, - "body": [], - "directives": [] } + ], + "body": { + "type": "BlockStatement", + "start": 36, + "end": 38, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 38 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json index 23a7b26c0b..ba9b916990 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/28/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 11, "end": 43, "loc": { @@ -107,118 +107,104 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 22, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 22 + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 23, + "end": 35, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 35 + } }, - "end": { - "line": 1, - "column": 43 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 23, + "name": "value", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 28, "end": 35, "loc": { "start": { "line": 1, - "column": 23 + "column": 28 }, "end": { "line": 1, "column": 35 } }, - "name": "value", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 28, + "type": "NumberTypeAnnotation", + "start": 29, "end": 35, "loc": { "start": { "line": 1, - "column": 28 + "column": 29 }, "end": { "line": 1, "column": 35 } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 29, - "end": 35, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 35 - } - } } } } - ], - "returnType": { - "type": "TypeAnnotation", - "start": 36, + } + ], + "returnType": { + "type": "TypeAnnotation", + "start": 36, + "end": 41, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 41 + } + }, + "typeAnnotation": { + "type": "VoidTypeAnnotation", + "start": 37, "end": 41, "loc": { "start": { "line": 1, - "column": 36 + "column": 37 }, "end": { "line": 1, "column": 41 } - }, - "typeAnnotation": { - "type": "VoidTypeAnnotation", - "start": 37, - "end": 41, - "loc": { - "start": { - "line": 1, - "column": 37 - }, - "end": { - "line": 1, - "column": 41 - } - } } - }, - "body": { - "type": "BlockStatement", - "start": 41, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 41 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "body": [], - "directives": [] } + }, + "body": { + "type": "BlockStatement", + "start": 41, + "end": 43, + "loc": { + "start": { + "line": 1, + "column": 41 + }, + "end": { + "line": 1, + "column": 43 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json index 69dab292da..b675422aca 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/29/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 11, "end": 33, "loc": { @@ -107,71 +107,57 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "returnType": { + "type": "TypeAnnotation", + "start": 24, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "typeAnnotation": { + "type": "NumberTypeAnnotation", + "start": 25, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 31 + } + } + } + }, + "body": { + "type": "BlockStatement", + "start": 31, "end": 33, "loc": { "start": { "line": 1, - "column": 22 + "column": 31 }, "end": { "line": 1, "column": 33 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "returnType": { - "type": "TypeAnnotation", - "start": 24, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 31 - } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 25, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 31 - } - } - } - }, - "body": { - "type": "BlockStatement", - "start": 31, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 33 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json index 84759bfbc6..836b93e825 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/50/expected.json @@ -108,7 +108,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 15, "end": 45, "loc": { @@ -140,140 +140,126 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 21, + "typeParameters": { + "type": "TypeParameterDeclaration", + "start": 18, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "params": [ + { + "type": "Identifier", + "start": 19, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "name": "U" + } + ] + }, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "returnType": { + "type": "TypeAnnotation", + "start": 23, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 30 + } + }, + "typeAnnotation": { + "type": "NumberTypeAnnotation", + "start": 24, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 30 + } + } + } + }, + "body": { + "type": "BlockStatement", + "start": 31, "end": 45, "loc": { "start": { "line": 1, - "column": 21 + "column": 31 }, "end": { "line": 1, "column": 45 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "returnType": { - "type": "TypeAnnotation", - "start": 23, - "end": 30, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 30 - } - }, - "typeAnnotation": { - "type": "NumberTypeAnnotation", - "start": 24, - "end": 30, + "body": [ + { + "type": "ReturnStatement", + "start": 33, + "end": 43, "loc": { "start": { "line": 1, - "column": 24 + "column": 33 }, "end": { "line": 1, - "column": 30 + "column": 43 } + }, + "argument": { + "type": "NumberLiteral", + "start": 40, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 42 + } + }, + "extra": { + "rawValue": 42, + "raw": "42" + }, + "value": 42 } } - }, - "body": { - "type": "BlockStatement", - "start": 31, - "end": 45, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 45 - } - }, - "body": [ - { - "type": "ReturnStatement", - "start": 33, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "argument": { - "type": "NumberLiteral", - "start": 40, - "end": 42, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 42 - } - }, - "extra": { - "rawValue": 42, - "raw": "42" - }, - "value": 42 - } - } - ], - "directives": [] - }, - "typeParameters": { - "type": "TypeParameterDeclaration", - "start": 18, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 21 - } - }, - "params": [ - { - "type": "Identifier", - "start": 19, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "name": "U" - } - ] - } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json index be9240f72e..225c2d3596 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/51/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 12, "end": 26, "loc": { @@ -111,74 +111,60 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 20, + "typeParameters": { + "type": "TypeParameterDeclaration", + "start": 17, + "end": 20, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 20 + } + }, + "params": [ + { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "T" + } + ] + }, + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 23, "end": 26, "loc": { "start": { "line": 1, - "column": 20 + "column": 23 }, "end": { "line": 1, "column": 26 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 23, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "body": [], - "directives": [] - }, - "typeParameters": { - "type": "TypeParameterDeclaration", - "start": 17, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "params": [ - { - "type": "Identifier", - "start": 18, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "name": "T" - } - ] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json index ac710d4778..91bd2b0584 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/56/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 14, "end": 46, "loc": { @@ -107,120 +107,106 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 20, - "end": 46, - "loc": { - "start": { - "line": 1, - "column": 20 + "id": null, + "generator": false, + "expression": false, + "async": false, + "params": [ + { + "type": "Identifier", + "start": 21, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 42 + } }, - "end": { - "line": 1, - "column": 46 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 21, + "name": "items", + "typeAnnotation": { + "type": "TypeAnnotation", + "start": 26, "end": 42, "loc": { "start": { "line": 1, - "column": 21 + "column": 26 }, "end": { "line": 1, "column": 42 } }, - "name": "items", "typeAnnotation": { - "type": "TypeAnnotation", - "start": 26, + "type": "UnionTypeAnnotation", + "start": 27, "end": 42, "loc": { "start": { "line": 1, - "column": 26 + "column": 27 }, "end": { "line": 1, "column": 42 } }, - "typeAnnotation": { - "type": "UnionTypeAnnotation", - "start": 27, - "end": 42, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 42 + "types": [ + { + "type": "NumberTypeAnnotation", + "start": 27, + "end": 33, + "loc": { + "start": { + "line": 1, + "column": 27 + }, + "end": { + "line": 1, + "column": 33 + } } }, - "types": [ - { - "type": "NumberTypeAnnotation", - "start": 27, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 33 - } - } - }, - { - "type": "StringTypeAnnotation", - "start": 36, - "end": 42, - "loc": { - "start": { - "line": 1, - "column": 36 - }, - "end": { - "line": 1, - "column": 42 - } + { + "type": "StringTypeAnnotation", + "start": 36, + "end": 42, + "loc": { + "start": { + "line": 1, + "column": 36 + }, + "end": { + "line": 1, + "column": 42 } } - ] - } + } + ] } } - ], - "body": { - "type": "BlockStatement", - "start": 44, - "end": 46, - "loc": { - "start": { - "line": 1, - "column": 44 - }, - "end": { - "line": 1, - "column": 46 - } - }, - "body": [], - "directives": [] } + ], + "body": { + "type": "BlockStatement", + "start": 44, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 44 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json index 69d4f65178..a2db556539 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/60/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -222,7 +221,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 27, "end": 37, "loc": { @@ -273,8 +272,7 @@ "raw": "\"hello\"" }, "value": "hello" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json index c09b9c0fec..b4cdb54e7d 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/61/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -222,7 +221,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 26, "end": 36, "loc": { @@ -273,8 +272,7 @@ "raw": "\"hello\"" }, "value": "hello" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json index c67a31a154..55cd213628 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/63/expected.json @@ -60,6 +60,7 @@ }, "generator": false, "expression": false, + "async": false, "params": [ { "type": "ObjectPattern", @@ -77,7 +78,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 14, "end": 15, "loc": { @@ -109,7 +110,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 14, diff --git a/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json b/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json index ad6352b9a0..b6a11dc752 100644 --- a/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json +++ b/packages/babylon/test/fixtures/flow/type-annotations/97/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 22, "loc": { @@ -107,6 +107,7 @@ "id": null, "generator": false, "expression": false, + "async": false, "typeParameters": { "type": "TypeParameterDeclaration", "start": 14, @@ -158,8 +159,7 @@ "body": [], "directives": [] } - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/flow/typecasts/2/expected.json b/packages/babylon/test/fixtures/flow/typecasts/2/expected.json index 48639097eb..79b652ae59 100644 --- a/packages/babylon/test/fixtures/flow/typecasts/2/expected.json +++ b/packages/babylon/test/fixtures/flow/typecasts/2/expected.json @@ -72,7 +72,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 8, "loc": { @@ -123,11 +123,10 @@ "raw": "0" }, "value": 0 - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 10, "end": 20, "loc": { @@ -178,8 +177,7 @@ "raw": "\"hey\"" }, "value": "hey" - }, - "kind": "init" + } } ] }, diff --git a/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json b/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json index df195bb3a8..6a6f627eec 100644 --- a/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json +++ b/packages/babylon/test/fixtures/harmony/computed-properties/call-expression/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 14, "end": 25, "loc": { @@ -156,8 +156,7 @@ "raw": "\"\"" }, "value": "" - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/191/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.191/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/191/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.191/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/191/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/.191/expected.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/191/expected.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.191/expected.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/260/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.260/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/260/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.260/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/260/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.260/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/260/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.260/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/335/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.335/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/335/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.335/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/335/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/.335/expected.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/335/expected.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.335/expected.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/335/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.335/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/335/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.335/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/343/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.343/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/343/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.343/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/343/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/.343/expected.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/343/expected.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.343/expected.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/343/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.343/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/343/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.343/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/345/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.345/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/345/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.345/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/345/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.345/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/345/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.345/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/346/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.346/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/346/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.346/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/346/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.346/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/346/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.346/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/348/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.348/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/348/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.348/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/.348/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/.348/expected.json new file mode 100644 index 0000000000..a90d6d7108 --- /dev/null +++ b/packages/babylon/test/fixtures/harmony/uncategorised/.348/expected.json @@ -0,0 +1,177 @@ +{ + "type": "File", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "program": { + "type": "Program", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "sourceType": "script", + "body": [ + { + "type": "ExpressionStatement", + "start": 0, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 0 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "expression": { + "type": "ObjectExpression", + "start": 1, + "end": 31, + "loc": { + "start": { + "line": 1, + "column": 1 + }, + "end": { + "line": 1, + "column": 31 + } + }, + "properties": [ + { + "type": "ObjectProperty", + "start": 3, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 3, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 3 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NumberLiteral", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "extra": { + "rawValue": 1, + "raw": "1" + }, + "value": 1 + } + }, + { + "type": "ObjectProperty", + "start": 17, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", + "start": 17, + "end": 26, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 26 + } + }, + "name": "__proto__" + }, + "value": { + "type": "NumberLiteral", + "start": 28, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 28 + }, + "end": { + "line": 1, + "column": 29 + } + }, + "extra": { + "rawValue": 2, + "raw": "2" + }, + "value": 2 + } + } + ], + "extra": { + "parenthesized": true + } + } + } + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/348/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.348/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/348/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.348/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/349/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.349/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/349/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.349/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/349/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/.349/expected.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/349/expected.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.349/expected.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/349/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.349/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/349/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.349/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/353/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/.353/actual.js similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/353/actual.js rename to packages/babylon/test/fixtures/harmony/uncategorised/.353/actual.js diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/353/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/.353/expected.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/353/expected.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.353/expected.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/353/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/.353/options.json similarity index 100% rename from packages/babylon/test/fixtures/harmony/uncategorised/353/options.json rename to packages/babylon/test/fixtures/harmony/uncategorised/.353/options.json diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/103/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/103/expected.json index 609ce0d37a..1397cc5c38 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/103/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/103/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 10, "end": 31, "loc": { @@ -121,42 +121,42 @@ }, "name": "test" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 16, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, "end": 31, "loc": { "start": { "line": 1, - "column": 16 + "column": 19 }, "end": { "line": 1, "column": 31 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 19 + "body": [ + { + "type": "ExpressionStatement", + "start": 21, + "end": 29, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 29 + } }, - "end": { - "line": 1, - "column": 31 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 21, "end": 29, "loc": { @@ -169,41 +169,27 @@ "column": 29 } }, - "expression": { - "type": "YieldExpression", - "start": 21, + "delegate": true, + "argument": { + "type": "Identifier", + "start": 28, "end": 29, "loc": { "start": { "line": 1, - "column": 21 + "column": 28 }, "end": { "line": 1, "column": 29 } }, - "delegate": true, - "argument": { - "type": "Identifier", - "start": 28, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "name": "v" - } + "name": "v" } } - ] - } + } + ], + "directives": [] } } ] @@ -212,7 +198,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/113/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/113/expected.json index 937612426b..d5b033e029 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/113/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/113/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 17, "loc": { @@ -107,46 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 17, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 17 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/114/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/114/expected.json index 2161c2d0ee..6601d59d6d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/114/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/114/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 25, "loc": { @@ -107,46 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 20, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 23, "end": 25, "loc": { "start": { "line": 1, - "column": 20 + "column": 23 }, "end": { "line": 1, "column": 25 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 23, - "end": 25, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 25 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/115/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/115/expected.json index 9b6a05da2a..75c400a2a7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/115/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/115/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 19, "end": 31, "loc": { @@ -122,46 +122,32 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 26, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, "end": 31, "loc": { "start": { "line": 1, - "column": 26 + "column": 29 }, "end": { "line": 1, "column": 31 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 29, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 31 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/116/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/116/expected.json index 787e636554..c3fa277a2f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/116/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/116/expected.json @@ -90,7 +90,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 20, "end": 39, "loc": { @@ -122,46 +122,32 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 34, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 37, "end": 39, "loc": { "start": { "line": 1, - "column": 34 + "column": 37 }, "end": { "line": 1, "column": 39 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 37, - "end": 39, - "loc": { - "start": { - "line": 1, - "column": 37 - }, - "end": { - "line": 1, - "column": 39 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/117/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/117/expected.json index 0a4f8836f9..d607a58aad 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/117/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/117/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 20, "loc": { @@ -107,63 +107,49 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 14, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 15, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 15 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 18, "end": 20, "loc": { "start": { "line": 1, - "column": 14 + "column": 18 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 15, - "end": 16, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 16 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 18, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/118/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/118/expected.json index 58a55c8a4c..54e7adf346 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/118/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/118/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 28, "loc": { @@ -107,63 +107,49 @@ }, "static": true, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 23, + "end": 24, + "loc": { + "start": { + "line": 1, + "column": 23 + }, + "end": { + "line": 1, + "column": 24 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 26, "end": 28, "loc": { "start": { "line": 1, - "column": 22 + "column": 26 }, "end": { "line": 1, "column": 28 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 23, - "end": 24, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 24 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 26, - "end": 28, - "loc": { - "start": { - "line": 1, - "column": 26 - }, - "end": { - "line": 1, - "column": 28 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/119/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/119/expected.json index e8659d9d1a..e47c5c6942 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/119/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/119/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 18, "loc": { @@ -107,63 +107,49 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 14, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 14 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 16, "end": 18, "loc": { "start": { "line": 1, - "column": 12 + "column": 16 }, "end": { "line": 1, "column": 18 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 13, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 16, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/120/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/120/expected.json index 4cbc7e1ce5..873df88c9f 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/120/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/120/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 26, "loc": { @@ -107,63 +107,49 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 20, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 21, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 24, "end": 26, "loc": { "start": { "line": 1, - "column": 20 + "column": 24 }, "end": { "line": 1, "column": 26 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 21, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 24, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/121/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/121/expected.json index ae61f95fb4..f1e8a83082 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/121/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/121/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 29, "loc": { @@ -107,60 +107,60 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 13, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 14, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 14 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 17, "end": 29, "loc": { "start": { "line": 1, - "column": 13 + "column": 17 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": true, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 14, - "end": 15, + "type": "ExpressionStatement", + "start": 19, + "end": 27, "loc": { "start": { "line": 1, - "column": 14 + "column": 19 }, "end": { "line": 1, - "column": 15 + "column": 27 } }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 19, - "end": 27, + "end": 26, "loc": { "start": { "line": 1, @@ -168,50 +168,36 @@ }, "end": { "line": 1, - "column": 27 + "column": 26 } }, - "expression": { - "type": "YieldExpression", - "start": 19, + "delegate": false, + "argument": { + "type": "Identifier", + "start": 25, "end": 26, "loc": { "start": { "line": 1, - "column": 19 + "column": 25 }, "end": { "line": 1, "column": 26 } }, - "delegate": false, - "argument": { - "type": "Identifier", - "start": 25, - "end": 26, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 26 - } - }, - "name": "v" - } + "name": "v" } } - ] - } + } + ], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/122/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/122/expected.json index 305a0a44a9..0c6728f1b8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/122/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/122/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 37, "loc": { @@ -107,60 +107,60 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 21, + "id": null, + "generator": true, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 22, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 22 + }, + "end": { + "line": 1, + "column": 23 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 25, "end": 37, "loc": { "start": { "line": 1, - "column": 21 + "column": 25 }, "end": { "line": 1, "column": 37 } }, - "id": null, - "generator": true, - "expression": false, - "params": [ + "body": [ { - "type": "Identifier", - "start": 22, - "end": 23, + "type": "ExpressionStatement", + "start": 27, + "end": 35, "loc": { "start": { "line": 1, - "column": 22 + "column": 27 }, "end": { "line": 1, - "column": 23 + "column": 35 } }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 25, - "end": 37, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 37 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 27, - "end": 35, + "end": 34, "loc": { "start": { "line": 1, @@ -168,50 +168,36 @@ }, "end": { "line": 1, - "column": 35 + "column": 34 } }, - "expression": { - "type": "YieldExpression", - "start": 27, + "delegate": false, + "argument": { + "type": "Identifier", + "start": 33, "end": 34, "loc": { "start": { "line": 1, - "column": 27 + "column": 33 }, "end": { "line": 1, "column": 34 } }, - "delegate": false, - "argument": { - "type": "Identifier", - "start": 33, - "end": 34, - "loc": { - "start": { - "line": 1, - "column": 33 - }, - "end": { - "line": 1, - "column": 34 - } - }, - "name": "v" - } + "name": "v" } } - ] - } + } + ], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json index 83a2d03682..2b8ddddaf7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/123/expected.json @@ -89,7 +89,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 49, "loc": { @@ -121,41 +121,41 @@ }, "static": false, "kind": "constructor", - "value": { - "type": "FunctionExpression", - "start": 35, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 38, "end": 49, "loc": { "start": { "line": 1, - "column": 35 + "column": 38 }, "end": { "line": 1, "column": 49 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 38, - "end": 49, - "loc": { - "start": { - "line": 1, - "column": 38 + "body": [ + { + "type": "ExpressionStatement", + "start": 40, + "end": 47, + "loc": { + "start": { + "line": 1, + "column": 40 + }, + "end": { + "line": 1, + "column": 47 + } }, - "end": { - "line": 1, - "column": 49 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "CallExpression", "start": 40, "end": 47, "loc": { @@ -168,10 +168,10 @@ "column": 47 } }, - "expression": { - "type": "CallExpression", + "callee": { + "type": "Super", "start": 40, - "end": 47, + "end": 45, "loc": { "start": { "line": 1, @@ -179,30 +179,15 @@ }, "end": { "line": 1, - "column": 47 + "column": 45 } - }, - "callee": { - "type": "Super", - "start": 40, - "end": 45, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 45 - } - } - }, - "arguments": [] - } + } + }, + "arguments": [] } - ], - "directives": [] - } + } + ], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json index b3af6621a1..7c01cad6f1 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/124/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 27, "loc": { @@ -111,41 +111,26 @@ }, "static": false, "kind": "constructor", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 25, "end": 27, "loc": { "start": { "line": 1, - "column": 22 + "column": 25 }, "end": { "line": 1, "column": 27 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 25, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 27 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/128/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/128/expected.json index fe353f8bba..937272b468 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/128/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/128/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 24, "loc": { @@ -107,46 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 19, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 22, "end": 24, "loc": { "start": { "line": 1, - "column": 19 + "column": 22 }, "end": { "line": 1, "column": 24 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 22, - "end": 24, - "loc": { - "start": { - "line": 1, - "column": 22 - }, - "end": { - "line": 1, - "column": 24 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/129/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/129/expected.json index 6e71914af1..bb30c8aa84 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/129/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/129/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 17, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 17, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 17 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 18, "end": 33, "loc": { @@ -176,46 +162,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 28, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 31, "end": 33, "loc": { "start": { "line": 1, - "column": 28 + "column": 31 }, "end": { "line": 1, "column": 33 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 31, - "end": 33, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 33 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/130/actual.js b/packages/babylon/test/fixtures/harmony/uncategorised/130/actual.js deleted file mode 100644 index 42108ece49..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/130/actual.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; (class A { static constructor() { super() }}) \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json deleted file mode 100644 index 19d9b17be0..0000000000 --- a/packages/babylon/test/fixtures/harmony/uncategorised/130/expected.json +++ /dev/null @@ -1,254 +0,0 @@ -{ - "type": "File", - "start": 0, - "end": 59, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 59 - } - }, - "program": { - "type": "Program", - "start": 0, - "end": 59, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 59 - } - }, - "sourceType": "script", - "body": [ - { - "type": "ExpressionStatement", - "start": 14, - "end": 59, - "loc": { - "start": { - "line": 1, - "column": 14 - }, - "end": { - "line": 1, - "column": 59 - } - }, - "expression": { - "type": "ClassExpression", - "start": 15, - "end": 58, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 58 - } - }, - "id": { - "type": "Identifier", - "start": 21, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "name": "A" - }, - "superClass": null, - "body": { - "type": "ClassBody", - "start": 23, - "end": 58, - "loc": { - "start": { - "line": 1, - "column": 23 - }, - "end": { - "line": 1, - "column": 58 - } - }, - "body": [ - { - "type": "MethodDefinition", - "start": 25, - "end": 57, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 57 - } - }, - "computed": false, - "key": { - "type": "Identifier", - "start": 32, - "end": 43, - "loc": { - "start": { - "line": 1, - "column": 32 - }, - "end": { - "line": 1, - "column": 43 - } - }, - "name": "constructor" - }, - "static": true, - "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 43, - "end": 57, - "loc": { - "start": { - "line": 1, - "column": 43 - }, - "end": { - "line": 1, - "column": 57 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 46, - "end": 57, - "loc": { - "start": { - "line": 1, - "column": 46 - }, - "end": { - "line": 1, - "column": 57 - } - }, - "body": [ - { - "type": "ExpressionStatement", - "start": 48, - "end": 55, - "loc": { - "start": { - "line": 1, - "column": 48 - }, - "end": { - "line": 1, - "column": 55 - } - }, - "expression": { - "type": "CallExpression", - "start": 48, - "end": 55, - "loc": { - "start": { - "line": 1, - "column": 48 - }, - "end": { - "line": 1, - "column": 55 - } - }, - "callee": { - "type": "Super", - "start": 48, - "end": 53, - "loc": { - "start": { - "line": 1, - "column": 48 - }, - "end": { - "line": 1, - "column": 53 - } - } - }, - "arguments": [] - } - } - ], - "directives": [] - } - } - } - ] - }, - "extra": { - "parenthesized": true - } - } - } - ], - "directives": [ - { - "type": "Directive", - "start": 0, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "value": { - "type": "DirectiveLiteral", - "start": 0, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 0 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "value": "use strict", - "extra": { - "raw": "\"use strict\"", - "rawValue": "use strict" - } - } - } - ] - } -} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/131/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/131/expected.json index ee42e3d61e..8c38e200c5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/131/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/131/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 18, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 13, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, "end": 18, "loc": { "start": { "line": 1, - "column": 13 + "column": 16 }, "end": { "line": 1, "column": 18 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 16, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 19, "end": 27, "loc": { @@ -176,46 +162,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 25, "end": 27, "loc": { "start": { "line": 1, - "column": 22 + "column": 25 }, "end": { "line": 1, "column": 27 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 25, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 27 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/132/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/132/expected.json index 1cdc2db117..7468edee54 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/132/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/132/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 22, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 22, "loc": { "start": { "line": 1, - "column": 17 + "column": 20 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 23, "end": 36, "loc": { @@ -176,63 +162,49 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 30, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 31, + "end": 32, + "loc": { + "start": { + "line": 1, + "column": 31 + }, + "end": { + "line": 1, + "column": 32 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 34, "end": 36, "loc": { "start": { "line": 1, - "column": 30 + "column": 34 }, "end": { "line": 1, "column": 36 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 31, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 31 - }, - "end": { - "line": 1, - "column": 32 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 34, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 34 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/133/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/133/expected.json index 5c02d2eecd..7e8a2075c5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/133/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/133/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 29, "loc": { @@ -107,44 +107,30 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 24, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, "end": 29, "loc": { "start": { "line": 1, - "column": 24 + "column": 27 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 27, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 30, "end": 42, "loc": { @@ -176,46 +162,32 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 37, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 40, "end": 42, "loc": { "start": { "line": 1, - "column": 37 + "column": 40 }, "end": { "line": 1, "column": 42 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 40, - "end": 42, - "loc": { - "start": { - "line": 1, - "column": 40 - }, - "end": { - "line": 1, - "column": 42 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/134/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/134/expected.json index 7254b30243..d81ed33228 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/134/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/134/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 29, "loc": { @@ -107,44 +107,30 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 24, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, "end": 29, "loc": { "start": { "line": 1, - "column": 24 + "column": 27 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 27, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 30, "end": 49, "loc": { @@ -176,46 +162,32 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 44, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 47, "end": 49, "loc": { "start": { "line": 1, - "column": 44 + "column": 47 }, "end": { "line": 1, "column": 49 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 47, - "end": 49, - "loc": { - "start": { - "line": 1, - "column": 47 - }, - "end": { - "line": 1, - "column": 49 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/135/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/135/expected.json index 0b1130de7c..834c4dccf7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/135/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/135/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 29, "loc": { @@ -107,44 +107,30 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 24, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 27, "end": 29, "loc": { "start": { "line": 1, - "column": 24 + "column": 27 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 27, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 30, "end": 50, "loc": { @@ -176,61 +162,47 @@ }, "static": true, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 44, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 45, + "end": 46, + "loc": { + "start": { + "line": 1, + "column": 45 + }, + "end": { + "line": 1, + "column": 46 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 48, "end": 50, "loc": { "start": { "line": 1, - "column": 44 + "column": 48 }, "end": { "line": 1, "column": 50 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 45, - "end": 46, - "loc": { - "start": { - "line": 1, - "column": 45 - }, - "end": { - "line": 1, - "column": 46 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 48, - "end": 50, - "loc": { - "start": { - "line": 1, - "column": 48 - }, - "end": { - "line": 1, - "column": 50 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 51, "end": 63, "loc": { @@ -262,44 +234,30 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 58, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 61, "end": 63, "loc": { "start": { "line": 1, - "column": 58 + "column": 61 }, "end": { "line": 1, "column": 63 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 61, - "end": 63, - "loc": { - "start": { - "line": 1, - "column": 61 - }, - "end": { - "line": 1, - "column": 63 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 64, "end": 77, "loc": { @@ -331,63 +289,49 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 71, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 72, + "end": 73, + "loc": { + "start": { + "line": 1, + "column": 72 + }, + "end": { + "line": 1, + "column": 73 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 75, "end": 77, "loc": { "start": { "line": 1, - "column": 71 + "column": 75 }, "end": { "line": 1, "column": 77 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 72, - "end": 73, - "loc": { - "start": { - "line": 1, - "column": 72 - }, - "end": { - "line": 1, - "column": 73 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 75, - "end": 77, - "loc": { - "start": { - "line": 1, - "column": 75 - }, - "end": { - "line": 1, - "column": 77 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/136/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/136/expected.json index 2e0cf52943..22216e8a4d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/136/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/136/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 27, "loc": { @@ -107,46 +107,32 @@ }, "static": true, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 22, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 25, "end": 27, "loc": { "start": { "line": 1, - "column": 22 + "column": 25 }, "end": { "line": 1, "column": 27 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 25, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 27 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/137/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/137/expected.json index 81860c95fb..379914b948 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/137/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/137/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 31, "loc": { @@ -107,46 +107,32 @@ }, "static": true, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 26, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, "end": 31, "loc": { "start": { "line": 1, - "column": 26 + "column": 29 }, "end": { "line": 1, "column": 31 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 29, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 31 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/138/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/138/expected.json index dec1437174..36e95c1207 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/138/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/138/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 23, "loc": { @@ -107,61 +107,47 @@ }, "static": false, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 18, + "end": 19, + "loc": { + "start": { + "line": 1, + "column": 18 + }, + "end": { + "line": 1, + "column": 19 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 21, "end": 23, "loc": { "start": { "line": 1, - "column": 17 + "column": 21 }, "end": { "line": 1, "column": 23 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 18, - "end": 19, - "loc": { - "start": { - "line": 1, - "column": 18 - }, - "end": { - "line": 1, - "column": 19 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 21, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 21 - }, - "end": { - "line": 1, - "column": 23 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 24, "end": 36, "loc": { @@ -193,46 +179,32 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 31, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 34, "end": 36, "loc": { "start": { "line": 1, - "column": 31 + "column": 34 }, "end": { "line": 1, "column": 36 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 34, - "end": 36, - "loc": { - "start": { - "line": 1, - "column": 34 - }, - "end": { - "line": 1, - "column": 36 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/139/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/139/expected.json index bde2d7b1d9..ada61eb661 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/139/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/139/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 18, "loc": { @@ -107,44 +107,30 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 13, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 16, "end": 18, "loc": { "start": { "line": 1, - "column": 13 + "column": 16 }, "end": { "line": 1, "column": 18 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 16, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 16 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "body": [] - } + "body": [], + "directives": [] } }, { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 19, "end": 31, "loc": { @@ -176,46 +162,32 @@ }, "static": false, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 26, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 29, "end": 31, "loc": { "start": { "line": 1, - "column": 26 + "column": 29 }, "end": { "line": 1, "column": 31 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 29, - "end": 31, - "loc": { - "start": { - "line": 1, - "column": 29 - }, - "end": { - "line": 1, - "column": 31 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json index 9c4ce67855..fe8be3d209 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/141/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 9, "loc": { @@ -109,8 +109,7 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json index 6198ec9aa5..83f683e3eb 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/142/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 17, "loc": { @@ -149,8 +149,7 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json index 01caab9e66..cc0ab8afc8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/143/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 20, "loc": { @@ -125,8 +125,7 @@ "body": [], "directives": [] } - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json index 25f8cb97cc..c054f5cc59 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/144/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 9, "loc": { @@ -109,11 +109,10 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 11, "end": 16, "loc": { @@ -164,8 +163,7 @@ "raw": "20" }, "value": 20 - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json index 89a62e0093..c87f359ecb 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/145/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 2, "end": 14, "loc": { @@ -91,45 +91,30 @@ "name": "x" }, "kind": "get", - "value": { - "type": "FunctionExpression", - "start": 9, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 14, "loc": { "start": { "line": 1, - "column": 9 + "column": 12 }, "end": { "line": 1, "column": 14 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 14, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 14 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } }, { - "type": "Property", + "type": "ObjectMethod", "start": 16, "end": 29, "loc": { @@ -162,58 +147,43 @@ "name": "x" }, "kind": "set", - "value": { - "type": "FunctionExpression", - "start": 23, + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 24, + "end": 25, + "loc": { + "start": { + "line": 1, + "column": 24 + }, + "end": { + "line": 1, + "column": 25 + } + }, + "name": "v" + } + ], + "body": { + "type": "BlockStatement", + "start": 27, "end": 29, "loc": { "start": { "line": 1, - "column": 23 + "column": 27 }, "end": { "line": 1, "column": 29 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 24, - "end": 25, - "loc": { - "start": { - "line": 1, - "column": 24 - }, - "end": { - "line": 1, - "column": 25 - } - }, - "name": "v" - } - ], - "body": { - "type": "BlockStatement", - "start": 27, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 27 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json index 68e454ca7f..8ab9dd27fd 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/146/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 2, "end": 10, "loc": { @@ -90,42 +90,27 @@ }, "name": "x" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 5, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 8, "end": 10, "loc": { "start": { "line": 1, - "column": 5 + "column": 8 }, "end": { "line": 1, "column": 10 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 8, - "end": 10, - "loc": { - "start": { - "line": 1, - "column": 8 - }, - "end": { - "line": 1, - "column": 10 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/147/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/147/expected.json index f4966b1c1f..e9263cf600 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/147/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/147/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 11, "loc": { @@ -120,8 +120,7 @@ } }, "name": "y" - }, - "kind": "init" + } } ] }, @@ -141,7 +140,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 16, "end": 17, "loc": { @@ -173,7 +172,6 @@ }, "name": "y" }, - "kind": "init", "value": { "type": "Identifier", "start": 16, @@ -197,7 +195,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/148/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/148/expected.json index 35f50da821..c2c6fcf107 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/148/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/148/expected.json @@ -77,7 +77,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 18, "loc": { @@ -124,8 +124,7 @@ } }, "name": "y" - }, - "kind": "init" + } } ] } @@ -144,10 +143,11 @@ "column": 23 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/149/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/149/expected.json index 622622b2ef..2b533c4b95 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/149/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/149/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 9, "end": 32, "loc": { @@ -121,44 +121,44 @@ }, "name": "test" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 16, + "kind": "method", + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, "end": 32, "loc": { "start": { "line": 1, - "column": 16 + "column": 19 }, "end": { "line": 1, "column": 32 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 32, - "loc": { - "start": { - "line": 1, - "column": 19 + "body": [ + { + "type": "ExpressionStatement", + "start": 21, + "end": 30, + "loc": { + "start": { + "line": 1, + "column": 21 + }, + "end": { + "line": 1, + "column": 30 + } }, - "end": { - "line": 1, - "column": 32 - } - }, - "body": [ - { - "type": "ExpressionStatement", + "expression": { + "type": "YieldExpression", "start": 21, - "end": 30, + "end": 29, "loc": { "start": { "line": 1, @@ -166,44 +166,30 @@ }, "end": { "line": 1, - "column": 30 + "column": 29 } }, - "expression": { - "type": "YieldExpression", - "start": 21, + "delegate": true, + "argument": { + "type": "Identifier", + "start": 28, "end": 29, "loc": { "start": { "line": 1, - "column": 21 + "column": 28 }, "end": { "line": 1, "column": 29 } }, - "delegate": true, - "argument": { - "type": "Identifier", - "start": 28, - "end": 29, - "loc": { - "start": { - "line": 1, - "column": 28 - }, - "end": { - "line": 1, - "column": 29 - } - }, - "name": "v" - } + "name": "v" } } - ] - } + } + ], + "directives": [] } } ] @@ -212,7 +198,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/150/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/150/expected.json index 8e36dcc558..77889bf067 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/150/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/150/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 9, "end": 17, "loc": { @@ -107,46 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 12, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 17, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 17 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json index 5830686c0b..898db20cdc 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/153/expected.json @@ -91,7 +91,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 12, "end": 13, "loc": { @@ -123,7 +123,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 12, @@ -159,7 +158,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 18, "end": 23, "loc": { @@ -210,8 +209,7 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json index c27822598f..00d6e9bd9a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/154/expected.json @@ -121,7 +121,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 14, "end": 15, "loc": { @@ -153,7 +153,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 14, @@ -189,7 +188,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 20, "end": 25, "loc": { @@ -240,8 +239,7 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json index 4892fdd837..648cc628d4 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/155/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 31, "loc": { @@ -138,7 +138,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 15, "end": 16, "loc": { @@ -170,7 +170,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 15, @@ -206,7 +205,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 21, "end": 26, "loc": { @@ -257,8 +256,7 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ] } @@ -281,8 +279,7 @@ "body": [], "directives": [] } - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json index f918574a30..ff433a7001 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/156/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 2, "end": 21, "loc": { @@ -90,29 +90,29 @@ }, "name": "f" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 3, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 3 + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 4, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 17 + } }, - "end": { - "line": 1, - "column": 21 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "AssignmentPattern", + "left": { + "type": "ObjectPattern", "start": 4, - "end": 17, + "end": 7, "loc": { "start": { "line": 1, @@ -120,26 +120,29 @@ }, "end": { "line": 1, - "column": 17 + "column": 7 } }, - "left": { - "type": "ObjectPattern", - "start": 4, - "end": 7, - "loc": { - "start": { - "line": 1, - "column": 4 + "properties": [ + { + "type": "ObjectProperty", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } }, - "end": { - "line": 1, - "column": 7 - } - }, - "properties": [ - { - "type": "Property", + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", "start": 5, "end": 6, "loc": { @@ -152,136 +155,116 @@ "column": 6 } }, - "method": false, - "shorthand": true, - "computed": false, - "key": { - "type": "Identifier", - "start": 5, - "end": 6, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 6 - } - }, - "name": "x" - }, - "kind": "init", - "value": { - "type": "Identifier", - "start": 5, - "end": 6, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 6 - } - }, - "name": "x" - } - } - ] - }, - "right": { - "type": "ObjectExpression", - "start": 10, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 10 + "name": "x" }, - "end": { - "line": 1, - "column": 17 + "value": { + "type": "Identifier", + "start": 5, + "end": 6, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 6 + } + }, + "name": "x" } + } + ] + }, + "right": { + "type": "ObjectExpression", + "start": 10, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 10 }, - "properties": [ - { - "type": "Property", + "end": { + "line": 1, + "column": 17 + } + }, + "properties": [ + { + "type": "ObjectProperty", + "start": 11, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 16 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", "start": 11, - "end": 16, + "end": 12, "loc": { "start": { "line": 1, "column": 11 }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" + }, + "value": { + "type": "NumberLiteral", + "start": 14, + "end": 16, + "loc": { + "start": { + "line": 1, + "column": 14 + }, "end": { "line": 1, "column": 16 } }, - "method": false, - "shorthand": false, - "computed": false, - "key": { - "type": "Identifier", - "start": 11, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "name": "x" + "extra": { + "rawValue": 10, + "raw": "10" }, - "value": { - "type": "NumberLiteral", - "start": 14, - "end": 16, - "loc": { - "start": { - "line": 1, - "column": 14 - }, - "end": { - "line": 1, - "column": 16 - } - }, - "extra": { - "rawValue": 10, - "raw": "10" - }, - "value": 10 - }, - "kind": "init" + "value": 10 } - ] - } + } + ] } - ], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } - }, - "body": [], - "directives": [] } + ], + "body": { + "type": "BlockStatement", + "start": 19, + "end": 21, + "loc": { + "start": { + "line": 1, + "column": 19 + }, + "end": { + "line": 1, + "column": 21 + } + }, + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json index 519875cdd1..16c419f612 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/157/expected.json @@ -74,7 +74,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 8, "end": 27, "loc": { @@ -106,28 +106,28 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 9, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 9 + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 10, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 23 + } }, - "end": { - "line": 1, - "column": 27 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "AssignmentPattern", + "left": { + "type": "ObjectPattern", "start": 10, - "end": 23, + "end": 13, "loc": { "start": { "line": 1, @@ -135,26 +135,29 @@ }, "end": { "line": 1, - "column": 23 + "column": 13 } }, - "left": { - "type": "ObjectPattern", - "start": 10, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 10 + "properties": [ + { + "type": "ObjectProperty", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } }, - "end": { - "line": 1, - "column": 13 - } - }, - "properties": [ - { - "type": "Property", + "method": false, + "shorthand": true, + "computed": false, + "key": { + "type": "Identifier", "start": 11, "end": 12, "loc": { @@ -167,136 +170,116 @@ "column": 12 } }, - "method": false, - "shorthand": true, - "computed": false, - "key": { - "type": "Identifier", - "start": 11, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "name": "x" - }, - "kind": "init", - "value": { - "type": "Identifier", - "start": 11, - "end": 12, - "loc": { - "start": { - "line": 1, - "column": 11 - }, - "end": { - "line": 1, - "column": 12 - } - }, - "name": "x" - } - } - ] - }, - "right": { - "type": "ObjectExpression", - "start": 16, - "end": 23, - "loc": { - "start": { - "line": 1, - "column": 16 + "name": "x" }, - "end": { - "line": 1, - "column": 23 + "value": { + "type": "Identifier", + "start": 11, + "end": 12, + "loc": { + "start": { + "line": 1, + "column": 11 + }, + "end": { + "line": 1, + "column": 12 + } + }, + "name": "x" } + } + ] + }, + "right": { + "type": "ObjectExpression", + "start": 16, + "end": 23, + "loc": { + "start": { + "line": 1, + "column": 16 }, - "properties": [ - { - "type": "Property", + "end": { + "line": 1, + "column": 23 + } + }, + "properties": [ + { + "type": "ObjectProperty", + "start": 17, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 17 + }, + "end": { + "line": 1, + "column": 22 + } + }, + "method": false, + "shorthand": false, + "computed": false, + "key": { + "type": "Identifier", "start": 17, - "end": 22, + "end": 18, "loc": { "start": { "line": 1, "column": 17 }, + "end": { + "line": 1, + "column": 18 + } + }, + "name": "x" + }, + "value": { + "type": "NumberLiteral", + "start": 20, + "end": 22, + "loc": { + "start": { + "line": 1, + "column": 20 + }, "end": { "line": 1, "column": 22 } }, - "method": false, - "shorthand": false, - "computed": false, - "key": { - "type": "Identifier", - "start": 17, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "name": "x" + "extra": { + "rawValue": 10, + "raw": "10" }, - "value": { - "type": "NumberLiteral", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "extra": { - "rawValue": 10, - "raw": "10" - }, - "value": 10 - }, - "kind": "init" + "value": 10 } - ] - } + } + ] } - ], - "body": { - "type": "BlockStatement", - "start": 25, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 25 - }, - "end": { - "line": 1, - "column": 27 - } - }, - "body": [], - "directives": [] } + ], + "body": { + "type": "BlockStatement", + "start": 25, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 25 + }, + "end": { + "line": 1, + "column": 27 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json index 126c8430f4..f37f65a5de 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/158/expected.json @@ -90,7 +90,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 4, "loc": { @@ -122,7 +122,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 3, @@ -158,7 +157,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 14, "loc": { @@ -209,8 +208,7 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json index 0fdbc8a52e..64c3b49fae 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/161/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 25, "loc": { @@ -208,8 +208,7 @@ "body": [], "directives": [] } - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json index 95a9a2ba3e..324d763163 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/162/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 15, "loc": { @@ -121,94 +121,79 @@ }, "name": "f" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 7, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 7 + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "AssignmentPattern", + "start": 8, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 8 + }, + "end": { + "line": 1, + "column": 11 + } }, - "end": { - "line": 1, - "column": 15 - } - }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "AssignmentPattern", + "left": { + "type": "Identifier", "start": 8, - "end": 11, + "end": 9, "loc": { "start": { "line": 1, "column": 8 }, + "end": { + "line": 1, + "column": 9 + } + }, + "name": "a" + }, + "right": { + "type": "NumberLiteral", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, "end": { "line": 1, "column": 11 } }, - "left": { - "type": "Identifier", - "start": 8, - "end": 9, - "loc": { - "start": { - "line": 1, - "column": 8 - }, - "end": { - "line": 1, - "column": 9 - } - }, - "name": "a" + "extra": { + "rawValue": 1, + "raw": "1" }, - "right": { - "type": "NumberLiteral", - "start": 10, - "end": 11, - "loc": { - "start": { - "line": 1, - "column": 10 - }, - "end": { - "line": 1, - "column": 11 - } - }, - "extra": { - "rawValue": 1, - "raw": "1" - }, - "value": 1 - } + "value": 1 } - ], - "body": { - "type": "BlockStatement", - "start": 13, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "body": [], - "directives": [] } + ], + "body": { + "type": "BlockStatement", + "start": 13, + "end": 15, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 15 + } + }, + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/165/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/165/expected.json index 4ba45288ad..08cb8d6662 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/165/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/165/expected.json @@ -77,7 +77,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 13, "end": 14, "loc": { @@ -109,7 +109,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 13, @@ -128,7 +127,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 16, "end": 17, "loc": { @@ -160,7 +159,6 @@ }, "name": "b" }, - "kind": "init", "value": { "type": "Identifier", "start": 16, @@ -195,10 +193,11 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/166/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/166/expected.json index 65c064b712..fecc14e44a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/166/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/166/expected.json @@ -93,7 +93,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 16, "end": 17, "loc": { @@ -125,7 +125,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 16, @@ -160,10 +159,11 @@ "column": 22 } }, - "body": [] + "body": [], + "directives": [] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json index 7d82cfb3bb..50b9811fd9 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/170/expected.json @@ -91,7 +91,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 14, "end": 15, "loc": { @@ -123,7 +123,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 14, @@ -142,7 +141,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 17, "end": 18, "loc": { @@ -174,7 +173,6 @@ }, "name": "b" }, - "kind": "init", "value": { "type": "Identifier", "start": 17, diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json index 870de96929..35b8ef2474 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/173/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 3, "end": 16, "loc": { @@ -90,92 +90,77 @@ }, "name": "x" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 4, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "ArrayPattern", + "start": 5, + "end": 13, + "loc": { + "start": { + "line": 1, + "column": 5 + }, + "end": { + "line": 1, + "column": 13 + } + }, + "elements": [ + { + "type": "Identifier", + "start": 7, + "end": 8, + "loc": { + "start": { + "line": 1, + "column": 7 + }, + "end": { + "line": 1, + "column": 8 + } + }, + "name": "a" + }, + { + "type": "Identifier", + "start": 10, + "end": 11, + "loc": { + "start": { + "line": 1, + "column": 10 + }, + "end": { + "line": 1, + "column": 11 + } + }, + "name": "b" + } + ] + } + ], + "body": { + "type": "BlockStatement", + "start": 14, "end": 16, "loc": { "start": { "line": 1, - "column": 4 + "column": 14 }, "end": { "line": 1, "column": 16 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "ArrayPattern", - "start": 5, - "end": 13, - "loc": { - "start": { - "line": 1, - "column": 5 - }, - "end": { - "line": 1, - "column": 13 - } - }, - "elements": [ - { - "type": "Identifier", - "start": 7, - "end": 8, - "loc": { - "start": { - "line": 1, - "column": 7 - }, - "end": { - "line": 1, - "column": 8 - } - }, - "name": "a" - }, - { - "type": "Identifier", - "start": 10, - "end": 11, - "loc": { - "start": { - "line": 1, - "column": 10 - }, - "end": { - "line": 1, - "column": 11 - } - }, - "name": "b" - } - ] - } - ], - "body": { - "type": "BlockStatement", - "start": 14, - "end": 16, - "loc": { - "start": { - "line": 1, - "column": 14 - }, - "end": { - "line": 1, - "column": 16 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ], diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/178/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/178/expected.json index 806994cb9b..15f1e7078a 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/178/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/178/expected.json @@ -76,7 +76,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 4, "loc": { @@ -108,7 +108,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 3, @@ -143,11 +142,12 @@ "column": 13 } }, - "body": [] + "body": [], + "directives": [] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/179/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/179/expected.json index 4d7597a5b0..ce3a65a9ee 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/179/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/179/expected.json @@ -76,7 +76,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 4, "loc": { @@ -108,7 +108,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 3, @@ -174,11 +173,12 @@ "column": 19 } }, - "body": [] + "body": [], + "directives": [] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/182/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/182/expected.json index d18c636d50..35cdf77789 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/182/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/182/expected.json @@ -76,7 +76,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 12, "loc": { @@ -156,8 +156,7 @@ "name": "b" } ] - }, - "kind": "init" + } } ] }, @@ -207,11 +206,12 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/183/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/183/expected.json index 52a957065f..79bc67b569 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/183/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/183/expected.json @@ -76,7 +76,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 7, "loc": { @@ -123,11 +123,10 @@ } }, "name": "b" - }, - "kind": "init" + } }, { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 10, "loc": { @@ -159,7 +158,6 @@ }, "name": "c" }, - "kind": "init", "value": { "type": "Identifier", "start": 9, @@ -274,11 +272,12 @@ "column": 33 } }, - "body": [] + "body": [], + "directives": [] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/186/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/186/expected.json index 525404a0e1..16d0a3f561 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/186/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/186/expected.json @@ -88,7 +88,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 3, "end": 4, "loc": { @@ -120,7 +120,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 3, @@ -139,7 +138,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 7, "loc": { @@ -171,7 +170,6 @@ }, "name": "b" }, - "kind": "init", "value": { "type": "Identifier", "start": 6, @@ -242,7 +240,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/190/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/190/expected.json index bb2b744d13..dc0dd1b374 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/190/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/190/expected.json @@ -88,7 +88,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 7, "end": 8, "loc": { @@ -120,7 +120,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 7, @@ -139,7 +138,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 10, "end": 11, "loc": { @@ -171,7 +170,6 @@ }, "name": "b" }, - "kind": "init", "value": { "type": "Identifier", "start": 10, @@ -244,7 +242,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json index a5de31017e..c14ff21a76 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/26/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 19, "loc": { @@ -121,7 +121,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 13, "end": 18, "loc": { @@ -172,12 +172,10 @@ "raw": "10" }, "value": 10 - }, - "kind": "init" + } } ] - }, - "kind": "init" + } } ] }, diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/303/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/303/expected.json index c58193f339..64493bca6c 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/303/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/303/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 8, "loc": { @@ -105,7 +105,6 @@ }, "name": "get" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -145,6 +144,7 @@ ], "kind": "var" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/304/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/304/expected.json index 8fb4b5b979..b66e1b6640 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/304/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/304/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 38, "loc": { @@ -151,8 +151,7 @@ }, "name": "defaultValue" } - }, - "kind": "init" + } } ] }, @@ -176,7 +175,7 @@ ], "kind": "var" } - ] - }, - "comments": [] -} + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/305/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/305/expected.json index a47eedc258..07fa4a6986 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/305/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/305/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 28, "loc": { @@ -105,7 +105,6 @@ }, "name": "propName" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 5, @@ -176,7 +175,7 @@ ], "kind": "var" } - ] - }, - "comments": [] -} + ], + "directives": [] + } +} \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json index fa5a1fed3e..66529d6cc5 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/307/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 7, "loc": { @@ -105,7 +105,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 2, diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json index f13152264e..0b996626b8 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/308/expected.json @@ -76,7 +76,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 2, "end": 7, "loc": { @@ -108,7 +108,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 2, diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json index 21ff2e2c8b..a5c0d5db68 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/309/expected.json @@ -104,7 +104,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 15, "loc": { @@ -152,7 +152,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 14, "loc": { @@ -184,7 +184,6 @@ }, "name": "c" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 9, @@ -238,8 +237,7 @@ } } ] - }, - "kind": "init" + } } ] } diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json index efd6b8cb0f..d58ddf8b31 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/310/expected.json @@ -58,7 +58,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 11, "loc": { @@ -90,7 +90,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "AssignmentPattern", "start": 6, diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/313/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/313/expected.json index d56fc1ce39..9a9139b799 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/313/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/313/expected.json @@ -56,7 +56,8 @@ "column": 6 } }, - "body": [] + "body": [], + "directives": [] }, "handler": { "type": "CatchClause", @@ -88,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 15, "end": 22, "loc": { @@ -120,7 +121,6 @@ }, "name": "message" }, - "kind": "init", "value": { "type": "Identifier", "start": 15, @@ -154,13 +154,14 @@ "column": 27 } }, - "body": [] + "body": [], + "directives": [] } }, "guardedHandlers": [], "finalizer": null } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/314/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/314/expected.json index 251b838ffe..859c4a7b48 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/314/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/314/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 21, "loc": { @@ -107,46 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 16, + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 19, "end": 21, "loc": { "start": { "line": 1, - "column": 16 + "column": 19 }, "end": { "line": 1, "column": 21 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 21, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 21 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/316/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/316/expected.json index d0a93d30d0..ec67c88b06 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/316/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/316/expected.json @@ -75,7 +75,7 @@ }, "body": [ { - "type": "MethodDefinition", + "type": "ClassMethod", "start": 10, "end": 22, "loc": { @@ -107,46 +107,32 @@ }, "static": false, "kind": "method", - "value": { - "type": "FunctionExpression", - "start": 17, + "id": null, + "generator": true, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 20, "end": 22, "loc": { "start": { "line": 1, - "column": 17 + "column": 20 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": true, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 20, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 20 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/321/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/321/expected.json index 6b9c75753f..304fea8a0d 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/321/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/321/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "x" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -145,6 +144,7 @@ ], "kind": "let" } - ] + ], + "directives": [] } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json index fbd87bd0c4..8025e7a342 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/33/expected.json @@ -93,7 +93,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 8, "end": 20, "loc": { @@ -144,8 +144,7 @@ "raw": "42" }, "value": 42 - }, - "kind": "init" + } } ], "extra": { diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/347/options.json b/packages/babylon/test/fixtures/harmony/uncategorised/347/options.json index 1cddead191..739bda889b 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/347/options.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/347/options.json @@ -1,3 +1,3 @@ { - "throws": "setter should have exactly one param (1:18)" -} \ No newline at end of file + "throws": "setter should have exactly one param (1:10)" +} diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/52/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/52/expected.json index bb2d92ab6e..880dce74c2 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/52/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/52/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 18, "loc": { @@ -121,48 +121,34 @@ }, "name": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 12, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 15, "end": 18, "loc": { "start": { "line": 1, - "column": 12 + "column": 15 }, "end": { "line": 1, "column": 18 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 15, - "end": 18, - "loc": { - "start": { - "line": 1, - "column": 15 - }, - "end": { - "line": 1, - "column": 18 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/53/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/53/expected.json index 75665ddf61..7d5dce4954 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/53/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/53/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 22, "loc": { @@ -121,65 +121,51 @@ }, "name": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 12, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [ + { + "type": "Identifier", + "start": 13, + "end": 17, + "loc": { + "start": { + "line": 1, + "column": 13 + }, + "end": { + "line": 1, + "column": 17 + } + }, + "name": "test" + } + ], + "body": { + "type": "BlockStatement", + "start": 19, "end": 22, "loc": { "start": { "line": 1, - "column": 12 + "column": 19 }, "end": { "line": 1, "column": 22 } }, - "id": null, - "generator": false, - "expression": false, - "params": [ - { - "type": "Identifier", - "start": 13, - "end": 17, - "loc": { - "start": { - "line": 1, - "column": 13 - }, - "end": { - "line": 1, - "column": 17 - } - }, - "name": "test" - } - ], - "body": { - "type": "BlockStatement", - "start": 19, - "end": 22, - "loc": { - "start": { - "line": 1, - "column": 19 - }, - "end": { - "line": 1, - "column": 22 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json index e964b38846..1030bf0af2 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/54/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 20, "loc": { @@ -125,42 +125,27 @@ }, "value": "method" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 14, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 17, "end": 20, "loc": { "start": { "line": 1, - "column": 14 + "column": 17 }, "end": { "line": 1, "column": 20 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 17, - "end": 20, - "loc": { - "start": { - "line": 1, - "column": 17 - }, - "end": { - "line": 1, - "column": 20 - } - }, - "body": [], - "directives": [] - } + "body": [], + "directives": [] } } ] diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/55/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/55/expected.json index 442afea2b9..0b0d3f1c10 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/55/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/55/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 15, "loc": { @@ -121,48 +121,34 @@ }, "name": "get" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 15, "loc": { "start": { "line": 1, - "column": 9 + "column": 12 }, "end": { "line": 1, "column": 15 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/56/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/56/expected.json index 3545909350..b118b76443 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/56/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/56/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectMethod", "start": 6, "end": 15, "loc": { @@ -121,48 +121,34 @@ }, "name": "set" }, - "kind": "init", - "value": { - "type": "FunctionExpression", - "start": 9, + "kind": "method", + "id": null, + "generator": false, + "expression": false, + "params": [], + "body": { + "type": "BlockStatement", + "start": 12, "end": 15, "loc": { "start": { "line": 1, - "column": 9 + "column": 12 }, "end": { "line": 1, "column": 15 } }, - "id": null, - "generator": false, - "expression": false, - "params": [], - "body": { - "type": "BlockStatement", - "start": 12, - "end": 15, - "loc": { - "start": { - "line": 1, - "column": 12 - }, - "end": { - "line": 1, - "column": 15 - } - }, - "body": [] - } + "body": [], + "directives": [] } } ] } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/61/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/61/expected.json index 592ee20049..660265dd75 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/61/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/61/expected.json @@ -89,7 +89,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 6, "end": 7, "loc": { @@ -121,7 +121,6 @@ }, "name": "y" }, - "kind": "init", "value": { "type": "Identifier", "start": 6, @@ -140,7 +139,7 @@ } }, { - "type": "Property", + "type": "ObjectProperty", "start": 9, "end": 10, "loc": { @@ -172,7 +171,6 @@ }, "name": "z" }, - "kind": "init", "value": { "type": "Identifier", "start": 9, @@ -194,7 +192,7 @@ } } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/63/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/63/expected.json index f8d73fc297..f17d4e7f50 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/63/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/63/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 7, "end": 8, "loc": { @@ -105,7 +105,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 7, @@ -145,7 +144,7 @@ ], "kind": "const" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/65/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/65/expected.json index beb62b1d35..d449479dc0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/65/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/65/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -145,7 +144,7 @@ ], "kind": "let" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/67/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/67/expected.json index 870ab05ccc..5847b666e3 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/67/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/67/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 6, "loc": { @@ -105,7 +105,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 5, @@ -145,7 +144,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/69/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/69/expected.json index bad27b27c6..f2577d66d0 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/69/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/69/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 7, "end": 10, "loc": { @@ -120,8 +120,7 @@ } }, "name": "b" - }, - "kind": "init" + } } ] }, @@ -145,7 +144,7 @@ ], "kind": "const" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/70/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/70/expected.json index 37cca27feb..a9efc0fea7 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/70/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/70/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 8, "loc": { @@ -120,8 +120,7 @@ } }, "name": "b" - }, - "kind": "init" + } } ] }, @@ -145,7 +144,7 @@ ], "kind": "let" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/harmony/uncategorised/71/expected.json b/packages/babylon/test/fixtures/harmony/uncategorised/71/expected.json index 6a0f96a0d8..0615d247ab 100644 --- a/packages/babylon/test/fixtures/harmony/uncategorised/71/expected.json +++ b/packages/babylon/test/fixtures/harmony/uncategorised/71/expected.json @@ -73,7 +73,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 5, "end": 8, "loc": { @@ -120,8 +120,7 @@ } }, "name": "b" - }, - "kind": "init" + } } ] }, @@ -145,7 +144,7 @@ ], "kind": "var" } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/basic/10/expected.json b/packages/babylon/test/fixtures/jsx/basic/10/expected.json index 7dbf341df0..74329dfd09 100644 --- a/packages/babylon/test/fixtures/jsx/basic/10/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/10/expected.json @@ -156,20 +156,8 @@ }, "expression": { "type": "JSXEmptyExpression", - "start": 4, - "end": 27, - "loc": { - "start": { - "line": 1, - "column": 4 - }, - "end": { - "line": 1, - "column": 27 - } - }, - "leadingComments": null, - "innerComments": [ + "loc": {}, + "leadingComments": [ { "type": "CommentBlock", "value": " this is a comment ", @@ -187,7 +175,26 @@ } } ] - } + }, + "leadingComments": null, + "innerComments": [ + { + "type": "CommentBlock", + "value": " this is a comment ", + "start": 4, + "end": 27, + "loc": { + "start": { + "line": 1, + "column": 4 + }, + "end": { + "line": 1, + "column": 27 + } + } + } + ] } ] } diff --git a/packages/babylon/test/fixtures/jsx/basic/empty-expression-container/expected.json b/packages/babylon/test/fixtures/jsx/basic/empty-expression-container/expected.json index 3f1a13918e..157403e9bf 100644 --- a/packages/babylon/test/fixtures/jsx/basic/empty-expression-container/expected.json +++ b/packages/babylon/test/fixtures/jsx/basic/empty-expression-container/expected.json @@ -137,24 +137,13 @@ }, "expression": { "type": "JSXEmptyExpression", - "start": 4, - "end": 4, - "loc": { - "start": { - "line": 1, - "column": 4 - }, - "end": { - "line": 1, - "column": 4 - } - } + "loc": {} } } ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/fixtures/jsx/regression/3/expected.json b/packages/babylon/test/fixtures/jsx/regression/3/expected.json index e12dd8c418..d4081dc212 100644 --- a/packages/babylon/test/fixtures/jsx/regression/3/expected.json +++ b/packages/babylon/test/fixtures/jsx/regression/3/expected.json @@ -151,7 +151,7 @@ }, "properties": [ { - "type": "Property", + "type": "ObjectProperty", "start": 8, "end": 9, "loc": { @@ -183,7 +183,6 @@ }, "name": "a" }, - "kind": "init", "value": { "type": "Identifier", "start": 8, @@ -207,7 +206,7 @@ ] } } - ] - }, - "comments": [] + ], + "directives": [] + } } \ No newline at end of file diff --git a/packages/babylon/test/index.js b/packages/babylon/test/index.js index 6dc0156769..0954e19df9 100644 --- a/packages/babylon/test/index.js +++ b/packages/babylon/test/index.js @@ -59,7 +59,7 @@ function runTest(test) { } else { var mis = misMatch(JSON.parse(test.expect.code), ast); if (mis) { - // save(test, ast); + //save(test, ast); throw new Error(mis); } } diff --git a/scripts/bootstrap.js b/scripts/bootstrap.js index d76f98ad06..0f4a0cc0a2 100755 --- a/scripts/bootstrap.js +++ b/scripts/bootstrap.js @@ -3,6 +3,8 @@ require("shelljs/global"); var path = require("path"); var fs = require("fs"); +var OFFLINE = !!process.env.OFFLINE; + // uninstall global babel install try { exec("npm uninstall -g babel"); @@ -47,9 +49,22 @@ packages.forEach(function (root) { }); cd("packages/" + root.folder); - exec("npm install"); - exec("npm link"); + + // check whether or not we have any dependencies in our package.json that aren't in node_modules + var shouldRunInstall = false; + var pkg = require(process.cwd() + "/package.json"); + var deps = Object.keys(pkg.dependencies || {}).concat(Object.keys(pkg.devDependencies || {})); + deps.forEach(function (depName) { + if (!fs.existsSync(process.cwd() + "/node_modules/" + depName)) { + console.log("Not installed", depName); + shouldRunInstall = true; + } + }); + if (shouldRunInstall && !OFFLINE) exec("npm install"); + + if (!OFFLINE) exec("npm link"); + cd("../.."); }); -exec("make build"); +if (!OFFLINE) exec("make build"); diff --git a/scripts/publish.js b/scripts/publish.js index 2335924acc..d093e66387 100755 --- a/scripts/publish.js +++ b/scripts/publish.js @@ -72,7 +72,7 @@ function updateDepsObject(changedPackages, deps) { function publish() { var packageNames = fs.readdirSync(PACKAGE_LOC).filter(function (name) { - return name[0] !== "."; + return name[0] !== "." && fs.statSync(PACKAGE_LOC + "/" + name).isDirectory(); }); var lastTagCommit = exec("git rev-list --tags --max-count=1"); @@ -152,6 +152,7 @@ try { } catch (err) { console.log(chalk.red("There was a problem publishing.")); console.log(err.stack); + return; if (publishedPackages.length) { console.log(chalk.warning("Unpublishing published packages...")); @@ -159,8 +160,8 @@ try { publishedPackages.forEach(function () { var verInfo = name + "@" + NEW_VERSION; try { - console.log(chalk.warning("Unpublishing " + verInfo "...")); - exec("npm unpublish --force " + verInfo); + console.log(chalk.warning("Unpublishing " + verInfo + "...")); + //exec("npm unpublish --force " + verInfo); } catch (err) { console.log(chalk.red("Failed to unpublish " + verInfo)); console.log(err.stack); @@ -168,7 +169,7 @@ try { }); } else { console.log(chalk.warning("Rolling back to commit", originalCommit, "...")); - exec("git checkout --hard " + originalCommit, true); + //exec("git checkout --hard " + originalCommit, true); } return; diff --git a/test.js b/test.js deleted file mode 100644 index 3918c74e44..0000000000 --- a/test.js +++ /dev/null @@ -1 +0,0 @@ -"use strict"; From b2af8af7c889764297d95a00cd8144d899538ef6 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:02:15 +0000 Subject: [PATCH 154/174] v6.0.0 --- VERSION | 2 +- packages/babel-cli/package.json | 8 ++-- packages/babel-code-frame/package.json | 4 +- packages/babel-core/package.json | 22 +++++----- .../.es7.decorators/options.json | 2 +- .../async-to-generator/options.json | 2 +- .../bluebird-coroutines/class/options.json | 2 +- .../bluebird-coroutines/options.json | 2 +- .../es6.arrow-functions/spec/options.json | 2 +- .../es6.classes-loose/options.json | 2 +- .../name-method-collision/options.json | 2 +- .../transformation/es6.classes/options.json | 2 +- .../es6.destructuring/options.json | 2 +- .../es6.modules-amd/options.json | 2 +- .../es6.modules-common-strict/options.json | 2 +- .../imports-default/options.json | 2 +- .../imports-mixing/options.json | 2 +- .../es6.modules-common/options.json | 2 +- .../es6.modules-common/overview/options.json | 2 +- .../es6.modules-system/options.json | 2 +- .../es6.modules-umd/options.json | 2 +- .../es6.object-super/options.json | 2 +- .../es6.parameters/options.json | 2 +- .../options.json | 2 +- .../es6.properties.computed/options.json | 2 +- .../es6.spec.symbols/options.json | 2 +- .../transformation/es6.spread/options.json | 2 +- .../es7.class-properties/options.json | 2 +- .../es7.export-extensions/options.json | 2 +- .../transformation/jscript/options.json | 2 +- .../fixtures/transformation/misc/options.json | 2 +- .../misc/regression-1155/options.json | 2 +- .../options.json | 2 +- .../options.json | 2 +- .../transformation/react/options.json | 2 +- .../source-maps/class/options.json | 2 +- .../transformation/source-maps/options.json | 2 +- .../spec.function-name/modules-2/options.json | 2 +- .../spec.function-name/modules-3/options.json | 2 +- .../spec.function-name/modules/options.json | 2 +- .../spec.function-name/options.json | 2 +- .../spec.proto-to-assign/options.json | 2 +- packages/babel-generator/package.json | 10 ++--- .../package.json | 10 ++--- .../package.json | 10 ++--- .../package.json | 10 ++--- .../package.json | 8 ++-- .../babel-helper-call-delegate/package.json | 12 +++--- packages/babel-helper-define-map/package.json | 10 ++--- .../package.json | 10 ++--- .../babel-helper-explode-class/package.json | 12 +++--- packages/babel-helper-fixtures/package.json | 6 +-- .../babel-helper-function-name/package.json | 14 +++---- .../package.json | 8 ++-- .../babel-helper-hoist-variables/package.json | 8 ++-- .../package.json | 8 ++-- packages/babel-helper-regex/package.json | 8 ++-- .../package.json | 10 ++--- .../babel-helper-replace-supers/package.json | 16 ++++---- packages/babel-helpers/package.json | 8 ++-- packages/babel-messages/package.json | 4 +- .../.npmignore | 0 .../README.md | 4 +- .../package.json | 8 ++-- .../src/index.js | 0 .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../babel-plugin-syntax-flow/package.json | 4 +- .../package.json | 4 +- packages/babel-plugin-syntax-jsx/package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 8 ++-- .../package.json | 12 +++--- .../package.json | 10 ++--- .../package.json | 6 +-- .../package.json | 14 +++---- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 10 ++--- .../package.json | 18 ++++----- .../package.json | 8 ++-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 8 ++-- .../package.json | 4 +- .../package.json | 10 ++--- .../package.json | 11 +++-- .../package.json | 10 ++--- .../package.json | 10 ++--- .../package.json | 6 +-- .../package.json | 14 +++---- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../babel-plugin-transform-eval/package.json | 4 +- .../package.json | 8 ++-- .../package.json | 6 +-- .../package.json | 6 +-- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 8 ++-- .../package.json | 5 ++- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 6 +-- packages/babel-polyfill/package.json | 4 +- packages/babel-preset-es2015/package.json | 40 +++++++++---------- packages/babel-preset-react/package.json | 10 ++--- packages/babel-runtime/package.json | 6 +-- packages/babel-template/package.json | 10 ++--- packages/babel-traverse/package.json | 12 +++--- packages/babel-types/package.json | 6 +-- packages/babel/package.json | 2 +- packages/babylon/package.json | 4 +- 148 files changed, 415 insertions(+), 415 deletions(-) rename packages/{babel-plugin-external-helpers => babel-plugin-external-helpers-2}/.npmignore (100%) rename packages/{babel-plugin-external-helpers => babel-plugin-external-helpers-2}/README.md (80%) rename packages/{babel-plugin-external-helpers => babel-plugin-external-helpers-2}/package.json (62%) rename packages/{babel-plugin-external-helpers => babel-plugin-external-helpers-2}/src/index.js (100%) diff --git a/VERSION b/VERSION index ac78cf1a97..f4965a313a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5.8.33 +6.0.0 \ No newline at end of file diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index 421376bed9..8099003c8f 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -1,6 +1,6 @@ { "name": "babel-cli", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn ES6 code into readable vanilla ES5 with source maps", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,8 +8,8 @@ "repository": "babel/babel", "preferGlobal": true, "dependencies": { - "babel-core": "^5.10.32", - "babel-polyfill": "^5.10.32", + "babel-core": "^6.0.0", + "babel-polyfill": "^6.0.0", "chokidar": "^1.0.0", "commander": "^2.8.1", "convert-source-map": "^1.1.0", @@ -22,7 +22,7 @@ "slash": "^1.0.0", "source-map": "^0.5.0", "v8flags": "^2.0.10", - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" }, "bin": { "babel": "./bin/babel.js", diff --git a/packages/babel-code-frame/package.json b/packages/babel-code-frame/package.json index 4d40c1e7e3..b4ecb8a5f0 100644 --- a/packages/babel-code-frame/package.json +++ b/packages/babel-code-frame/package.json @@ -1,6 +1,6 @@ { "name": "babel-code-frame", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,7 +8,7 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.10.32", + "babel-runtime": "^6.0.0", "chalk": "^1.1.0", "esutils": "^2.0.2", "js-tokens": "^1.0.1", diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index c7339a9246..cf47dcd21b 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,6 +1,6 @@ { "name": "babel-core", - "version": "5.10.32", + "version": "6.0.0", "description": "A compiler for writing next generation JavaScript", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -28,15 +28,15 @@ "test": "make test" }, "dependencies": { - "babel-code-frame": "^5.10.32", - "babel-generator": "^5.10.32", - "babel-helpers": "^6.0.6", - "babel-messages": "^5.10.32", - "babel-template": "^5.10.32", - "babel-runtime": "^5.10.32", - "babel-traverse": "^5.10.32", - "babel-types": "^5.10.32", - "babylon": "^5.10.32", + "babel-code-frame": "^6.0.0", + "babel-generator": "^6.0.0", + "babel-helpers": "^6.0.0", + "babel-messages": "^6.0.0", + "babel-template": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-types": "^6.0.0", + "babylon": "^6.0.0", "convert-source-map": "^1.1.0", "debug": "^2.1.1", "esutils": "^2.0.0", @@ -54,6 +54,6 @@ "source-map-support": "^0.2.10" }, "devDependencies": { - "babel-polyfill": "^5.10.32" + "babel-polyfill": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json b/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json index 0c91a1a362..94198b683e 100644 --- a/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json +++ b/packages/babel-core/test/fixtures/transformation/.es7.decorators/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-destructuring", "transform-es2015-block-scoping", "transform-decorators", "transform-es2015-classes", "transform-class-properties"] + "plugins": ["external-helpers-2", "transform-es2015-destructuring", "transform-es2015-block-scoping", "transform-decorators", "transform-es2015-classes", "transform-class-properties"] } diff --git a/packages/babel-core/test/fixtures/transformation/async-to-generator/options.json b/packages/babel-core/test/fixtures/transformation/async-to-generator/options.json index 54b64ad0fb..43f478db36 100644 --- a/packages/babel-core/test/fixtures/transformation/async-to-generator/options.json +++ b/packages/babel-core/test/fixtures/transformation/async-to-generator/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-async-to-generator"] + "plugins": ["external-helpers-2", "transform-async-to-generator"] } diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/options.json b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/options.json index 019532b4f9..a6a12735e6 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/options.json +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/class/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers-2"] } diff --git a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json index e6402afd2d..def78a4244 100644 --- a/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json +++ b/packages/babel-core/test/fixtures/transformation/bluebird-coroutines/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", ["transform-async-to-module-method", { "module": "bluebird", "method": "coroutine" }]] + "plugins": ["external-helpers-2", ["transform-async-to-module-method", { "module": "bluebird", "method": "coroutine" }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json index 1653d169a3..76b6077907 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.arrow-functions/spec/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", ["transform-es2015-arrow-functions", { "spec": true }]] + "plugins": ["external-helpers-2", ["transform-es2015-arrow-functions", { "spec": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json index 5ba1a293bd..399559329f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", ["transform-es2015-classes", { "loose": true }], "transform-es2015-spread", "transform-es2015-block-scoping"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", ["transform-es2015-classes", { "loose": true }], "transform-es2015-spread", "transform-es2015-block-scoping"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json index f1f6226b60..1c490a8649 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/name-method-collision/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-es2015-spread", "transform-es2015-block-scoping", "transform-es2015-modules-commonjs"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", "transform-es2015-classes", "transform-es2015-spread", "transform-es2015-block-scoping", "transform-es2015-modules-commonjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/options.json b/packages/babel-core/test/fixtures/transformation/es6.classes/options.json index ae024a20b2..7c3739a60c 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.classes/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-es2015-spread", "transform-es2015-block-scoping"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", "transform-es2015-classes", "transform-es2015-spread", "transform-es2015-block-scoping"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json b/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json index a0353afbef..492b43d890 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.destructuring/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-destructuring", "transform-es2015-spread", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-object-rest-spread"] + "plugins": ["external-helpers-2", "transform-es2015-destructuring", "transform-es2015-spread", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-object-rest-spread"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json index 69f4662d87..edd6ab30c0 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-amd/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-modules-amd"] + "plugins": ["external-helpers-2", "transform-es2015-modules-amd"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json index b2db9b9205..3591ef1e6f 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common-strict/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", ["transform-es2015-modules-commonjs", { "strict": true }]] + "plugins": ["external-helpers-2", ["transform-es2015-modules-commonjs", { "strict": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/options.json index 019532b4f9..a6a12735e6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-default/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers-2"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json index 019532b4f9..a6a12735e6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/imports-mixing/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers-2"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json index 7ccaf471d1..956132f2a1 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-modules-commonjs"] + "plugins": ["external-helpers-2", "transform-es2015-modules-commonjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/options.json index 019532b4f9..a6a12735e6 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-common/overview/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers-2"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json index 576c2a257c..067fbec4b8 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-system/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-modules-systemjs"] + "plugins": ["external-helpers-2", "transform-es2015-modules-systemjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json index 3b3cb76192..634a04cf51 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.modules-umd/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-modules-umd"] + "plugins": ["external-helpers-2", "transform-es2015-modules-umd"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json b/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json index a1e544dbb8..717cf43d40 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.object-super/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-object-super"] + "plugins": ["external-helpers-2", "transform-es2015-object-super"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json b/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json index bd67bd64db..0ce23fb256 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.parameters/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "syntax-flow", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-es2015-spread", "transform-es2015-classes", "transform-es2015-destructuring", "transform-es2015-arrow-functions", "syntax-async-functions"] + "plugins": ["external-helpers-2", "syntax-flow", "transform-es2015-parameters", "transform-es2015-block-scoping", "transform-es2015-spread", "transform-es2015-classes", "transform-es2015-destructuring", "transform-es2015-arrow-functions", "syntax-async-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json index dfcf614a8f..b42761be5e 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.properties.computed-loose/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", ["transform-es2015-computed-properties", { "loose": true }]] + "plugins": ["external-helpers-2", ["transform-es2015-computed-properties", { "loose": true }]] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.properties.computed/options.json b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/options.json index 9bd429db72..07ba347951 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.properties.computed/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.properties.computed/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-computed-properties"] + "plugins": ["external-helpers-2", "transform-es2015-computed-properties"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json index d3913eecfa..81875a77af 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.spec.symbols/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-typeof-symbol"] + "plugins": ["external-helpers-2", "transform-es2015-typeof-symbol"] } diff --git a/packages/babel-core/test/fixtures/transformation/es6.spread/options.json b/packages/babel-core/test/fixtures/transformation/es6.spread/options.json index ec7023caa2..d61e7807eb 100644 --- a/packages/babel-core/test/fixtures/transformation/es6.spread/options.json +++ b/packages/babel-core/test/fixtures/transformation/es6.spread/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-spread", "transform-es2015-parameters"] + "plugins": ["external-helpers-2", "transform-es2015-spread", "transform-es2015-parameters"] } diff --git a/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json b/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json index 1e03c15d4c..68b5f03d73 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json +++ b/packages/babel-core/test/fixtures/transformation/es7.class-properties/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-class-properties", "transform-es2015-classes", "transform-es2015-block-scoping", "syntax-class-properties"] + "plugins": ["external-helpers-2", "transform-class-properties", "transform-es2015-classes", "transform-es2015-block-scoping", "syntax-class-properties"] } diff --git a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json index 26dfe134f4..cd6d0b2f9e 100644 --- a/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json +++ b/packages/babel-core/test/fixtures/transformation/es7.export-extensions/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-export-extensions"] + "plugins": ["external-helpers-2", "transform-export-extensions"] } diff --git a/packages/babel-core/test/fixtures/transformation/jscript/options.json b/packages/babel-core/test/fixtures/transformation/jscript/options.json index 8f02d5f9f9..2a83077952 100644 --- a/packages/babel-core/test/fixtures/transformation/jscript/options.json +++ b/packages/babel-core/test/fixtures/transformation/jscript/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-block-scoping", "transform-es2015-classes", "transform-jscript"] + "plugins": ["external-helpers-2", "transform-es2015-block-scoping", "transform-es2015-classes", "transform-jscript"] } diff --git a/packages/babel-core/test/fixtures/transformation/misc/options.json b/packages/babel-core/test/fixtures/transformation/misc/options.json index 019532b4f9..a6a12735e6 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/options.json +++ b/packages/babel-core/test/fixtures/transformation/misc/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers-2"] } diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json index a80812953e..9bf63fbd84 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/options.json @@ -1,3 +1,3 @@ { - "plugins": ["transform-es2015-classes", "external-helpers", "transform-es2015-block-scoping"] + "plugins": ["transform-es2015-classes", "external-helpers-2", "transform-es2015-block-scoping"] } diff --git a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/options.json b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/options.json index c0159ffbdb..96327e4a5c 100644 --- a/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/options.json +++ b/packages/babel-core/test/fixtures/transformation/optimisation.react.inline-elements/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "syntax-jsx", "transform-react-inline-elements", "transform-react-jsx"] + "plugins": ["external-helpers-2", "syntax-jsx", "transform-react-inline-elements", "transform-react-jsx"] } diff --git a/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json b/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json index df22ce44b7..8c93671dc7 100644 --- a/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json +++ b/packages/babel-core/test/fixtures/transformation/react/.optimisation.react.constant-elements/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-react-constant-elements", "transform-es2015-classes", "syntax-jsx"] + "plugins": ["external-helpers-2", "transform-react-constant-elements", "transform-es2015-classes", "syntax-jsx"] } diff --git a/packages/babel-core/test/fixtures/transformation/react/options.json b/packages/babel-core/test/fixtures/transformation/react/options.json index 6063cc9468..9d0456293a 100644 --- a/packages/babel-core/test/fixtures/transformation/react/options.json +++ b/packages/babel-core/test/fixtures/transformation/react/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "syntax-jsx", "transform-react-jsx", "transform-react-display-name", "transform-es2015-arrow-functions"] + "plugins": ["external-helpers-2", "syntax-jsx", "transform-react-jsx", "transform-react-display-name", "transform-es2015-arrow-functions"] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json index 53a40720bc..2fa2857263 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/class/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-classes", "transform-es2015-block-scoping"] + "plugins": ["external-helpers-2", "transform-es2015-classes", "transform-es2015-block-scoping"] } diff --git a/packages/babel-core/test/fixtures/transformation/source-maps/options.json b/packages/babel-core/test/fixtures/transformation/source-maps/options.json index 019532b4f9..a6a12735e6 100644 --- a/packages/babel-core/test/fixtures/transformation/source-maps/options.json +++ b/packages/babel-core/test/fixtures/transformation/source-maps/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers"] + "plugins": ["external-helpers-2"] } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json index ae79e8a72f..f6575957b3 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-2/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-decorators", "transform-es2015-modules-commonjs"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", "transform-es2015-classes", "transform-decorators", "transform-es2015-modules-commonjs"] } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json index 3eb095ef7c..1b2b7e4ef1 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules-3/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-modules-commonjs", "transform-es2015-classes", "transform-decorators"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", "transform-es2015-modules-commonjs", "transform-es2015-classes", "transform-decorators"] } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json index 3eb095ef7c..1b2b7e4ef1 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/modules/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-modules-commonjs", "transform-es2015-classes", "transform-decorators"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", "transform-es2015-modules-commonjs", "transform-es2015-classes", "transform-decorators"] } diff --git a/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json b/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json index bd531041dc..3f503942ab 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json +++ b/packages/babel-core/test/fixtures/transformation/spec.function-name/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-es2015-function-name", "transform-es2015-classes", "transform-decorators"] + "plugins": ["external-helpers-2", "transform-es2015-function-name", "transform-es2015-classes", "transform-decorators"] } diff --git a/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/options.json b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/options.json index 2409be178a..607b8f984c 100644 --- a/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/options.json +++ b/packages/babel-core/test/fixtures/transformation/spec.proto-to-assign/options.json @@ -1,3 +1,3 @@ { - "plugins": ["external-helpers", "transform-proto-to-assign"] + "plugins": ["external-helpers-2", "transform-proto-to-assign"] } diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json index 1b709802a6..bf6b8d2b34 100644 --- a/packages/babel-generator/package.json +++ b/packages/babel-generator/package.json @@ -1,6 +1,6 @@ { "name": "babel-generator", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,9 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-messages": "^5.10.32", - "babel-runtime": "^5.10.32", - "babel-types": "^5.10.32", + "babel-messages": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0", "detect-indent": "^3.0.1", "is-integer": "^1.0.4", "lodash": "^3.10.1", @@ -19,6 +19,6 @@ "trim-right": "^1.0.1" }, "devDependencies": { - "babel-helper-fixtures": "^1.0.0" + "babel-helper-fixtures": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-helper-bindify-decorators/package.json b/packages/babel-helper-bindify-decorators/package.json index 68b40a836b..c8a4b92b22 100644 --- a/packages/babel-helper-bindify-decorators/package.json +++ b/packages/babel-helper-bindify-decorators/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-bindify-decorators", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-traverse": "^5.8.20", - "babel-types": "^5.8.20" + "babel-runtime": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json index 84d8d423b9..d53cc45d76 100644 --- a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json +++ b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-builder-binary-assignment-operator-visitor", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-explode-assignable-expression": "^5.8.20", - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20" + "babel-helper-explode-assignable-expression": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json b/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json index aa809e85cc..9fbbe0af25 100644 --- a/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json +++ b/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-builder-conditional-assignment-operator-visitor", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-explode-assignable-expression": "^5.8.20", - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20" + "babel-helper-explode-assignable-expression": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-builder-react-jsx/package.json b/packages/babel-helper-builder-react-jsx/package.json index 6e57234438..7c9533d5b4 100644 --- a/packages/babel-helper-builder-react-jsx/package.json +++ b/packages/babel-helper-builder-react-jsx/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-builder-react-jsx", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0", "esutils": "^2.0.0", "lodash": "^3.10.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-call-delegate/package.json b/packages/babel-helper-call-delegate/package.json index 903216a522..a237bdadd3 100644 --- a/packages/babel-helper-call-delegate/package.json +++ b/packages/babel-helper-call-delegate/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-call-delegate", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^5.8.20", - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20", - "babel-helper-hoist-variables": "^5.0.0" + "babel-traverse": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0", + "babel-helper-hoist-variables": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-define-map/package.json b/packages/babel-helper-define-map/package.json index a49e603edc..6f26b3dc9d 100644 --- a/packages/babel-helper-define-map/package.json +++ b/packages/babel-helper-define-map/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-define-map", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", + "babel-runtime": "^6.0.0", "lodash": "^3.10.0", - "babel-types": "^5.8.20", - "babel-helper-function-name": "^5.0.0" + "babel-types": "^6.0.0", + "babel-helper-function-name": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-explode-assignable-expression/package.json b/packages/babel-helper-explode-assignable-expression/package.json index 81fd1e3c9b..b868b12690 100644 --- a/packages/babel-helper-explode-assignable-expression/package.json +++ b/packages/babel-helper-explode-assignable-expression/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-explode-assignable-expression", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^5.8.20", - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20" + "babel-traverse": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-explode-class/package.json b/packages/babel-helper-explode-class/package.json index 72590d9023..ef6c8c4322 100644 --- a/packages/babel-helper-explode-class/package.json +++ b/packages/babel-helper-explode-class/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-explode-class", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-traverse": "^5.8.20", - "babel-types": "^5.8.20", - "babel-helper-bindify-decorators": "^5.0.0" + "babel-runtime": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-types": "^6.0.0", + "babel-helper-bindify-decorators": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-fixtures/package.json b/packages/babel-helper-fixtures/package.json index ce00f260b7..0c4d43baeb 100644 --- a/packages/babel-helper-fixtures/package.json +++ b/packages/babel-helper-fixtures/package.json @@ -1,16 +1,16 @@ { "name": "babel-helper-fixtures", - "version": "1.0.9", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "license": "MIT", "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", + "babel-runtime": "^6.0.0", "lodash": "^3.10.0", "path-exists": "^1.0.0", "trim-right": "^1.0.1", "try-resolve": "^1.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-function-name/package.json b/packages/babel-helper-function-name/package.json index 5e2e7815db..48bc81b8f6 100644 --- a/packages/babel-helper-function-name/package.json +++ b/packages/babel-helper-function-name/package.json @@ -1,15 +1,15 @@ { "name": "babel-helper-function-name", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20", - "babel-traverse": "^5.8.20", - "babel-helper-get-function-arity": "^5.8.20", - "babel-template": "^5.0.0" + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-helper-get-function-arity": "^6.0.0", + "babel-template": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-get-function-arity/package.json b/packages/babel-helper-get-function-arity/package.json index ef787ea370..6881e94970 100644 --- a/packages/babel-helper-get-function-arity/package.json +++ b/packages/babel-helper-get-function-arity/package.json @@ -1,12 +1,12 @@ { "name": "babel-helper-get-function-arity", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20" + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-hoist-variables/package.json b/packages/babel-helper-hoist-variables/package.json index 717f77ec36..67e9acba1b 100644 --- a/packages/babel-helper-hoist-variables/package.json +++ b/packages/babel-helper-hoist-variables/package.json @@ -1,12 +1,12 @@ { "name": "babel-helper-hoist-variables", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20" + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-optimise-call-expression/package.json b/packages/babel-helper-optimise-call-expression/package.json index 5ed05d3b79..aa4033743c 100644 --- a/packages/babel-helper-optimise-call-expression/package.json +++ b/packages/babel-helper-optimise-call-expression/package.json @@ -1,12 +1,12 @@ { "name": "babel-helper-optimise-call-expression", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", - "babel-types": "^5.8.20" + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-regex/package.json b/packages/babel-helper-regex/package.json index 1563e36317..258ce58a5c 100644 --- a/packages/babel-helper-regex/package.json +++ b/packages/babel-helper-regex/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-regex", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.8.20", + "babel-runtime": "^6.0.0", "lodash": "^3.10.0", - "babel-types": "^5.8.20" + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helper-remap-async-to-generator/package.json b/packages/babel-helper-remap-async-to-generator/package.json index 74d8cb1684..70b9336db1 100644 --- a/packages/babel-helper-remap-async-to-generator/package.json +++ b/packages/babel-helper-remap-async-to-generator/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-remap-async-to-generator", - "version": "5.10.32", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.10.32", - "babel-types": "^5.10.32", - "babel-traverse": "^5.10.32", - "babel-helper-function-name": "^5.0.0" + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-helper-function-name": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-helper-replace-supers/package.json b/packages/babel-helper-replace-supers/package.json index 4c0c7dee57..8ce5e5b450 100644 --- a/packages/babel-helper-replace-supers/package.json +++ b/packages/babel-helper-replace-supers/package.json @@ -1,16 +1,16 @@ { "name": "babel-helper-replace-supers", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-optimise-call-expression": "^5.8.20", - "babel-runtime": "^5.8.20", - "babel-traverse": "^5.8.20", - "babel-messages": "^5.8.20", - "babel-template": "^5.8.20", - "babel-types": "^5.8.20" + "babel-helper-optimise-call-expression": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-messages": "^6.0.0", + "babel-template": "^6.0.0", + "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-helpers/package.json b/packages/babel-helpers/package.json index de46139c06..a3092702cf 100644 --- a/packages/babel-helpers/package.json +++ b/packages/babel-helpers/package.json @@ -1,6 +1,6 @@ { "name": "babel-helpers", - "version": "6.0.6", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,7 +8,7 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.6", - "babel-template": "^6.0.6" + "babel-runtime": "^6.0.0", + "babel-template": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-messages/package.json b/packages/babel-messages/package.json index 3fff027f91..0bce38483a 100644 --- a/packages/babel-messages/package.json +++ b/packages/babel-messages/package.json @@ -1,6 +1,6 @@ { "name": "babel-messages", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,6 +8,6 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-external-helpers/.npmignore b/packages/babel-plugin-external-helpers-2/.npmignore similarity index 100% rename from packages/babel-plugin-external-helpers/.npmignore rename to packages/babel-plugin-external-helpers-2/.npmignore diff --git a/packages/babel-plugin-external-helpers/README.md b/packages/babel-plugin-external-helpers-2/README.md similarity index 80% rename from packages/babel-plugin-external-helpers/README.md rename to packages/babel-plugin-external-helpers-2/README.md index d7e0860bf8..7566d388c8 100644 --- a/packages/babel-plugin-external-helpers/README.md +++ b/packages/babel-plugin-external-helpers-2/README.md @@ -1,9 +1,9 @@ -# babel-plugin-external-helpers +# babel-plugin-external-helpers-2 ## Installation ```sh -$ npm install babel-plugin-external-helpers +$ npm install babel-plugin-external-helpers-2 ``` ## Usage diff --git a/packages/babel-plugin-external-helpers/package.json b/packages/babel-plugin-external-helpers-2/package.json similarity index 62% rename from packages/babel-plugin-external-helpers/package.json rename to packages/babel-plugin-external-helpers-2/package.json index 93cb2c7867..ce16d190e9 100644 --- a/packages/babel-plugin-external-helpers/package.json +++ b/packages/babel-plugin-external-helpers-2/package.json @@ -1,6 +1,6 @@ { - "name": "babel-plugin-external-helpers", - "version": "5.10.32", + "name": "babel-plugin-external-helpers-2", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } -} \ No newline at end of file +} diff --git a/packages/babel-plugin-external-helpers/src/index.js b/packages/babel-plugin-external-helpers-2/src/index.js similarity index 100% rename from packages/babel-plugin-external-helpers/src/index.js rename to packages/babel-plugin-external-helpers-2/src/index.js diff --git a/packages/babel-plugin-syntax-async-functions/package.json b/packages/babel-plugin-syntax-async-functions/package.json index f6f0d06995..727e1eacb3 100644 --- a/packages/babel-plugin-syntax-async-functions/package.json +++ b/packages/babel-plugin-syntax-async-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-async-functions", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of async functions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-async-generators/package.json b/packages/babel-plugin-syntax-async-generators/package.json index e441079cee..a895ce7e8b 100644 --- a/packages/babel-plugin-syntax-async-generators/package.json +++ b/packages/babel-plugin-syntax-async-generators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-async-generators", - "version": "1.0.0", + "version": "6.0.0", "description": "Allow parsing of async generator functions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20" + "babel-runtime": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-class-constructor-call/package.json b/packages/babel-plugin-syntax-class-constructor-call/package.json index e35b99601e..2375d11eb0 100644 --- a/packages/babel-plugin-syntax-class-constructor-call/package.json +++ b/packages/babel-plugin-syntax-class-constructor-call/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-class-constructor-call", - "version": "1.0.0", + "version": "6.0.0", "description": "Allow parsing of class constructor calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20" + "babel-runtime": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-syntax-class-properties/package.json b/packages/babel-plugin-syntax-class-properties/package.json index 00746a70c2..f3cd33112f 100644 --- a/packages/babel-plugin-syntax-class-properties/package.json +++ b/packages/babel-plugin-syntax-class-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-class-properties", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of class properties", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-decorators/package.json b/packages/babel-plugin-syntax-decorators/package.json index 8b65d57835..ceb7c2d08f 100644 --- a/packages/babel-plugin-syntax-decorators/package.json +++ b/packages/babel-plugin-syntax-decorators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-decorators", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of decorators", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-do-expressions/package.json b/packages/babel-plugin-syntax-do-expressions/package.json index 49e00f01ee..65e0dc5ccc 100644 --- a/packages/babel-plugin-syntax-do-expressions/package.json +++ b/packages/babel-plugin-syntax-do-expressions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-do-expressions", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of do expressions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-exponentiation-operator/package.json b/packages/babel-plugin-syntax-exponentiation-operator/package.json index 31a8b38a96..b3eb984826 100644 --- a/packages/babel-plugin-syntax-exponentiation-operator/package.json +++ b/packages/babel-plugin-syntax-exponentiation-operator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-exponentiation-operator", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of the exponentiation operator", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-export-extensions/package.json b/packages/babel-plugin-syntax-export-extensions/package.json index fb65a9721a..edbfe6a756 100644 --- a/packages/babel-plugin-syntax-export-extensions/package.json +++ b/packages/babel-plugin-syntax-export-extensions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-export-extensions", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of export extensions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-flow/package.json b/packages/babel-plugin-syntax-flow/package.json index 3fd06a2d7a..ad231f1e2a 100644 --- a/packages/babel-plugin-syntax-flow/package.json +++ b/packages/babel-plugin-syntax-flow/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-flow", - "version": "5.10.32", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-function-bind/package.json b/packages/babel-plugin-syntax-function-bind/package.json index 55db548815..9e47c752d9 100644 --- a/packages/babel-plugin-syntax-function-bind/package.json +++ b/packages/babel-plugin-syntax-function-bind/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-function-bind", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of function bind", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-jsx/package.json b/packages/babel-plugin-syntax-jsx/package.json index 25c10f2c69..e2f241136e 100644 --- a/packages/babel-plugin-syntax-jsx/package.json +++ b/packages/babel-plugin-syntax-jsx/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-jsx", - "version": "5.10.32", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-object-rest-spread/package.json b/packages/babel-plugin-syntax-object-rest-spread/package.json index 67b6f0cb55..3d2e596483 100644 --- a/packages/babel-plugin-syntax-object-rest-spread/package.json +++ b/packages/babel-plugin-syntax-object-rest-spread/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-object-rest-spread", - "version": "5.10.32", + "version": "6.0.0", "description": "Allow parsing of object rest/spread", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-trailing-function-commas/package.json b/packages/babel-plugin-syntax-trailing-function-commas/package.json index ff1eda374b..4deffff3ca 100644 --- a/packages/babel-plugin-syntax-trailing-function-commas/package.json +++ b/packages/babel-plugin-syntax-trailing-function-commas/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-trailing-function-commas", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile trailing function commas to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-functions/package.json b/packages/babel-plugin-transform-async-functions/package.json index 0145bf01cc..74c3b8faed 100644 --- a/packages/babel-plugin-transform-async-functions/package.json +++ b/packages/babel-plugin-transform-async-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-functions", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile async functions to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-async-functions": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-async-functions": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-to-generator/package.json b/packages/babel-plugin-transform-async-to-generator/package.json index 0ee3c76258..6a337add36 100644 --- a/packages/babel-plugin-transform-async-to-generator/package.json +++ b/packages/babel-plugin-transform-async-to-generator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-to-generator", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn async functions into ES2015 generators", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-remap-async-to-generator": "^5.10.32", - "babel-plugin-syntax-async-functions": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-helper-remap-async-to-generator": "^6.0.0", + "babel-plugin-syntax-async-functions": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-to-module-method/package.json b/packages/babel-plugin-transform-async-to-module-method/package.json index 82c36dc177..11f240754c 100644 --- a/packages/babel-plugin-transform-async-to-module-method/package.json +++ b/packages/babel-plugin-transform-async-to-module-method/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-to-module-method", - "version": "1.0.0", + "version": "6.0.0", "description": "Turn async functions into a module method", "repository": "babel/babel", "license": "MIT", @@ -9,9 +9,9 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-async-functions": "^5.0.0", - "babel-helper-remap-async-to-generator": "^5.0.0", - "babel-types": "^5.0.0", - "babel-runtime": "^5.8.20" + "babel-plugin-syntax-async-functions": "^6.0.0", + "babel-helper-remap-async-to-generator": "^6.0.0", + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-class-constructor-call/package.json b/packages/babel-plugin-transform-class-constructor-call/package.json index 5fa2199934..9cf7cd5de3 100644 --- a/packages/babel-plugin-transform-class-constructor-call/package.json +++ b/packages/babel-plugin-transform-class-constructor-call/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-class-construtor-call", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-template": "^5.0.0", - "babel-plugin-syntax-class-constructor-call": "^5.0.0", - "babel-runtime": "^5.8.20" + "babel-template": "^6.0.0", + "babel-plugin-syntax-class-constructor-call": "^6.0.0", + "babel-runtime": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-class-properties/package.json b/packages/babel-plugin-transform-class-properties/package.json index 8e571bfb93..5328c78f92 100644 --- a/packages/babel-plugin-transform-class-properties/package.json +++ b/packages/babel-plugin-transform-class-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-class-properties", - "version": "5.10.32", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-class-properties": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-class-properties": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-decorators/package.json b/packages/babel-plugin-transform-decorators/package.json index 4d5408a0ac..cc3f59eaf5 100644 --- a/packages/babel-plugin-transform-decorators/package.json +++ b/packages/babel-plugin-transform-decorators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-decorators", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile class and object decorators to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,11 +9,11 @@ "babel-plugin" ], "dependencies": { - "babel-types": "^5.10.32", - "babel-helper-define-map": "^5.0.0", - "babel-plugin-syntax-decorators": "^5.10.32", - "babel-helper-explode-class": "^5.0.0", - "babel-template": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-types": "^6.0.0", + "babel-helper-define-map": "^6.0.0", + "babel-plugin-syntax-decorators": "^6.0.0", + "babel-helper-explode-class": "^6.0.0", + "babel-template": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-do-expressions/package.json b/packages/babel-plugin-transform-do-expressions/package.json index ec4f747f74..33bfafbe1b 100644 --- a/packages/babel-plugin-transform-do-expressions/package.json +++ b/packages/babel-plugin-transform-do-expressions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-do-expressions", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile do expressions to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-do-expressions": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-do-expressions": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-arrow-functions/package.json b/packages/babel-plugin-transform-es2015-arrow-functions/package.json index 0f06fbc04b..c4d9428991 100644 --- a/packages/babel-plugin-transform-es2015-arrow-functions/package.json +++ b/packages/babel-plugin-transform-es2015-arrow-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-arrow-functions", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 arrow functions to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json index 23c57a8c6c..a66cea48b5 100644 --- a/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-block-scoped-functions", - "version": "5.10.32", + "version": "6.0.0", "description": "Babel plugin to ensure function declarations at the block level are block scoped", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoping/package.json b/packages/babel-plugin-transform-es2015-block-scoping/package.json index e675853033..8ca2dc0d78 100644 --- a/packages/babel-plugin-transform-es2015-block-scoping/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoping/package.json @@ -1,16 +1,16 @@ { "name": "babel-plugin-transform-es2015-block-scoping", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^5.10.32", - "babel-types": "^5.10.32", - "babel-template": "^5.10.32", + "babel-traverse": "^6.0.0", + "babel-types": "^6.0.0", + "babel-template": "^6.0.0", "lodash": "^3.10.0", - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index 151d88b2c1..fa5a15002f 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,19 +1,19 @@ { "name": "babel-plugin-transform-es2015-classes", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-optimise-call-expression": "^5.0.0", - "babel-helper-function-name": "^5.0.0", - "babel-helper-replace-supers": "^5.0.0", - "babel-template": "^5.10.32", - "babel-traverse": "^5.10.32", - "babel-helper-define-map": "^5.0.0", - "babel-messages": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-helper-optimise-call-expression": "^6.0.0", + "babel-helper-function-name": "^6.0.0", + "babel-helper-replace-supers": "^6.0.0", + "babel-template": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-helper-define-map": "^6.0.0", + "babel-messages": "^6.0.0", + "babel-runtime": "^6.0.0" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-computed-properties/package.json b/packages/babel-plugin-transform-es2015-computed-properties/package.json index 74910ac0e0..63f37d44f1 100644 --- a/packages/babel-plugin-transform-es2015-computed-properties/package.json +++ b/packages/babel-plugin-transform-es2015-computed-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-computed-properties", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 computed properties to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-define-map": "5.0.0", - "babel-template": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-helper-define-map": "^6.0.0", + "babel-template": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-constants/package.json b/packages/babel-plugin-transform-es2015-constants/package.json index f4f686cba9..d1aac815ba 100644 --- a/packages/babel-plugin-transform-es2015-constants/package.json +++ b/packages/babel-plugin-transform-es2015-constants/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-constants", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 constants to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-destructuring/package.json b/packages/babel-plugin-transform-es2015-destructuring/package.json index ba6cc1d90a..4706a798f4 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/package.json +++ b/packages/babel-plugin-transform-es2015-destructuring/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-destructuring", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 destructuring to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-for-of/package.json b/packages/babel-plugin-transform-es2015-for-of/package.json index cc64f6144a..ced85a4994 100644 --- a/packages/babel-plugin-transform-es2015-for-of/package.json +++ b/packages/babel-plugin-transform-es2015-for-of/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-for-of", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 for...of to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-function-name/package.json b/packages/babel-plugin-transform-es2015-function-name/package.json index d57f296d3f..e207ae3d78 100644 --- a/packages/babel-plugin-transform-es2015-function-name/package.json +++ b/packages/babel-plugin-transform-es2015-function-name/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-function-name", - "version": "5.10.32", + "version": "6.0.0", "description": "Apply ES2015 function.name semantics to all functions", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-function-name": "^5.0.0", - "babel-types": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-helper-function-name": "^6.0.0", + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-literals/package.json b/packages/babel-plugin-transform-es2015-literals/package.json index b5be526bc0..58c07d9a66 100644 --- a/packages/babel-plugin-transform-es2015-literals/package.json +++ b/packages/babel-plugin-transform-es2015-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-literals", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 unicode string and number literals to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-modules-amd/package.json b/packages/babel-plugin-transform-es2015-modules-amd/package.json index 5854d5ac91..9eec5573eb 100644 --- a/packages/babel-plugin-transform-es2015-modules-amd/package.json +++ b/packages/babel-plugin-transform-es2015-modules-amd/package.json @@ -1,16 +1,16 @@ { "name": "babel-plugin-transform-es2015-modules-amd", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^5.0.0", - "babel-template": "^5.0.0", - "babel-runtime": "^5.8.20" + "babel-plugin-transform-es2015-modules-commonjs": "^6.0.0", + "babel-template": "^6.0.0", + "babel-runtime": "^6.0.0" }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/package.json b/packages/babel-plugin-transform-es2015-modules-commonjs/package.json index 0e307a4aeb..4511eab1cc 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/package.json +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/package.json @@ -1,17 +1,16 @@ { "name": "babel-plugin-transform-es2015-modules-commonjs", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-types": "^5.0.0", - "babel-runtime": "^5.0.0", - "babel-template": "^5.0.0", - "babel-runtime": "^5.8.20" + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-template": "^6.0.0" }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/package.json b/packages/babel-plugin-transform-es2015-modules-systemjs/package.json index 0190ee1989..3721d565ed 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/package.json +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/package.json @@ -1,16 +1,16 @@ { "name": "babel-plugin-transform-es2015-modules-systemjs", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-template": "^5.0.0", - "babel-helper-hoist-variables": "^5.0.0", - "babel-runtime": "^5.8.20" + "babel-template": "^6.0.0", + "babel-helper-hoist-variables": "^6.0.0", + "babel-runtime": "^6.0.0" }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-modules-umd/package.json b/packages/babel-plugin-transform-es2015-modules-umd/package.json index b5a73044ee..fb95d03783 100644 --- a/packages/babel-plugin-transform-es2015-modules-umd/package.json +++ b/packages/babel-plugin-transform-es2015-modules-umd/package.json @@ -1,16 +1,16 @@ { "name": "babel-plugin-transform-es2015-modules-umd", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^5.0.0", - "babel-template": "^5.0.0", - "babel-runtime": "^5.8.20" + "babel-plugin-transform-es2015-modules-amd": "^6.0.0", + "babel-template": "^6.0.0", + "babel-runtime": "^6.0.0" }, "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-object-super/package.json b/packages/babel-plugin-transform-es2015-object-super/package.json index 902d5e2605..15ec2fef5b 100644 --- a/packages/babel-plugin-transform-es2015-object-super/package.json +++ b/packages/babel-plugin-transform-es2015-object-super/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-object-super", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 object super to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-helper-replace-supers": "^5.0.0", - "babel-runtime": "^5.10.32" + "babel-helper-replace-supers": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-parameters/package.json b/packages/babel-plugin-transform-es2015-parameters/package.json index f7ad3d78ae..288c298ec5 100644 --- a/packages/babel-plugin-transform-es2015-parameters/package.json +++ b/packages/babel-plugin-transform-es2015-parameters/package.json @@ -1,17 +1,17 @@ { "name": "babel-plugin-transform-es2015-parameters", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 default and rest parameters to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^5.10.32", - "babel-helper-call-delegate": "^5.0.0", - "babel-helper-get-function-arity": "^5.0.0", - "babel-template": "^5.10.32", - "babel-types": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-traverse": "^6.0.0", + "babel-helper-call-delegate": "^6.0.0", + "babel-helper-get-function-arity": "^6.0.0", + "babel-template": "^6.0.0", + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-shorthand-properties/package.json b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json index f23264de66..f62a33d9db 100644 --- a/packages/babel-plugin-transform-es2015-shorthand-properties/package.json +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-shorthand-properties", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 shorthand properties to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-types": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-spread/package.json b/packages/babel-plugin-transform-es2015-spread/package.json index c95fcff052..42e3a72379 100644 --- a/packages/babel-plugin-transform-es2015-spread/package.json +++ b/packages/babel-plugin-transform-es2015-spread/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-spread", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 spread to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-sticky-regex/package.json b/packages/babel-plugin-transform-es2015-sticky-regex/package.json index e51839c98f..823fa43a33 100644 --- a/packages/babel-plugin-transform-es2015-sticky-regex/package.json +++ b/packages/babel-plugin-transform-es2015-sticky-regex/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-sticky-regex", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "repository": "babel/babel", "license": "MIT", @@ -10,7 +10,7 @@ ], "dependencies": { "babel-helper-regex": "^6.0.0", - "babel-types": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-template-literals/package.json b/packages/babel-plugin-transform-es2015-template-literals/package.json index aa5341fc8e..6a78dc5570 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/package.json +++ b/packages/babel-plugin-transform-es2015-template-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-template-literals", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 template literals to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-typeof-symbol/package.json b/packages/babel-plugin-transform-es2015-typeof-symbol/package.json index 7882b90036..a3222679da 100644 --- a/packages/babel-plugin-transform-es2015-typeof-symbol/package.json +++ b/packages/babel-plugin-transform-es2015-typeof-symbol/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-typeof-symbol", - "version": "1.0.0", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.8.20" + "babel-runtime": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-unicode-regex/package.json b/packages/babel-plugin-transform-es2015-unicode-regex/package.json index c06684d817..8d2afa965d 100644 --- a/packages/babel-plugin-transform-es2015-unicode-regex/package.json +++ b/packages/babel-plugin-transform-es2015-unicode-regex/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-unicode-regex", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES2015 unicode regex to ES5", "repository": "babel/babel", "license": "MIT", @@ -11,6 +11,6 @@ "dependencies": { "babel-helper-regex": "^6.0.0", "regexpu": "^1.1.2", - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es3-member-expression-literals/package.json b/packages/babel-plugin-transform-es3-member-expression-literals/package.json index 1db82b387e..d96ccd5909 100644 --- a/packages/babel-plugin-transform-es3-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-es3-member-expression-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es3-member-expression-literals", - "version": "5.10.32", + "version": "6.0.0", "description": "Ensure that reserved words are quoted in property accesses", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es3-property-literals/package.json b/packages/babel-plugin-transform-es3-property-literals/package.json index 81c754fc8d..f6ea1bd454 100644 --- a/packages/babel-plugin-transform-es3-property-literals/package.json +++ b/packages/babel-plugin-transform-es3-property-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es3-property-literals", - "version": "5.10.32", + "version": "6.0.0", "description": "Ensure that reserved words are quoted in object property keys", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es5-property-mutators/package.json b/packages/babel-plugin-transform-es5-property-mutators/package.json index e5c1ca3796..858f32f694 100644 --- a/packages/babel-plugin-transform-es5-property-mutators/package.json +++ b/packages/babel-plugin-transform-es5-property-mutators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es5-property-mutators", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile ES5 property mutator shorthand syntax to Object.defineProperty", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-helper-define-map": "^5.0.0", - "babel-runtime": "^5.10.32" + "babel-helper-define-map": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-eval/package.json b/packages/babel-plugin-transform-eval/package.json index ece165698a..8e73269d19 100644 --- a/packages/babel-plugin-transform-eval/package.json +++ b/packages/babel-plugin-transform-eval/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-eval", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile eval calls with string literals", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-exponentiation-operator/package.json b/packages/babel-plugin-transform-exponentiation-operator/package.json index 8b441a0a08..d36f8b1cd7 100644 --- a/packages/babel-plugin-transform-exponentiation-operator/package.json +++ b/packages/babel-plugin-transform-exponentiation-operator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-exponentiation-operator", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile exponentiation operator to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-exponentiation-operator": "^5.10.32", - "babel-helper-builder-binary-assignment-operator-visitor": "^5.0.0", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-exponentiation-operator": "^6.0.0", + "babel-helper-builder-binary-assignment-operator-visitor": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-export-extensions/package.json b/packages/babel-plugin-transform-export-extensions/package.json index 67520da0ab..22ea42cc0d 100644 --- a/packages/babel-plugin-transform-export-extensions/package.json +++ b/packages/babel-plugin-transform-export-extensions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-export-extensions", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile export extensions to ES2015", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-export-extensions": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-export-extensions": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-flow-strip-types/package.json b/packages/babel-plugin-transform-flow-strip-types/package.json index 88bad78808..ec9e17f233 100644 --- a/packages/babel-plugin-transform-flow-strip-types/package.json +++ b/packages/babel-plugin-transform-flow-strip-types/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-flow-strip-types", - "version": "5.10.32", + "version": "6.0.0", "description": "Strip flow type annotations from your output code.", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32", - "babel-plugin-syntax-flow": "^5.10.32" + "babel-runtime": "^6.0.0", + "babel-plugin-syntax-flow": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-function-bind/package.json b/packages/babel-plugin-transform-function-bind/package.json index cd1528999e..5eb49f5102 100644 --- a/packages/babel-plugin-transform-function-bind/package.json +++ b/packages/babel-plugin-transform-function-bind/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-function-bind", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile function bind operator to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-function-bind": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-function-bind": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-inline-environment-variables/package.json b/packages/babel-plugin-transform-inline-environment-variables/package.json index 3fa276d6ba..2f20894702 100644 --- a/packages/babel-plugin-transform-inline-environment-variables/package.json +++ b/packages/babel-plugin-transform-inline-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-inline-environment-variables", - "version": "5.10.32", + "version": "6.0.0", "description": "Inline environment variables", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-jscript/package.json b/packages/babel-plugin-transform-jscript/package.json index a140a08168..f30066558b 100644 --- a/packages/babel-plugin-transform-jscript/package.json +++ b/packages/babel-plugin-transform-jscript/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-jscript", - "version": "5.10.32", + "version": "6.0.0", "description": "Babel plugin to fix buggy JScript named function expressions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-member-expression-literals/package.json b/packages/babel-plugin-transform-member-expression-literals/package.json index 720ad40f65..b42589afa5 100644 --- a/packages/babel-plugin-transform-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-member-expression-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-member-expression-literals", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn valid member expression property literals into plain identifiers", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-merge-sibling-variables/package.json b/packages/babel-plugin-transform-merge-sibling-variables/package.json index b6c18688c4..0155f36bf6 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/package.json +++ b/packages/babel-plugin-transform-merge-sibling-variables/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-merge-sibling-variables", - "version": "5.10.32", + "version": "6.0.0", "description": "Merge sibling variables into one.", "repository": "babel-plugin-transform-merge-sibling-variables", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-minify-booleans/package.json b/packages/babel-plugin-transform-minify-booleans/package.json index fc931c6dd8..296cb35ea4 100644 --- a/packages/babel-plugin-transform-minify-booleans/package.json +++ b/packages/babel-plugin-transform-minify-booleans/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-minify-booleans", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn boolean literals into !0 for true and !1 for false.", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-node-env-inline/package.json b/packages/babel-plugin-transform-node-env-inline/package.json index 3a670694cd..d04a059095 100644 --- a/packages/babel-plugin-transform-node-env-inline/package.json +++ b/packages/babel-plugin-transform-node-env-inline/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-node-env-inline", - "version": "5.10.32", + "version": "6.0.0", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-assign/package.json b/packages/babel-plugin-transform-object-assign/package.json index bbecd9eb38..caa3c1cade 100644 --- a/packages/babel-plugin-transform-object-assign/package.json +++ b/packages/babel-plugin-transform-object-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-object-assign", - "version": "5.10.32", + "version": "6.0.0", "description": "Replace Object.assign with an inline helper", "author": "Jed Watson", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-rest-spread/package.json b/packages/babel-plugin-transform-object-rest-spread/package.json index f4ae11c3aa..22f5f08e7a 100644 --- a/packages/babel-plugin-transform-object-rest-spread/package.json +++ b/packages/babel-plugin-transform-object-rest-spread/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-object-rest-spread", - "version": "5.10.32", + "version": "6.0.0", "description": "Compile object rest and spread to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^5.10.32", - "babel-runtime": "^5.10.32" + "babel-plugin-syntax-object-rest-spread": "^6.0.0", + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json index dad6dd5d00..ba362410d9 100644 --- a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-object-set-prototype-of-to-assign", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn Object.setPrototypeOf to assignments", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-property-literals/package.json b/packages/babel-plugin-transform-property-literals/package.json index 0d1e690316..2fc46eebe3 100644 --- a/packages/babel-plugin-transform-property-literals/package.json +++ b/packages/babel-plugin-transform-property-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-property-literals", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn valid property key literals to plain identifiers", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-proto-to-assign/package.json b/packages/babel-plugin-transform-proto-to-assign/package.json index f475c2ab0e..ec365086c7 100644 --- a/packages/babel-plugin-transform-proto-to-assign/package.json +++ b/packages/babel-plugin-transform-proto-to-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-proto-to-assign", - "version": "5.10.32", + "version": "6.0.0", "description": "Babel plugin for turning __proto__ into a shallow property clone", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32", + "babel-runtime": "^6.0.0", "lodash": "^3.9.3" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-constant-elements/package.json b/packages/babel-plugin-transform-react-constant-elements/package.json index c6e563d94f..f976c59cb1 100644 --- a/packages/babel-plugin-transform-react-constant-elements/package.json +++ b/packages/babel-plugin-transform-react-constant-elements/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-constant-elements", - "version": "5.10.32", + "version": "6.0.0", "description": "Treat React JSX elements as value types and hoist them to the highest scope", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-display-name/package.json b/packages/babel-plugin-transform-react-display-name/package.json index 0b85bd748f..1f51c14875 100644 --- a/packages/babel-plugin-transform-react-display-name/package.json +++ b/packages/babel-plugin-transform-react-display-name/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-display-name", - "version": "5.10.32", + "version": "6.0.0", "description": "Add displayName to React.createClass calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-inline-elements/package.json b/packages/babel-plugin-transform-react-inline-elements/package.json index a00fce7ec0..28ea0159f5 100644 --- a/packages/babel-plugin-transform-react-inline-elements/package.json +++ b/packages/babel-plugin-transform-react-inline-elements/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-inline-elements", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn JSX elements into exploded React objects", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-jsx-compat/package.json b/packages/babel-plugin-transform-react-jsx-compat/package.json index 1b83d2f3ce..5aa55d9b02 100644 --- a/packages/babel-plugin-transform-react-jsx-compat/package.json +++ b/packages/babel-plugin-transform-react-jsx-compat/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-jsx-compat", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn JSX into React Pre-0.12 function calls", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32", - "babel-helper-builder-react-jsx": "^1.0.0" + "babel-runtime": "^6.0.0", + "babel-helper-builder-react-jsx": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-jsx/package.json b/packages/babel-plugin-transform-react-jsx/package.json index 67e809da2a..07a994603b 100644 --- a/packages/babel-plugin-transform-react-jsx/package.json +++ b/packages/babel-plugin-transform-react-jsx/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-jsx", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn JSX into React function calls", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32", - "babel-helper-builder-react-jsx": "^1.0.0", - "babel-plugin-syntax-jsx": "^5.10.32" + "babel-runtime": "^6.0.0", + "babel-helper-builder-react-jsx": "^6.0.0", + "babel-plugin-syntax-jsx": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index f5091bec5c..d0cc037e83 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -1,3 +1,4 @@ { - "name": "babel-plugin-transform-regenerator" -} + "name": "babel-plugin-transform-regenerator", + "version": "6.0.0" +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-remove-console/package.json b/packages/babel-plugin-transform-remove-console/package.json index 246338dc8b..88ddee2ecb 100644 --- a/packages/babel-plugin-transform-remove-console/package.json +++ b/packages/babel-plugin-transform-remove-console/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-remove-console", - "version": "5.10.32", + "version": "6.0.0", "description": "Remove console.* calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-remove-debugger/package.json b/packages/babel-plugin-transform-remove-debugger/package.json index bbb9c36021..e8ca3b599d 100644 --- a/packages/babel-plugin-transform-remove-debugger/package.json +++ b/packages/babel-plugin-transform-remove-debugger/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-remove-debugger", - "version": "5.10.32", + "version": "6.0.0", "description": "Remove debugger statements", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 136ef26eb3..49ddc85063 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-runtime", - "version": "5.10.32", + "version": "6.0.0", "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-simplify-comparison-operators/package.json b/packages/babel-plugin-transform-simplify-comparison-operators/package.json index 8045c44cd3..33dd9d6f4f 100644 --- a/packages/babel-plugin-transform-simplify-comparison-operators/package.json +++ b/packages/babel-plugin-transform-simplify-comparison-operators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-simplify-comparison-operators", - "version": "5.10.32", + "version": "6.0.0", "description": "Convert === and !== to == and != if their types are inferred to be the same.", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-strict-mode/package.json b/packages/babel-plugin-transform-strict-mode/package.json index 8fdd3022d6..a56ab16b65 100644 --- a/packages/babel-plugin-transform-strict-mode/package.json +++ b/packages/babel-plugin-transform-strict-mode/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-strict-mode", - "version": "1.0.0", + "version": "6.0.0", "description": "TODO", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.0.0", + "babel-runtime": "^6.0.0", "babel-types": "^6.0.0" } -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-undefined-to-void/package.json b/packages/babel-plugin-transform-undefined-to-void/package.json index 9b4079864e..47c29a7179 100644 --- a/packages/babel-plugin-transform-undefined-to-void/package.json +++ b/packages/babel-plugin-transform-undefined-to-void/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-undefined-to-void", - "version": "5.10.32", + "version": "6.0.0", "description": "Replace references to `undefined` with `void 0`", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-plugin-undeclared-variables-check/package.json b/packages/babel-plugin-undeclared-variables-check/package.json index c631bac703..b786b15566 100644 --- a/packages/babel-plugin-undeclared-variables-check/package.json +++ b/packages/babel-plugin-undeclared-variables-check/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-undeclared-variables-check", - "version": "6.0.6", + "version": "6.0.0", "description": "Throw a compile-time error on references to undeclared variables", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.6", + "babel-runtime": "^6.0.0", "leven": "^1.0.2" } -} +} \ No newline at end of file diff --git a/packages/babel-polyfill/package.json b/packages/babel-polyfill/package.json index 75cee24fc1..9276d8bc94 100644 --- a/packages/babel-polyfill/package.json +++ b/packages/babel-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "babel-polyfill", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -10,6 +10,6 @@ "dependencies": { "core-js": "^1.0.1", "regenerator": "^0.8.36", - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index de055a6b81..515c1776ec 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,24 +8,24 @@ "repository": "babel/babel", "main": "index.js", "dependencies": { - "babel-plugin-transform-es2015-template-literals": "^5.10.32", - "babel-plugin-transform-es2015-literals": "^5.10.32", - "babel-plugin-transform-es2015-function-name": "^5.10.32", - "babel-plugin-transform-es2015-arrow-functions": "^5.10.32", - "babel-plugin-transform-es2015-block-scoped-functions": "^5.10.32", - "babel-plugin-transform-es2015-classes": "^5.10.32", - "babel-plugin-transform-es2015-object-super": "^5.10.32", - "babel-plugin-transform-es2015-shorthand-properties": "^5.10.32", - "babel-plugin-transform-es2015-computed-properties": "^5.10.32", - "babel-plugin-transform-es2015-for-of": "^5.10.32", - "babel-plugin-transform-es2015-sticky-regex": "^5.10.32", - "babel-plugin-transform-es2015-unicode-regex": "^5.10.32", - "babel-plugin-transform-es2015-constants": "^5.10.32", - "babel-plugin-transform-es2015-spread": "^5.10.32", - "babel-plugin-transform-es2015-parameters": "^5.10.32", - "babel-plugin-transform-es2015-destructuring": "^5.10.32", - "babel-plugin-transform-es2015-block-scoping": "^5.10.32", - "babel-plugin-transform-es2015-typeof-symbol": "^5.0.0", - "babel-plugin-transform-regenerator": "^5.0.0" + "babel-plugin-transform-es2015-template-literals": "^6.0.0", + "babel-plugin-transform-es2015-literals": "^6.0.0", + "babel-plugin-transform-es2015-function-name": "^6.0.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.0.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.0.0", + "babel-plugin-transform-es2015-classes": "^6.0.0", + "babel-plugin-transform-es2015-object-super": "^6.0.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.0.0", + "babel-plugin-transform-es2015-computed-properties": "^6.0.0", + "babel-plugin-transform-es2015-for-of": "^6.0.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.0.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.0.0", + "babel-plugin-transform-es2015-constants": "^6.0.0", + "babel-plugin-transform-es2015-spread": "^6.0.0", + "babel-plugin-transform-es2015-parameters": "^6.0.0", + "babel-plugin-transform-es2015-destructuring": "^6.0.0", + "babel-plugin-transform-es2015-block-scoping": "^6.0.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.0.0", + "babel-plugin-transform-regenerator": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json index c798996ca9..6b6351f73c 100644 --- a/packages/babel-preset-react/package.json +++ b/packages/babel-preset-react/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,9 @@ "repository": "babel/babel", "main": "index.js", "dependencies": { - "babel-plugin-syntax-flow": "^5.10.32", - "babel-plugin-syntax-jsx": "^5.10.32", - "babel-plugin-transform-react-jsx": "^5.10.32", - "babel-plugin-transform-flow-strip-types": "^5.10.32" + "babel-plugin-syntax-flow": "^6.0.0", + "babel-plugin-syntax-jsx": "^6.0.0", + "babel-plugin-transform-react-jsx": "^6.0.0", + "babel-plugin-transform-flow-strip-types": "^6.0.0" } } \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 536a79b34c..219781107b 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-runtime", - "version": "5.10.32", + "version": "6.0.0", "description": "babel selfContained runtime", "license": "MIT", "repository": "babel/babel", @@ -9,9 +9,9 @@ "core-js": "^1.0.0" }, "devDependencies": { - "babel-helpers": "^1.0.7", + "babel-helpers": "^6.0.0", "babel-plugin-runtime": "^1.0.7", - "babel-template": "^5.10.32", + "babel-template": "^6.0.0", "regenerator": "^0.8.34" } } \ No newline at end of file diff --git a/packages/babel-template/package.json b/packages/babel-template/package.json index 28dc25b1ab..d418921c8b 100644 --- a/packages/babel-template/package.json +++ b/packages/babel-template/package.json @@ -1,6 +1,6 @@ { "name": "babel-template", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,10 +8,10 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babylon": "^5.10.32", - "babel-traverse": "^5.10.32", - "babel-types": "^5.10.32", - "babel-runtime": "^5.10.32", + "babylon": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-types": "^6.0.0", + "babel-runtime": "^6.0.0", "lodash": "^3.10.1" } } \ No newline at end of file diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json index 5aad190ad1..80d5501c56 100644 --- a/packages/babel-traverse/package.json +++ b/packages/babel-traverse/package.json @@ -1,6 +1,6 @@ { "name": "babel-traverse", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,11 +8,11 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-code-frame": "^5.10.32", - "babel-messages": "^5.10.32", - "babel-runtime": "^5.10.32", - "babel-types": "^5.10.32", - "babylon": "^5.10.32", + "babel-code-frame": "^6.0.0", + "babel-messages": "^6.0.0", + "babel-runtime": "^6.0.0", + "babel-types": "^6.0.0", + "babylon": "^6.0.0", "globals": "^8.3.0", "invariant": "^2.1.0", "lodash": "^3.10.1", diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json index c15fd1f79d..f0a2264c80 100644 --- a/packages/babel-types/package.json +++ b/packages/babel-types/package.json @@ -1,6 +1,6 @@ { "name": "babel-types", - "version": "5.10.32", + "version": "6.0.0", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,8 +8,8 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.10.32", - "babel-traverse": "^5.10.32", + "babel-runtime": "^6.0.0", + "babel-traverse": "^6.0.0", "esutils": "^2.0.2", "lodash": "^3.10.1", "to-fast-properties": "^1.0.1" diff --git a/packages/babel/package.json b/packages/babel/package.json index 6363259eb9..813eceaf3e 100644 --- a/packages/babel/package.json +++ b/packages/babel/package.json @@ -1,6 +1,6 @@ { "name": "babel", - "version": "5.10.32", + "version": "6.0.0", "description": "Turn ES6 code into readable vanilla ES5 with source maps", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", diff --git a/packages/babylon/package.json b/packages/babylon/package.json index fa99ac5b90..4116c272f2 100644 --- a/packages/babylon/package.json +++ b/packages/babylon/package.json @@ -1,6 +1,6 @@ { "name": "babylon", - "version": "5.10.32", + "version": "6.0.0", "description": "A JavaScript parser", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,7 +8,7 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^5.10.32" + "babel-runtime": "^6.0.0" }, "bin": { "babylon": "./bin/babylon.js" From 7ff965a6f8484ee8d394b17ade7533cc72ca0303 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:04:29 +0000 Subject: [PATCH 155/174] v6.0.1 --- VERSION | 2 +- packages/babel-core/package.json | 2 +- packages/babel-plugin-external-helpers-2/package.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/VERSION b/VERSION index f4965a313a..6d54bbd775 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.0 \ No newline at end of file +6.0.1 \ No newline at end of file diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index cf47dcd21b..69ac17c71e 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,6 +1,6 @@ { "name": "babel-core", - "version": "6.0.0", + "version": "6.0.1", "description": "A compiler for writing next generation JavaScript", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", diff --git a/packages/babel-plugin-external-helpers-2/package.json b/packages/babel-plugin-external-helpers-2/package.json index ce16d190e9..520cc21bc1 100644 --- a/packages/babel-plugin-external-helpers-2/package.json +++ b/packages/babel-plugin-external-helpers-2/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-external-helpers-2", - "version": "6.0.0", + "version": "6.0.1", "description": "", "repository": "babel/babel", "license": "MIT", @@ -11,4 +11,4 @@ "dependencies": { "babel-runtime": "^6.0.0" } -} +} \ No newline at end of file From a8cf46d8f4ad242ec4c1183eaa0251876791662a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:06:55 +0000 Subject: [PATCH 156/174] v6.0.2 --- VERSION | 2 +- packages/babel-cli/package.json | 8 ++-- packages/babel-code-frame/package.json | 4 +- packages/babel-core/package.json | 22 +++++----- packages/babel-generator/package.json | 10 ++--- .../package.json | 8 ++-- .../package.json | 8 ++-- .../package.json | 8 ++-- .../package.json | 6 +-- .../babel-helper-call-delegate/package.json | 10 ++--- packages/babel-helper-define-map/package.json | 8 ++-- .../package.json | 8 ++-- .../babel-helper-explode-class/package.json | 10 ++--- packages/babel-helper-fixtures/package.json | 4 +- .../babel-helper-function-name/package.json | 12 +++--- .../package.json | 6 +-- .../babel-helper-hoist-variables/package.json | 6 +-- .../package.json | 6 +-- packages/babel-helper-regex/package.json | 6 +-- .../package.json | 10 ++--- .../babel-helper-replace-supers/package.json | 14 +++---- packages/babel-helpers/package.json | 6 +-- packages/babel-messages/package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../babel-plugin-syntax-flow/package.json | 4 +- .../package.json | 4 +- packages/babel-plugin-syntax-jsx/package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 8 ++-- .../package.json | 10 ++--- .../package.json | 8 ++-- .../package.json | 6 +-- .../package.json | 14 +++---- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 10 ++--- .../package.json | 18 ++++----- .../package.json | 8 ++-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 8 ++-- .../package.json | 4 +- .../package.json | 8 ++-- .../package.json | 8 ++-- .../package.json | 8 ++-- .../package.json | 8 ++-- .../package.json | 6 +-- .../package.json | 14 +++---- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 8 ++-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../babel-plugin-transform-eval/package.json | 4 +- .../package.json | 8 ++-- .../package.json | 6 +-- .../package.json | 6 +-- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 8 ++-- .../package.json | 2 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 4 +- .../package.json | 6 +-- .../package.json | 4 +- .../package.json | 4 +- packages/babel-polyfill/package.json | 4 +- packages/babel-preset-es2015/package.json | 40 +++++++++---------- packages/babel-preset-react/package.json | 10 ++--- packages/babel-runtime/package.json | 6 +-- packages/babel-template/package.json | 10 ++--- packages/babel-traverse/package.json | 12 +++--- packages/babel-types/package.json | 6 +-- packages/babel/package.json | 2 +- packages/babylon/package.json | 4 +- 107 files changed, 347 insertions(+), 347 deletions(-) diff --git a/VERSION b/VERSION index 6d54bbd775..7a9f89d81a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.1 \ No newline at end of file +6.0.2 \ No newline at end of file diff --git a/packages/babel-cli/package.json b/packages/babel-cli/package.json index 8099003c8f..4ac93ca177 100644 --- a/packages/babel-cli/package.json +++ b/packages/babel-cli/package.json @@ -1,6 +1,6 @@ { "name": "babel-cli", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn ES6 code into readable vanilla ES5 with source maps", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,8 +8,8 @@ "repository": "babel/babel", "preferGlobal": true, "dependencies": { - "babel-core": "^6.0.0", - "babel-polyfill": "^6.0.0", + "babel-core": "^6.0.2", + "babel-polyfill": "^6.0.2", "chokidar": "^1.0.0", "commander": "^2.8.1", "convert-source-map": "^1.1.0", @@ -22,7 +22,7 @@ "slash": "^1.0.0", "source-map": "^0.5.0", "v8flags": "^2.0.10", - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" }, "bin": { "babel": "./bin/babel.js", diff --git a/packages/babel-code-frame/package.json b/packages/babel-code-frame/package.json index b4ecb8a5f0..dc53d2044d 100644 --- a/packages/babel-code-frame/package.json +++ b/packages/babel-code-frame/package.json @@ -1,6 +1,6 @@ { "name": "babel-code-frame", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,7 +8,7 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", + "babel-runtime": "^6.0.2", "chalk": "^1.1.0", "esutils": "^2.0.2", "js-tokens": "^1.0.1", diff --git a/packages/babel-core/package.json b/packages/babel-core/package.json index 69ac17c71e..b0fd264dc5 100644 --- a/packages/babel-core/package.json +++ b/packages/babel-core/package.json @@ -1,6 +1,6 @@ { "name": "babel-core", - "version": "6.0.1", + "version": "6.0.2", "description": "A compiler for writing next generation JavaScript", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -28,15 +28,15 @@ "test": "make test" }, "dependencies": { - "babel-code-frame": "^6.0.0", - "babel-generator": "^6.0.0", - "babel-helpers": "^6.0.0", - "babel-messages": "^6.0.0", - "babel-template": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-types": "^6.0.0", - "babylon": "^6.0.0", + "babel-code-frame": "^6.0.2", + "babel-generator": "^6.0.2", + "babel-helpers": "^6.0.2", + "babel-messages": "^6.0.2", + "babel-template": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-types": "^6.0.2", + "babylon": "^6.0.2", "convert-source-map": "^1.1.0", "debug": "^2.1.1", "esutils": "^2.0.0", @@ -54,6 +54,6 @@ "source-map-support": "^0.2.10" }, "devDependencies": { - "babel-polyfill": "^6.0.0" + "babel-polyfill": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-generator/package.json b/packages/babel-generator/package.json index bf6b8d2b34..9a2ca06a2a 100644 --- a/packages/babel-generator/package.json +++ b/packages/babel-generator/package.json @@ -1,6 +1,6 @@ { "name": "babel-generator", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,9 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-messages": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0", + "babel-messages": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2", "detect-indent": "^3.0.1", "is-integer": "^1.0.4", "lodash": "^3.10.1", @@ -19,6 +19,6 @@ "trim-right": "^1.0.1" }, "devDependencies": { - "babel-helper-fixtures": "^6.0.0" + "babel-helper-fixtures": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-bindify-decorators/package.json b/packages/babel-helper-bindify-decorators/package.json index c8a4b92b22..4b0c17397c 100644 --- a/packages/babel-helper-bindify-decorators/package.json +++ b/packages/babel-helper-bindify-decorators/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-bindify-decorators", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-types": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json index d53cc45d76..4444dbb4df 100644 --- a/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json +++ b/packages/babel-helper-builder-binary-assignment-operator-visitor/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-builder-binary-assignment-operator-visitor", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-explode-assignable-expression": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-helper-explode-assignable-expression": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json b/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json index 9fbbe0af25..d6bbf94443 100644 --- a/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json +++ b/packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-builder-conditional-assignment-operator-visitor", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-explode-assignable-expression": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-helper-explode-assignable-expression": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-builder-react-jsx/package.json b/packages/babel-helper-builder-react-jsx/package.json index 7c9533d5b4..0536a80c30 100644 --- a/packages/babel-helper-builder-react-jsx/package.json +++ b/packages/babel-helper-builder-react-jsx/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-builder-react-jsx", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2", "esutils": "^2.0.0", "lodash": "^3.10.0" } diff --git a/packages/babel-helper-call-delegate/package.json b/packages/babel-helper-call-delegate/package.json index a237bdadd3..9e7c392345 100644 --- a/packages/babel-helper-call-delegate/package.json +++ b/packages/babel-helper-call-delegate/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-call-delegate", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0", - "babel-helper-hoist-variables": "^6.0.0" + "babel-traverse": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2", + "babel-helper-hoist-variables": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-define-map/package.json b/packages/babel-helper-define-map/package.json index 6f26b3dc9d..1d77729c7f 100644 --- a/packages/babel-helper-define-map/package.json +++ b/packages/babel-helper-define-map/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-define-map", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", + "babel-runtime": "^6.0.2", "lodash": "^3.10.0", - "babel-types": "^6.0.0", - "babel-helper-function-name": "^6.0.0" + "babel-types": "^6.0.2", + "babel-helper-function-name": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-explode-assignable-expression/package.json b/packages/babel-helper-explode-assignable-expression/package.json index b868b12690..fd966fc3a4 100644 --- a/packages/babel-helper-explode-assignable-expression/package.json +++ b/packages/babel-helper-explode-assignable-expression/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-explode-assignable-expression", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-traverse": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-explode-class/package.json b/packages/babel-helper-explode-class/package.json index ef6c8c4322..b6a1c87f5f 100644 --- a/packages/babel-helper-explode-class/package.json +++ b/packages/babel-helper-explode-class/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-explode-class", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-types": "^6.0.0", - "babel-helper-bindify-decorators": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-types": "^6.0.2", + "babel-helper-bindify-decorators": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-fixtures/package.json b/packages/babel-helper-fixtures/package.json index 0c4d43baeb..d38a7ca8b6 100644 --- a/packages/babel-helper-fixtures/package.json +++ b/packages/babel-helper-fixtures/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-fixtures", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "license": "MIT", "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", + "babel-runtime": "^6.0.2", "lodash": "^3.10.0", "path-exists": "^1.0.0", "trim-right": "^1.0.1", diff --git a/packages/babel-helper-function-name/package.json b/packages/babel-helper-function-name/package.json index 48bc81b8f6..5c9ded6f8d 100644 --- a/packages/babel-helper-function-name/package.json +++ b/packages/babel-helper-function-name/package.json @@ -1,15 +1,15 @@ { "name": "babel-helper-function-name", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-helper-get-function-arity": "^6.0.0", - "babel-template": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-helper-get-function-arity": "^6.0.2", + "babel-template": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-get-function-arity/package.json b/packages/babel-helper-get-function-arity/package.json index 6881e94970..1eda22082d 100644 --- a/packages/babel-helper-get-function-arity/package.json +++ b/packages/babel-helper-get-function-arity/package.json @@ -1,12 +1,12 @@ { "name": "babel-helper-get-function-arity", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-hoist-variables/package.json b/packages/babel-helper-hoist-variables/package.json index 67e9acba1b..d71507ec05 100644 --- a/packages/babel-helper-hoist-variables/package.json +++ b/packages/babel-helper-hoist-variables/package.json @@ -1,12 +1,12 @@ { "name": "babel-helper-hoist-variables", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-optimise-call-expression/package.json b/packages/babel-helper-optimise-call-expression/package.json index aa4033743c..fcdd0d38fe 100644 --- a/packages/babel-helper-optimise-call-expression/package.json +++ b/packages/babel-helper-optimise-call-expression/package.json @@ -1,12 +1,12 @@ { "name": "babel-helper-optimise-call-expression", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-regex/package.json b/packages/babel-helper-regex/package.json index 258ce58a5c..2eb72c8fa4 100644 --- a/packages/babel-helper-regex/package.json +++ b/packages/babel-helper-regex/package.json @@ -1,13 +1,13 @@ { "name": "babel-helper-regex", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", + "babel-runtime": "^6.0.2", "lodash": "^3.10.0", - "babel-types": "^6.0.0" + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-remap-async-to-generator/package.json b/packages/babel-helper-remap-async-to-generator/package.json index 70b9336db1..ecc839eb7e 100644 --- a/packages/babel-helper-remap-async-to-generator/package.json +++ b/packages/babel-helper-remap-async-to-generator/package.json @@ -1,14 +1,14 @@ { "name": "babel-helper-remap-async-to-generator", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-helper-function-name": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-helper-function-name": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helper-replace-supers/package.json b/packages/babel-helper-replace-supers/package.json index 8ce5e5b450..3d5ab823fc 100644 --- a/packages/babel-helper-replace-supers/package.json +++ b/packages/babel-helper-replace-supers/package.json @@ -1,16 +1,16 @@ { "name": "babel-helper-replace-supers", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-optimise-call-expression": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-messages": "^6.0.0", - "babel-template": "^6.0.0", - "babel-types": "^6.0.0" + "babel-helper-optimise-call-expression": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-messages": "^6.0.2", + "babel-template": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-helpers/package.json b/packages/babel-helpers/package.json index a3092702cf..d114769ea8 100644 --- a/packages/babel-helpers/package.json +++ b/packages/babel-helpers/package.json @@ -1,6 +1,6 @@ { "name": "babel-helpers", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,7 +8,7 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-template": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-template": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-messages/package.json b/packages/babel-messages/package.json index 0bce38483a..5598cd73c1 100644 --- a/packages/babel-messages/package.json +++ b/packages/babel-messages/package.json @@ -1,6 +1,6 @@ { "name": "babel-messages", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,6 +8,6 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-external-helpers-2/package.json b/packages/babel-plugin-external-helpers-2/package.json index 520cc21bc1..78f1bc2415 100644 --- a/packages/babel-plugin-external-helpers-2/package.json +++ b/packages/babel-plugin-external-helpers-2/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-external-helpers-2", - "version": "6.0.1", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-async-functions/package.json b/packages/babel-plugin-syntax-async-functions/package.json index 727e1eacb3..58187d0d86 100644 --- a/packages/babel-plugin-syntax-async-functions/package.json +++ b/packages/babel-plugin-syntax-async-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-async-functions", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of async functions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-async-generators/package.json b/packages/babel-plugin-syntax-async-generators/package.json index a895ce7e8b..6b2ed26a33 100644 --- a/packages/babel-plugin-syntax-async-generators/package.json +++ b/packages/babel-plugin-syntax-async-generators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-async-generators", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of async generator functions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-class-constructor-call/package.json b/packages/babel-plugin-syntax-class-constructor-call/package.json index 2375d11eb0..8f65d01f54 100644 --- a/packages/babel-plugin-syntax-class-constructor-call/package.json +++ b/packages/babel-plugin-syntax-class-constructor-call/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-class-constructor-call", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of class constructor calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-class-properties/package.json b/packages/babel-plugin-syntax-class-properties/package.json index f3cd33112f..78be735523 100644 --- a/packages/babel-plugin-syntax-class-properties/package.json +++ b/packages/babel-plugin-syntax-class-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-class-properties", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of class properties", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-decorators/package.json b/packages/babel-plugin-syntax-decorators/package.json index ceb7c2d08f..281f5b8811 100644 --- a/packages/babel-plugin-syntax-decorators/package.json +++ b/packages/babel-plugin-syntax-decorators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-decorators", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of decorators", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-do-expressions/package.json b/packages/babel-plugin-syntax-do-expressions/package.json index 65e0dc5ccc..d01789acfd 100644 --- a/packages/babel-plugin-syntax-do-expressions/package.json +++ b/packages/babel-plugin-syntax-do-expressions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-do-expressions", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of do expressions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-exponentiation-operator/package.json b/packages/babel-plugin-syntax-exponentiation-operator/package.json index b3eb984826..0827976510 100644 --- a/packages/babel-plugin-syntax-exponentiation-operator/package.json +++ b/packages/babel-plugin-syntax-exponentiation-operator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-exponentiation-operator", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of the exponentiation operator", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-export-extensions/package.json b/packages/babel-plugin-syntax-export-extensions/package.json index edbfe6a756..9941a11cd2 100644 --- a/packages/babel-plugin-syntax-export-extensions/package.json +++ b/packages/babel-plugin-syntax-export-extensions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-export-extensions", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of export extensions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-flow/package.json b/packages/babel-plugin-syntax-flow/package.json index ad231f1e2a..360cbe6361 100644 --- a/packages/babel-plugin-syntax-flow/package.json +++ b/packages/babel-plugin-syntax-flow/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-flow", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-function-bind/package.json b/packages/babel-plugin-syntax-function-bind/package.json index 9e47c752d9..94d1e310a1 100644 --- a/packages/babel-plugin-syntax-function-bind/package.json +++ b/packages/babel-plugin-syntax-function-bind/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-function-bind", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of function bind", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-jsx/package.json b/packages/babel-plugin-syntax-jsx/package.json index e2f241136e..ecda7fb95c 100644 --- a/packages/babel-plugin-syntax-jsx/package.json +++ b/packages/babel-plugin-syntax-jsx/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-jsx", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-object-rest-spread/package.json b/packages/babel-plugin-syntax-object-rest-spread/package.json index 3d2e596483..5f0bd9f61d 100644 --- a/packages/babel-plugin-syntax-object-rest-spread/package.json +++ b/packages/babel-plugin-syntax-object-rest-spread/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-object-rest-spread", - "version": "6.0.0", + "version": "6.0.2", "description": "Allow parsing of object rest/spread", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-syntax-trailing-function-commas/package.json b/packages/babel-plugin-syntax-trailing-function-commas/package.json index 4deffff3ca..e4b3ba7079 100644 --- a/packages/babel-plugin-syntax-trailing-function-commas/package.json +++ b/packages/babel-plugin-syntax-trailing-function-commas/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-syntax-trailing-function-commas", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile trailing function commas to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-functions/package.json b/packages/babel-plugin-transform-async-functions/package.json index 74c3b8faed..5d7ef25d55 100644 --- a/packages/babel-plugin-transform-async-functions/package.json +++ b/packages/babel-plugin-transform-async-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-functions", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile async functions to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-async-functions": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-async-functions": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-to-generator/package.json b/packages/babel-plugin-transform-async-to-generator/package.json index 6a337add36..ccd5b69aa3 100644 --- a/packages/babel-plugin-transform-async-to-generator/package.json +++ b/packages/babel-plugin-transform-async-to-generator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-to-generator", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn async functions into ES2015 generators", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-remap-async-to-generator": "^6.0.0", - "babel-plugin-syntax-async-functions": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-remap-async-to-generator": "^6.0.2", + "babel-plugin-syntax-async-functions": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-async-to-module-method/package.json b/packages/babel-plugin-transform-async-to-module-method/package.json index 11f240754c..3f7ef9428a 100644 --- a/packages/babel-plugin-transform-async-to-module-method/package.json +++ b/packages/babel-plugin-transform-async-to-module-method/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-async-to-module-method", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn async functions into a module method", "repository": "babel/babel", "license": "MIT", @@ -9,9 +9,9 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-async-functions": "^6.0.0", - "babel-helper-remap-async-to-generator": "^6.0.0", - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-async-functions": "^6.0.2", + "babel-helper-remap-async-to-generator": "^6.0.2", + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-class-constructor-call/package.json b/packages/babel-plugin-transform-class-constructor-call/package.json index 9cf7cd5de3..3be013cfb3 100644 --- a/packages/babel-plugin-transform-class-constructor-call/package.json +++ b/packages/babel-plugin-transform-class-constructor-call/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-class-construtor-call", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-template": "^6.0.0", - "babel-plugin-syntax-class-constructor-call": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-template": "^6.0.2", + "babel-plugin-syntax-class-constructor-call": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-class-properties/package.json b/packages/babel-plugin-transform-class-properties/package.json index 5328c78f92..40909c1b0f 100644 --- a/packages/babel-plugin-transform-class-properties/package.json +++ b/packages/babel-plugin-transform-class-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-class-properties", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-class-properties": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-class-properties": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-decorators/package.json b/packages/babel-plugin-transform-decorators/package.json index cc3f59eaf5..2ffed6123c 100644 --- a/packages/babel-plugin-transform-decorators/package.json +++ b/packages/babel-plugin-transform-decorators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-decorators", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile class and object decorators to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,11 +9,11 @@ "babel-plugin" ], "dependencies": { - "babel-types": "^6.0.0", - "babel-helper-define-map": "^6.0.0", - "babel-plugin-syntax-decorators": "^6.0.0", - "babel-helper-explode-class": "^6.0.0", - "babel-template": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-types": "^6.0.2", + "babel-helper-define-map": "^6.0.2", + "babel-plugin-syntax-decorators": "^6.0.2", + "babel-helper-explode-class": "^6.0.2", + "babel-template": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-do-expressions/package.json b/packages/babel-plugin-transform-do-expressions/package.json index 33bfafbe1b..2bc7bc44d9 100644 --- a/packages/babel-plugin-transform-do-expressions/package.json +++ b/packages/babel-plugin-transform-do-expressions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-do-expressions", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile do expressions to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-do-expressions": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-do-expressions": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-arrow-functions/package.json b/packages/babel-plugin-transform-es2015-arrow-functions/package.json index c4d9428991..af7dc8da79 100644 --- a/packages/babel-plugin-transform-es2015-arrow-functions/package.json +++ b/packages/babel-plugin-transform-es2015-arrow-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-arrow-functions", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 arrow functions to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json index a66cea48b5..0a53622a64 100644 --- a/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoped-functions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-block-scoped-functions", - "version": "6.0.0", + "version": "6.0.2", "description": "Babel plugin to ensure function declarations at the block level are block scoped", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoping/package.json b/packages/babel-plugin-transform-es2015-block-scoping/package.json index 8ca2dc0d78..cb65100065 100644 --- a/packages/babel-plugin-transform-es2015-block-scoping/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoping/package.json @@ -1,16 +1,16 @@ { "name": "babel-plugin-transform-es2015-block-scoping", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^6.0.0", - "babel-types": "^6.0.0", - "babel-template": "^6.0.0", + "babel-traverse": "^6.0.2", + "babel-types": "^6.0.2", + "babel-template": "^6.0.2", "lodash": "^3.10.0", - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index fa5a15002f..f1332d7920 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,19 +1,19 @@ { "name": "babel-plugin-transform-es2015-classes", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-helper-optimise-call-expression": "^6.0.0", - "babel-helper-function-name": "^6.0.0", - "babel-helper-replace-supers": "^6.0.0", - "babel-template": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-helper-define-map": "^6.0.0", - "babel-messages": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-optimise-call-expression": "^6.0.2", + "babel-helper-function-name": "^6.0.2", + "babel-helper-replace-supers": "^6.0.2", + "babel-template": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-helper-define-map": "^6.0.2", + "babel-messages": "^6.0.2", + "babel-runtime": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-computed-properties/package.json b/packages/babel-plugin-transform-es2015-computed-properties/package.json index 63f37d44f1..7a89310887 100644 --- a/packages/babel-plugin-transform-es2015-computed-properties/package.json +++ b/packages/babel-plugin-transform-es2015-computed-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-computed-properties", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 computed properties to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-define-map": "^6.0.0", - "babel-template": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-define-map": "^6.0.2", + "babel-template": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-constants/package.json b/packages/babel-plugin-transform-es2015-constants/package.json index d1aac815ba..e809dec17b 100644 --- a/packages/babel-plugin-transform-es2015-constants/package.json +++ b/packages/babel-plugin-transform-es2015-constants/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-constants", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 constants to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-destructuring/package.json b/packages/babel-plugin-transform-es2015-destructuring/package.json index 4706a798f4..06b9d70a96 100644 --- a/packages/babel-plugin-transform-es2015-destructuring/package.json +++ b/packages/babel-plugin-transform-es2015-destructuring/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-destructuring", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 destructuring to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-for-of/package.json b/packages/babel-plugin-transform-es2015-for-of/package.json index ced85a4994..ae3e80b7b1 100644 --- a/packages/babel-plugin-transform-es2015-for-of/package.json +++ b/packages/babel-plugin-transform-es2015-for-of/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-for-of", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 for...of to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-function-name/package.json b/packages/babel-plugin-transform-es2015-function-name/package.json index e207ae3d78..3789926ad4 100644 --- a/packages/babel-plugin-transform-es2015-function-name/package.json +++ b/packages/babel-plugin-transform-es2015-function-name/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-function-name", - "version": "6.0.0", + "version": "6.0.2", "description": "Apply ES2015 function.name semantics to all functions", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-function-name": "^6.0.0", - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-function-name": "^6.0.2", + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-literals/package.json b/packages/babel-plugin-transform-es2015-literals/package.json index 58c07d9a66..4a82edd27e 100644 --- a/packages/babel-plugin-transform-es2015-literals/package.json +++ b/packages/babel-plugin-transform-es2015-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-literals", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 unicode string and number literals to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-modules-amd/package.json b/packages/babel-plugin-transform-es2015-modules-amd/package.json index 9eec5573eb..8fe1ad58c0 100644 --- a/packages/babel-plugin-transform-es2015-modules-amd/package.json +++ b/packages/babel-plugin-transform-es2015-modules-amd/package.json @@ -1,14 +1,14 @@ { "name": "babel-plugin-transform-es2015-modules-amd", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.0.0", - "babel-template": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.0.2", + "babel-template": "^6.0.2", + "babel-runtime": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-modules-commonjs/package.json b/packages/babel-plugin-transform-es2015-modules-commonjs/package.json index 4511eab1cc..f72c448c35 100644 --- a/packages/babel-plugin-transform-es2015-modules-commonjs/package.json +++ b/packages/babel-plugin-transform-es2015-modules-commonjs/package.json @@ -1,14 +1,14 @@ { "name": "babel-plugin-transform-es2015-modules-commonjs", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-template": "^6.0.0" + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-template": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-modules-systemjs/package.json b/packages/babel-plugin-transform-es2015-modules-systemjs/package.json index 3721d565ed..642bfbb4d6 100644 --- a/packages/babel-plugin-transform-es2015-modules-systemjs/package.json +++ b/packages/babel-plugin-transform-es2015-modules-systemjs/package.json @@ -1,14 +1,14 @@ { "name": "babel-plugin-transform-es2015-modules-systemjs", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-template": "^6.0.0", - "babel-helper-hoist-variables": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-template": "^6.0.2", + "babel-helper-hoist-variables": "^6.0.2", + "babel-runtime": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-modules-umd/package.json b/packages/babel-plugin-transform-es2015-modules-umd/package.json index fb95d03783..9906b6e1e7 100644 --- a/packages/babel-plugin-transform-es2015-modules-umd/package.json +++ b/packages/babel-plugin-transform-es2015-modules-umd/package.json @@ -1,14 +1,14 @@ { "name": "babel-plugin-transform-es2015-modules-umd", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-plugin-transform-es2015-modules-amd": "^6.0.0", - "babel-template": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-transform-es2015-modules-amd": "^6.0.2", + "babel-template": "^6.0.2", + "babel-runtime": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-object-super/package.json b/packages/babel-plugin-transform-es2015-object-super/package.json index 15ec2fef5b..a522f5b761 100644 --- a/packages/babel-plugin-transform-es2015-object-super/package.json +++ b/packages/babel-plugin-transform-es2015-object-super/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-object-super", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 object super to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-helper-replace-supers": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-replace-supers": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-parameters/package.json b/packages/babel-plugin-transform-es2015-parameters/package.json index 288c298ec5..c1bac177b5 100644 --- a/packages/babel-plugin-transform-es2015-parameters/package.json +++ b/packages/babel-plugin-transform-es2015-parameters/package.json @@ -1,17 +1,17 @@ { "name": "babel-plugin-transform-es2015-parameters", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 default and rest parameters to ES5", "repository": "babel/babel", "license": "MIT", "main": "lib/index.js", "dependencies": { - "babel-traverse": "^6.0.0", - "babel-helper-call-delegate": "^6.0.0", - "babel-helper-get-function-arity": "^6.0.0", - "babel-template": "^6.0.0", - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-traverse": "^6.0.2", + "babel-helper-call-delegate": "^6.0.2", + "babel-helper-get-function-arity": "^6.0.2", + "babel-template": "^6.0.2", + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2" }, "keywords": [ "babel-plugin" diff --git a/packages/babel-plugin-transform-es2015-shorthand-properties/package.json b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json index f62a33d9db..ba3ad23b08 100644 --- a/packages/babel-plugin-transform-es2015-shorthand-properties/package.json +++ b/packages/babel-plugin-transform-es2015-shorthand-properties/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-shorthand-properties", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 shorthand properties to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-spread/package.json b/packages/babel-plugin-transform-es2015-spread/package.json index 42e3a72379..684bc517e7 100644 --- a/packages/babel-plugin-transform-es2015-spread/package.json +++ b/packages/babel-plugin-transform-es2015-spread/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-spread", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 spread to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-sticky-regex/package.json b/packages/babel-plugin-transform-es2015-sticky-regex/package.json index 823fa43a33..b6518aa5ba 100644 --- a/packages/babel-plugin-transform-es2015-sticky-regex/package.json +++ b/packages/babel-plugin-transform-es2015-sticky-regex/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-sticky-regex", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-regex": "^6.0.0", - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-regex": "^6.0.2", + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-template-literals/package.json b/packages/babel-plugin-transform-es2015-template-literals/package.json index 6a78dc5570..2466748cd8 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/package.json +++ b/packages/babel-plugin-transform-es2015-template-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-template-literals", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 template literals to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-typeof-symbol/package.json b/packages/babel-plugin-transform-es2015-typeof-symbol/package.json index a3222679da..63b6edd490 100644 --- a/packages/babel-plugin-transform-es2015-typeof-symbol/package.json +++ b/packages/babel-plugin-transform-es2015-typeof-symbol/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-typeof-symbol", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-unicode-regex/package.json b/packages/babel-plugin-transform-es2015-unicode-regex/package.json index 8d2afa965d..57b36fd916 100644 --- a/packages/babel-plugin-transform-es2015-unicode-regex/package.json +++ b/packages/babel-plugin-transform-es2015-unicode-regex/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-unicode-regex", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES2015 unicode regex to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-helper-regex": "^6.0.0", + "babel-helper-regex": "^6.0.2", "regexpu": "^1.1.2", - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es3-member-expression-literals/package.json b/packages/babel-plugin-transform-es3-member-expression-literals/package.json index d96ccd5909..3847b9e94a 100644 --- a/packages/babel-plugin-transform-es3-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-es3-member-expression-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es3-member-expression-literals", - "version": "6.0.0", + "version": "6.0.2", "description": "Ensure that reserved words are quoted in property accesses", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es3-property-literals/package.json b/packages/babel-plugin-transform-es3-property-literals/package.json index f6ea1bd454..dd8d8e97a4 100644 --- a/packages/babel-plugin-transform-es3-property-literals/package.json +++ b/packages/babel-plugin-transform-es3-property-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es3-property-literals", - "version": "6.0.0", + "version": "6.0.2", "description": "Ensure that reserved words are quoted in object property keys", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-es5-property-mutators/package.json b/packages/babel-plugin-transform-es5-property-mutators/package.json index 858f32f694..11b38ca4a6 100644 --- a/packages/babel-plugin-transform-es5-property-mutators/package.json +++ b/packages/babel-plugin-transform-es5-property-mutators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es5-property-mutators", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile ES5 property mutator shorthand syntax to Object.defineProperty", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-helper-define-map": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-helper-define-map": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-eval/package.json b/packages/babel-plugin-transform-eval/package.json index 8e73269d19..746f600e59 100644 --- a/packages/babel-plugin-transform-eval/package.json +++ b/packages/babel-plugin-transform-eval/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-eval", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile eval calls with string literals", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-exponentiation-operator/package.json b/packages/babel-plugin-transform-exponentiation-operator/package.json index d36f8b1cd7..f200caa040 100644 --- a/packages/babel-plugin-transform-exponentiation-operator/package.json +++ b/packages/babel-plugin-transform-exponentiation-operator/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-exponentiation-operator", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile exponentiation operator to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-exponentiation-operator": "^6.0.0", - "babel-helper-builder-binary-assignment-operator-visitor": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-exponentiation-operator": "^6.0.2", + "babel-helper-builder-binary-assignment-operator-visitor": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-export-extensions/package.json b/packages/babel-plugin-transform-export-extensions/package.json index 22ea42cc0d..601568186f 100644 --- a/packages/babel-plugin-transform-export-extensions/package.json +++ b/packages/babel-plugin-transform-export-extensions/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-export-extensions", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile export extensions to ES2015", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-export-extensions": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-export-extensions": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-flow-strip-types/package.json b/packages/babel-plugin-transform-flow-strip-types/package.json index ec9e17f233..80782a0cb1 100644 --- a/packages/babel-plugin-transform-flow-strip-types/package.json +++ b/packages/babel-plugin-transform-flow-strip-types/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-flow-strip-types", - "version": "6.0.0", + "version": "6.0.2", "description": "Strip flow type annotations from your output code.", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0", - "babel-plugin-syntax-flow": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-plugin-syntax-flow": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-function-bind/package.json b/packages/babel-plugin-transform-function-bind/package.json index 5eb49f5102..ec9ca9b8c0 100644 --- a/packages/babel-plugin-transform-function-bind/package.json +++ b/packages/babel-plugin-transform-function-bind/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-function-bind", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile function bind operator to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-function-bind": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-function-bind": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-inline-environment-variables/package.json b/packages/babel-plugin-transform-inline-environment-variables/package.json index 2f20894702..cc0202d2b7 100644 --- a/packages/babel-plugin-transform-inline-environment-variables/package.json +++ b/packages/babel-plugin-transform-inline-environment-variables/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-inline-environment-variables", - "version": "6.0.0", + "version": "6.0.2", "description": "Inline environment variables", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-jscript/package.json b/packages/babel-plugin-transform-jscript/package.json index f30066558b..e8aba4b6de 100644 --- a/packages/babel-plugin-transform-jscript/package.json +++ b/packages/babel-plugin-transform-jscript/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-jscript", - "version": "6.0.0", + "version": "6.0.2", "description": "Babel plugin to fix buggy JScript named function expressions", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-member-expression-literals/package.json b/packages/babel-plugin-transform-member-expression-literals/package.json index b42589afa5..020610b202 100644 --- a/packages/babel-plugin-transform-member-expression-literals/package.json +++ b/packages/babel-plugin-transform-member-expression-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-member-expression-literals", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn valid member expression property literals into plain identifiers", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-merge-sibling-variables/package.json b/packages/babel-plugin-transform-merge-sibling-variables/package.json index 0155f36bf6..981240b45a 100644 --- a/packages/babel-plugin-transform-merge-sibling-variables/package.json +++ b/packages/babel-plugin-transform-merge-sibling-variables/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-merge-sibling-variables", - "version": "6.0.0", + "version": "6.0.2", "description": "Merge sibling variables into one.", "repository": "babel-plugin-transform-merge-sibling-variables", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-minify-booleans/package.json b/packages/babel-plugin-transform-minify-booleans/package.json index 296cb35ea4..2be77abf15 100644 --- a/packages/babel-plugin-transform-minify-booleans/package.json +++ b/packages/babel-plugin-transform-minify-booleans/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-minify-booleans", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn boolean literals into !0 for true and !1 for false.", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-node-env-inline/package.json b/packages/babel-plugin-transform-node-env-inline/package.json index d04a059095..3e3de39d09 100644 --- a/packages/babel-plugin-transform-node-env-inline/package.json +++ b/packages/babel-plugin-transform-node-env-inline/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-node-env-inline", - "version": "6.0.0", + "version": "6.0.2", "description": "", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-assign/package.json b/packages/babel-plugin-transform-object-assign/package.json index caa3c1cade..300bad221d 100644 --- a/packages/babel-plugin-transform-object-assign/package.json +++ b/packages/babel-plugin-transform-object-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-object-assign", - "version": "6.0.0", + "version": "6.0.2", "description": "Replace Object.assign with an inline helper", "author": "Jed Watson", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-rest-spread/package.json b/packages/babel-plugin-transform-object-rest-spread/package.json index 22f5f08e7a..08f5f6089a 100644 --- a/packages/babel-plugin-transform-object-rest-spread/package.json +++ b/packages/babel-plugin-transform-object-rest-spread/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-object-rest-spread", - "version": "6.0.0", + "version": "6.0.2", "description": "Compile object rest and spread to ES5", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-plugin-syntax-object-rest-spread": "^6.0.0", - "babel-runtime": "^6.0.0" + "babel-plugin-syntax-object-rest-spread": "^6.0.2", + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json index ba362410d9..eedba2ae3b 100644 --- a/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json +++ b/packages/babel-plugin-transform-object-set-prototype-of-to-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-object-set-prototype-of-to-assign", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn Object.setPrototypeOf to assignments", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-property-literals/package.json b/packages/babel-plugin-transform-property-literals/package.json index 2fc46eebe3..e04594a7c8 100644 --- a/packages/babel-plugin-transform-property-literals/package.json +++ b/packages/babel-plugin-transform-property-literals/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-property-literals", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn valid property key literals to plain identifiers", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-proto-to-assign/package.json b/packages/babel-plugin-transform-proto-to-assign/package.json index ec365086c7..7129566097 100644 --- a/packages/babel-plugin-transform-proto-to-assign/package.json +++ b/packages/babel-plugin-transform-proto-to-assign/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-proto-to-assign", - "version": "6.0.0", + "version": "6.0.2", "description": "Babel plugin for turning __proto__ into a shallow property clone", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0", + "babel-runtime": "^6.0.2", "lodash": "^3.9.3" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-constant-elements/package.json b/packages/babel-plugin-transform-react-constant-elements/package.json index f976c59cb1..8c27b7669d 100644 --- a/packages/babel-plugin-transform-react-constant-elements/package.json +++ b/packages/babel-plugin-transform-react-constant-elements/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-constant-elements", - "version": "6.0.0", + "version": "6.0.2", "description": "Treat React JSX elements as value types and hoist them to the highest scope", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-display-name/package.json b/packages/babel-plugin-transform-react-display-name/package.json index 1f51c14875..264dca4244 100644 --- a/packages/babel-plugin-transform-react-display-name/package.json +++ b/packages/babel-plugin-transform-react-display-name/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-display-name", - "version": "6.0.0", + "version": "6.0.2", "description": "Add displayName to React.createClass calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-inline-elements/package.json b/packages/babel-plugin-transform-react-inline-elements/package.json index 28ea0159f5..98c125ec84 100644 --- a/packages/babel-plugin-transform-react-inline-elements/package.json +++ b/packages/babel-plugin-transform-react-inline-elements/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-inline-elements", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn JSX elements into exploded React objects", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-jsx-compat/package.json b/packages/babel-plugin-transform-react-jsx-compat/package.json index 5aa55d9b02..b4c23396ba 100644 --- a/packages/babel-plugin-transform-react-jsx-compat/package.json +++ b/packages/babel-plugin-transform-react-jsx-compat/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-jsx-compat", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn JSX into React Pre-0.12 function calls", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0", - "babel-helper-builder-react-jsx": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-helper-builder-react-jsx": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-react-jsx/package.json b/packages/babel-plugin-transform-react-jsx/package.json index 07a994603b..d2a1f6c937 100644 --- a/packages/babel-plugin-transform-react-jsx/package.json +++ b/packages/babel-plugin-transform-react-jsx/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-react-jsx", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn JSX into React function calls", "repository": "babel/babel", "license": "MIT", @@ -9,8 +9,8 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0", - "babel-helper-builder-react-jsx": "^6.0.0", - "babel-plugin-syntax-jsx": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-helper-builder-react-jsx": "^6.0.2", + "babel-plugin-syntax-jsx": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index d0cc037e83..d22a772485 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -1,4 +1,4 @@ { "name": "babel-plugin-transform-regenerator", - "version": "6.0.0" + "version": "6.0.2" } \ No newline at end of file diff --git a/packages/babel-plugin-transform-remove-console/package.json b/packages/babel-plugin-transform-remove-console/package.json index 88ddee2ecb..171d928312 100644 --- a/packages/babel-plugin-transform-remove-console/package.json +++ b/packages/babel-plugin-transform-remove-console/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-remove-console", - "version": "6.0.0", + "version": "6.0.2", "description": "Remove console.* calls", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-remove-debugger/package.json b/packages/babel-plugin-transform-remove-debugger/package.json index e8ca3b599d..f672724be0 100644 --- a/packages/babel-plugin-transform-remove-debugger/package.json +++ b/packages/babel-plugin-transform-remove-debugger/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-remove-debugger", - "version": "6.0.0", + "version": "6.0.2", "description": "Remove debugger statements", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-runtime/package.json b/packages/babel-plugin-transform-runtime/package.json index 49ddc85063..63dc83df84 100644 --- a/packages/babel-plugin-transform-runtime/package.json +++ b/packages/babel-plugin-transform-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-runtime", - "version": "6.0.0", + "version": "6.0.2", "description": "Externalise references to helpers and builtins, automatically polyfilling your code without polluting globals", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-simplify-comparison-operators/package.json b/packages/babel-plugin-transform-simplify-comparison-operators/package.json index 33dd9d6f4f..87879f657c 100644 --- a/packages/babel-plugin-transform-simplify-comparison-operators/package.json +++ b/packages/babel-plugin-transform-simplify-comparison-operators/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-simplify-comparison-operators", - "version": "6.0.0", + "version": "6.0.2", "description": "Convert === and !== to == and != if their types are inferred to be the same.", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-strict-mode/package.json b/packages/babel-plugin-transform-strict-mode/package.json index a56ab16b65..9cdd59e4c6 100644 --- a/packages/babel-plugin-transform-strict-mode/package.json +++ b/packages/babel-plugin-transform-strict-mode/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-strict-mode", - "version": "6.0.0", + "version": "6.0.2", "description": "TODO", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-transform-undefined-to-void/package.json b/packages/babel-plugin-transform-undefined-to-void/package.json index 47c29a7179..f23d678d43 100644 --- a/packages/babel-plugin-transform-undefined-to-void/package.json +++ b/packages/babel-plugin-transform-undefined-to-void/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-undefined-to-void", - "version": "6.0.0", + "version": "6.0.2", "description": "Replace references to `undefined` with `void 0`", "repository": "babel/babel", "license": "MIT", @@ -9,6 +9,6 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-plugin-undeclared-variables-check/package.json b/packages/babel-plugin-undeclared-variables-check/package.json index b786b15566..8e48e6a930 100644 --- a/packages/babel-plugin-undeclared-variables-check/package.json +++ b/packages/babel-plugin-undeclared-variables-check/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-undeclared-variables-check", - "version": "6.0.0", + "version": "6.0.2", "description": "Throw a compile-time error on references to undeclared variables", "repository": "babel/babel", "license": "MIT", @@ -9,7 +9,7 @@ "babel-plugin" ], "dependencies": { - "babel-runtime": "^6.0.0", + "babel-runtime": "^6.0.2", "leven": "^1.0.2" } } \ No newline at end of file diff --git a/packages/babel-polyfill/package.json b/packages/babel-polyfill/package.json index 9276d8bc94..81cc7be7e3 100644 --- a/packages/babel-polyfill/package.json +++ b/packages/babel-polyfill/package.json @@ -1,6 +1,6 @@ { "name": "babel-polyfill", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -10,6 +10,6 @@ "dependencies": { "core-js": "^1.0.1", "regenerator": "^0.8.36", - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index 515c1776ec..ce48daac76 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,24 +8,24 @@ "repository": "babel/babel", "main": "index.js", "dependencies": { - "babel-plugin-transform-es2015-template-literals": "^6.0.0", - "babel-plugin-transform-es2015-literals": "^6.0.0", - "babel-plugin-transform-es2015-function-name": "^6.0.0", - "babel-plugin-transform-es2015-arrow-functions": "^6.0.0", - "babel-plugin-transform-es2015-block-scoped-functions": "^6.0.0", - "babel-plugin-transform-es2015-classes": "^6.0.0", - "babel-plugin-transform-es2015-object-super": "^6.0.0", - "babel-plugin-transform-es2015-shorthand-properties": "^6.0.0", - "babel-plugin-transform-es2015-computed-properties": "^6.0.0", - "babel-plugin-transform-es2015-for-of": "^6.0.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.0.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.0.0", - "babel-plugin-transform-es2015-constants": "^6.0.0", - "babel-plugin-transform-es2015-spread": "^6.0.0", - "babel-plugin-transform-es2015-parameters": "^6.0.0", - "babel-plugin-transform-es2015-destructuring": "^6.0.0", - "babel-plugin-transform-es2015-block-scoping": "^6.0.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.0.0", - "babel-plugin-transform-regenerator": "^6.0.0" + "babel-plugin-transform-es2015-template-literals": "^6.0.2", + "babel-plugin-transform-es2015-literals": "^6.0.2", + "babel-plugin-transform-es2015-function-name": "^6.0.2", + "babel-plugin-transform-es2015-arrow-functions": "^6.0.2", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.0.2", + "babel-plugin-transform-es2015-classes": "^6.0.2", + "babel-plugin-transform-es2015-object-super": "^6.0.2", + "babel-plugin-transform-es2015-shorthand-properties": "^6.0.2", + "babel-plugin-transform-es2015-computed-properties": "^6.0.2", + "babel-plugin-transform-es2015-for-of": "^6.0.2", + "babel-plugin-transform-es2015-sticky-regex": "^6.0.2", + "babel-plugin-transform-es2015-unicode-regex": "^6.0.2", + "babel-plugin-transform-es2015-constants": "^6.0.2", + "babel-plugin-transform-es2015-spread": "^6.0.2", + "babel-plugin-transform-es2015-parameters": "^6.0.2", + "babel-plugin-transform-es2015-destructuring": "^6.0.2", + "babel-plugin-transform-es2015-block-scoping": "^6.0.2", + "babel-plugin-transform-es2015-typeof-symbol": "^6.0.2", + "babel-plugin-transform-regenerator": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-preset-react/package.json b/packages/babel-preset-react/package.json index 6b6351f73c..331bb84bc6 100644 --- a/packages/babel-preset-react/package.json +++ b/packages/babel-preset-react/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-react", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,9 +8,9 @@ "repository": "babel/babel", "main": "index.js", "dependencies": { - "babel-plugin-syntax-flow": "^6.0.0", - "babel-plugin-syntax-jsx": "^6.0.0", - "babel-plugin-transform-react-jsx": "^6.0.0", - "babel-plugin-transform-flow-strip-types": "^6.0.0" + "babel-plugin-syntax-flow": "^6.0.2", + "babel-plugin-syntax-jsx": "^6.0.2", + "babel-plugin-transform-react-jsx": "^6.0.2", + "babel-plugin-transform-flow-strip-types": "^6.0.2" } } \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 219781107b..f2d865348b 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-runtime", - "version": "6.0.0", + "version": "6.0.2", "description": "babel selfContained runtime", "license": "MIT", "repository": "babel/babel", @@ -9,9 +9,9 @@ "core-js": "^1.0.0" }, "devDependencies": { - "babel-helpers": "^6.0.0", + "babel-helpers": "^6.0.2", "babel-plugin-runtime": "^1.0.7", - "babel-template": "^6.0.0", + "babel-template": "^6.0.2", "regenerator": "^0.8.34" } } \ No newline at end of file diff --git a/packages/babel-template/package.json b/packages/babel-template/package.json index d418921c8b..d3d64d2e7b 100644 --- a/packages/babel-template/package.json +++ b/packages/babel-template/package.json @@ -1,6 +1,6 @@ { "name": "babel-template", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,10 +8,10 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babylon": "^6.0.0", - "babel-traverse": "^6.0.0", - "babel-types": "^6.0.0", - "babel-runtime": "^6.0.0", + "babylon": "^6.0.2", + "babel-traverse": "^6.0.2", + "babel-types": "^6.0.2", + "babel-runtime": "^6.0.2", "lodash": "^3.10.1" } } \ No newline at end of file diff --git a/packages/babel-traverse/package.json b/packages/babel-traverse/package.json index 80d5501c56..769e1e70ca 100644 --- a/packages/babel-traverse/package.json +++ b/packages/babel-traverse/package.json @@ -1,6 +1,6 @@ { "name": "babel-traverse", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,11 +8,11 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-code-frame": "^6.0.0", - "babel-messages": "^6.0.0", - "babel-runtime": "^6.0.0", - "babel-types": "^6.0.0", - "babylon": "^6.0.0", + "babel-code-frame": "^6.0.2", + "babel-messages": "^6.0.2", + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2", + "babylon": "^6.0.2", "globals": "^8.3.0", "invariant": "^2.1.0", "lodash": "^3.10.1", diff --git a/packages/babel-types/package.json b/packages/babel-types/package.json index f0a2264c80..03e336aea1 100644 --- a/packages/babel-types/package.json +++ b/packages/babel-types/package.json @@ -1,6 +1,6 @@ { "name": "babel-types", - "version": "6.0.0", + "version": "6.0.2", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,8 +8,8 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0", - "babel-traverse": "^6.0.0", + "babel-runtime": "^6.0.2", + "babel-traverse": "^6.0.2", "esutils": "^2.0.2", "lodash": "^3.10.1", "to-fast-properties": "^1.0.1" diff --git a/packages/babel/package.json b/packages/babel/package.json index 813eceaf3e..565d85adbb 100644 --- a/packages/babel/package.json +++ b/packages/babel/package.json @@ -1,6 +1,6 @@ { "name": "babel", - "version": "6.0.0", + "version": "6.0.2", "description": "Turn ES6 code into readable vanilla ES5 with source maps", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", diff --git a/packages/babylon/package.json b/packages/babylon/package.json index 4116c272f2..da4a2899a2 100644 --- a/packages/babylon/package.json +++ b/packages/babylon/package.json @@ -1,6 +1,6 @@ { "name": "babylon", - "version": "6.0.0", + "version": "6.0.2", "description": "A JavaScript parser", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -8,7 +8,7 @@ "repository": "babel/babel", "main": "lib/index.js", "dependencies": { - "babel-runtime": "^6.0.0" + "babel-runtime": "^6.0.2" }, "bin": { "babylon": "./bin/babylon.js" From 182bea64a85b5a91a03889b35daf5d15e9131bd5 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:24:52 +0000 Subject: [PATCH 157/174] remove babel-plugin-transform-regenerator --- packages/babel-plugin-transform-regenerator/index.js | 1 - packages/babel-plugin-transform-regenerator/package.json | 4 ---- 2 files changed, 5 deletions(-) delete mode 100644 packages/babel-plugin-transform-regenerator/index.js delete mode 100644 packages/babel-plugin-transform-regenerator/package.json diff --git a/packages/babel-plugin-transform-regenerator/index.js b/packages/babel-plugin-transform-regenerator/index.js deleted file mode 100644 index 0586da9ec7..0000000000 --- a/packages/babel-plugin-transform-regenerator/index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require("../../../regenerator"); diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json deleted file mode 100644 index d22a772485..0000000000 --- a/packages/babel-plugin-transform-regenerator/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "babel-plugin-transform-regenerator", - "version": "6.0.2" -} \ No newline at end of file From 301912d9c6c50f9055fd49ceaf81d1e04b06fb9f Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:25:05 +0000 Subject: [PATCH 158/174] add babel-types package to babel-plugin-transform-es2015-classes --- packages/babel-plugin-transform-es2015-classes/package.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index f1332d7920..589f25566b 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -13,9 +13,10 @@ "babel-traverse": "^6.0.2", "babel-helper-define-map": "^6.0.2", "babel-messages": "^6.0.2", - "babel-runtime": "^6.0.2" + "babel-runtime": "^6.0.2", + "babel-types": "^6.0.2" }, "keywords": [ "babel-plugin" ] -} \ No newline at end of file +} From aea351636fde13ee757f6e1b24db608ec5502f5d Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:28:30 +0000 Subject: [PATCH 159/174] add babel-plugin-transform-regenerator --- .../.gitignore | 11 + .../.npmignore | 2 + .../.travis.yml | 11 + .../CONTRIBUTING.md | 80 + .../LICENSE | 14 + .../PATENTS | 33 + .../README.md | 74 + .../bin/regenerator | 17 + .../main.js | 34 + .../package.json | 51 + .../runtime-module.js | 31 + .../runtime.js | 656 +++++ .../test/async.es6.js | 493 ++++ .../test/index.html | 18 + .../test/nothing-to-transform.js | 3 + .../test/run.js | 154 + .../test/tests.es6.js | 2560 +++++++++++++++++ .../test/tests.transform.js | 47 + 18 files changed, 4289 insertions(+) create mode 100644 packages/babel-plugin-transform-regenerator/.gitignore create mode 100644 packages/babel-plugin-transform-regenerator/.npmignore create mode 100644 packages/babel-plugin-transform-regenerator/.travis.yml create mode 100644 packages/babel-plugin-transform-regenerator/CONTRIBUTING.md create mode 100644 packages/babel-plugin-transform-regenerator/LICENSE create mode 100644 packages/babel-plugin-transform-regenerator/PATENTS create mode 100644 packages/babel-plugin-transform-regenerator/README.md create mode 100755 packages/babel-plugin-transform-regenerator/bin/regenerator create mode 100644 packages/babel-plugin-transform-regenerator/main.js create mode 100644 packages/babel-plugin-transform-regenerator/package.json create mode 100644 packages/babel-plugin-transform-regenerator/runtime-module.js create mode 100644 packages/babel-plugin-transform-regenerator/runtime.js create mode 100644 packages/babel-plugin-transform-regenerator/test/async.es6.js create mode 100644 packages/babel-plugin-transform-regenerator/test/index.html create mode 100644 packages/babel-plugin-transform-regenerator/test/nothing-to-transform.js create mode 100644 packages/babel-plugin-transform-regenerator/test/run.js create mode 100644 packages/babel-plugin-transform-regenerator/test/tests.es6.js create mode 100644 packages/babel-plugin-transform-regenerator/test/tests.transform.js diff --git a/packages/babel-plugin-transform-regenerator/.gitignore b/packages/babel-plugin-transform-regenerator/.gitignore new file mode 100644 index 0000000000..51641efe5b --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.gitignore @@ -0,0 +1,11 @@ +npm-debug.log +node_modules + +test/mocha.js +test/mocha.css + +test/tests.es5.js +test/async.es5.js +test/tests.browser.js + +.idea diff --git a/packages/babel-plugin-transform-regenerator/.npmignore b/packages/babel-plugin-transform-regenerator/.npmignore new file mode 100644 index 0000000000..e216ae5e13 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.npmignore @@ -0,0 +1,2 @@ +/node_modules +/test diff --git a/packages/babel-plugin-transform-regenerator/.travis.yml b/packages/babel-plugin-transform-regenerator/.travis.yml new file mode 100644 index 0000000000..928d48bb5c --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.travis.yml @@ -0,0 +1,11 @@ +language: node_js +node_js: + - "4.0" + - "iojs" + - "0.12" + - "0.11" + - "0.10" + - "0.8" +before_install: + - npm install -g npm@1.4.28 +sudo: false diff --git a/packages/babel-plugin-transform-regenerator/CONTRIBUTING.md b/packages/babel-plugin-transform-regenerator/CONTRIBUTING.md new file mode 100644 index 0000000000..a4ad349e65 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/CONTRIBUTING.md @@ -0,0 +1,80 @@ +# Contributing to Regenerator + +Regenerator uses GitHub as its sole source of truth. Everything happens +here. Facebook employees who contribute to Regenerator are expected to do +so in the same way as everyone else. In other words, this document applies +equally to all contributors. + +### `master` is unsafe + +We will do our best to keep `master` in good shape, with tests passing at +all times. But in order to move fast, we will make API changes that your +application might not be compatible with. We will do our best to +communicate these changes and always version appropriately so you can lock +into a specific version if need be. + +### Pull Requests + +In case you've never submitted a pull request (PR) via GitHub before, +please read [this short +tutorial](https://help.github.com/articles/creating-a-pull-request). If +you've submitted a PR before, there should be nothing surprising about our +procedures for Regenerator. + +*Before* submitting a pull request, please make sure the following is done… + +1. Fork the repo and create your branch from `master`. +2. If you've added code that should be tested, add tests! +3. Ensure the test suite passes (`npm test`). +4. If you haven't already, complete the CLA. +5. Submit a pull request via GitHub. +6. Check that Travis CI tests pass (pull request turns green). + +### Contributor License Agreement ("CLA") + +In order to accept your pull request, we need you to submit a CLA. You +only need to do this once, so if you've done this for another Facebook +open source project, you're good to go. If you are submitting a pull +request for the first time, just let us know that you have completed the +CLA and we can cross-check with your GitHub username. + +Complete your CLA here: + +## Bugs + +### Where to Find Known Issues + +We will be using GitHub Issues for all bugs. Before filing a new issue, +please try to make sure your problem doesn't already exist. If you think +your issue is more general than one that already exists, our preference is +still to modify the original issue to reflect the underlying problem more +faithfully. + +### Reporting New Issues + +The best way to get a bug fixed is to provide a reduced test case, and the +easiest way to reduce a testcase is to edit it in [the +sandbox](http://facebook.github.io/regenerator/) until you're satisfied +and then click the "report a bug" link (the new issue will be populated +automatically with your code). + +### Security Bugs + +Facebook has a [bounty program](https://www.facebook.com/whitehat/) for +the safe disclosure of security bugs. With that in mind, please do not +file public issues and go through the process outlined on that page. + +## Coding Style + +* Use semicolons; +* Commas last, +* 2 spaces for indentation (no tabs). +* Prefer `"` over `'` +* 80 character line length +* Match surrounding coding style. +* Less code is better code. + +## License + +By contributing to Regenerator, you agree that your contributions will be +licensed under the [BSD License](LICENSE). diff --git a/packages/babel-plugin-transform-regenerator/LICENSE b/packages/babel-plugin-transform-regenerator/LICENSE new file mode 100644 index 0000000000..187bfe283d --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/LICENSE @@ -0,0 +1,14 @@ +BSD License + +For "regenerator" software + +Copyright (c) 2014, Facebook, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/babel-plugin-transform-regenerator/PATENTS b/packages/babel-plugin-transform-regenerator/PATENTS new file mode 100644 index 0000000000..a2bd67d0db --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/PATENTS @@ -0,0 +1,33 @@ +Additional Grant of Patent Rights Version 2 + +"Software" means the Regenerator software distributed by Facebook, Inc. + +Facebook, Inc. ("Facebook") hereby grants to each recipient of the Software +("you") a perpetual, worldwide, royalty-free, non-exclusive, irrevocable +(subject to the termination provision below) license under any Necessary +Claims, to make, have made, use, sell, offer to sell, import, and otherwise +transfer the Software. For avoidance of doubt, no license is granted under +Facebook's rights in any patent claims that are infringed by (i) modifications +to the Software made by you or any third party or (ii) the Software in +combination with any software or other technology. + +The license granted hereunder will terminate, automatically and without notice, +if you (or any of your subsidiaries, corporate affiliates or agents) initiate +directly or indirectly, or take a direct financial interest in, any Patent +Assertion: (i) against Facebook or any of its subsidiaries or corporate +affiliates, (ii) against any party if such Patent Assertion arises in whole or +in part from any software, technology, product or service of Facebook or any of +its subsidiaries or corporate affiliates, or (iii) against any party relating +to the Software. Notwithstanding the foregoing, if Facebook or any of its +subsidiaries or corporate affiliates files a lawsuit alleging patent +infringement against you in the first instance, and you respond by filing a +patent infringement counterclaim in that lawsuit against that party that is +unrelated to the Software, the license granted hereunder will not terminate +under section (i) of this paragraph due to such counterclaim. + +A "Necessary Claim" is a claim of a patent owned by Facebook that is +necessarily infringed by the Software standing alone. + +A "Patent Assertion" is any lawsuit or other action alleging direct, indirect, +or contributory infringement or inducement to infringe any patent, including a +cross-claim or counterclaim. diff --git a/packages/babel-plugin-transform-regenerator/README.md b/packages/babel-plugin-transform-regenerator/README.md new file mode 100644 index 0000000000..c220dba788 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/README.md @@ -0,0 +1,74 @@ +regenerator [![Build Status](https://travis-ci.org/facebook/regenerator.png?branch=master)](https://travis-ci.org/facebook/regenerator) +=== + +This package implements a fully-functional source transformation that +takes the proposed syntax for generators/`yield` from future versions of +JS ([ECMAScript6 or ES6](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts), experimentally implemented in Node.js v0.11) and +spits out efficient JS-of-today (ES5) that behaves the same way. + +A small runtime library (less than 1KB compressed) is required to provide the +`wrapGenerator` function. You can install it either as a CommonJS module +or as a standalone .js file, whichever you prefer. + +Installation +--- + +From NPM: +```sh +npm install -g regenerator +``` + +From GitHub: +```sh +cd path/to/node_modules +git clone git://github.com/facebook/regenerator.git +cd regenerator +npm install . +npm test +``` + +Usage +--- + +You have several options for using this module. + +Simplest usage: +```sh +regenerator es6.js > es5.js # Just the transform. +regenerator --include-runtime es6.js > es5.js # Add the runtime too. +regenerator src lib # Transform every .js file in src and output to lib. +``` + +Programmatic usage: +```js +var es5Source = require("regenerator").compile(es6Source).code; +var es5SourceWithRuntime = require("regenerator").compile(es6Source, { + includeRuntime: true +}).code; +``` + +Babel plugin: +```js +var babel = require("babel-core"); +var code = babel.transform(es6Source, { + plugins: [require("generator")] +}).code; +``` + +How can you get involved? +--- + +The easiest way to get involved is to look for buggy examples using [the +sandbox](http://facebook.github.io/regenerator/), and when you find +something strange just click the "report a bug" link (the new issue form +will be populated automatically with the problematic code). + +Alternatively, you can +[fork](https://github.com/facebook/regenerator/fork) the repository, +create some failing tests cases in [test/tests.es6.js](test/tests.es6.js), +and send pull requests for me to fix. + +If you're feeling especially brave, you are more than welcome to dive into +the transformer code and fix the bug(s) yourself, but I must warn you that +the code could really benefit from [better implementation +comments](https://github.com/facebook/regenerator/issues/7). diff --git a/packages/babel-plugin-transform-regenerator/bin/regenerator b/packages/babel-plugin-transform-regenerator/bin/regenerator new file mode 100755 index 0000000000..88a4e27c12 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/bin/regenerator @@ -0,0 +1,17 @@ +#!/usr/bin/env node +// -*- mode: js -*- + +var compile = require("../main").compile; + +require("commoner").version( + require("../package.json").version +).resolve(function(id) { + return this.readModuleP(id); +}).option( + "-r, --include-runtime", + "Prepend the runtime to the output." +).process(function(id, source) { + return compile(source, { + includeRuntime: this.options.includeRuntime + }).code; +}); diff --git a/packages/babel-plugin-transform-regenerator/main.js b/packages/babel-plugin-transform-regenerator/main.js new file mode 100644 index 0000000000..2272f35859 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/main.js @@ -0,0 +1,34 @@ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +var asyncFunctionSyntax = require("babel-plugin-syntax-async-functions"); +var blockScopingPlugin = require("babel-plugin-transform-es2015-block-scoping"); +var forOfPlugin = require("babel-plugin-transform-es2015-for-of"); +var babel = require("babel-core"); + +var regenerator = module.exports = function() { + return require("./lib/visit"); +}; + +regenerator.compile = function(code, opts) { + // todo: includeRuntime + return babel.transform(code, buildBabelOptions(opts)); +}; + +regenerator.transform = function (ast, opts) { + return babel.transformFromAst(ast, null, buildBabelOptions(opts)); +}; + +function buildBabelOptions(opts) { + return { + plugins: [regenerator, blockScopingPlugin, asyncFunctionSyntax, forOfPlugin], + sourceType: "script" + }; +} diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json new file mode 100644 index 0000000000..a285cdf979 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -0,0 +1,51 @@ +{ + "author": "Ben Newman ", + "name": "babel-plugin-regenerator", + "description": "Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5)", + "keywords": [ + "generator", + "yield", + "coroutine", + "rewriting", + "transformation", + "syntax", + "codegen", + "rewriting", + "refactoring", + "transpiler", + "desugaring", + "ES6" + ], + "version": "6.0.3", + "homepage": "http://github.com/facebook/regenerator", + "repository": { + "type": "git", + "url": "git://github.com/facebook/regenerator.git" + }, + "main": "main.js", + "bin": "bin/regenerator", + "scripts": { + "test": "node test/run.js" + }, + "dependencies": { + "commoner": "~0.10.3", + "babel-plugin-transform-es2015-block-scoping": "^5.0.0", + "babel-plugin-syntax-async-functions": "^5.0.0", + "babel-plugin-transform-es2015-for-of": "^5.0.0", + "babel-core": "^6.0.0", + "babel-traverse": "^6.0.0", + "babel-types": "^6.0.0", + "babylon": "^6.0.0", + "private": "~0.1.5", + "through": "~2.3.8" + }, + "devDependencies": { + "mocha": "~2.3.3", + "promise": "~7.0.4", + "semver": "~5.0.3" + }, + "license": "BSD", + "engines": { + "node": ">= 0.6" + } +} diff --git a/packages/babel-plugin-transform-regenerator/runtime-module.js b/packages/babel-plugin-transform-regenerator/runtime-module.js new file mode 100644 index 0000000000..8e7e2e4c1e --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/runtime-module.js @@ -0,0 +1,31 @@ +// This method of obtaining a reference to the global object needs to be +// kept identical to the way it is obtained in runtime.js +var g = + typeof global === "object" ? global : + typeof window === "object" ? window : + typeof self === "object" ? self : this; + +// Use `getOwnPropertyNames` because not all browsers support calling +// `hasOwnProperty` on the global `self` object in a worker. See #183. +var hadRuntime = g.regeneratorRuntime && + Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; + +// Save the old regeneratorRuntime in case it needs to be restored later. +var oldRuntime = hadRuntime && g.regeneratorRuntime; + +// Force reevalutation of runtime.js. +g.regeneratorRuntime = undefined; + +module.exports = require("./runtime"); + +if (hadRuntime) { + // Restore the original runtime. + g.regeneratorRuntime = oldRuntime; +} else { + // Remove the global property added by runtime.js. + try { + delete g.regeneratorRuntime; + } catch(e) { + g.regeneratorRuntime = undefined; + } +} diff --git a/packages/babel-plugin-transform-regenerator/runtime.js b/packages/babel-plugin-transform-regenerator/runtime.js new file mode 100644 index 0000000000..911a077b89 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/runtime.js @@ -0,0 +1,656 @@ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +!(function(global) { + "use strict"; + + var hasOwn = Object.prototype.hasOwnProperty; + var undefined; // More compressible than void 0. + var iteratorSymbol = + typeof Symbol === "function" && Symbol.iterator || "@@iterator"; + + var inModule = typeof module === "object"; + var runtime = global.regeneratorRuntime; + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } + // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + return; + } + + // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided, then outerFn.prototype instanceof Generator. + var generator = Object.create((outerFn || Generator).prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + runtime.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype; + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + runtime.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `value instanceof AwaitArgument` to determine if the yielded value is + // meant to be awaited. Some may consider the name of this method too + // cutesy, but they are curmudgeons. + runtime.awrap = function(arg) { + return new AwaitArgument(arg); + }; + + function AwaitArgument(arg) { + this.arg = arg; + } + + function AsyncIterator(generator) { + // This invoke function is written in a style that assumes some + // calling function (or Promise) will handle exceptions. + function invoke(method, arg) { + var result = generator[method](arg); + var value = result.value; + return value instanceof AwaitArgument + ? Promise.resolve(value.arg).then(invokeNext, invokeThrow) + : Promise.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + return result; + }); + } + + if (typeof process === "object" && process.domain) { + invoke = process.domain.bind(invoke); + } + + var invokeNext = invoke.bind(generator, "next"); + var invokeThrow = invoke.bind(generator, "throw"); + var invokeReturn = invoke.bind(generator, "return"); + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return invoke(method, arg); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : new Promise(function (resolve) { + resolve(callInvokeWithMethodAndArg()); + }); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + runtime.async = function(innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList) + ); + + return runtime.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + while (true) { + var delegate = context.delegate; + if (delegate) { + if (method === "return" || + (method === "throw" && delegate.iterator[method] === undefined)) { + // A return or throw (when the delegate iterator has no throw + // method) always terminates the yield* loop. + context.delegate = null; + + // If the delegate iterator has a return method, give it a + // chance to clean up. + var returnMethod = delegate.iterator["return"]; + if (returnMethod) { + var record = tryCatch(returnMethod, delegate.iterator, arg); + if (record.type === "throw") { + // If the return method threw an exception, let that + // exception prevail over the original return or throw. + method = "throw"; + arg = record.arg; + continue; + } + } + + if (method === "return") { + // Continue with the outer return, now that the delegate + // iterator has been terminated. + continue; + } + } + + var record = tryCatch( + delegate.iterator[method], + delegate.iterator, + arg + ); + + if (record.type === "throw") { + context.delegate = null; + + // Like returning generator.throw(uncaught), but without the + // overhead of an extra function call. + method = "throw"; + arg = record.arg; + continue; + } + + // Delegate generator ran and handled its own exceptions so + // regardless of what the method was, we continue as if it is + // "next" with an undefined arg. + method = "next"; + arg = undefined; + + var info = record.arg; + if (info.done) { + context[delegate.resultName] = info.value; + context.next = delegate.nextLoc; + } else { + state = GenStateSuspendedYield; + return info; + } + + context.delegate = null; + } + + if (method === "next") { + if (state === GenStateSuspendedYield) { + context.sent = arg; + } else { + context.sent = undefined; + } + + } else if (method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw arg; + } + + if (context.dispatchException(arg)) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + method = "next"; + arg = undefined; + } + + } else if (method === "return") { + context.abrupt("return", arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + var info = { + value: record.arg, + done: context.done + }; + + if (record.arg === ContinueSentinel) { + if (context.delegate && method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + arg = undefined; + } + } else { + return info; + } + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(arg) call above. + method = "throw"; + arg = record.arg; + } + } + }; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + runtime.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + this.sent = undefined; + this.done = false; + this.delegate = null; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.next = finallyEntry.finallyLoc; + } else { + this.complete(record); + } + + return ContinueSentinel; + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = record.arg; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + return ContinueSentinel; + } + }; +})( + // Among the various tricks for obtaining a reference to the global + // object, this seems to be the most reliable technique that does not + // use indirect eval (which violates Content Security Policy). + typeof global === "object" ? global : + typeof window === "object" ? window : + typeof self === "object" ? self : this +); diff --git a/packages/babel-plugin-transform-regenerator/test/async.es6.js b/packages/babel-plugin-transform-regenerator/test/async.es6.js new file mode 100644 index 0000000000..587e9b5f00 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/test/async.es6.js @@ -0,0 +1,493 @@ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +var assert = require("assert"); + +describe("async functions and await expressions", function() { + Promise = require("promise"); + + describe("regeneratorRuntime", function() { + it("should be defined globally", function() { + var global = Function("return this")(); + assert.ok("regeneratorRuntime" in global); + assert.strictEqual(global.regeneratorRuntime, regeneratorRuntime); + }); + + it("should have a .wrap method", function() { + assert.strictEqual(typeof regeneratorRuntime.wrap, "function"); + }); + }); + + describe("Promise", function() { + it("should be defined globally", function() { + var global = Function("return this")(); + assert.ok("Promise" in global); + assert.strictEqual(global.Promise, Promise); + }); + + it("should be a function", function() { + assert.strictEqual(typeof Promise, "function"); + }); + }); + + describe("no-await async function", function() { + it("should return a Promise", function(done) { + var called = false; + + async function noAwait(value) { + called = true; + return value; + } + + var promise = noAwait("asdf"); + assert.strictEqual(called, true); + + promise.then(function(value) { + assert.strictEqual(called, true); + assert.strictEqual(value, "asdf"); + done(); + }).catch(done); + }); + }); + + describe("one-await async function", function() { + it("should finish asynchronously", function(done) { + var flag1 = false; + var flag2 = false; + + async function oneAwait(value) { + flag1 = true; + var result = await value; + flag2 = true; + return result; + } + + var promise = oneAwait("asdf"); + assert.strictEqual(flag1, true); + assert.strictEqual(flag2, false); + + promise.then(function(value) { + assert.strictEqual(flag2, true); + assert.strictEqual(value, "asdf"); + done(); + }).catch(done); + }); + }); + + describe("nested async function calls", function() { + it("should evaluate in the right order", function(done) { + var markers = []; + + async function innerMost(marker) { + markers.push(marker); + return await marker; + } + + async function inner(marker) { + markers.push(marker); + + assert.strictEqual( + await innerMost(marker + 1), + marker + 1 + ); + + markers.push(marker + 2); + + assert.strictEqual( + await innerMost(marker + 3), + marker + 3 + ); + + markers.push(marker + 4); + } + + async function outer() { + markers.push(0); + await inner(1); + markers.push(6); + await inner(7); + markers.push(12); + } + + outer().then(function() { + var expected = []; + for (var i = 0; i <= 12; ++i) + expected.push(i); + assert.deepEqual(markers, expected); + done(); + }).catch(done); + }); + }); + + describe("dependent promises", function() { + it("should be awaitable out of order", function(done) { + async function outer(value) { + var resolved = false; + var p1 = new Promise(function(resolve) { + setTimeout(function() { + resolve(value + 1); + resolved = true; + }, 0); + }); + + assert.strictEqual(resolved, false); + + var v2 = await p1.then(function(value) { + return value + 1; + }); + + assert.strictEqual(resolved, true); + + var v1 = await p1; + + return [v1, v2]; + } + + outer(1).then(function(pair) { + assert.deepEqual(pair, [2, 3]); + done(); + }).catch(done); + }); + }); + + describe("rejected promises", function() { + it("should cause await expressions to throw", function(done) { + var error = new Error("rejected"); + + async function f(arg) { + try { + return await arg; + } catch (e) { + assert.strictEqual(e, error); + return "did throw"; + } + } + + Promise.all([ + f(Promise.reject(error)), + f(Promise.resolve("did not throw")) + ]).then(function(results) { + assert.deepEqual(results, [ + "did throw", + "did not throw" + ]); + done(); + }).catch(done); + }); + + it("should be returned by exceptional async functions", function(done) { + var error = new Error("rejected"); + + async function e(arg) { + if (arg) { + throw arg; + } + return "did not throw"; + } + + async function f(arg) { + return await e(arg); + } + + async function g(arg) { + return await f(arg); + } + + async function h(arg) { + return await Promise.all([ + g(arg), + Promise.resolve("dummy") + ]); + } + + Promise.all([ + h(error).then(function() { + done(new Error("should not have resolved")); + }, function(e) { + assert.strictEqual(e, error); + return "ok1"; + }), + h(null).then(function(result) { + assert.deepEqual(result, [ + "did not throw", + "dummy" + ]); + return "ok2"; + }) + ]).then(function(results) { + assert.deepEqual(results, ["ok1", "ok2"]); + done(); + }).catch(done); + }); + + it("should propagate failure when returned", function() { + var rejection = new Error("rejection"); + + async function f() { + return new Promise(function(resolve, reject) { + reject(rejection); + }); + } + + return f().then(function(result) { + assert.ok(false, "should have been rejected"); + }, function(error) { + assert.strictEqual(error, rejection); + }); + }); + }); + + describe("async function expressions", function() { + it("should be allowed", function(done) { + (async function(arg) { + return await arg; + })(Promise.resolve(1234)).then(function(value) { + assert.strictEqual(value, 1234); + done(); + }).catch(done); + }); + }); +}); + +describe("async generator functions", function() { + it("should return a working AsyncIterator", function() { + var markers = []; + + async function *gen(arg) { + markers.push(0); + var sent = yield arg; + markers.push(1); + var result = await sent; + markers.push(2); + assert.strictEqual(await (yield "second"), "sent after second"); + markers.push(3); + return result; + } + + var iter = gen("initial argument"); + assert.deepEqual(markers, []); + + var firstPromise = iter.next(); + assert.deepEqual(markers, [0]); + + return firstPromise.then(function(firstResult) { + assert.deepEqual(firstResult, { + value: "initial argument", + done: false + }); + + assert.deepEqual(markers, [0]); + + return iter.next(new Promise(function(resolve) { + setTimeout(resolve, 100); + }).then(function() { + assert.deepEqual(markers, [0, 1]); + return "will become final result"; + })); + + }).then(function(secondResult) { + assert.deepEqual(secondResult, { + value: "second", + done: false + }); + + assert.deepEqual(markers, [0, 1, 2]); + + return iter.next("sent after second"); + + }).then(function(finalResult) { + assert.deepEqual(markers, [0, 1, 2, 3]); + assert.deepEqual(finalResult, { + value: "will become final result", + done: true + }); + }); + }); + + it("should keep results in order", function() { + async function *range(limit) { + var before = []; + var after = []; + for (var i = 0; i < limit; ++i) { + before.push(i); + yield i; + after.push(i); + } + assert.deepEqual(before, after); + return before; + } + + var limit = 10; + var iter = range(limit); + var promises = []; + var results = []; + + for (var i = 0; i < limit; ++i) { + var promise = iter.next(); + promises.push(promise); + + promise.then(function(result) { + assert.strictEqual(result.done, false); + results.push(result); + }); + } + + assert.deepEqual(results, []); + + return Promise.all(promises).then(function(promiseResults) { + assert.deepEqual(results, promiseResults); + + return iter.next(); + + }).then(function(finalResult) { + assert.deepEqual(results.map(function(result) { + return result.value; + }), finalResult.value); + + assert.strictEqual(finalResult.done, true); + }); + }); + + it("should be able to handle many awaits", function() { + var awaitCount = 0; + + function countAwait(i) { + return Promise.resolve(i).then(function() { + ++awaitCount; + }); + } + + async function *gen(limit) { + await countAwait(0); + yield 1; + await countAwait(2); + await countAwait(3); + yield 4; + await countAwait(5); + await countAwait(6); + await countAwait(7); + yield 8; + for (var i = 0; i < limit; ++i) { + await countAwait(i); + } + return "done"; + } + + var iter = gen(100); + + return iter.next().then(function(result) { + assert.strictEqual(awaitCount, 1); + + assert.deepEqual(result, { + value: 1, + done: false + }); + + return iter.next(); + + }).then(function(result) { + assert.strictEqual(awaitCount, 3); + + assert.deepEqual(result, { + value: 4, + done: false + }); + + return iter.next(); + + }).then(function(result) { + assert.strictEqual(awaitCount, 6); + + assert.deepEqual(result, { + value: 8, + done: false + }); + + return iter.next(); + + }).then(function(result) { + assert.strictEqual(awaitCount, 6 + 100); + + assert.deepEqual(result, { + value: "done", + done: true + }); + + return iter.next(); + + }).then(function(result) { + assert.deepEqual(result, { + value: void 0, + done: true + }); + }); + }); + + it("should not propagate exceptions between iterations", function() { + async function *gen() { + yield 1; + yield 2; + } + + var iter = gen(); + + return iter.next().then(function(result) { + assert.deepEqual(result, { + value: 1, + done: false + }); + + return iter.throw(new Error("thrown from first yield")); + + }).then(function() { + throw new Error("should have thrown"); + + }, function(error) { + assert.strictEqual(error.message, "thrown from first yield"); + return iter.next(); + + }).then(function(result) { + assert.deepEqual(result, { + value: void 0, + done: true + }); + }); + }); + + it("should allow yielding a rejected Promise", function() { + var yielded = new Error("yielded rejection"); + var returned = new Error("returned rejection"); + + async function *gen() { + assert.strictEqual(yield Promise.reject(yielded), "first sent"); + assert.strictEqual(yield "middle", "second sent"); + return Promise.reject(returned); + } + + var iter = gen(); + + return iter.next().then(function(result) { + assert.ok(false, "should have yielded a rejected Promise"); + }, function(error) { + assert.strictEqual(error, yielded); + return iter.next("first sent"); + }).then(function(result) { + assert.deepEqual(result, { + value: "middle", + done: false + }); + return iter.next("second sent"); + }).then(function(result) { + assert.ok(false, "should have returned a rejected Promise"); + }, function(error) { + assert.strictEqual(error, returned); + }); + }); +}); diff --git a/packages/babel-plugin-transform-regenerator/test/index.html b/packages/babel-plugin-transform-regenerator/test/index.html new file mode 100644 index 0000000000..ace946a498 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/test/index.html @@ -0,0 +1,18 @@ + + + + Mocha + + + + + +
+ + + + + + diff --git a/packages/babel-plugin-transform-regenerator/test/nothing-to-transform.js b/packages/babel-plugin-transform-regenerator/test/nothing-to-transform.js new file mode 100644 index 0000000000..3ab38103d4 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/test/nothing-to-transform.js @@ -0,0 +1,3 @@ +function asdf() { + return "no generators or a-s-y-n-c functions to see here"; +} diff --git a/packages/babel-plugin-transform-regenerator/test/run.js b/packages/babel-plugin-transform-regenerator/test/run.js new file mode 100644 index 0000000000..a2c3419c19 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/test/run.js @@ -0,0 +1,154 @@ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +var fs = require("fs"); +var path = require("path"); +var semver = require("semver"); +var spawn = require("child_process").spawn; +var regenerator = require("../main"); +var mochaDir = path.dirname(require.resolve("mocha")); + +function convert(es6File, es5File, callback) { + fs.readFile(es6File, "utf-8", function(err, es6) { + if (err) { + return callback(err); + } + + fs.writeFile(es5File, regenerator.compile(es6).code, callback); + }); +} + +function bundle(es5Files, browserFile, callback) { + var bundle = require("browserify")(); + es5Files.forEach(bundle.add, bundle); + bundle.bundle(function(err, src) { + if (err) { + return callback(err); + } + fs.writeFile(browserFile, src, callback); + }); +} + +var queue = []; +function enqueue(cmd, args, quiet) { + queue.push({ + cmd: cmd, + args: args || [], + quiet: !!quiet + }); +} + +function flush() { + var entry = queue.shift(); + if (entry) { + var cmd = entry.cmd; + if (typeof cmd === "function") { + cmd.apply(null, entry.args.concat(asyncCallback)); + } else { + spawn(cmd, entry.args, { + stdio: [ + process.stdin, + entry.quiet ? "ignore" : process.stdout, + process.stderr + ] + }).on("exit", asyncCallback); + } + } +} + +function asyncCallback(err) { + if (err) { + console.error("process exited abnormally:", err); + process.exit(typeof err === "number" ? err : -1); + } else { + process.nextTick(flush); + } +} + +function makeMochaCopyFunction(fileName) { + return function copy(callback) { + var src = path.join(mochaDir, fileName); + var dst = path.join(__dirname, fileName); + fs.unlink(dst, function() { + fs.symlink(src, dst, callback); + }); + }; +} + +if (semver.gte(process.version, "0.11.2")) { + enqueue("mocha", [ + "--harmony", + "--reporter", "spec", + "--require", "./runtime", + "./test/tests.es6.js" + ]); +} + +enqueue(convert, [ + "./test/tests.es6.js", + "./test/tests.es5.js" +]); + +enqueue(convert, [ + "./test/async.es6.js", + "./test/async.es5.js" +]); + +enqueue(makeMochaCopyFunction("mocha.js")); +enqueue(makeMochaCopyFunction("mocha.css")); + +// uglify-js does not work properly due to Node 0.11.7 bug. +// (https://github.com/joyent/node/issues/6235) +if (!semver.eq(process.version, "0.11.7")) { + try { + require.resolve("browserify"); // Throws if missing. + enqueue(bundle, [ + ["./runtime.js", + "./test/tests.es5.js", + "./test/async.es5.js"], + "./test/tests.browser.js" + ]); + } catch (ignored) { + console.error("browserify not installed; skipping bundle step"); + } +} + +enqueue("mocha", [ + "--reporter", "spec", + "--require", "./runtime", + "./test/tests.es5.js", + "./test/async.es5.js", + "./test/tests.transform.js" +]); + +// Run command-line tool with available options to make sure it works. + +enqueue("./bin/regenerator", [ + "./test/async.es5.js" +], true); + +enqueue("./bin/regenerator", [ + "--include-runtime", + "./test/async.es5.js" +], true); + +// Make sure we run the command-line tool on a file that does not need any +// transformation, too. + +enqueue("./bin/regenerator", [ + "./test/nothing-to-transform.js" +], true); + +enqueue("./bin/regenerator", [ + "--include-runtime", + "./test/nothing-to-transform.js" +], true); + +flush(); diff --git a/packages/babel-plugin-transform-regenerator/test/tests.es6.js b/packages/babel-plugin-transform-regenerator/test/tests.es6.js new file mode 100644 index 0000000000..3df59e76e9 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/test/tests.es6.js @@ -0,0 +1,2560 @@ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +var assert = require("assert"); +var runningInTranslation = /\.wrap\(/.test(function*(){}); +var iteratorSymbol = typeof Symbol === "function" + && Symbol.iterator + || "@@iterator"; + +function check(g, yields, returnValue) { + for (var i = 0; i < yields.length; ++i) { + var info = g.next(i); + assert.deepEqual(info.value, yields[i]); + assert.strictEqual(info.done, false); + } + + assert.deepEqual( + i > 0 ? g.next(i) : g.next(), + { value: returnValue, done: true } + ); +} + +// A version of `throw` whose behavior can't be statically analyzed. +// Useful for testing dynamic exception dispatching. +function raise(argument) { + throw argument; +} + +function assertAlreadyFinished(generator) { + assert.deepEqual(generator.next(), { + value: void 0, + done: true + }); +} + +describe("regeneratorRuntime", function() { + it("should be defined globally", function() { + var global = Function("return this")(); + assert.ok("regeneratorRuntime" in global); + assert.strictEqual(global.regeneratorRuntime, regeneratorRuntime); + }); + + it("should have a .wrap method", function() { + assert.strictEqual(typeof regeneratorRuntime.wrap, "function"); + }); + + it("should have a .mark method", function() { + assert.strictEqual(typeof regeneratorRuntime.mark, "function"); + }); + + it("should be the object name returned by util.runtimeProperty", function() { + assert.strictEqual( + require("../lib/util").runtimeProperty("foo").object.name, + "regeneratorRuntime" + ); + }); +}); + +(runningInTranslation ? describe : xdescribe)("@@iterator", function() { + it("is defined on Generator.prototype and returns this", function() { + function *gen(){} + var iterator = gen(); + assert.ok(!iterator.hasOwnProperty(iteratorSymbol)); + assert.ok(!Object.getPrototypeOf(iterator).hasOwnProperty(iteratorSymbol)); + assert.ok(Object.getPrototypeOf( + Object.getPrototypeOf(iterator) + ).hasOwnProperty(iteratorSymbol)); + assert.strictEqual(iterator[iteratorSymbol](), iterator); + }); +}); + +describe("simple argument yielder", function() { + it("should yield only its first argument", function() { + function *gen(x) { + yield x; + } + + check(gen("oyez"), ["oyez"]); + check(gen("foo", "bar"), ["foo"]); + }); + + it("should support multiple yields in expression", function() { + function *gen() { return (yield 0) + (yield 0); } + var itr = gen(); + itr.next(); + itr.next(1); + assert.equal(itr.next(2).value, 3); + }); +}); + +function *range(n) { + for (var i = 0; i < n; ++i) { + yield i; + } +} + +describe("range generator", function() { + it("should yield the empty range", function() { + check(range(0), []); + }) + + it("should yield the range 0..n-1", function() { + check(range(5), [0, 1, 2, 3, 4]); + }); +}); + +describe("collatz generator", function() { + function *gen(n) { + var count = 0; + + yield n; + + while (n !== 1) { + count += 1; + + if (n % 2) { + yield n = n * 3 + 1; + } else { + yield n >>= 1; + } + } + + return count; + } + + function collatz(n) { + var result = [n]; + + while (n !== 1) { + if (n % 2) { + n *= 3; + n += 1; + } else { + n >>= 1; + } + + result.push(n); + } + + return result; + } + + var seven = collatz(7); + var fiftyTwo = seven.slice(seven.indexOf(52)); + var eightyTwo = collatz(82); + + it("seven", function() { + check(gen(7), seven, 16); + }); + + it("fifty two", function() { + check(gen(52), fiftyTwo, 11); + }); + + it("eighty two", function() { + check(gen(82), eightyTwo, 110); + }); +}); + +describe("throw", function() { + (runningInTranslation ? it : xit)("should complete generator", function() { + function *gen(x) { + throw 1; + } + + var u = gen(); + + try { + u.next(); + } catch (err) { + assert.strictEqual(err, 1); + } + + assertAlreadyFinished(u); + }); +}); + +describe("try-catch generator", function() { + function *usingThrow(x) { + yield 0; + try { + yield 1; + if (x % 2 === 0) + throw 2; + yield x; + } catch (x) { + yield x; + } + yield 3; + } + + function *usingRaise(x) { + yield 0; + try { + yield 1; + if (x % 2 === 0) + raise(2); + yield x; + } catch (x) { + yield x; + } + yield 3; + } + + it("should catch static exceptions properly", function() { + check(usingThrow(4), [0, 1, 2, 3]); + check(usingThrow(5), [0, 1, 5, 3]); + }); + + it("should catch dynamic exceptions properly", function() { + check(usingRaise(4), [0, 1, 2, 3]); + check(usingRaise(5), [0, 1, 5, 3]); + }); +}); + +describe("nested generators in try-catch", function() { + function *gen() { + try { + nonExistent; + } catch (e) { + yield function* () { + yield e; + } + } + } + + it('should get a reference to the caught error', function () { + var genFun2 = gen().next().value; + assert.ok(regeneratorRuntime.isGeneratorFunction(genFun2)); + var gen2 = genFun2(); + var res = gen2.next(); + assert.ok(res.value instanceof ReferenceError); + // Note that we don't do strict equality over the message because it varies + // across browsers (if we ever want to run tests in browsers). + assert.ok(res.value.message.match(/nonExistent/)); + }); + +}); + +describe("try-finally generator", function() { + function *usingThrow(condition) { + yield 0; + try { + yield 1; + throw 2; + yield 3; + } finally { + if (condition) { + yield 4; + return 5; + } + yield 6; + return 7; + } + } + + function *usingRaise(condition) { + yield 0; + try { + yield 1; + raise(2); + yield 3; + } finally { + if (condition) { + yield 4; + return 5; + } + yield 6; + return 7; + } + } + + function *usingAbrupt(abruptType, finallyAbruptType) { + yield 0; + for (;;) { + try { + yield 1; + if (abruptType === "return") { + return 2; + } else if (abruptType === "break") { + break; + } else if (abruptType === "continue") { + abruptType = "return"; + continue; + } + } + finally { + yield 3; + if (finallyAbruptType === "return") { + return 4; + } else if (finallyAbruptType === "break") { + break; + } else if (finallyAbruptType === "continue") { + finallyAbruptType = null; + continue; + } + } + } + return 5; + } + + it("should honor return", function() { + check(usingAbrupt("return", null), [0, 1, 3], 2); + }); + + it("should honor break", function() { + check(usingAbrupt("break", null), [0, 1, 3], 5); + }); + + it("should honor continue", function() { + check(usingAbrupt("continue", null), [0, 1, 3, 1, 3], 2); + }); + + it("should override abrupt with return", function() { + check(usingAbrupt("return", "return"), [0, 1, 3], 4); + check(usingAbrupt("break", "return"), [0, 1, 3], 4); + check(usingAbrupt("continue", "return"), [0, 1, 3], 4); + }); + + it("should override abrupt with break", function() { + check(usingAbrupt("return", "break"), [0, 1, 3], 5); + check(usingAbrupt("break", "break"), [0, 1, 3], 5); + check(usingAbrupt("continue", "break"), [0, 1, 3], 5); + }); + + it("should override abrupt with continue", function() { + check(usingAbrupt("return", "continue"), [0, 1, 3, 1, 3], 2); + check(usingAbrupt("break", "continue"), [0, 1, 3, 1, 3], 5); + check(usingAbrupt("continue", "continue"), [0, 1, 3, 1, 3], 2); + }); + + it("should execute finally blocks statically", function() { + check(usingThrow(true), [0, 1, 4], 5); + check(usingThrow(false), [0, 1, 6], 7); + }); + + it("should execute finally blocks dynamically", function() { + check(usingRaise(true), [0, 1, 4], 5); + check(usingRaise(false), [0, 1, 6], 7); + }); + + it("should execute finally blocks before throwing", function() { + var uncaughtError = new Error("uncaught"); + + function *uncaught(condition) { + try { + yield 0; + if (condition) { + yield 1; + raise(uncaughtError); + } + yield 2; + } finally { + yield 3; + } + yield 4; + } + + check(uncaught(false), [0, 2, 3, 4]); + + var u = uncaught(true); + + assert.deepEqual(u.next(), { value: 0, done: false }); + assert.deepEqual(u.next(), { value: 1, done: false }); + assert.deepEqual(u.next(), { value: 3, done: false }); + + try { + u.next(); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, uncaughtError); + } + }); + + it("should throw correct error when finally contains catch", function() { + var right = new Error("right"); + var wrong = new Error("wrong"); + + function *gen() { + try { + yield 0; + raise(right); + } finally { + yield 1; + try { + raise(wrong); + } catch (err) { + assert.strictEqual(err, wrong); + yield 2; + } + } + } + + var g = gen(); + + assert.deepEqual(g.next(), { + value: 0, + done: false + }); + + assert.deepEqual(g.next(), { + value: 1, + done: false + }); + + assert.deepEqual(g.next(), { + value: 2, + done: false + }); + + try { + g.next(); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, right); + } + }); + + it("should run finally after break within try", function() { + function *gen() { + try { + yield 0; + while (true) { + yield 1; + break; + } + } finally { + yield 2; + } + yield 3; + } + + check(gen(), [0, 1, 2, 3]); + }); +}); + +describe("try-catch-finally generator", function() { + function *usingThrow() { + yield 0; + try { + try { + yield 1; + throw 2; + yield 3; + } catch (x) { + throw yield x; + } finally { + yield 5; + } + } catch (thrown) { + yield thrown; + } + yield 6; + } + + function *usingRaise() { + yield 0; + try { + try { + yield 1; + raise(2); + yield 3; + } catch (x) { + throw yield x; + } finally { + yield 5; + } + } catch (thrown) { + yield thrown; + } + yield 6; + } + + it("should statically catch and then finalize", function() { + check(usingThrow(), [0, 1, 2, 5, 3, 6]); + }); + + it("should dynamically catch and then finalize", function() { + check(usingRaise(), [0, 1, 2, 5, 3, 6]); + }); + + it("should execute catch and finally blocks at most once", function() { + var error = new Error(); + + function *gen() { + try { + switch (1) { + case 1: + yield "a"; + break; + default: + break; + } + throw error; + } catch (e) { + assert.strictEqual(e, error); + yield "b"; + do { + do { + yield "c"; + break; + } while (false); + yield "d"; + break; + } while (false); + yield "e"; + } finally { + yield "f"; + } + } + + check(gen(), ["a", "b", "c", "d", "e", "f"]); + }); + + it("should handle backwards jumps in labeled loops", function() { + function *gen() { + var firstTime = true; + outer: + while (true) { + yield 0; + try { + while (true) { + yield 1; + if (firstTime) { + firstTime = false; + yield 2; + continue outer; + } else { + yield 3; + break; + } + } + yield 4; + break; + } finally { + yield 5; + } + yield 6; + } + yield 7; + } + + check(gen(), [0, 1, 2, 5, 0, 1, 3, 4, 5, 7]); + }); + + it("should handle loop continue statements properly", function() { + var error = new Error("thrown"); + var markers = []; + + function *gen() { + var c = 2; + while (c > 0) { + try { + markers.push("try"); + yield c; + } catch (e) { + assert.strictEqual(e, error); + markers.push("catch"); + continue; + } finally { + markers.push("finally"); + } + markers.push("decrement"); + --c; + } + } + + var g = gen(); + + assert.deepEqual(g.next(), { value: 2, done: false }); + assert.deepEqual(g.throw(error), { value: 2, done: false }); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + + assert.deepEqual(markers, [ + "try", + "catch", + "finally", + "try", + "finally", + "decrement", + "try", + "finally", + "decrement" + ]); + }); +}); + +describe("dynamic exception", function() { + function *gen(x, fname) { + try { + return fns[fname](x); + } catch (thrown) { + yield thrown; + } + } + + var fns = { + f: function(x) { + throw x; + }, + + g: function(x) { + return x; + } + }; + + it("should be dispatched correctly", function() { + check(gen("asdf", "f"), ["asdf"]); + check(gen("asdf", "g"), [], "asdf"); + }); +}); + +describe("nested finally blocks", function() { + function *usingThrow() { + try { + try { + try { + throw "thrown"; + } finally { + yield 1; + } + } catch (thrown) { + yield thrown; + } finally { + yield 2; + } + } finally { + yield 3; + } + } + + function *usingRaise() { + try { + try { + try { + raise("thrown"); + } finally { + yield 1; + } + } catch (thrown) { + yield thrown; + } finally { + yield 2; + } + } finally { + yield 3; + } + } + + it("should statically execute in order", function() { + check(usingThrow(), [1, "thrown", 2, 3]); + }); + + it("should dynamically execute in order", function() { + check(usingRaise(), [1, "thrown", 2, 3]); + }); +}); + +describe("for-in loop generator", function() { + it("should handle the simple case", function() { + function *gen() { + var count = 0; + var obj = {foo: 1, bar: 2}; + for (var key in obj) { + assert(obj.hasOwnProperty(key), key + " must be own property"); + yield [key, obj[key]]; + count += 1; + } + return count; + } + + check(gen(), [["foo", 1], ["bar", 2]], 2); + }); + + it("should handle break in loop", function() { + function *gen(obj) { + var count = 0; + for (var key in (yield "why not", obj)) { + if (obj.hasOwnProperty(key)) { + if (key === "skip") { + break; + } + count += 1; + yield [key, obj[key]]; + } + } + return count; + } + + check( + gen({ a: 1, b: 2, skip: 3, c: 4 }), + ["why not", ["a", 1], ["b", 2]], + 2 + ); + }); + + it("should handle property deletion in loop", function() { + function *gen() { + var count = 0; + var obj = {foo: 1, bar: 2}; + for (var key in obj) { + assert(obj.hasOwnProperty(key), key + " must be own property"); + yield [key, obj[key]]; + delete obj.bar; + count += 1; + } + return count; + } + + check(gen(), [["foo", 1]], 1); + }); + + it("should loop over inherited properties", function() { + function *gen() { + var count = 0; + function Foo() { + this.baz = 1 + } + Foo.prototype.bar = 2; + + var foo = new Foo(); + for (var key in foo) { + yield [key, foo[key]]; + count += 1; + } + return count; + } + + check(gen(), [["baz", 1], ["bar", 2]], 2); + }); + + it("should handle risky object expressions", function() { + function a(sent) { + assert.strictEqual(sent, 1); + a.called = true; + } + + function b(sent) { + assert.strictEqual(sent, 2); + b.called = true; + return { callee: b }; + } + + function *gen() { + assert.ok(!a.called); + assert.ok(!b.called); + for (var key in a(yield 0), b(yield 1)) { + assert.ok(a.called); + assert.ok(b.called); + assert.strictEqual(yield key, 3); + } + + for (var key in a(1), { foo: "foo", bar: "bar" }) { + yield key; + } + } + + check(gen(), [0, 1, "callee", "foo", "bar"]); + }); + + it("should allow non-Identifier left-hand expressions", function() { + var obj = {}; + var baz = { a: 1, b: 2, c: 3 }; + var markers = []; + + function foo() { + markers.push("called foo"); + return obj; + } + + function *gen() { + for (foo().bar in baz) { + markers.push(obj.bar); + yield obj.bar; + } + } + + check(gen(), ["a", "b", "c"]); + + assert.deepEqual(markers, [ + "called foo", + "a", + "called foo", + "b", + "called foo", + "c" + ]); + }); +}); + +describe("yield chain", function() { + function *gen(n) { + return yield yield yield yield n; + } + + it("should have correct associativity", function() { + check(gen(5), [5, 1, 2, 3], 4); + check(gen("asdf"), ["asdf", 1, 2, 3], 4); + }); +}); + +describe("object literal generator", function() { + function *gen(a, b) { + yield { + a: a - (yield a), + b: yield b + }; + } + + it("should yield the correct object", function() { + check(gen(1, 2), [1, 2, { a: 0, b: 2 }]); + check(gen(4, 2), [4, 2, { a: 3, b: 2 }]); + }); +}); + +describe("switch statement generator", function() { + function *gen(a) { + switch (yield a) { + case (yield "x") - a: + return "first case"; + case (yield "y") - a: + return "second case"; + } + } + + it("should jump to the correct cases", function() { + check(gen(1), [1, "x"], "first case"); + check(gen(2), [2, "x", "y"], "second case"); + }); +}); + +describe("infinite sequence generator", function() { + function *gen(start, step) { + step = step || 1; + while (true) { + yield start; + start += step; + } + } + + function *limit(g, stop) { + while (true) { + var info = g.next(); + if (info.done) { + return; + } else if (info.value < stop) { + yield info.value; + } else { + return; + } + } + } + + it("should generate a lot of plausible values", function() { + var g = gen(10, 2); + + assert.deepEqual(g.next(), { value: 10, done: false }); + assert.deepEqual(g.next(), { value: 12, done: false }); + assert.deepEqual(g.next(), { value: 14, done: false }); + assert.deepEqual(g.next(), { value: 16, done: false }); + + var sum = 10 + 12 + 14 + 16; + + for (var n = 0; n < 1000; ++n) { + var info = g.next(); + sum += info.value; + assert.strictEqual(info.done, false); + } + + assert.strictEqual(sum, 1017052); + }); + + it("should allow limiting", function() { + check(limit(gen(10, 3), 20), [10, 13, 16, 19]); + }); +}); + +describe("generator function expression", function() { + it("should behave just like a declared generator", function() { + check(function *(x, y) { + yield x; + yield y; + yield x + y; + return x * y; + }(3, 7), [3, 7, 10], 21); + }) +}); + +describe("generator reentry attempt", function() { + function *gen(x) { + try { + (yield x).next(x); + } catch (err) { + yield err; + } + return x + 1; + } + + it("should complain with a TypeError", function() { + var g = gen(3); + assert.deepEqual(g.next(), { value: 3, done: false }); + var complaint = g.next(g); // Sending the generator to itself. + assert.ok(complaint.value instanceof Error); + assert.strictEqual( + complaint.value.message, + "Generator is already running" + ); + assert.deepEqual(g.next(), { value: 4, done: true }); + }); +}); + +describe("completed generator", function() { + function *gen() { + return "ALL DONE"; + } + + (runningInTranslation ? it : xit) + ("should refuse to resume", function() { + var g = gen(); + + assert.deepEqual(g.next(), { + value: "ALL DONE", done: true + }); + + assertAlreadyFinished(g); + }); +}); + +describe("delegated yield", function() { + it("should delegate correctly", function() { + function *gen(condition) { + yield 0; + if (condition) { + yield 1; + yield* gen(false); + yield 2; + } + yield 3; + } + + check(gen(true), [0, 1, 0, 3, 2, 3]); + check(gen(false), [0, 3]); + }); + + it("should cope with empty delegatees", function() { + function *gen(condition) { + if (condition) { + yield 0; + yield* gen(false); + yield 1; + } + } + + check(gen(true), [0, 1]); + check(gen(false), []); + }); + + it("should support deeper nesting", function() { + function *outer(n) { + yield n; + yield* middle(n - 1, inner(n + 10)); + yield n + 1; + } + + function *middle(n, plusTen) { + yield n; + yield* inner(n - 1); + yield n + 1; + yield* plusTen; + } + + function *inner(n) { + yield n; + } + + check(outer(5), [5, 4, 3, 5, 15, 6]); + }); + + it("should pass sent values through", function() { + function *outer(n) { + yield* inner(n << 1); + yield "zxcv"; + } + + function *inner(n) { + return yield yield yield n; + } + + var g = outer(3); + assert.deepEqual(g.next(), { value: 6, done: false }); + assert.deepEqual(g.next(1), { value: 1, done: false }); + assert.deepEqual(g.next(2), { value: 2, done: false }); + assert.deepEqual(g.next(4), { value: "zxcv", done: false }); + assert.deepEqual(g.next(5), { value: void 0, done: true }); + }); + + it("should be governed by enclosing try statements", function() { + var error = new Error("thrown"); + + function *outer(n) { + try { + yield 0; + yield* inner(n); + yield 1; + } catch (err) { + yield err.message; + } + yield 4; + } + + function *inner(n) { + while (n --> 0) { + try { + if (n === 3) { + raise(error); + } + } finally { + yield n; + } + } + } + + check(outer(3), [0, 2, 1, 0, 1, 4]); + check(outer(5), [0, 4, 3, "thrown", 4]); + }); + + it("should dispatch .thrown exceptions correctly", function() { + var count = 0; + + function *gen() { + yield* inner(); + try { + yield* inner(); + } catch (err) { + // pass + } + return yield* inner(); + } + + function *inner() { + return yield count++; + } + + var g = gen(); + + assert.deepEqual(g.next(), { + value: 0, + done: false + }); + + assert.deepEqual(g.next(), { + value: 1, + done: false + }); + + assert.deepEqual(g.throw(new Error("lol")), { + value: 2, + done: false, + }); + + assert.deepEqual(g.next("sent"), { + value: "sent", + done: true + }); + }); + + it("should call .return methods of delegate iterators", function() { + var throwee = new Error("argument to gen.throw"); + var thrownFromThrow = new Error("thrown from throw method"); + var thrownFromReturn = new Error("thrown from return method"); + + function *gen(delegate) { + try { + return yield* delegate; + } catch (err) { + return err; + } + } + + function check(throwMethod, returnMethod) { + var throwCalled = false; + var returnCalled = false; + var count = 0; + var iterator = { + next: function() { + return { value: count++, done: false }; + } + }; + + iterator[iteratorSymbol] = function() { + return this; + }; + + if (throwMethod) { + iterator["throw"] = function() { + throwCalled = true; + return throwMethod.apply(this, arguments); + }; + } + + if (returnMethod) { + iterator["return"] = function() { + returnCalled = true; + return returnMethod.apply(this, arguments); + }; + } + + var g = gen(iterator); + + assert.deepEqual(g.next(), { value: 0, done: false }); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 2, done: false }); + assert.deepEqual(g.next(), { value: 3, done: false }); + + assert.strictEqual(throwCalled, false); + assert.strictEqual(returnCalled, false); + + var result = {}; + + result.throwResult = g.throw(throwee); + result.throwCalled = throwCalled; + result.returnCalled = returnCalled; + + return result; + } + + var checkResult = check(undefined, function() { + throw thrownFromReturn; + }); + if (runningInTranslation) { + // BUG: Node v0.11 and v0.12 neglect to call .return here. + assert.strictEqual(checkResult.throwResult.value, thrownFromReturn); + } else { + // This is the TypeError that results from trying to call the + // undefined .throw method of the iterator. + assert.ok(checkResult.throwResult.value instanceof TypeError); + } + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, false); + // BUG: Node v0.11 and v0.12 neglect to call .return here. + assert.strictEqual(checkResult.returnCalled, runningInTranslation); + + checkResult = check(undefined, function() { + return { value: "from return", done: true }; + }); + assert.notStrictEqual(checkResult.throwResult.value, throwee); + // This is the TypeError that results from trying to call the + // undefined .throw method of the iterator. + assert.ok(checkResult.throwResult.value instanceof TypeError); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, false); + // BUG: Node v0.11 and v0.12 neglect to call .return here. + assert.strictEqual(checkResult.returnCalled, runningInTranslation); + + var checkResult = check(function(thrown) { + return { value: "from throw", done: true }; + }, function() { + throw thrownFromReturn; + }); + assert.strictEqual(checkResult.throwResult.value, "from throw"); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, true); + assert.strictEqual(checkResult.returnCalled, false); + + var checkResult = check(function(thrown) { + throw thrownFromThrow; + }, function() { + throw thrownFromReturn; + }); + assert.strictEqual(checkResult.throwResult.value, thrownFromThrow); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, true); + assert.strictEqual(checkResult.returnCalled, false); + + var checkResult = check(undefined, undefined); + assert.notStrictEqual(checkResult.throwResult.value, throwee); + // This is the TypeError that results from trying to call the + // undefined .throw method of the iterator. + assert.ok(checkResult.throwResult.value instanceof TypeError); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, false); + assert.strictEqual(checkResult.returnCalled, false); + }); + + it("should not be required to have a .return method", function() { + function *gen(delegate) { + return yield* delegate; + } + + var inner = range(5); + var iterator = { next: inner.next.bind(inner) }; + iterator[iteratorSymbol] = function() { + return this; + }; + + var g = gen(iterator); + assert.deepEqual(g.next(), { value: 0, done: false }); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 2, done: false }); + + if (typeof g.return === "function") { + assert.deepEqual(g.return(-1), { value: -1, done: true }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + } + }); + + (runningInTranslation ? it : xit) + ("should support any iterable argument", function() { + function *gen() { + yield 0; + yield* [ + yield "one", + yield "two", + yield "three" + ]; + yield 5; + } + + check(gen(), [0, "one", "two", "three", 2, 3, 4, 5]); + + function *string() { + return yield* "asdf"; + } + + check(string(), ["a", "s", "d", "f"]); + }); + + it("should evaluate to the return value of the delegate", function() { + function *inner() { + yield 1; + return 2; + } + + function *outer(delegate) { + return yield* delegate; + } + + check(outer(inner()), [1], 2); + + var arrayDelegate = [3, 4]; + if (!runningInTranslation) { + // Node v0.11 doesn't know how to turn arrays into iterators over + // their elements without a little help. + arrayDelegate = regeneratorRuntime.values(arrayDelegate); + } + check(outer(arrayDelegate), [3, 4], void 0); // See issue #143. + + if (!runningInTranslation) { + return; + } + + check(outer({ + next: function() { + return { value: "oyez", done: true }; + } + }), [], "oyez"); + }); + + it("should work as a subexpression", function() { + function *inner(arg) { + return arg; + } + + function *gen(delegate) { + // Unfortunately these parentheses appear to be necessary. + return 1 + (yield* delegate); + } + + check(gen(inner(2)), [], 3); + check(gen(inner(3)), [], 4); + + if (!runningInTranslation) { + return; + } + + check(gen({ + next: function() { + return { value: "foo", done: true }; + } + }), [], "1foo"); + }); +}); + +describe("function declaration hoisting", function() { + it("should work even if the declarations are out of order", function() { + function *gen(n) { + yield increment(n); + + function increment(x) { + return x + 1; + } + + if (n % 2) { + yield halve(decrement(n)); + + function halve(x) { + return x >> 1; + } + + function decrement(x) { + return x - 1; + } + } else { + // The behavior of function declarations nested inside conditional + // blocks is notoriously underspecified, and in V8 it appears the + // halve function is still defined when we take this branch, so + // "undefine" it for consistency with regenerator semantics. + halve = void 0; + } + + yield typeof halve; + + yield increment(increment(n)); + } + + check(gen(3), [4, 1, "function", 5]); + check(gen(4), [5, "undefined", 6]); + }); + + it("should work for nested generator function declarations", function() { + function *outer(n) { + yield 0; + assert.ok(regeneratorRuntime.isGeneratorFunction(inner)); + return yield* inner(n); + + // Note that this function declaration comes after everything else + // in the outer function, but needs to be fully available above. + function *inner(n) { + yield n - 1; + yield n; + return yield n + 1; + } + } + + check(outer(2), [0, 1, 2, 3], 4); + }); + + it("should not interfere with function rebinding", function() { + function rebindTo(value) { + var oldValue = toBeRebound; + toBeRebound = value; + return oldValue; + } + + function *toBeRebound() { + var originalValue = toBeRebound; + yield toBeRebound; + assert.strictEqual(rebindTo(42), originalValue); + yield toBeRebound; + assert.strictEqual(rebindTo("asdf"), 42); + yield toBeRebound; + } + + var original = toBeRebound; + check(toBeRebound(), [original, 42, "asdf"]); + + function attemptToRebind(value) { + var oldValue = safe; + safe = value; + return oldValue; + } + + var safe = function *safe() { + var originalValue = safe; + yield safe; + assert.strictEqual(attemptToRebind(42), originalValue); + yield safe; + assert.strictEqual(attemptToRebind("asdf"), 42); + yield safe; + } + + original = safe; + check(safe(), [safe, safe, safe]); + }); +}); + +describe("the arguments object", function() { + it("should work in simple variadic functions", function() { + function *sum() { + var result = 0; + + for (var i = 0; i < arguments.length; ++i) { + yield result += arguments[i]; + } + + return result; + } + + check(sum(1, 2, 3), [1, 3, 6], 6); + check(sum(9, -5, 3, 0, 2), [9, 4, 7, 7, 9], 9); + }); + + it("should alias function parameters", function() { + function *gen(x, y) { + yield x; + ++arguments[0]; + yield x; + + yield y; + --arguments[1]; + yield y; + + var temp = y; + y = x; + x = temp; + + yield x; + yield y; + } + + check(gen(3, 7), [3, 4, 7, 6, 6, 4]); + check(gen(10, -5), [10, 11, -5, -6, -6, 11]); + }); + + it("should be shadowable by explicit declarations", function() { + function *asParameter(x, arguments) { + arguments = arguments + 1; + yield x + arguments; + } + + check(asParameter(4, 5), [10]); + check(asParameter("asdf", "zxcv"), ["asdfzxcv1"]); + + function *asVariable(x) { + // TODO References to arguments before the variable declaration + // seem to see the object instead of the undefined value. + var arguments = x + 1; + yield arguments; + } + + check(asVariable(4), [5]); + check(asVariable("asdf"), ["asdf1"]); + }); + + it("should not get confused by properties", function() { + function *gen(args) { + var obj = { arguments: args }; + yield obj.arguments; + obj.arguments = "oyez"; + yield obj; + } + + check(gen(42), [42, { arguments: "oyez" }]); + }); + + it("supports .callee", function() { + function *gen(doYield) { + yield 1; + if (doYield) { + yield 2; + } else { + yield 3 + yield* arguments.callee(true); + yield 4 + } + yield 5; + } + + check(gen(false), [1, 3, 1, 2, 5, 4, 5]); + }); +}); + +describe("catch parameter shadowing", function() { + it("should leave outer variables unmodified", function() { + function *gen(x) { + var y = x + 1; + try { + throw x + 2; + } catch (x) { + yield x; + x += 1; + yield x; + } + yield x; + try { + throw x + 3; + } catch (y) { + yield y; + y *= 2; + yield y; + } + yield y; + } + + check(gen(1), [3, 4, 1, 4, 8, 2]); + check(gen(2), [4, 5, 2, 5, 10, 3]); + }); + + it("should not replace variables defined in inner scopes", function() { + function *gen(x) { + try { + throw x; + } catch (x) { + yield x; + + yield (function(x) { + return x += 1; + }(x + 1)); + + yield (function() { + var x = arguments[0]; + return x * 2; + }(x + 2)); + + yield (function() { + function notCalled(x) { + throw x; + } + + x >>= 1; + return x; + }()); + + yield x -= 1; + } + + yield x; + } + + check(gen(10), [10, 12, 24, 5, 4, 10]); + check(gen(11), [11, 13, 26, 5, 4, 11]); + }); + + it("should allow nested catch parameters of the same name", function() { + function *gen() { + try { + raise("e1"); + } catch (e) { + yield e; + try { + raise("e2"); + } catch (e) { + yield e; + } + yield e; + } + } + + check(gen(), ["e1", "e2", "e1"]); + }); + + it("should not interfere with non-referential identifiers", function() { + function *gen() { + try { + yield 1; + raise(new Error("oyez")); + yield 2; + } catch (e) { + yield 3; + e.e = "e.e"; + e[e.message] = "e.oyez"; + return { + e: e, + identity: function(x) { + var e = x; + return e; + } + }; + } + yield 4; + } + + var g = gen(); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 3, done: false }); + + var info = g.next(); + assert.strictEqual(info.done, true); + assert.strictEqual(info.value.e.message, "oyez"); + assert.strictEqual(info.value.e.e, "e.e"); + assert.strictEqual(info.value.e.oyez, "e.oyez"); + assert.strictEqual(info.value.identity("same"), "same"); + }); +}); + +describe("empty while loops", function() { + it("should be preserved in generated code", function() { + function *gen(x) { + while (x) { + // empty while loop + } + + do { + // empty do-while loop + } while (x); + + return gen.toString(); + } + + var info = gen(false).next(); + assert.strictEqual(info.done, true); + assert.ok(/empty while loop/.test(info.value)); + assert.ok(/empty do-while loop/.test(info.value)); + }); +}); + +describe("object literals with multiple yields", function() { + it("should receive different sent values", function() { + function *gen(fn) { + return { + a: yield "a", + b: yield "b", + c: fn(yield "c", yield "d"), + d: [yield "e", yield "f"] + }; + } + + check(gen(function sum(x, y) { + return x + y; + }), ["a", "b", "c", "d", "e", "f"], { + a: 1, + b: 2, + c: 3 + 4, + d: [5, 6] + }); + }); +}); + +describe("generator .throw method", function() { + (runningInTranslation ? it : xit)("should complete generator", function() { + function *gen(x) { + yield 2; + throw 1; + } + + var u = gen(); + + u.next(); + + try { + u.throw(2); + } catch (err) { + assert.strictEqual(err, 2); + } + + assertAlreadyFinished(u); + }); + + it("should work after the final call to .next", function() { + function *gen() { + yield 1; + } + + var g = gen(); + assert.deepEqual(g.next(), { value: 1, done: false }); + + var exception = new Error("unhandled exception"); + try { + g.throw(exception); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, exception); + } + }); + + it("should immediately complete a new-born generator", function() { + var began = false; + + function *gen() { + began = true; + yield 1; + } + + var g = gen(); + var exception = new Error("unhandled exception"); + try { + g.throw(exception); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, exception); + assert.strictEqual(began, false); + } + }); + + it("should not propagate errors handled inside a delegate", function() { + function *outer() { + try { + yield* inner(); + } catch (err) { + return -1; + } + return 1; + } + + function *inner() { + try { + yield void 0; + } catch (e) { + return; + } + } + + var g = outer(); + g.next(); + assert.equal(g.throw(new Error('foo')).value, 1); + }); + + it("should propagate errors unhandled inside a delegate", function() { + function *outer() { + try { + yield* inner(); + } catch (err) { + return -1; + } + return 1; + } + + function *inner() { + yield void 0; + } + + var g = outer(); + g.next(); + assert.equal(g.throw(new Error('foo')).value, -1); + }); +}); + +describe("unqualified function calls", function() { + it("should have a global `this` object", function() { + function getThis() { + return this; + } + + // This is almost certainly the global object, but there's a chance it + // might be null or undefined (in strict mode). + var unqualifiedThis = getThis(); + + function *invoke() { + // It seems like a bug in the ES6 spec that we have to yield an + // argument instead of just calling (yield)(). + return (yield "dummy")(); + } + + var g = invoke(); + var info = g.next(); + + assert.deepEqual(info, { value: "dummy", done: false }); + + info = g.next(getThis); + + // Avoid using assert.strictEqual when the arguments might equal the + // global object, since JSON.stringify chokes on circular structures. + assert.ok(info.value === unqualifiedThis); + + assert.strictEqual(info.done, true); + }); +}); + +describe("yield* expression results", function () { + it("have correct values", function () { + function* foo() { + yield 0; + return yield* bar(); + } + + function* bar() { + yield 1; + return 2; + } + + check(foo(), [0, 1], 2); + }); + + it("can be used in complex expressions", function () { + function pumpNumber(gen) { + var n = 0; + + while (true) { + var res = n > 0 ? gen.next(n) : gen.next(); + n = res.value; + if (res.done) { + return n; + } + } + } + + function* foo() { + return (yield* bar()) + (yield* bar()); + } + + function* bar() { + return (yield 2) + (yield 3); + } + + assert.strictEqual(pumpNumber(bar()), 5); + assert.strictEqual(pumpNumber(foo()), 10); + }); +}); + +describe("isGeneratorFunction", function() { + it("should work for function declarations", function() { + // Do the assertions up here to make sure the generator function is + // marked at the beginning of the block the function is declared in. + assert.strictEqual( + regeneratorRuntime.isGeneratorFunction(genFun), + true + ); + + assert.strictEqual( + regeneratorRuntime.isGeneratorFunction(normalFun), + false + ); + + function normalFun() { + return 0; + } + + function *genFun() { + yield 0; + } + }); + + it("should work for function expressions", function() { + assert.strictEqual( + regeneratorRuntime.isGeneratorFunction(function *genFun() { + yield 0; + }), + true + ); + + assert.strictEqual( + regeneratorRuntime.isGeneratorFunction(function normalFun() { + return 0; + }), + false + ); + }); +}); + +describe("new expressions", function() { + it("should be able to contain yield sub-expressions", function() { + function A(first, second) { + this.first = first; + this.second = second; + } + + function *gen() { + return yield new (yield 0)(yield 1, yield 2); + } + + var g = gen(); + + assert.deepEqual(g.next(), { value: 0, done: false }); + assert.deepEqual(g.next(A), { value: 1, done: false }); + assert.deepEqual(g.next("asdf"), { value: 2, done: false }); + + var info = g.next("zxcv"); + assert.strictEqual(info.done, false); + assert.ok(info.value instanceof A); + assert.strictEqual(info.value.first, "asdf"); + assert.strictEqual(info.value.second, "zxcv"); + + assert.deepEqual(g.next("qwer"), { value: "qwer", done: true }); + }); +}); + +describe("block binding", function() { + it("should translate block binding correctly", function() { + "use strict"; + + function *gen() { + var a$0 = 0, a$1 = 1; + + let a = 3; + + { + let a = 1; + yield a + a$0; + } + + { + let a = 2; + yield a - 1 + a$1; + } + + yield a; + } + + var g = gen(); + + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 2, done: false }); + assert.deepEqual(g.next(), { value: 3, done: false }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + }); + + it("should translate block binding with iife correctly", function() { + "use strict"; + + function *gen() { + let arr = []; + + for (let x = 0; x < 3; x++) { + let y = x; + arr.push(function() { return y; }); + } + + { + let x; + while( x = arr.pop() ) { + yield x; + } + } + } + + var g = gen(); + + assert.equal(g.next().value(), 2); + assert.equal(g.next().value(), 1); + assert.equal(g.next().value(), 0); + assert.deepEqual(g.next(), { value: void 0, done: true }); + }); +}); + +describe("newborn generators", function() { + it("should be able to yield* non-newborn generators", function() { + function *inner() { + return [yield 1, yield 2]; + } + + function *outer(delegate) { + return yield* delegate; + } + + var n = inner(); + + assert.deepEqual(n.next(), { + value: 1, + done: false + }); + + var g = outer(n); + + // I would really like to be able to pass 3 to g.next here, but V8 + // ignores values sent to newborn generators, and SpiderMonkey throws + // a TypeError. + assert.deepEqual(g.next(), { + value: 2, + done: false + }); + + assert.deepEqual(g.next(4), { + value: [void 0, 4], + done: true + }); + }); + + it("should support the ignore-initial-yield wrapper idiom", function() { + var markers = []; + + function *inner() { + markers.push(0); + var sent1 = yield 1; + markers.push(2); + var sent2 = yield 2; + markers.push(3); + return [sent1, sent2]; + } + + function wrapper(delegate) { + var gen = (function*() { + // This yield is the "initial yield" whose argument we ignore. + var sent = yield "ignored", info; + + markers.push(1); + + while (!(info = delegate.next(sent)).done) { + sent = yield info.value; + } + + markers.push(4); + + return info.value; + })(); + + // Ensure that gen is not newborn and that the next invocation of + // gen.next(value) can send value to the initial yield expression. + gen.next(); + + return gen; + } + + var n = inner(); + + assert.deepEqual(n.next(), { + value: 1, + done: false + }); + + var g = wrapper(n); + + // Unlike in the previous spec, it's fine to pass 3 to g.next here, + // because g is not newborn, because g.next was already called once + // before g was returned from the wrapper function. + assert.deepEqual(g.next(3), { + value: 2, + done: false + }); + + assert.deepEqual(g.next(4), { + value: [3, 4], + done: true + }); + + // Ensure we encountered the marker points in the expected order. + assert.deepEqual(markers, [0, 1, 2, 3, 4]); + }); + + it("should allow chaining newborn and non-newborn generators", function() { + function *range(n) { + for (var i = 0; i < n; ++i) { + yield i; + } + } + + function *chain(a, b) { + yield* a; + yield* b; + } + + check(chain(range(3), range(5)), [0, 1, 2, 0, 1, 2, 3, 4]); + + function *y3(x) { + return yield yield yield x; + } + + function *y5(x) { + return yield yield yield yield yield x; + } + + check( + chain(y3("foo"), y5("bar")), + ["foo", 1, 2, "bar", 4, 5, 6, 7] + ); + + var g3 = y3("three"); + assert.deepEqual(g3.next(), { + value: "three", + done: false + }); + + var g5 = y5("five"); + assert.deepEqual(g5.next(), { + value: "five", + done: false + }); + + var undef; // A little easier to read than void 0. + check(chain(g3, g5), [undef, 1, undef, 3, 4, 5]); + }); +}); + +describe("labeled break and continue statements", function() { + it("should be able to exit multiple try statements", function() { + var e1 = "first"; + var e2 = "second"; + var e3 = "third"; + var e4 = "fourth"; + + function *gen(n, which) { + try { + yield 0; + raise(e1); + + } finally { + yield 1; + + loop: + for (var i = 0; i < n; ++i) { + yield i; + + try { + raise(e2); + } finally { + yield 2; + + try { + raise(e3); + } finally { + yield 3; + + try { + raise(e4); + } finally { + yield 4; + + if (which === "break") { + yield "breaking"; + break loop; + } + + if (which === "continue") { + yield "continuing"; + continue loop; + } + + yield 5; + } + } + } + } + + yield 6; + } + } + + try { + check(gen(1, "break"), [ + 0, 1, 0, 2, 3, 4, "breaking", 6 + ]); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, e1); + } + + try { + check(gen(3, "continue"), [ + 0, 1, 0, 2, 3, 4, "continuing", + 1, 2, 3, 4, "continuing", + 2, 2, 3, 4, "continuing", + 6 // Loop finished naturally. + ]); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, e1); + } + + try { + check(gen(3, "neither"), [ + 0, 1, 0, 2, 3, 4, 5 + ]); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, e4); + } + }); + + it("should allow breaking from any labeled statement", function() { + function* gen(limit) { + yield 0; + + for (var i = 0; i < limit; ++i) { + yield 1; + + label1: { + yield 2; + break label1; + yield 3; + } + + label2: + if (limit === 3) label3: { + yield 4; + if (i === 0) break label2; + yield 5; + if (i === 1) break label3; + label4: yield 6; + // This should break from the for-loop. + if (i === 2) xxx: break; + yield 7; + } + + // This should be a no-op. + xxx: break xxx; + + yield 8 + } + + yield 9; + } + + check(gen(0), [0, 9]); + check(gen(1), [0, 1, 2, 8, 9]); + check(gen(2), [0, 1, 2, 8, 1, 2, 8, 9]); + check(gen(3), [0, 1, 2, 4, 8, 1, 2, 4, 5, 8, 1, 2, 4, 5, 6, 9]); + }); +}); + +describe("for loop with var decl and no update expression", function() { + // https://github.com/facebook/regenerator/issues/103 + function *range() { + for (var i = 0; false; ) { + } + } + + it("should compile and run", function() { + check(range(), []); + }); +}); + +describe("generator function prototype", function() { + function getProto(obj) { + return Object.getPrototypeOf + ? Object.getPrototypeOf(obj) + : obj.__proto__; + } + + it("should follow the expected object model", function() { + var GeneratorFunctionPrototype = getProto(f); + var GeneratorFunction = GeneratorFunctionPrototype.constructor; + + assert.strictEqual(GeneratorFunction.name, 'GeneratorFunction'); + assert.strictEqual(GeneratorFunction.prototype, + GeneratorFunctionPrototype); + assert.strictEqual(GeneratorFunctionPrototype.prototype.constructor, + GeneratorFunctionPrototype); + assert.strictEqual(GeneratorFunctionPrototype.prototype, + getProto(f.prototype)); + assert.strictEqual(getProto(GeneratorFunctionPrototype), + Function.prototype); + + if (typeof process === "undefined" || + process.version.slice(1, 3) === "0.") { + // Node version strings start with 0. + assert.strictEqual(GeneratorFunctionPrototype.name, + "GeneratorFunctionPrototype"); + } else if (process.version.slice(1, 3) === "1.") { + // iojs version strings start with 1., and iojs gets this .name + // property wrong. TODO report this? + assert.strictEqual(GeneratorFunctionPrototype.name, ""); + } + + assert.strictEqual(typeof f2, "function"); + assert.strictEqual(f2.constructor, GeneratorFunction); + assert.ok(f2 instanceof GeneratorFunction); + assert.strictEqual(f2.name, "f2"); + + var g = f(); + assert.ok(g instanceof f); + assert.strictEqual(getProto(g), f.prototype); + + assert.deepEqual([], Object.getOwnPropertyNames(f.prototype)); + // assert.deepEqual([], Object.getOwnPropertyNames(g)); + + f.prototype.x = 42; + + var g2 = f(); + assert.strictEqual(g2.x, 42); + + var g3 = new f(); + assert.strictEqual(g3.x, 42); + + function* f2() { + yield 1; + } + + assert.strictEqual(getProto(f), getProto(f2)); + assert.strictEqual(f.hasOwnProperty('constructor'), false); + assert.strictEqual(getProto(f).constructor.name, 'GeneratorFunction'); + + // Intentionally at the end to test hoisting. + function* f() { + yield this; + } + + function* f() { + yield 1; + } + + var f2 = f; + f = 42; + var g = f2(); + + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + assert.ok(g instanceof f2); + }); +}); + +describe("for-of loops", function() { + (runningInTranslation ? it : xit) + ("should work for Arrays", function() { + var sum = 0; + for (var x of [1, 2].concat(3)) { + sum += x; + } + assert.strictEqual(sum, 6); + }); + + it("should work for generators", function() { + var value, values = []; + for (value of range(3)) + values.push(value); + assert.deepEqual(values, [0, 1, 2]); + }); + + it("should work inside of generators", function() { + function *yieldPermutations(list) { + if (list.length < 2) { + yield list; + return 1; + } + + var count = 0; + var first = list.slice(0, 1); + var genRest = yieldPermutations(list.slice(1)); + + for (var perm of genRest) { + for (var i = 0; i < list.length; ++i) { + var prefix = perm.slice(0, i); + var suffix = perm.slice(i); + yield prefix.concat(first, suffix); + } + + count += i; + } + + return count; + } + + var count = 0; + for (var perm of yieldPermutations([])) { + assert.deepEqual(perm, []); + ++count; + } + assert.strictEqual(count, 1); + + check(yieldPermutations([1]), [[1]], 1); + + check(yieldPermutations([2, 1]), [ + [2, 1], + [1, 2] + ], 2); + + check(yieldPermutations([1,3,2]), [ + [1, 3, 2], + [3, 1, 2], + [3, 2, 1], + [1, 2, 3], + [2, 1, 3], + [2, 3, 1] + ], 6); + }); +}); + +describe("generator return method", function() { + if (!runningInTranslation) { + // The return method has not been specified or implemented natively, + // yet, so these tests need only pass in translation. + return; + } + + it("should work with newborn generators", function() { + function *gen() { + yield 0; + } + + var g = gen(); + + assert.deepEqual(g.return("argument"), { + value: "argument", + done: true + }); + + assertAlreadyFinished(g); + }); + + it("should behave as if generator actually returned", function() { + var executedFinally = false; + + function *gen() { + try { + yield 0; + } catch (err) { + assert.ok(false, "should not have executed the catch handler"); + } finally { + executedFinally = true; + } + } + + var g = gen(); + assert.deepEqual(g.next(), { value: 0, done: false }); + + assert.deepEqual(g.return("argument"), { + value: "argument", + done: true + }); + + assert.strictEqual(executedFinally, true); + assertAlreadyFinished(g); + }); + + it("should return both delegate and delegator", function() { + var checkpoints = []; + + function* callee(errorToThrow) { + try { + yield 1; + yield 2; + } finally { + checkpoints.push("callee finally"); + if (errorToThrow) { + throw errorToThrow; + } + } + } + + function* caller(errorToThrow) { + try { + yield 0; + yield* callee(errorToThrow); + yield 3; + } finally { + checkpoints.push("caller finally"); + } + } + + var g1 = caller(); + + assert.deepEqual(g1.next(), { value: 0, done: false }); + assert.deepEqual(g1.next(), { value: 1, done: false }); + assert.deepEqual(g1.return(-1), { value: -1, done: true }); + assert.deepEqual(checkpoints, [ + "callee finally", + "caller finally" + ]); + + var error = new Error("thrown from callee"); + var g2 = caller(error); + + assert.deepEqual(g2.next(), { value: 0, done: false }); + assert.deepEqual(g2.next(), { value: 1, done: false }); + + try { + g2.return(-1); + assert.ok(false, "should have thrown an exception"); + } catch (thrown) { + assert.strictEqual(thrown, error); + } + + assert.deepEqual(checkpoints, [ + "callee finally", + "caller finally", + "callee finally", + "caller finally" + ]); + }); +}); + +describe("expressions containing yield subexpressions", function() { + it("should evaluate all subexpressions before yielding", function() { + function *gen(x) { + return x * (yield (function(y) { x = y })); + } + + var g = gen(2); + var result = g.next(); + assert.strictEqual(result.done, false); + + result.value(5); + + assert.deepEqual(g.next(5), { + value: 10, + done: true + }); + }); + + it("should work even with getter member expressions", function() { + function *gen() { + return a.b + (yield "asdf"); + } + + var a = {}; + var b = 0; + + Object.defineProperty(a, "b", { + get: function() { + return ++b; + } + }); + + var g = gen(); + + assert.strictEqual(a.b, 1); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + assert.strictEqual(a.b, 3); + + assert.deepEqual(g.next(2), { + value: 4, + done: true + }); + }); + + it("should evaluate all array elements before yielding", function() { + function *gen() { + return [a, yield "asdf", a]; + } + + var a = 1; + var g = gen(); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + a = 3; + + assert.deepEqual(g.next(2), { + value: [1, 2, 3], + done: true + }); + }); + + it("should handle callee member expressions correctly", function() { + function *gen() { + a = a.slice(0).concat(yield "asdf"); + return a; + } + + var a = []; + var g = gen(); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + a.push(1); + + assert.deepEqual(g.next(2), { + value: [2], + done: true + }); + }); + + it("should handle implicit stringification correctly", function() { + function *gen() { + return a + (yield "asdf"); + } + + var a = [1, 2]; + var g = gen(); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + a = [4,5]; + + assert.deepEqual(g.next(",3"), { + value: "1,2,3", + done: true + }); + }); +}); diff --git a/packages/babel-plugin-transform-regenerator/test/tests.transform.js b/packages/babel-plugin-transform-regenerator/test/tests.transform.js new file mode 100644 index 0000000000..e67e1d9569 --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/test/tests.transform.js @@ -0,0 +1,47 @@ +var regenerator = require(".."); +var babylon = require("babylon"); +var assert = require("assert"); +var babel = require("babel-core"); +var t = require("babel-types"); + +describe("_blockHoist nodes", function() { + it("should be hoisted to the outer body", function() { + var foo; + var names = []; + var ast = babylon.parse([ + "function *foo(doNotHoistMe, hoistMe) {", + " var sent = yield doNotHoistMe();", + " hoistMe();", + " names.push(sent);", + " return 123;", + "}" + ].join("\n")); + + var hoistMeStmt = ast.program.body[0].body.body[1]; + t.assertExpressionStatement(hoistMeStmt); + t.assertCallExpression(hoistMeStmt.expression); + t.assertIdentifier(hoistMeStmt.expression.callee); + assert.strictEqual(hoistMeStmt.expression.callee.name, "hoistMe"); + + hoistMeStmt._blockHoist = 1; + + eval(babel.transformFromAst(ast, null, { plugins: [regenerator] }).code); + + assert.strictEqual(typeof foo, "function"); + assert.ok(regeneratorRuntime.isGeneratorFunction(foo)); + assert.strictEqual(names.length, 0); + + var g = foo(function doNotHoistMe() { + names.push("doNotHoistMe"); + return "yielded"; + }, function hoistMe() { + names.push("hoistMe"); + }); + + assert.deepEqual(names, ["hoistMe"]); + assert.deepEqual(g.next(), { value: "yielded", done: false }); + assert.deepEqual(names, ["hoistMe", "doNotHoistMe"]); + assert.deepEqual(g.next("oyez"), { value: 123, done: true }); + assert.deepEqual(names, ["hoistMe", "doNotHoistMe", "oyez"]); + }); +}); From 40ec120b3271cb573d7cf331478d84a876e2b080 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:29:32 +0000 Subject: [PATCH 160/174] temporarily hide regenerator tests --- .../.test/async.es5.js | 805 +++ .../{test => .test}/async.es6.js | 0 .../{test => .test}/index.html | 0 .../.test/mocha.css | 1 + .../.test/mocha.js | 1 + .../{test => .test}/nothing-to-transform.js | 0 .../{test => .test}/run.js | 0 .../.test/tests.es5.js | 5262 +++++++++++++++++ .../{test => .test}/tests.es6.js | 0 .../{test => .test}/tests.transform.js | 0 10 files changed, 6069 insertions(+) create mode 100644 packages/babel-plugin-transform-regenerator/.test/async.es5.js rename packages/babel-plugin-transform-regenerator/{test => .test}/async.es6.js (100%) rename packages/babel-plugin-transform-regenerator/{test => .test}/index.html (100%) create mode 120000 packages/babel-plugin-transform-regenerator/.test/mocha.css create mode 120000 packages/babel-plugin-transform-regenerator/.test/mocha.js rename packages/babel-plugin-transform-regenerator/{test => .test}/nothing-to-transform.js (100%) rename packages/babel-plugin-transform-regenerator/{test => .test}/run.js (100%) create mode 100644 packages/babel-plugin-transform-regenerator/.test/tests.es5.js rename packages/babel-plugin-transform-regenerator/{test => .test}/tests.es6.js (100%) rename packages/babel-plugin-transform-regenerator/{test => .test}/tests.transform.js (100%) diff --git a/packages/babel-plugin-transform-regenerator/.test/async.es5.js b/packages/babel-plugin-transform-regenerator/.test/async.es5.js new file mode 100644 index 0000000000..7285217adf --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.test/async.es5.js @@ -0,0 +1,805 @@ +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +var assert = require("assert"); + +describe("async functions and await expressions", function () { + Promise = require("promise"); + + describe("regeneratorRuntime", function () { + it("should be defined globally", function () { + var global = Function("return this")(); + assert.ok("regeneratorRuntime" in global); + assert.strictEqual(global.regeneratorRuntime, regeneratorRuntime); + }); + + it("should have a .wrap method", function () { + assert.strictEqual(typeof regeneratorRuntime.wrap, "function"); + }); + }); + + describe("Promise", function () { + it("should be defined globally", function () { + var global = Function("return this")(); + assert.ok("Promise" in global); + assert.strictEqual(global.Promise, Promise); + }); + + it("should be a function", function () { + assert.strictEqual(typeof Promise, "function"); + }); + }); + + describe("no-await async function", function () { + it("should return a Promise", function (done) { + var called = false; + + function noAwait(value) { + return regeneratorRuntime.async(function noAwait$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + called = true; + return _context.abrupt("return", value); + + case 2: + case "end": + return _context.stop(); + } + }, null, this); + } + + var promise = noAwait("asdf"); + assert.strictEqual(called, true); + + promise.then(function (value) { + assert.strictEqual(called, true); + assert.strictEqual(value, "asdf"); + done(); + }).catch(done); + }); + }); + + describe("one-await async function", function () { + it("should finish asynchronously", function (done) { + var flag1 = false; + var flag2 = false; + + function oneAwait(value) { + var result; + return regeneratorRuntime.async(function oneAwait$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + flag1 = true; + _context2.next = 3; + return regeneratorRuntime.awrap(value); + + case 3: + result = _context2.sent; + + flag2 = true; + return _context2.abrupt("return", result); + + case 6: + case "end": + return _context2.stop(); + } + }, null, this); + } + + var promise = oneAwait("asdf"); + assert.strictEqual(flag1, true); + assert.strictEqual(flag2, false); + + promise.then(function (value) { + assert.strictEqual(flag2, true); + assert.strictEqual(value, "asdf"); + done(); + }).catch(done); + }); + }); + + describe("nested async function calls", function () { + it("should evaluate in the right order", function (done) { + var markers = []; + + function innerMost(marker) { + return regeneratorRuntime.async(function innerMost$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + markers.push(marker); + _context3.next = 3; + return regeneratorRuntime.awrap(marker); + + case 3: + return _context3.abrupt("return", _context3.sent); + + case 4: + case "end": + return _context3.stop(); + } + }, null, this); + } + + function inner(marker) { + return regeneratorRuntime.async(function inner$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + markers.push(marker); + + _context4.t0 = assert; + _context4.next = 4; + return regeneratorRuntime.awrap(innerMost(marker + 1)); + + case 4: + _context4.t1 = _context4.sent; + _context4.t2 = marker + 1; + + _context4.t0.strictEqual.call(_context4.t0, _context4.t1, _context4.t2); + + markers.push(marker + 2); + + _context4.t3 = assert; + _context4.next = 11; + return regeneratorRuntime.awrap(innerMost(marker + 3)); + + case 11: + _context4.t4 = _context4.sent; + _context4.t5 = marker + 3; + + _context4.t3.strictEqual.call(_context4.t3, _context4.t4, _context4.t5); + + markers.push(marker + 4); + + case 15: + case "end": + return _context4.stop(); + } + }, null, this); + } + + function outer() { + return regeneratorRuntime.async(function outer$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + markers.push(0); + _context5.next = 3; + return regeneratorRuntime.awrap(inner(1)); + + case 3: + markers.push(6); + _context5.next = 6; + return regeneratorRuntime.awrap(inner(7)); + + case 6: + markers.push(12); + + case 7: + case "end": + return _context5.stop(); + } + }, null, this); + } + + outer().then(function () { + var expected = []; + for (var i = 0; i <= 12; ++i) expected.push(i); + assert.deepEqual(markers, expected); + done(); + }).catch(done); + }); + }); + + describe("dependent promises", function () { + it("should be awaitable out of order", function (done) { + function outer(value) { + var resolved, p1, v2, v1; + return regeneratorRuntime.async(function outer$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + resolved = false; + p1 = new Promise(function (resolve) { + setTimeout(function () { + resolve(value + 1); + resolved = true; + }, 0); + }); + + assert.strictEqual(resolved, false); + + _context6.next = 5; + return regeneratorRuntime.awrap(p1.then(function (value) { + return value + 1; + })); + + case 5: + v2 = _context6.sent; + + assert.strictEqual(resolved, true); + + _context6.next = 9; + return regeneratorRuntime.awrap(p1); + + case 9: + v1 = _context6.sent; + return _context6.abrupt("return", [v1, v2]); + + case 11: + case "end": + return _context6.stop(); + } + }, null, this); + } + + outer(1).then(function (pair) { + assert.deepEqual(pair, [2, 3]); + done(); + }).catch(done); + }); + }); + + describe("rejected promises", function () { + it("should cause await expressions to throw", function (done) { + var error = new Error("rejected"); + + function f(arg) { + return regeneratorRuntime.async(function f$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + _context7.prev = 0; + _context7.next = 3; + return regeneratorRuntime.awrap(arg); + + case 3: + return _context7.abrupt("return", _context7.sent); + + case 6: + _context7.prev = 6; + _context7.t0 = _context7["catch"](0); + + assert.strictEqual(_context7.t0, error); + return _context7.abrupt("return", "did throw"); + + case 10: + case "end": + return _context7.stop(); + } + }, null, this, [[0, 6]]); + } + + Promise.all([f(Promise.reject(error)), f(Promise.resolve("did not throw"))]).then(function (results) { + assert.deepEqual(results, ["did throw", "did not throw"]); + done(); + }).catch(done); + }); + + it("should be returned by exceptional async functions", function (done) { + var error = new Error("rejected"); + + function e(arg) { + return regeneratorRuntime.async(function e$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + if (!arg) { + _context8.next = 2; + break; + } + + throw arg; + + case 2: + return _context8.abrupt("return", "did not throw"); + + case 3: + case "end": + return _context8.stop(); + } + }, null, this); + } + + function f(arg) { + return regeneratorRuntime.async(function f$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 2; + return regeneratorRuntime.awrap(e(arg)); + + case 2: + return _context9.abrupt("return", _context9.sent); + + case 3: + case "end": + return _context9.stop(); + } + }, null, this); + } + + function g(arg) { + return regeneratorRuntime.async(function g$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + _context10.next = 2; + return regeneratorRuntime.awrap(f(arg)); + + case 2: + return _context10.abrupt("return", _context10.sent); + + case 3: + case "end": + return _context10.stop(); + } + }, null, this); + } + + function h(arg) { + return regeneratorRuntime.async(function h$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + _context11.next = 2; + return regeneratorRuntime.awrap(Promise.all([g(arg), Promise.resolve("dummy")])); + + case 2: + return _context11.abrupt("return", _context11.sent); + + case 3: + case "end": + return _context11.stop(); + } + }, null, this); + } + + Promise.all([h(error).then(function () { + done(new Error("should not have resolved")); + }, function (e) { + assert.strictEqual(e, error); + return "ok1"; + }), h(null).then(function (result) { + assert.deepEqual(result, ["did not throw", "dummy"]); + return "ok2"; + })]).then(function (results) { + assert.deepEqual(results, ["ok1", "ok2"]); + done(); + }).catch(done); + }); + + it("should propagate failure when returned", function () { + var rejection = new Error("rejection"); + + function f() { + return regeneratorRuntime.async(function f$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + return _context12.abrupt("return", new Promise(function (resolve, reject) { + reject(rejection); + })); + + case 1: + case "end": + return _context12.stop(); + } + }, null, this); + } + + return f().then(function (result) { + assert.ok(false, "should have been rejected"); + }, function (error) { + assert.strictEqual(error, rejection); + }); + }); + }); + + describe("async function expressions", function () { + it("should be allowed", function (done) { + (function _callee(arg) { + return regeneratorRuntime.async(function _callee$(_context13) { + while (1) switch (_context13.prev = _context13.next) { + case 0: + _context13.next = 2; + return regeneratorRuntime.awrap(arg); + + case 2: + return _context13.abrupt("return", _context13.sent); + + case 3: + case "end": + return _context13.stop(); + } + }, null, this); + })(Promise.resolve(1234)).then(function (value) { + assert.strictEqual(value, 1234); + done(); + }).catch(done); + }); + }); +}); + +describe("async generator functions", function () { + it("should return a working AsyncIterator", function () { + var _marked = [gen].map(regeneratorRuntime.mark); + + var markers = []; + + function gen(arg) { + var sent, result; + return regeneratorRuntime.async(function gen$(_context14) { + while (1) switch (_context14.prev = _context14.next) { + case 0: + markers.push(0); + _context14.next = 3; + return arg; + + case 3: + sent = _context14.sent; + + markers.push(1); + _context14.next = 7; + return regeneratorRuntime.awrap(sent); + + case 7: + result = _context14.sent; + + markers.push(2); + _context14.t0 = assert; + _context14.t1 = regeneratorRuntime; + _context14.next = 13; + return "second"; + + case 13: + _context14.t2 = _context14.sent; + _context14.next = 16; + return _context14.t1.awrap.call(_context14.t1, _context14.t2); + + case 16: + _context14.t3 = _context14.sent; + + _context14.t0.strictEqual.call(_context14.t0, _context14.t3, "sent after second"); + + markers.push(3); + return _context14.abrupt("return", result); + + case 20: + case "end": + return _context14.stop(); + } + }, _marked[0], this); + } + + var iter = gen("initial argument"); + assert.deepEqual(markers, []); + + var firstPromise = iter.next(); + assert.deepEqual(markers, [0]); + + return firstPromise.then(function (firstResult) { + assert.deepEqual(firstResult, { + value: "initial argument", + done: false + }); + + assert.deepEqual(markers, [0]); + + return iter.next(new Promise(function (resolve) { + setTimeout(resolve, 100); + }).then(function () { + assert.deepEqual(markers, [0, 1]); + return "will become final result"; + })); + }).then(function (secondResult) { + assert.deepEqual(secondResult, { + value: "second", + done: false + }); + + assert.deepEqual(markers, [0, 1, 2]); + + return iter.next("sent after second"); + }).then(function (finalResult) { + assert.deepEqual(markers, [0, 1, 2, 3]); + assert.deepEqual(finalResult, { + value: "will become final result", + done: true + }); + }); + }); + + it("should keep results in order", function () { + var _marked2 = [range].map(regeneratorRuntime.mark); + + function range(limit) { + var before, after, i; + return regeneratorRuntime.async(function range$(_context15) { + while (1) switch (_context15.prev = _context15.next) { + case 0: + before = []; + after = []; + i = 0; + + case 3: + if (!(i < limit)) { + _context15.next = 11; + break; + } + + before.push(i); + _context15.next = 7; + return i; + + case 7: + after.push(i); + + case 8: + ++i; + _context15.next = 3; + break; + + case 11: + assert.deepEqual(before, after); + return _context15.abrupt("return", before); + + case 13: + case "end": + return _context15.stop(); + } + }, _marked2[0], this); + } + + var limit = 10; + var iter = range(limit); + var promises = []; + var results = []; + + for (var i = 0; i < limit; ++i) { + var promise = iter.next(); + promises.push(promise); + + promise.then(function (result) { + assert.strictEqual(result.done, false); + results.push(result); + }); + } + + assert.deepEqual(results, []); + + return Promise.all(promises).then(function (promiseResults) { + assert.deepEqual(results, promiseResults); + + return iter.next(); + }).then(function (finalResult) { + assert.deepEqual(results.map(function (result) { + return result.value; + }), finalResult.value); + + assert.strictEqual(finalResult.done, true); + }); + }); + + it("should be able to handle many awaits", function () { + var _marked3 = [gen].map(regeneratorRuntime.mark); + + var awaitCount = 0; + + function countAwait(i) { + return Promise.resolve(i).then(function () { + ++awaitCount; + }); + } + + function gen(limit) { + var i; + return regeneratorRuntime.async(function gen$(_context16) { + while (1) switch (_context16.prev = _context16.next) { + case 0: + _context16.next = 2; + return regeneratorRuntime.awrap(countAwait(0)); + + case 2: + _context16.next = 4; + return 1; + + case 4: + _context16.next = 6; + return regeneratorRuntime.awrap(countAwait(2)); + + case 6: + _context16.next = 8; + return regeneratorRuntime.awrap(countAwait(3)); + + case 8: + _context16.next = 10; + return 4; + + case 10: + _context16.next = 12; + return regeneratorRuntime.awrap(countAwait(5)); + + case 12: + _context16.next = 14; + return regeneratorRuntime.awrap(countAwait(6)); + + case 14: + _context16.next = 16; + return regeneratorRuntime.awrap(countAwait(7)); + + case 16: + _context16.next = 18; + return 8; + + case 18: + i = 0; + + case 19: + if (!(i < limit)) { + _context16.next = 25; + break; + } + + _context16.next = 22; + return regeneratorRuntime.awrap(countAwait(i)); + + case 22: + ++i; + _context16.next = 19; + break; + + case 25: + return _context16.abrupt("return", "done"); + + case 26: + case "end": + return _context16.stop(); + } + }, _marked3[0], this); + } + + var iter = gen(100); + + return iter.next().then(function (result) { + assert.strictEqual(awaitCount, 1); + + assert.deepEqual(result, { + value: 1, + done: false + }); + + return iter.next(); + }).then(function (result) { + assert.strictEqual(awaitCount, 3); + + assert.deepEqual(result, { + value: 4, + done: false + }); + + return iter.next(); + }).then(function (result) { + assert.strictEqual(awaitCount, 6); + + assert.deepEqual(result, { + value: 8, + done: false + }); + + return iter.next(); + }).then(function (result) { + assert.strictEqual(awaitCount, 6 + 100); + + assert.deepEqual(result, { + value: "done", + done: true + }); + + return iter.next(); + }).then(function (result) { + assert.deepEqual(result, { + value: void 0, + done: true + }); + }); + }); + + it("should not propagate exceptions between iterations", function () { + var _marked4 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.async(function gen$(_context17) { + while (1) switch (_context17.prev = _context17.next) { + case 0: + _context17.next = 2; + return 1; + + case 2: + _context17.next = 4; + return 2; + + case 4: + case "end": + return _context17.stop(); + } + }, _marked4[0], this); + } + + var iter = gen(); + + return iter.next().then(function (result) { + assert.deepEqual(result, { + value: 1, + done: false + }); + + return iter.throw(new Error("thrown from first yield")); + }).then(function () { + throw new Error("should have thrown"); + }, function (error) { + assert.strictEqual(error.message, "thrown from first yield"); + return iter.next(); + }).then(function (result) { + assert.deepEqual(result, { + value: void 0, + done: true + }); + }); + }); + + it("should allow yielding a rejected Promise", function () { + var _marked5 = [gen].map(regeneratorRuntime.mark); + + var yielded = new Error("yielded rejection"); + var returned = new Error("returned rejection"); + + function gen() { + return regeneratorRuntime.async(function gen$(_context18) { + while (1) switch (_context18.prev = _context18.next) { + case 0: + _context18.t0 = assert; + _context18.next = 3; + return Promise.reject(yielded); + + case 3: + _context18.t1 = _context18.sent; + + _context18.t0.strictEqual.call(_context18.t0, _context18.t1, "first sent"); + + _context18.t2 = assert; + _context18.next = 8; + return "middle"; + + case 8: + _context18.t3 = _context18.sent; + + _context18.t2.strictEqual.call(_context18.t2, _context18.t3, "second sent"); + + return _context18.abrupt("return", Promise.reject(returned)); + + case 11: + case "end": + return _context18.stop(); + } + }, _marked5[0], this); + } + + var iter = gen(); + + return iter.next().then(function (result) { + assert.ok(false, "should have yielded a rejected Promise"); + }, function (error) { + assert.strictEqual(error, yielded); + return iter.next("first sent"); + }).then(function (result) { + assert.deepEqual(result, { + value: "middle", + done: false + }); + return iter.next("second sent"); + }).then(function (result) { + assert.ok(false, "should have returned a rejected Promise"); + }, function (error) { + assert.strictEqual(error, returned); + }); + }); +}); \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/test/async.es6.js b/packages/babel-plugin-transform-regenerator/.test/async.es6.js similarity index 100% rename from packages/babel-plugin-transform-regenerator/test/async.es6.js rename to packages/babel-plugin-transform-regenerator/.test/async.es6.js diff --git a/packages/babel-plugin-transform-regenerator/test/index.html b/packages/babel-plugin-transform-regenerator/.test/index.html similarity index 100% rename from packages/babel-plugin-transform-regenerator/test/index.html rename to packages/babel-plugin-transform-regenerator/.test/index.html diff --git a/packages/babel-plugin-transform-regenerator/.test/mocha.css b/packages/babel-plugin-transform-regenerator/.test/mocha.css new file mode 120000 index 0000000000..eca72be50a --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.test/mocha.css @@ -0,0 +1 @@ +/Users/sebmck/Projects/babel/regenerator/node_modules/mocha/mocha.css \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/.test/mocha.js b/packages/babel-plugin-transform-regenerator/.test/mocha.js new file mode 120000 index 0000000000..57e754ddae --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.test/mocha.js @@ -0,0 +1 @@ +/Users/sebmck/Projects/babel/regenerator/node_modules/mocha/mocha.js \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/test/nothing-to-transform.js b/packages/babel-plugin-transform-regenerator/.test/nothing-to-transform.js similarity index 100% rename from packages/babel-plugin-transform-regenerator/test/nothing-to-transform.js rename to packages/babel-plugin-transform-regenerator/.test/nothing-to-transform.js diff --git a/packages/babel-plugin-transform-regenerator/test/run.js b/packages/babel-plugin-transform-regenerator/.test/run.js similarity index 100% rename from packages/babel-plugin-transform-regenerator/test/run.js rename to packages/babel-plugin-transform-regenerator/.test/run.js diff --git a/packages/babel-plugin-transform-regenerator/.test/tests.es5.js b/packages/babel-plugin-transform-regenerator/.test/tests.es5.js new file mode 100644 index 0000000000..1d24a7cfca --- /dev/null +++ b/packages/babel-plugin-transform-regenerator/.test/tests.es5.js @@ -0,0 +1,5262 @@ +var _marked4 = [range].map(regeneratorRuntime.mark); + +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ + +var assert = require("assert"); +var runningInTranslation = /\.wrap\(/.test(regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + case "end": + return _context.stop(); + } + }, _callee, this); +})); +var iteratorSymbol = typeof Symbol === "function" && Symbol.iterator || "@@iterator"; + +function check(g, yields, returnValue) { + for (var i = 0; i < yields.length; ++i) { + var info = g.next(i); + assert.deepEqual(info.value, yields[i]); + assert.strictEqual(info.done, false); + } + + assert.deepEqual(i > 0 ? g.next(i) : g.next(), { value: returnValue, done: true }); +} + +// A version of `throw` whose behavior can't be statically analyzed. +// Useful for testing dynamic exception dispatching. +function raise(argument) { + throw argument; +} + +function assertAlreadyFinished(generator) { + assert.deepEqual(generator.next(), { + value: void 0, + done: true + }); +} + +describe("regeneratorRuntime", function () { + it("should be defined globally", function () { + var global = Function("return this")(); + assert.ok("regeneratorRuntime" in global); + assert.strictEqual(global.regeneratorRuntime, regeneratorRuntime); + }); + + it("should have a .wrap method", function () { + assert.strictEqual(typeof regeneratorRuntime.wrap, "function"); + }); + + it("should have a .mark method", function () { + assert.strictEqual(typeof regeneratorRuntime.mark, "function"); + }); + + it("should be the object name returned by util.runtimeProperty", function () { + assert.strictEqual(require("../lib/util").runtimeProperty("foo").object.name, "regeneratorRuntime"); + }); +}); + +(runningInTranslation ? describe : xdescribe)("@@iterator", function () { + it("is defined on Generator.prototype and returns this", function () { + var _marked = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + case "end": + return _context2.stop(); + } + }, _marked[0], this); + } + var iterator = gen(); + assert.ok(!iterator.hasOwnProperty(iteratorSymbol)); + assert.ok(!Object.getPrototypeOf(iterator).hasOwnProperty(iteratorSymbol)); + assert.ok(Object.getPrototypeOf(Object.getPrototypeOf(iterator)).hasOwnProperty(iteratorSymbol)); + assert.strictEqual(iterator[iteratorSymbol](), iterator); + }); +}); + +describe("simple argument yielder", function () { + it("should yield only its first argument", function () { + var _marked2 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return x; + + case 2: + case "end": + return _context3.stop(); + } + }, _marked2[0], this); + } + + check(gen("oyez"), ["oyez"]); + check(gen("foo", "bar"), ["foo"]); + }); + + it("should support multiple yields in expression", function () { + var _marked3 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return 0; + + case 2: + _context4.t0 = _context4.sent; + _context4.next = 5; + return 0; + + case 5: + _context4.t1 = _context4.sent; + return _context4.abrupt("return", _context4.t0 + _context4.t1); + + case 7: + case "end": + return _context4.stop(); + } + }, _marked3[0], this); + } + var itr = gen(); + itr.next(); + itr.next(1); + assert.equal(itr.next(2).value, 3); + }); +}); + +function range(n) { + var i; + return regeneratorRuntime.wrap(function range$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + i = 0; + + case 1: + if (!(i < n)) { + _context5.next = 7; + break; + } + + _context5.next = 4; + return i; + + case 4: + ++i; + _context5.next = 1; + break; + + case 7: + case "end": + return _context5.stop(); + } + }, _marked4[0], this); +} + +describe("range generator", function () { + it("should yield the empty range", function () { + check(range(0), []); + }); + + it("should yield the range 0..n-1", function () { + check(range(5), [0, 1, 2, 3, 4]); + }); +}); + +describe("collatz generator", function () { + var _marked5 = [gen].map(regeneratorRuntime.mark); + + function gen(n) { + var count; + return regeneratorRuntime.wrap(function gen$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + count = 0; + _context6.next = 3; + return n; + + case 3: + if (!(n !== 1)) { + _context6.next = 14; + break; + } + + count += 1; + + if (!(n % 2)) { + _context6.next = 10; + break; + } + + _context6.next = 8; + return n = n * 3 + 1; + + case 8: + _context6.next = 12; + break; + + case 10: + _context6.next = 12; + return n >>= 1; + + case 12: + _context6.next = 3; + break; + + case 14: + return _context6.abrupt("return", count); + + case 15: + case "end": + return _context6.stop(); + } + }, _marked5[0], this); + } + + function collatz(n) { + var result = [n]; + + while (n !== 1) { + if (n % 2) { + n *= 3; + n += 1; + } else { + n >>= 1; + } + + result.push(n); + } + + return result; + } + + var seven = collatz(7); + var fiftyTwo = seven.slice(seven.indexOf(52)); + var eightyTwo = collatz(82); + + it("seven", function () { + check(gen(7), seven, 16); + }); + + it("fifty two", function () { + check(gen(52), fiftyTwo, 11); + }); + + it("eighty two", function () { + check(gen(82), eightyTwo, 110); + }); +}); + +describe("throw", function () { + (runningInTranslation ? it : xit)("should complete generator", function () { + var _marked6 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + throw 1; + + case 1: + case "end": + return _context7.stop(); + } + }, _marked6[0], this); + } + + var u = gen(); + + try { + u.next(); + } catch (err) { + assert.strictEqual(err, 1); + } + + assertAlreadyFinished(u); + }); +}); + +describe("try-catch generator", function () { + var _marked7 = [usingThrow, usingRaise].map(regeneratorRuntime.mark); + + function usingThrow(x) { + return regeneratorRuntime.wrap(function usingThrow$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + _context8.next = 2; + return 0; + + case 2: + _context8.prev = 2; + _context8.next = 5; + return 1; + + case 5: + if (!(x % 2 === 0)) { + _context8.next = 7; + break; + } + + throw 2; + + case 7: + _context8.next = 9; + return x; + + case 9: + _context8.next = 15; + break; + + case 11: + _context8.prev = 11; + _context8.t0 = _context8["catch"](2); + _context8.next = 15; + return _context8.t0; + + case 15: + _context8.next = 17; + return 3; + + case 17: + case "end": + return _context8.stop(); + } + }, _marked7[0], this, [[2, 11]]); + } + + function usingRaise(x) { + return regeneratorRuntime.wrap(function usingRaise$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 2; + return 0; + + case 2: + _context9.prev = 2; + _context9.next = 5; + return 1; + + case 5: + if (x % 2 === 0) raise(2); + _context9.next = 8; + return x; + + case 8: + _context9.next = 14; + break; + + case 10: + _context9.prev = 10; + _context9.t0 = _context9["catch"](2); + _context9.next = 14; + return _context9.t0; + + case 14: + _context9.next = 16; + return 3; + + case 16: + case "end": + return _context9.stop(); + } + }, _marked7[1], this, [[2, 10]]); + } + + it("should catch static exceptions properly", function () { + check(usingThrow(4), [0, 1, 2, 3]); + check(usingThrow(5), [0, 1, 5, 3]); + }); + + it("should catch dynamic exceptions properly", function () { + check(usingRaise(4), [0, 1, 2, 3]); + check(usingRaise(5), [0, 1, 5, 3]); + }); +}); + +describe("nested generators in try-catch", function () { + var _marked8 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + _context11.prev = 0; + + nonExistent; + _context11.next = 8; + break; + + case 4: + _context11.prev = 4; + _context11.t0 = _context11["catch"](0); + _context11.next = 8; + return regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap(function _callee2$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + _context10.next = 2; + return _context11.t0; + + case 2: + case "end": + return _context10.stop(); + } + }, _callee2, this); + }); + + case 8: + case "end": + return _context11.stop(); + } + }, _marked8[0], this, [[0, 4]]); + } + + it('should get a reference to the caught error', function () { + var genFun2 = gen().next().value; + assert.ok(regeneratorRuntime.isGeneratorFunction(genFun2)); + var gen2 = genFun2(); + var res = gen2.next(); + assert.ok(res.value instanceof ReferenceError); + // Note that we don't do strict equality over the message because it varies + // across browsers (if we ever want to run tests in browsers). + assert.ok(res.value.message.match(/nonExistent/)); + }); +}); + +describe("try-finally generator", function () { + var _marked9 = [usingThrow, usingRaise, usingAbrupt].map(regeneratorRuntime.mark); + + function usingThrow(condition) { + return regeneratorRuntime.wrap(function usingThrow$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + _context12.next = 2; + return 0; + + case 2: + _context12.prev = 2; + _context12.next = 5; + return 1; + + case 5: + throw 2; + + case 8: + _context12.prev = 8; + + if (!condition) { + _context12.next = 13; + break; + } + + _context12.next = 12; + return 4; + + case 12: + return _context12.abrupt("return", 5); + + case 13: + _context12.next = 15; + return 6; + + case 15: + return _context12.abrupt("return", 7); + + case 17: + case "end": + return _context12.stop(); + } + }, _marked9[0], this, [[2,, 8, 17]]); + } + + function usingRaise(condition) { + return regeneratorRuntime.wrap(function usingRaise$(_context13) { + while (1) switch (_context13.prev = _context13.next) { + case 0: + _context13.next = 2; + return 0; + + case 2: + _context13.prev = 2; + _context13.next = 5; + return 1; + + case 5: + raise(2); + _context13.next = 8; + return 3; + + case 8: + _context13.prev = 8; + + if (!condition) { + _context13.next = 13; + break; + } + + _context13.next = 12; + return 4; + + case 12: + return _context13.abrupt("return", 5); + + case 13: + _context13.next = 15; + return 6; + + case 15: + return _context13.abrupt("return", 7); + + case 17: + case "end": + return _context13.stop(); + } + }, _marked9[1], this, [[2,, 8, 17]]); + } + + function usingAbrupt(abruptType, finallyAbruptType) { + return regeneratorRuntime.wrap(function usingAbrupt$(_context14) { + while (1) switch (_context14.prev = _context14.next) { + case 0: + _context14.next = 2; + return 0; + + case 2: + _context14.prev = 2; + _context14.next = 5; + return 1; + + case 5: + if (!(abruptType === "return")) { + _context14.next = 9; + break; + } + + return _context14.abrupt("return", 2); + + case 9: + if (!(abruptType === "break")) { + _context14.next = 13; + break; + } + + return _context14.abrupt("break", 33); + + case 13: + if (!(abruptType === "continue")) { + _context14.next = 16; + break; + } + + abruptType = "return"; + return _context14.abrupt("continue", 31); + + case 16: + _context14.prev = 16; + _context14.next = 19; + return 3; + + case 19: + if (!(finallyAbruptType === "return")) { + _context14.next = 23; + break; + } + + return _context14.abrupt("return", 4); + + case 23: + if (!(finallyAbruptType === "break")) { + _context14.next = 27; + break; + } + + return _context14.abrupt("break", 33); + + case 27: + if (!(finallyAbruptType === "continue")) { + _context14.next = 30; + break; + } + + finallyAbruptType = null; + return _context14.abrupt("continue", 31); + + case 30: + return _context14.finish(16); + + case 31: + _context14.next = 2; + break; + + case 33: + return _context14.abrupt("return", 5); + + case 34: + case "end": + return _context14.stop(); + } + }, _marked9[2], this, [[2,, 16, 31]]); + } + + it("should honor return", function () { + check(usingAbrupt("return", null), [0, 1, 3], 2); + }); + + it("should honor break", function () { + check(usingAbrupt("break", null), [0, 1, 3], 5); + }); + + it("should honor continue", function () { + check(usingAbrupt("continue", null), [0, 1, 3, 1, 3], 2); + }); + + it("should override abrupt with return", function () { + check(usingAbrupt("return", "return"), [0, 1, 3], 4); + check(usingAbrupt("break", "return"), [0, 1, 3], 4); + check(usingAbrupt("continue", "return"), [0, 1, 3], 4); + }); + + it("should override abrupt with break", function () { + check(usingAbrupt("return", "break"), [0, 1, 3], 5); + check(usingAbrupt("break", "break"), [0, 1, 3], 5); + check(usingAbrupt("continue", "break"), [0, 1, 3], 5); + }); + + it("should override abrupt with continue", function () { + check(usingAbrupt("return", "continue"), [0, 1, 3, 1, 3], 2); + check(usingAbrupt("break", "continue"), [0, 1, 3, 1, 3], 5); + check(usingAbrupt("continue", "continue"), [0, 1, 3, 1, 3], 2); + }); + + it("should execute finally blocks statically", function () { + check(usingThrow(true), [0, 1, 4], 5); + check(usingThrow(false), [0, 1, 6], 7); + }); + + it("should execute finally blocks dynamically", function () { + check(usingRaise(true), [0, 1, 4], 5); + check(usingRaise(false), [0, 1, 6], 7); + }); + + it("should execute finally blocks before throwing", function () { + var _marked10 = [uncaught].map(regeneratorRuntime.mark); + + var uncaughtError = new Error("uncaught"); + + function uncaught(condition) { + return regeneratorRuntime.wrap(function uncaught$(_context15) { + while (1) switch (_context15.prev = _context15.next) { + case 0: + _context15.prev = 0; + _context15.next = 3; + return 0; + + case 3: + if (!condition) { + _context15.next = 7; + break; + } + + _context15.next = 6; + return 1; + + case 6: + raise(uncaughtError); + + case 7: + _context15.next = 9; + return 2; + + case 9: + _context15.prev = 9; + _context15.next = 12; + return 3; + + case 12: + return _context15.finish(9); + + case 13: + _context15.next = 15; + return 4; + + case 15: + case "end": + return _context15.stop(); + } + }, _marked10[0], this, [[0,, 9, 13]]); + } + + check(uncaught(false), [0, 2, 3, 4]); + + var u = uncaught(true); + + assert.deepEqual(u.next(), { value: 0, done: false }); + assert.deepEqual(u.next(), { value: 1, done: false }); + assert.deepEqual(u.next(), { value: 3, done: false }); + + try { + u.next(); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, uncaughtError); + } + }); + + it("should throw correct error when finally contains catch", function () { + var _marked11 = [gen].map(regeneratorRuntime.mark); + + var right = new Error("right"); + var wrong = new Error("wrong"); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context16) { + while (1) switch (_context16.prev = _context16.next) { + case 0: + _context16.prev = 0; + _context16.next = 3; + return 0; + + case 3: + raise(right); + + case 4: + _context16.prev = 4; + _context16.next = 7; + return 1; + + case 7: + _context16.prev = 7; + + raise(wrong); + _context16.next = 16; + break; + + case 11: + _context16.prev = 11; + _context16.t0 = _context16["catch"](7); + + assert.strictEqual(_context16.t0, wrong); + _context16.next = 16; + return 2; + + case 16: + return _context16.finish(4); + + case 17: + case "end": + return _context16.stop(); + } + }, _marked11[0], this, [[0,, 4, 17], [7, 11]]); + } + + var g = gen(); + + assert.deepEqual(g.next(), { + value: 0, + done: false + }); + + assert.deepEqual(g.next(), { + value: 1, + done: false + }); + + assert.deepEqual(g.next(), { + value: 2, + done: false + }); + + try { + g.next(); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, right); + } + }); + + it("should run finally after break within try", function () { + var _marked12 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context17) { + while (1) switch (_context17.prev = _context17.next) { + case 0: + _context17.prev = 0; + _context17.next = 3; + return 0; + + case 3: + if (!true) { + _context17.next = 9; + break; + } + + _context17.next = 6; + return 1; + + case 6: + return _context17.abrupt("break", 9); + + case 9: + _context17.prev = 9; + _context17.next = 12; + return 2; + + case 12: + return _context17.finish(9); + + case 13: + _context17.next = 15; + return 3; + + case 15: + case "end": + return _context17.stop(); + } + }, _marked12[0], this, [[0,, 9, 13]]); + } + + check(gen(), [0, 1, 2, 3]); + }); +}); + +describe("try-catch-finally generator", function () { + var _marked13 = [usingThrow, usingRaise].map(regeneratorRuntime.mark); + + function usingThrow() { + return regeneratorRuntime.wrap(function usingThrow$(_context18) { + while (1) switch (_context18.prev = _context18.next) { + case 0: + _context18.next = 2; + return 0; + + case 2: + _context18.prev = 2; + _context18.prev = 3; + _context18.next = 6; + return 1; + + case 6: + throw 2; + + case 9: + _context18.next = 16; + break; + + case 11: + _context18.prev = 11; + _context18.t0 = _context18["catch"](3); + _context18.next = 15; + return _context18.t0; + + case 15: + throw _context18.sent; + + case 16: + _context18.prev = 16; + _context18.next = 19; + return 5; + + case 19: + return _context18.finish(16); + + case 20: + _context18.next = 26; + break; + + case 22: + _context18.prev = 22; + _context18.t1 = _context18["catch"](2); + _context18.next = 26; + return _context18.t1; + + case 26: + _context18.next = 28; + return 6; + + case 28: + case "end": + return _context18.stop(); + } + }, _marked13[0], this, [[2, 22], [3, 11, 16, 20]]); + } + + function usingRaise() { + return regeneratorRuntime.wrap(function usingRaise$(_context19) { + while (1) switch (_context19.prev = _context19.next) { + case 0: + _context19.next = 2; + return 0; + + case 2: + _context19.prev = 2; + _context19.prev = 3; + _context19.next = 6; + return 1; + + case 6: + raise(2); + _context19.next = 9; + return 3; + + case 9: + _context19.next = 16; + break; + + case 11: + _context19.prev = 11; + _context19.t0 = _context19["catch"](3); + _context19.next = 15; + return _context19.t0; + + case 15: + throw _context19.sent; + + case 16: + _context19.prev = 16; + _context19.next = 19; + return 5; + + case 19: + return _context19.finish(16); + + case 20: + _context19.next = 26; + break; + + case 22: + _context19.prev = 22; + _context19.t1 = _context19["catch"](2); + _context19.next = 26; + return _context19.t1; + + case 26: + _context19.next = 28; + return 6; + + case 28: + case "end": + return _context19.stop(); + } + }, _marked13[1], this, [[2, 22], [3, 11, 16, 20]]); + } + + it("should statically catch and then finalize", function () { + check(usingThrow(), [0, 1, 2, 5, 3, 6]); + }); + + it("should dynamically catch and then finalize", function () { + check(usingRaise(), [0, 1, 2, 5, 3, 6]); + }); + + it("should execute catch and finally blocks at most once", function () { + var _marked14 = [gen].map(regeneratorRuntime.mark); + + var error = new Error(); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context20) { + while (1) switch (_context20.prev = _context20.next) { + case 0: + _context20.prev = 0; + _context20.t0 = 1; + _context20.next = _context20.t0 === 1 ? 4 : 7; + break; + + case 4: + _context20.next = 6; + return "a"; + + case 6: + return _context20.abrupt("break", 8); + + case 7: + return _context20.abrupt("break", 8); + + case 8: + throw error; + + case 11: + _context20.prev = 11; + _context20.t1 = _context20["catch"](0); + + assert.strictEqual(_context20.t1, error); + _context20.next = 16; + return "b"; + + case 16: + _context20.next = 18; + return "c"; + + case 18: + return _context20.abrupt("break", 20); + + case 19: + if (false) { + _context20.next = 16; + break; + } + + case 20: + _context20.next = 22; + return "d"; + + case 22: + return _context20.abrupt("break", 24); + + case 23: + if (false) { + _context20.next = 16; + break; + } + + case 24: + _context20.next = 26; + return "e"; + + case 26: + _context20.prev = 26; + _context20.next = 29; + return "f"; + + case 29: + return _context20.finish(26); + + case 30: + case "end": + return _context20.stop(); + } + }, _marked14[0], this, [[0, 11, 26, 30]]); + } + + check(gen(), ["a", "b", "c", "d", "e", "f"]); + }); + + it("should handle backwards jumps in labeled loops", function () { + var _marked15 = [gen].map(regeneratorRuntime.mark); + + function gen() { + var firstTime; + return regeneratorRuntime.wrap(function gen$(_context21) { + while (1) switch (_context21.prev = _context21.next) { + case 0: + firstTime = true; + + case 1: + if (!true) { + _context21.next = 31; + break; + } + + _context21.next = 4; + return 0; + + case 4: + _context21.prev = 4; + + case 5: + if (!true) { + _context21.next = 20; + break; + } + + _context21.next = 8; + return 1; + + case 8: + if (!firstTime) { + _context21.next = 15; + break; + } + + firstTime = false; + _context21.next = 12; + return 2; + + case 12: + return _context21.abrupt("continue", 1); + + case 15: + _context21.next = 17; + return 3; + + case 17: + return _context21.abrupt("break", 20); + + case 18: + _context21.next = 5; + break; + + case 20: + _context21.next = 22; + return 4; + + case 22: + return _context21.abrupt("break", 31); + + case 23: + _context21.prev = 23; + _context21.next = 26; + return 5; + + case 26: + return _context21.finish(23); + + case 27: + _context21.next = 29; + return 6; + + case 29: + _context21.next = 1; + break; + + case 31: + _context21.next = 33; + return 7; + + case 33: + case "end": + return _context21.stop(); + } + }, _marked15[0], this, [[4,, 23, 27]]); + } + + check(gen(), [0, 1, 2, 5, 0, 1, 3, 4, 5, 7]); + }); + + it("should handle loop continue statements properly", function () { + var _marked16 = [gen].map(regeneratorRuntime.mark); + + var error = new Error("thrown"); + var markers = []; + + function gen() { + var c; + return regeneratorRuntime.wrap(function gen$(_context22) { + while (1) switch (_context22.prev = _context22.next) { + case 0: + c = 2; + + case 1: + if (!(c > 0)) { + _context22.next = 20; + break; + } + + _context22.prev = 2; + + markers.push("try"); + _context22.next = 6; + return c; + + case 6: + _context22.next = 13; + break; + + case 8: + _context22.prev = 8; + _context22.t0 = _context22["catch"](2); + + assert.strictEqual(_context22.t0, error); + markers.push("catch"); + return _context22.abrupt("continue", 1); + + case 13: + _context22.prev = 13; + + markers.push("finally"); + return _context22.finish(13); + + case 16: + markers.push("decrement"); + --c; + _context22.next = 1; + break; + + case 20: + case "end": + return _context22.stop(); + } + }, _marked16[0], this, [[2, 8, 13, 16]]); + } + + var g = gen(); + + assert.deepEqual(g.next(), { value: 2, done: false }); + assert.deepEqual(g.throw(error), { value: 2, done: false }); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + + assert.deepEqual(markers, ["try", "catch", "finally", "try", "finally", "decrement", "try", "finally", "decrement"]); + }); +}); + +describe("dynamic exception", function () { + var _marked17 = [gen].map(regeneratorRuntime.mark); + + function gen(x, fname) { + return regeneratorRuntime.wrap(function gen$(_context23) { + while (1) switch (_context23.prev = _context23.next) { + case 0: + _context23.prev = 0; + return _context23.abrupt("return", fns[fname](x)); + + case 4: + _context23.prev = 4; + _context23.t0 = _context23["catch"](0); + _context23.next = 8; + return _context23.t0; + + case 8: + case "end": + return _context23.stop(); + } + }, _marked17[0], this, [[0, 4]]); + } + + var fns = { + f: function (x) { + throw x; + }, + + g: function (x) { + return x; + } + }; + + it("should be dispatched correctly", function () { + check(gen("asdf", "f"), ["asdf"]); + check(gen("asdf", "g"), [], "asdf"); + }); +}); + +describe("nested finally blocks", function () { + var _marked18 = [usingThrow, usingRaise].map(regeneratorRuntime.mark); + + function usingThrow() { + return regeneratorRuntime.wrap(function usingThrow$(_context24) { + while (1) switch (_context24.prev = _context24.next) { + case 0: + _context24.prev = 0; + _context24.prev = 1; + _context24.prev = 2; + throw "thrown"; + + case 4: + _context24.prev = 4; + _context24.next = 7; + return 1; + + case 7: + return _context24.finish(4); + + case 8: + _context24.next = 14; + break; + + case 10: + _context24.prev = 10; + _context24.t0 = _context24["catch"](1); + _context24.next = 14; + return _context24.t0; + + case 14: + _context24.prev = 14; + _context24.next = 17; + return 2; + + case 17: + return _context24.finish(14); + + case 18: + _context24.prev = 18; + _context24.next = 21; + return 3; + + case 21: + return _context24.finish(18); + + case 22: + case "end": + return _context24.stop(); + } + }, _marked18[0], this, [[0,, 18, 22], [1, 10, 14, 18], [2,, 4, 8]]); + } + + function usingRaise() { + return regeneratorRuntime.wrap(function usingRaise$(_context25) { + while (1) switch (_context25.prev = _context25.next) { + case 0: + _context25.prev = 0; + _context25.prev = 1; + _context25.prev = 2; + + raise("thrown"); + + case 4: + _context25.prev = 4; + _context25.next = 7; + return 1; + + case 7: + return _context25.finish(4); + + case 8: + _context25.next = 14; + break; + + case 10: + _context25.prev = 10; + _context25.t0 = _context25["catch"](1); + _context25.next = 14; + return _context25.t0; + + case 14: + _context25.prev = 14; + _context25.next = 17; + return 2; + + case 17: + return _context25.finish(14); + + case 18: + _context25.prev = 18; + _context25.next = 21; + return 3; + + case 21: + return _context25.finish(18); + + case 22: + case "end": + return _context25.stop(); + } + }, _marked18[1], this, [[0,, 18, 22], [1, 10, 14, 18], [2,, 4, 8]]); + } + + it("should statically execute in order", function () { + check(usingThrow(), [1, "thrown", 2, 3]); + }); + + it("should dynamically execute in order", function () { + check(usingRaise(), [1, "thrown", 2, 3]); + }); +}); + +describe("for-in loop generator", function () { + it("should handle the simple case", function () { + var _marked19 = [gen].map(regeneratorRuntime.mark); + + function gen() { + var count, obj, key; + return regeneratorRuntime.wrap(function gen$(_context26) { + while (1) switch (_context26.prev = _context26.next) { + case 0: + count = 0; + obj = { foo: 1, bar: 2 }; + _context26.t0 = regeneratorRuntime.keys(obj); + + case 3: + if ((_context26.t1 = _context26.t0()).done) { + _context26.next = 11; + break; + } + + key = _context26.t1.value; + + assert(obj.hasOwnProperty(key), key + " must be own property"); + _context26.next = 8; + return [key, obj[key]]; + + case 8: + count += 1; + _context26.next = 3; + break; + + case 11: + return _context26.abrupt("return", count); + + case 12: + case "end": + return _context26.stop(); + } + }, _marked19[0], this); + } + + check(gen(), [["foo", 1], ["bar", 2]], 2); + }); + + it("should handle break in loop", function () { + var _marked20 = [gen].map(regeneratorRuntime.mark); + + function gen(obj) { + var count, key; + return regeneratorRuntime.wrap(function gen$(_context27) { + while (1) switch (_context27.prev = _context27.next) { + case 0: + count = 0; + _context27.next = 3; + return "why not"; + + case 3: + _context27.t0 = regeneratorRuntime.keys(obj); + + case 4: + if ((_context27.t1 = _context27.t0()).done) { + _context27.next = 14; + break; + } + + key = _context27.t1.value; + + if (!obj.hasOwnProperty(key)) { + _context27.next = 12; + break; + } + + if (!(key === "skip")) { + _context27.next = 9; + break; + } + + return _context27.abrupt("break", 14); + + case 9: + count += 1; + _context27.next = 12; + return [key, obj[key]]; + + case 12: + _context27.next = 4; + break; + + case 14: + return _context27.abrupt("return", count); + + case 15: + case "end": + return _context27.stop(); + } + }, _marked20[0], this); + } + + check(gen({ a: 1, b: 2, skip: 3, c: 4 }), ["why not", ["a", 1], ["b", 2]], 2); + }); + + it("should handle property deletion in loop", function () { + var _marked21 = [gen].map(regeneratorRuntime.mark); + + function gen() { + var count, obj, key; + return regeneratorRuntime.wrap(function gen$(_context28) { + while (1) switch (_context28.prev = _context28.next) { + case 0: + count = 0; + obj = { foo: 1, bar: 2 }; + _context28.t0 = regeneratorRuntime.keys(obj); + + case 3: + if ((_context28.t1 = _context28.t0()).done) { + _context28.next = 12; + break; + } + + key = _context28.t1.value; + + assert(obj.hasOwnProperty(key), key + " must be own property"); + _context28.next = 8; + return [key, obj[key]]; + + case 8: + delete obj.bar; + count += 1; + _context28.next = 3; + break; + + case 12: + return _context28.abrupt("return", count); + + case 13: + case "end": + return _context28.stop(); + } + }, _marked21[0], this); + } + + check(gen(), [["foo", 1]], 1); + }); + + it("should loop over inherited properties", function () { + var _marked22 = [gen].map(regeneratorRuntime.mark); + + function gen() { + var count, Foo, foo, key; + return regeneratorRuntime.wrap(function gen$(_context29) { + while (1) switch (_context29.prev = _context29.next) { + case 0: + Foo = function Foo() { + this.baz = 1; + }; + + count = 0; + + Foo.prototype.bar = 2; + + foo = new Foo(); + _context29.t0 = regeneratorRuntime.keys(foo); + + case 5: + if ((_context29.t1 = _context29.t0()).done) { + _context29.next = 12; + break; + } + + key = _context29.t1.value; + _context29.next = 9; + return [key, foo[key]]; + + case 9: + count += 1; + _context29.next = 5; + break; + + case 12: + return _context29.abrupt("return", count); + + case 13: + case "end": + return _context29.stop(); + } + }, _marked22[0], this); + } + + check(gen(), [["baz", 1], ["bar", 2]], 2); + }); + + it("should handle risky object expressions", function () { + var _marked23 = [gen].map(regeneratorRuntime.mark); + + function a(sent) { + assert.strictEqual(sent, 1); + a.called = true; + } + + function b(sent) { + assert.strictEqual(sent, 2); + b.called = true; + return { callee: b }; + } + + function gen() { + var key; + return regeneratorRuntime.wrap(function gen$(_context30) { + while (1) switch (_context30.prev = _context30.next) { + case 0: + assert.ok(!a.called); + assert.ok(!b.called); + _context30.next = 4; + return 0; + + case 4: + _context30.t1 = _context30.sent; + a(_context30.t1); + _context30.next = 8; + return 1; + + case 8: + _context30.t2 = _context30.sent; + _context30.t0 = regeneratorRuntime.keys(b(_context30.t2)); + + case 10: + if ((_context30.t3 = _context30.t0()).done) { + _context30.next = 21; + break; + } + + key = _context30.t3.value; + + assert.ok(a.called); + assert.ok(b.called); + _context30.t4 = assert; + _context30.next = 17; + return key; + + case 17: + _context30.t5 = _context30.sent; + + _context30.t4.strictEqual.call(_context30.t4, _context30.t5, 3); + + _context30.next = 10; + break; + + case 21: + _context30.t6 = regeneratorRuntime.keys((a(1), { foo: "foo", bar: "bar" })); + + case 22: + if ((_context30.t7 = _context30.t6()).done) { + _context30.next = 28; + break; + } + + key = _context30.t7.value; + _context30.next = 26; + return key; + + case 26: + _context30.next = 22; + break; + + case 28: + case "end": + return _context30.stop(); + } + }, _marked23[0], this); + } + + check(gen(), [0, 1, "callee", "foo", "bar"]); + }); + + it("should allow non-Identifier left-hand expressions", function () { + var _marked24 = [gen].map(regeneratorRuntime.mark); + + var obj = {}; + var baz = { a: 1, b: 2, c: 3 }; + var markers = []; + + function foo() { + markers.push("called foo"); + return obj; + } + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context31) { + while (1) switch (_context31.prev = _context31.next) { + case 0: + _context31.t0 = regeneratorRuntime.keys(baz); + + case 1: + if ((_context31.t1 = _context31.t0()).done) { + _context31.next = 8; + break; + } + + foo().bar = _context31.t1.value; + + markers.push(obj.bar); + _context31.next = 6; + return obj.bar; + + case 6: + _context31.next = 1; + break; + + case 8: + case "end": + return _context31.stop(); + } + }, _marked24[0], this); + } + + check(gen(), ["a", "b", "c"]); + + assert.deepEqual(markers, ["called foo", "a", "called foo", "b", "called foo", "c"]); + }); +}); + +describe("yield chain", function () { + var _marked25 = [gen].map(regeneratorRuntime.mark); + + function gen(n) { + return regeneratorRuntime.wrap(function gen$(_context32) { + while (1) switch (_context32.prev = _context32.next) { + case 0: + _context32.next = 2; + return n; + + case 2: + _context32.next = 4; + return _context32.sent; + + case 4: + _context32.next = 6; + return _context32.sent; + + case 6: + _context32.next = 8; + return _context32.sent; + + case 8: + return _context32.abrupt("return", _context32.sent); + + case 9: + case "end": + return _context32.stop(); + } + }, _marked25[0], this); + } + + it("should have correct associativity", function () { + check(gen(5), [5, 1, 2, 3], 4); + check(gen("asdf"), ["asdf", 1, 2, 3], 4); + }); +}); + +describe("object literal generator", function () { + var _marked26 = [gen].map(regeneratorRuntime.mark); + + function gen(a, b) { + return regeneratorRuntime.wrap(function gen$(_context33) { + while (1) switch (_context33.prev = _context33.next) { + case 0: + _context33.t0 = a; + _context33.next = 3; + return a; + + case 3: + _context33.t1 = _context33.sent; + _context33.t2 = _context33.t0 - _context33.t1; + _context33.next = 7; + return b; + + case 7: + _context33.t3 = _context33.sent; + _context33.next = 10; + return { + a: _context33.t2, + b: _context33.t3 + }; + + case 10: + case "end": + return _context33.stop(); + } + }, _marked26[0], this); + } + + it("should yield the correct object", function () { + check(gen(1, 2), [1, 2, { a: 0, b: 2 }]); + check(gen(4, 2), [4, 2, { a: 3, b: 2 }]); + }); +}); + +describe("switch statement generator", function () { + var _marked27 = [gen].map(regeneratorRuntime.mark); + + function gen(a) { + return regeneratorRuntime.wrap(function gen$(_context34) { + while (1) switch (_context34.prev = _context34.next) { + case 0: + _context34.next = 2; + return a; + + case 2: + _context34.t0 = _context34.sent; + _context34.t1 = _context34.t0; + _context34.next = 6; + return "x"; + + case 6: + _context34.t2 = _context34.sent; + _context34.t3 = a; + _context34.t4 = _context34.t2 - _context34.t3; + + if (!(_context34.t1 === _context34.t4)) { + _context34.next = 13; + break; + } + + _context34.t5 = 27; + _context34.next = 25; + break; + + case 13: + _context34.t6 = _context34.t0; + _context34.next = 16; + return "y"; + + case 16: + _context34.t7 = _context34.sent; + _context34.t8 = a; + _context34.t9 = _context34.t7 - _context34.t8; + + if (!(_context34.t6 === _context34.t9)) { + _context34.next = 23; + break; + } + + _context34.t10 = 28; + _context34.next = 24; + break; + + case 23: + _context34.t10 = 29; + + case 24: + _context34.t5 = _context34.t10; + + case 25: + _context34.next = _context34.t5; + break; + + case 27: + return _context34.abrupt("return", "first case"); + + case 28: + return _context34.abrupt("return", "second case"); + + case 29: + case "end": + return _context34.stop(); + } + }, _marked27[0], this); + } + + it("should jump to the correct cases", function () { + check(gen(1), [1, "x"], "first case"); + check(gen(2), [2, "x", "y"], "second case"); + }); +}); + +describe("infinite sequence generator", function () { + var _marked28 = [gen, limit].map(regeneratorRuntime.mark); + + function gen(start, step) { + return regeneratorRuntime.wrap(function gen$(_context35) { + while (1) switch (_context35.prev = _context35.next) { + case 0: + step = step || 1; + + case 1: + if (!true) { + _context35.next = 7; + break; + } + + _context35.next = 4; + return start; + + case 4: + start += step; + _context35.next = 1; + break; + + case 7: + case "end": + return _context35.stop(); + } + }, _marked28[0], this); + } + + function limit(g, stop) { + var info; + return regeneratorRuntime.wrap(function limit$(_context36) { + while (1) switch (_context36.prev = _context36.next) { + case 0: + if (!true) { + _context36.next = 14; + break; + } + + info = g.next(); + + if (!info.done) { + _context36.next = 6; + break; + } + + return _context36.abrupt("return"); + + case 6: + if (!(info.value < stop)) { + _context36.next = 11; + break; + } + + _context36.next = 9; + return info.value; + + case 9: + _context36.next = 12; + break; + + case 11: + return _context36.abrupt("return"); + + case 12: + _context36.next = 0; + break; + + case 14: + case "end": + return _context36.stop(); + } + }, _marked28[1], this); + } + + it("should generate a lot of plausible values", function () { + var g = gen(10, 2); + + assert.deepEqual(g.next(), { value: 10, done: false }); + assert.deepEqual(g.next(), { value: 12, done: false }); + assert.deepEqual(g.next(), { value: 14, done: false }); + assert.deepEqual(g.next(), { value: 16, done: false }); + + var sum = 10 + 12 + 14 + 16; + + for (var n = 0; n < 1000; ++n) { + var info = g.next(); + sum += info.value; + assert.strictEqual(info.done, false); + } + + assert.strictEqual(sum, 1017052); + }); + + it("should allow limiting", function () { + check(limit(gen(10, 3), 20), [10, 13, 16, 19]); + }); +}); + +describe("generator function expression", function () { + it("should behave just like a declared generator", function () { + check(regeneratorRuntime.mark(function _callee3(x, y) { + return regeneratorRuntime.wrap(function _callee3$(_context37) { + while (1) switch (_context37.prev = _context37.next) { + case 0: + _context37.next = 2; + return x; + + case 2: + _context37.next = 4; + return y; + + case 4: + _context37.next = 6; + return x + y; + + case 6: + return _context37.abrupt("return", x * y); + + case 7: + case "end": + return _context37.stop(); + } + }, _callee3, this); + })(3, 7), [3, 7, 10], 21); + }); +}); + +describe("generator reentry attempt", function () { + var _marked29 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context38) { + while (1) switch (_context38.prev = _context38.next) { + case 0: + _context38.prev = 0; + _context38.next = 3; + return x; + + case 3: + _context38.t0 = x; + + _context38.sent.next(_context38.t0); + + _context38.next = 11; + break; + + case 7: + _context38.prev = 7; + _context38.t1 = _context38["catch"](0); + _context38.next = 11; + return _context38.t1; + + case 11: + return _context38.abrupt("return", x + 1); + + case 12: + case "end": + return _context38.stop(); + } + }, _marked29[0], this, [[0, 7]]); + } + + it("should complain with a TypeError", function () { + var g = gen(3); + assert.deepEqual(g.next(), { value: 3, done: false }); + var complaint = g.next(g); // Sending the generator to itself. + assert.ok(complaint.value instanceof Error); + assert.strictEqual(complaint.value.message, "Generator is already running"); + assert.deepEqual(g.next(), { value: 4, done: true }); + }); +}); + +describe("completed generator", function () { + var _marked30 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context39) { + while (1) switch (_context39.prev = _context39.next) { + case 0: + return _context39.abrupt("return", "ALL DONE"); + + case 1: + case "end": + return _context39.stop(); + } + }, _marked30[0], this); + } + + (runningInTranslation ? it : xit)("should refuse to resume", function () { + var g = gen(); + + assert.deepEqual(g.next(), { + value: "ALL DONE", done: true + }); + + assertAlreadyFinished(g); + }); +}); + +describe("delegated yield", function () { + it("should delegate correctly", function () { + var _marked31 = [gen].map(regeneratorRuntime.mark); + + function gen(condition) { + return regeneratorRuntime.wrap(function gen$(_context40) { + while (1) switch (_context40.prev = _context40.next) { + case 0: + _context40.next = 2; + return 0; + + case 2: + if (!condition) { + _context40.next = 8; + break; + } + + _context40.next = 5; + return 1; + + case 5: + return _context40.delegateYield(gen(false), "t0", 6); + + case 6: + _context40.next = 8; + return 2; + + case 8: + _context40.next = 10; + return 3; + + case 10: + case "end": + return _context40.stop(); + } + }, _marked31[0], this); + } + + check(gen(true), [0, 1, 0, 3, 2, 3]); + check(gen(false), [0, 3]); + }); + + it("should cope with empty delegatees", function () { + var _marked32 = [gen].map(regeneratorRuntime.mark); + + function gen(condition) { + return regeneratorRuntime.wrap(function gen$(_context41) { + while (1) switch (_context41.prev = _context41.next) { + case 0: + if (!condition) { + _context41.next = 6; + break; + } + + _context41.next = 3; + return 0; + + case 3: + return _context41.delegateYield(gen(false), "t0", 4); + + case 4: + _context41.next = 6; + return 1; + + case 6: + case "end": + return _context41.stop(); + } + }, _marked32[0], this); + } + + check(gen(true), [0, 1]); + check(gen(false), []); + }); + + it("should support deeper nesting", function () { + var _marked33 = [outer, middle, inner].map(regeneratorRuntime.mark); + + function outer(n) { + return regeneratorRuntime.wrap(function outer$(_context42) { + while (1) switch (_context42.prev = _context42.next) { + case 0: + _context42.next = 2; + return n; + + case 2: + return _context42.delegateYield(middle(n - 1, inner(n + 10)), "t0", 3); + + case 3: + _context42.next = 5; + return n + 1; + + case 5: + case "end": + return _context42.stop(); + } + }, _marked33[0], this); + } + + function middle(n, plusTen) { + return regeneratorRuntime.wrap(function middle$(_context43) { + while (1) switch (_context43.prev = _context43.next) { + case 0: + _context43.next = 2; + return n; + + case 2: + return _context43.delegateYield(inner(n - 1), "t0", 3); + + case 3: + _context43.next = 5; + return n + 1; + + case 5: + return _context43.delegateYield(plusTen, "t1", 6); + + case 6: + case "end": + return _context43.stop(); + } + }, _marked33[1], this); + } + + function inner(n) { + return regeneratorRuntime.wrap(function inner$(_context44) { + while (1) switch (_context44.prev = _context44.next) { + case 0: + _context44.next = 2; + return n; + + case 2: + case "end": + return _context44.stop(); + } + }, _marked33[2], this); + } + + check(outer(5), [5, 4, 3, 5, 15, 6]); + }); + + it("should pass sent values through", function () { + var _marked34 = [outer, inner].map(regeneratorRuntime.mark); + + function outer(n) { + return regeneratorRuntime.wrap(function outer$(_context45) { + while (1) switch (_context45.prev = _context45.next) { + case 0: + return _context45.delegateYield(inner(n << 1), "t0", 1); + + case 1: + _context45.next = 3; + return "zxcv"; + + case 3: + case "end": + return _context45.stop(); + } + }, _marked34[0], this); + } + + function inner(n) { + return regeneratorRuntime.wrap(function inner$(_context46) { + while (1) switch (_context46.prev = _context46.next) { + case 0: + _context46.next = 2; + return n; + + case 2: + _context46.next = 4; + return _context46.sent; + + case 4: + _context46.next = 6; + return _context46.sent; + + case 6: + return _context46.abrupt("return", _context46.sent); + + case 7: + case "end": + return _context46.stop(); + } + }, _marked34[1], this); + } + + var g = outer(3); + assert.deepEqual(g.next(), { value: 6, done: false }); + assert.deepEqual(g.next(1), { value: 1, done: false }); + assert.deepEqual(g.next(2), { value: 2, done: false }); + assert.deepEqual(g.next(4), { value: "zxcv", done: false }); + assert.deepEqual(g.next(5), { value: void 0, done: true }); + }); + + it("should be governed by enclosing try statements", function () { + var _marked35 = [outer, inner].map(regeneratorRuntime.mark); + + var error = new Error("thrown"); + + function outer(n) { + return regeneratorRuntime.wrap(function outer$(_context47) { + while (1) switch (_context47.prev = _context47.next) { + case 0: + _context47.prev = 0; + _context47.next = 3; + return 0; + + case 3: + return _context47.delegateYield(inner(n), "t0", 4); + + case 4: + _context47.next = 6; + return 1; + + case 6: + _context47.next = 12; + break; + + case 8: + _context47.prev = 8; + _context47.t1 = _context47["catch"](0); + _context47.next = 12; + return _context47.t1.message; + + case 12: + _context47.next = 14; + return 4; + + case 14: + case "end": + return _context47.stop(); + } + }, _marked35[0], this, [[0, 8]]); + } + + function inner(n) { + return regeneratorRuntime.wrap(function inner$(_context48) { + while (1) switch (_context48.prev = _context48.next) { + case 0: + if (!(n-- > 0)) { + _context48.next = 9; + break; + } + + _context48.prev = 1; + + if (n === 3) { + raise(error); + } + + case 3: + _context48.prev = 3; + _context48.next = 6; + return n; + + case 6: + return _context48.finish(3); + + case 7: + _context48.next = 0; + break; + + case 9: + case "end": + return _context48.stop(); + } + }, _marked35[1], this, [[1,, 3, 7]]); + } + + check(outer(3), [0, 2, 1, 0, 1, 4]); + check(outer(5), [0, 4, 3, "thrown", 4]); + }); + + it("should dispatch .thrown exceptions correctly", function () { + var _marked36 = [gen, inner].map(regeneratorRuntime.mark); + + var count = 0; + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context49) { + while (1) switch (_context49.prev = _context49.next) { + case 0: + return _context49.delegateYield(inner(), "t0", 1); + + case 1: + _context49.prev = 1; + return _context49.delegateYield(inner(), "t1", 3); + + case 3: + _context49.next = 7; + break; + + case 5: + _context49.prev = 5; + _context49.t2 = _context49["catch"](1); + + case 7: + return _context49.delegateYield(inner(), "t3", 8); + + case 8: + return _context49.abrupt("return", _context49.t3); + + case 9: + case "end": + return _context49.stop(); + } + }, _marked36[0], this, [[1, 5]]); + } + + function inner() { + return regeneratorRuntime.wrap(function inner$(_context50) { + while (1) switch (_context50.prev = _context50.next) { + case 0: + _context50.next = 2; + return count++; + + case 2: + return _context50.abrupt("return", _context50.sent); + + case 3: + case "end": + return _context50.stop(); + } + }, _marked36[1], this); + } + + var g = gen(); + + assert.deepEqual(g.next(), { + value: 0, + done: false + }); + + assert.deepEqual(g.next(), { + value: 1, + done: false + }); + + assert.deepEqual(g.throw(new Error("lol")), { + value: 2, + done: false + }); + + assert.deepEqual(g.next("sent"), { + value: "sent", + done: true + }); + }); + + it("should call .return methods of delegate iterators", function () { + var _marked37 = [gen].map(regeneratorRuntime.mark); + + var throwee = new Error("argument to gen.throw"); + var thrownFromThrow = new Error("thrown from throw method"); + var thrownFromReturn = new Error("thrown from return method"); + + function gen(delegate) { + return regeneratorRuntime.wrap(function gen$(_context51) { + while (1) switch (_context51.prev = _context51.next) { + case 0: + _context51.prev = 0; + return _context51.delegateYield(delegate, "t0", 2); + + case 2: + return _context51.abrupt("return", _context51.t0); + + case 5: + _context51.prev = 5; + _context51.t1 = _context51["catch"](0); + return _context51.abrupt("return", _context51.t1); + + case 8: + case "end": + return _context51.stop(); + } + }, _marked37[0], this, [[0, 5]]); + } + + function check(throwMethod, returnMethod) { + var throwCalled = false; + var returnCalled = false; + var count = 0; + var iterator = { + next: function () { + return { value: count++, done: false }; + } + }; + + iterator[iteratorSymbol] = function () { + return this; + }; + + if (throwMethod) { + iterator["throw"] = function () { + throwCalled = true; + return throwMethod.apply(this, arguments); + }; + } + + if (returnMethod) { + iterator["return"] = function () { + returnCalled = true; + return returnMethod.apply(this, arguments); + }; + } + + var g = gen(iterator); + + assert.deepEqual(g.next(), { value: 0, done: false }); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 2, done: false }); + assert.deepEqual(g.next(), { value: 3, done: false }); + + assert.strictEqual(throwCalled, false); + assert.strictEqual(returnCalled, false); + + var result = {}; + + result.throwResult = g.throw(throwee); + result.throwCalled = throwCalled; + result.returnCalled = returnCalled; + + return result; + } + + var checkResult = check(undefined, function () { + throw thrownFromReturn; + }); + if (runningInTranslation) { + // BUG: Node v0.11 and v0.12 neglect to call .return here. + assert.strictEqual(checkResult.throwResult.value, thrownFromReturn); + } else { + // This is the TypeError that results from trying to call the + // undefined .throw method of the iterator. + assert.ok(checkResult.throwResult.value instanceof TypeError); + } + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, false); + // BUG: Node v0.11 and v0.12 neglect to call .return here. + assert.strictEqual(checkResult.returnCalled, runningInTranslation); + + checkResult = check(undefined, function () { + return { value: "from return", done: true }; + }); + assert.notStrictEqual(checkResult.throwResult.value, throwee); + // This is the TypeError that results from trying to call the + // undefined .throw method of the iterator. + assert.ok(checkResult.throwResult.value instanceof TypeError); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, false); + // BUG: Node v0.11 and v0.12 neglect to call .return here. + assert.strictEqual(checkResult.returnCalled, runningInTranslation); + + var checkResult = check(function (thrown) { + return { value: "from throw", done: true }; + }, function () { + throw thrownFromReturn; + }); + assert.strictEqual(checkResult.throwResult.value, "from throw"); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, true); + assert.strictEqual(checkResult.returnCalled, false); + + var checkResult = check(function (thrown) { + throw thrownFromThrow; + }, function () { + throw thrownFromReturn; + }); + assert.strictEqual(checkResult.throwResult.value, thrownFromThrow); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, true); + assert.strictEqual(checkResult.returnCalled, false); + + var checkResult = check(undefined, undefined); + assert.notStrictEqual(checkResult.throwResult.value, throwee); + // This is the TypeError that results from trying to call the + // undefined .throw method of the iterator. + assert.ok(checkResult.throwResult.value instanceof TypeError); + assert.strictEqual(checkResult.throwResult.done, true); + assert.strictEqual(checkResult.throwCalled, false); + assert.strictEqual(checkResult.returnCalled, false); + }); + + it("should not be required to have a .return method", function () { + var _marked38 = [gen].map(regeneratorRuntime.mark); + + function gen(delegate) { + return regeneratorRuntime.wrap(function gen$(_context52) { + while (1) switch (_context52.prev = _context52.next) { + case 0: + return _context52.delegateYield(delegate, "t0", 1); + + case 1: + return _context52.abrupt("return", _context52.t0); + + case 2: + case "end": + return _context52.stop(); + } + }, _marked38[0], this); + } + + var inner = range(5); + var iterator = { next: inner.next.bind(inner) }; + iterator[iteratorSymbol] = function () { + return this; + }; + + var g = gen(iterator); + assert.deepEqual(g.next(), { value: 0, done: false }); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 2, done: false }); + + if (typeof g.return === "function") { + assert.deepEqual(g.return(-1), { value: -1, done: true }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + } + }); + + (runningInTranslation ? it : xit)("should support any iterable argument", function () { + var _marked39 = [gen, string].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context53) { + while (1) switch (_context53.prev = _context53.next) { + case 0: + _context53.next = 2; + return 0; + + case 2: + _context53.next = 4; + return "one"; + + case 4: + _context53.t0 = _context53.sent; + _context53.next = 7; + return "two"; + + case 7: + _context53.t1 = _context53.sent; + _context53.next = 10; + return "three"; + + case 10: + _context53.t2 = _context53.sent; + return _context53.delegateYield([_context53.t0, _context53.t1, _context53.t2], "t3", 12); + + case 12: + _context53.next = 14; + return 5; + + case 14: + case "end": + return _context53.stop(); + } + }, _marked39[0], this); + } + + check(gen(), [0, "one", "two", "three", 2, 3, 4, 5]); + + function string() { + return regeneratorRuntime.wrap(function string$(_context54) { + while (1) switch (_context54.prev = _context54.next) { + case 0: + return _context54.delegateYield("asdf", "t0", 1); + + case 1: + return _context54.abrupt("return", _context54.t0); + + case 2: + case "end": + return _context54.stop(); + } + }, _marked39[1], this); + } + + check(string(), ["a", "s", "d", "f"]); + }); + + it("should evaluate to the return value of the delegate", function () { + var _marked40 = [inner, outer].map(regeneratorRuntime.mark); + + function inner() { + return regeneratorRuntime.wrap(function inner$(_context55) { + while (1) switch (_context55.prev = _context55.next) { + case 0: + _context55.next = 2; + return 1; + + case 2: + return _context55.abrupt("return", 2); + + case 3: + case "end": + return _context55.stop(); + } + }, _marked40[0], this); + } + + function outer(delegate) { + return regeneratorRuntime.wrap(function outer$(_context56) { + while (1) switch (_context56.prev = _context56.next) { + case 0: + return _context56.delegateYield(delegate, "t0", 1); + + case 1: + return _context56.abrupt("return", _context56.t0); + + case 2: + case "end": + return _context56.stop(); + } + }, _marked40[1], this); + } + + check(outer(inner()), [1], 2); + + var arrayDelegate = [3, 4]; + if (!runningInTranslation) { + // Node v0.11 doesn't know how to turn arrays into iterators over + // their elements without a little help. + arrayDelegate = regeneratorRuntime.values(arrayDelegate); + } + check(outer(arrayDelegate), [3, 4], void 0); // See issue #143. + + if (!runningInTranslation) { + return; + } + + check(outer({ + next: function () { + return { value: "oyez", done: true }; + } + }), [], "oyez"); + }); + + it("should work as a subexpression", function () { + var _marked41 = [inner, gen].map(regeneratorRuntime.mark); + + function inner(arg) { + return regeneratorRuntime.wrap(function inner$(_context57) { + while (1) switch (_context57.prev = _context57.next) { + case 0: + return _context57.abrupt("return", arg); + + case 1: + case "end": + return _context57.stop(); + } + }, _marked41[0], this); + } + + function gen(delegate) { + return regeneratorRuntime.wrap(function gen$(_context58) { + while (1) switch (_context58.prev = _context58.next) { + case 0: + return _context58.delegateYield(delegate, "t0", 1); + + case 1: + _context58.t1 = _context58.t0; + return _context58.abrupt("return", 1 + _context58.t1); + + case 3: + case "end": + return _context58.stop(); + } + }, _marked41[1], this); + } + + check(gen(inner(2)), [], 3); + check(gen(inner(3)), [], 4); + + if (!runningInTranslation) { + return; + } + + check(gen({ + next: function () { + return { value: "foo", done: true }; + } + }), [], "1foo"); + }); +}); + +describe("function declaration hoisting", function () { + it("should work even if the declarations are out of order", function () { + var _marked42 = [gen].map(regeneratorRuntime.mark); + + function gen(n) { + var increment, halve, decrement; + return regeneratorRuntime.wrap(function gen$(_context59) { + while (1) switch (_context59.prev = _context59.next) { + case 0: + increment = function increment(x) { + return x + 1; + }; + + _context59.next = 3; + return increment(n); + + case 3: + if (!(n % 2)) { + _context59.next = 10; + break; + } + + decrement = function decrement(x) { + return x - 1; + }; + + halve = function halve(x) { + return x >> 1; + }; + + _context59.next = 8; + return halve(decrement(n)); + + case 8: + _context59.next = 11; + break; + + case 10: + // The behavior of function declarations nested inside conditional + // blocks is notoriously underspecified, and in V8 it appears the + // halve function is still defined when we take this branch, so + // "undefine" it for consistency with regenerator semantics. + halve = void 0; + + case 11: + _context59.next = 13; + return typeof halve; + + case 13: + _context59.next = 15; + return increment(increment(n)); + + case 15: + case "end": + return _context59.stop(); + } + }, _marked42[0], this); + } + + check(gen(3), [4, 1, "function", 5]); + check(gen(4), [5, "undefined", 6]); + }); + + it("should work for nested generator function declarations", function () { + var _marked44 = [outer].map(regeneratorRuntime.mark); + + function outer(n) { + var _marked43, inner; + + return regeneratorRuntime.wrap(function outer$(_context61) { + while (1) switch (_context61.prev = _context61.next) { + case 0: + inner = function inner(n) { + return regeneratorRuntime.wrap(function inner$(_context60) { + while (1) switch (_context60.prev = _context60.next) { + case 0: + _context60.next = 2; + return n - 1; + + case 2: + _context60.next = 4; + return n; + + case 4: + _context60.next = 6; + return n + 1; + + case 6: + return _context60.abrupt("return", _context60.sent); + + case 7: + case "end": + return _context60.stop(); + } + }, _marked43[0], this); + }; + + _marked43 = [inner].map(regeneratorRuntime.mark); + _context61.next = 4; + return 0; + + case 4: + assert.ok(regeneratorRuntime.isGeneratorFunction(inner)); + return _context61.delegateYield(inner(n), "t0", 6); + + case 6: + return _context61.abrupt("return", _context61.t0); + + case 7: + case "end": + return _context61.stop(); + } + }, _marked44[0], this); + } + + check(outer(2), [0, 1, 2, 3], 4); + }); + + it("should not interfere with function rebinding", function () { + var _marked45 = [toBeRebound].map(regeneratorRuntime.mark); + + function rebindTo(value) { + var oldValue = toBeRebound; + toBeRebound = value; + return oldValue; + } + + function toBeRebound() { + var originalValue; + return regeneratorRuntime.wrap(function toBeRebound$(_context62) { + while (1) switch (_context62.prev = _context62.next) { + case 0: + originalValue = toBeRebound; + _context62.next = 3; + return toBeRebound; + + case 3: + assert.strictEqual(rebindTo(42), originalValue); + _context62.next = 6; + return toBeRebound; + + case 6: + assert.strictEqual(rebindTo("asdf"), 42); + _context62.next = 9; + return toBeRebound; + + case 9: + case "end": + return _context62.stop(); + } + }, _marked45[0], this); + } + + var original = toBeRebound; + check(toBeRebound(), [original, 42, "asdf"]); + + function attemptToRebind(value) { + var oldValue = safe; + safe = value; + return oldValue; + } + + var safe = regeneratorRuntime.mark(function safe() { + var originalValue; + return regeneratorRuntime.wrap(function safe$(_context63) { + while (1) switch (_context63.prev = _context63.next) { + case 0: + originalValue = safe; + _context63.next = 3; + return safe; + + case 3: + assert.strictEqual(attemptToRebind(42), originalValue); + _context63.next = 6; + return safe; + + case 6: + assert.strictEqual(attemptToRebind("asdf"), 42); + _context63.next = 9; + return safe; + + case 9: + case "end": + return _context63.stop(); + } + }, safe, this); + }); + + original = safe; + check(safe(), [safe, safe, safe]); + }); +}); + +describe("the arguments object", function () { + it("should work in simple variadic functions", function () { + var _marked46 = [sum].map(regeneratorRuntime.mark); + + function sum() { + var result, + i, + _args64 = arguments; + return regeneratorRuntime.wrap(function sum$(_context64) { + while (1) switch (_context64.prev = _context64.next) { + case 0: + result = 0; + i = 0; + + case 2: + if (!(i < _args64.length)) { + _context64.next = 8; + break; + } + + _context64.next = 5; + return result += _args64[i]; + + case 5: + ++i; + _context64.next = 2; + break; + + case 8: + return _context64.abrupt("return", result); + + case 9: + case "end": + return _context64.stop(); + } + }, _marked46[0], this); + } + + check(sum(1, 2, 3), [1, 3, 6], 6); + check(sum(9, -5, 3, 0, 2), [9, 4, 7, 7, 9], 9); + }); + + it("should alias function parameters", function () { + var _marked47 = [gen].map(regeneratorRuntime.mark); + + function gen(x, y) { + var temp, + _args65 = arguments; + return regeneratorRuntime.wrap(function gen$(_context65) { + while (1) switch (_context65.prev = _context65.next) { + case 0: + _context65.next = 2; + return x; + + case 2: + ++_args65[0]; + _context65.next = 5; + return x; + + case 5: + _context65.next = 7; + return y; + + case 7: + --_args65[1]; + _context65.next = 10; + return y; + + case 10: + temp = y; + + y = x; + x = temp; + + _context65.next = 15; + return x; + + case 15: + _context65.next = 17; + return y; + + case 17: + case "end": + return _context65.stop(); + } + }, _marked47[0], this); + } + + check(gen(3, 7), [3, 4, 7, 6, 6, 4]); + check(gen(10, -5), [10, 11, -5, -6, -6, 11]); + }); + + it("should be shadowable by explicit declarations", function () { + var _marked48 = [asParameter, asVariable].map(regeneratorRuntime.mark); + + function asParameter(x, arguments) { + var _args66 = arguments; + return regeneratorRuntime.wrap(function asParameter$(_context66) { + while (1) switch (_context66.prev = _context66.next) { + case 0: + _args66 = _args66 + 1; + _context66.next = 3; + return x + _args66; + + case 3: + case "end": + return _context66.stop(); + } + }, _marked48[0], this); + } + + check(asParameter(4, 5), [10]); + check(asParameter("asdf", "zxcv"), ["asdfzxcv1"]); + + function asVariable(x) { + var arguments, + _args67 = arguments; + return regeneratorRuntime.wrap(function asVariable$(_context67) { + while (1) switch (_context67.prev = _context67.next) { + case 0: + // TODO References to arguments before the variable declaration + // seem to see the object instead of the undefined value. + _args67 = x + 1; + _context67.next = 3; + return _args67; + + case 3: + case "end": + return _context67.stop(); + } + }, _marked48[1], this); + } + + check(asVariable(4), [5]); + check(asVariable("asdf"), ["asdf1"]); + }); + + it("should not get confused by properties", function () { + var _marked49 = [gen].map(regeneratorRuntime.mark); + + function gen(args) { + var obj; + return regeneratorRuntime.wrap(function gen$(_context68) { + while (1) switch (_context68.prev = _context68.next) { + case 0: + obj = { arguments: args }; + _context68.next = 3; + return obj.arguments; + + case 3: + obj.arguments = "oyez"; + _context68.next = 6; + return obj; + + case 6: + case "end": + return _context68.stop(); + } + }, _marked49[0], this); + } + + check(gen(42), [42, { arguments: "oyez" }]); + }); + + it("supports .callee", function () { + var _marked50 = [gen].map(regeneratorRuntime.mark); + + function gen(doYield) { + var _args69 = arguments; + return regeneratorRuntime.wrap(function gen$(_context69) { + while (1) switch (_context69.prev = _context69.next) { + case 0: + _context69.next = 2; + return 1; + + case 2: + if (!doYield) { + _context69.next = 7; + break; + } + + _context69.next = 5; + return 2; + + case 5: + _context69.next = 12; + break; + + case 7: + _context69.next = 9; + return 3; + + case 9: + return _context69.delegateYield(_args69.callee(true), "t0", 10); + + case 10: + _context69.next = 12; + return 4; + + case 12: + _context69.next = 14; + return 5; + + case 14: + case "end": + return _context69.stop(); + } + }, _marked50[0], this); + } + + check(gen(false), [1, 3, 1, 2, 5, 4, 5]); + }); +}); + +describe("catch parameter shadowing", function () { + it("should leave outer variables unmodified", function () { + var _marked51 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + var y; + return regeneratorRuntime.wrap(function gen$(_context70) { + while (1) switch (_context70.prev = _context70.next) { + case 0: + y = x + 1; + _context70.prev = 1; + throw x + 2; + + case 5: + _context70.prev = 5; + _context70.t0 = _context70["catch"](1); + _context70.next = 9; + return _context70.t0; + + case 9: + _context70.t0 += 1; + _context70.next = 12; + return _context70.t0; + + case 12: + _context70.next = 14; + return x; + + case 14: + _context70.prev = 14; + throw x + 3; + + case 18: + _context70.prev = 18; + _context70.t1 = _context70["catch"](14); + _context70.next = 22; + return _context70.t1; + + case 22: + _context70.t1 *= 2; + _context70.next = 25; + return _context70.t1; + + case 25: + _context70.next = 27; + return y; + + case 27: + case "end": + return _context70.stop(); + } + }, _marked51[0], this, [[1, 5], [14, 18]]); + } + + check(gen(1), [3, 4, 1, 4, 8, 2]); + check(gen(2), [4, 5, 2, 5, 10, 3]); + }); + + it("should not replace variables defined in inner scopes", function () { + var _marked52 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context71) { + while (1) switch (_context71.prev = _context71.next) { + case 0: + _context71.prev = 0; + throw x; + + case 4: + _context71.prev = 4; + _context71.t0 = _context71["catch"](0); + _context71.next = 8; + return _context71.t0; + + case 8: + _context71.next = 10; + return (function (x) { + return x += 1; + })(_context71.t0 + 1); + + case 10: + _context71.next = 12; + return (function () { + var x = arguments[0]; + return x * 2; + })(_context71.t0 + 2); + + case 12: + _context71.next = 14; + return (function () { + function notCalled(x) { + throw x; + } + + _context71.t0 >>= 1; + return _context71.t0; + })(); + + case 14: + _context71.next = 16; + return _context71.t0 -= 1; + + case 16: + _context71.next = 18; + return x; + + case 18: + case "end": + return _context71.stop(); + } + }, _marked52[0], this, [[0, 4]]); + } + + check(gen(10), [10, 12, 24, 5, 4, 10]); + check(gen(11), [11, 13, 26, 5, 4, 11]); + }); + + it("should allow nested catch parameters of the same name", function () { + var _marked53 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context72) { + while (1) switch (_context72.prev = _context72.next) { + case 0: + _context72.prev = 0; + + raise("e1"); + _context72.next = 18; + break; + + case 4: + _context72.prev = 4; + _context72.t0 = _context72["catch"](0); + _context72.next = 8; + return _context72.t0; + + case 8: + _context72.prev = 8; + + raise("e2"); + _context72.next = 16; + break; + + case 12: + _context72.prev = 12; + _context72.t1 = _context72["catch"](8); + _context72.next = 16; + return _context72.t1; + + case 16: + _context72.next = 18; + return _context72.t0; + + case 18: + case "end": + return _context72.stop(); + } + }, _marked53[0], this, [[0, 4], [8, 12]]); + } + + check(gen(), ["e1", "e2", "e1"]); + }); + + it("should not interfere with non-referential identifiers", function () { + var _marked54 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context73) { + while (1) switch (_context73.prev = _context73.next) { + case 0: + _context73.prev = 0; + _context73.next = 3; + return 1; + + case 3: + raise(new Error("oyez")); + _context73.next = 6; + return 2; + + case 6: + _context73.next = 15; + break; + + case 8: + _context73.prev = 8; + _context73.t0 = _context73["catch"](0); + _context73.next = 12; + return 3; + + case 12: + _context73.t0.e = "e.e"; + _context73.t0[_context73.t0.message] = "e.oyez"; + return _context73.abrupt("return", { + e: _context73.t0, + identity: function (x) { + var e = x; + return e; + } + }); + + case 15: + _context73.next = 17; + return 4; + + case 17: + case "end": + return _context73.stop(); + } + }, _marked54[0], this, [[0, 8]]); + } + + var g = gen(); + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 3, done: false }); + + var info = g.next(); + assert.strictEqual(info.done, true); + assert.strictEqual(info.value.e.message, "oyez"); + assert.strictEqual(info.value.e.e, "e.e"); + assert.strictEqual(info.value.e.oyez, "e.oyez"); + assert.strictEqual(info.value.identity("same"), "same"); + }); +}); + +describe("empty while loops", function () { + it("should be preserved in generated code", function () { + var _marked55 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context74) { + while (1) switch (_context74.prev = _context74.next) { + case 0: + while (x) { + // empty while loop + } + + do { + // empty do-while loop + } while (x); + + return _context74.abrupt("return", gen.toString()); + + case 3: + case "end": + return _context74.stop(); + } + }, _marked55[0], this); + } + + var info = gen(false).next(); + assert.strictEqual(info.done, true); + assert.ok(/empty while loop/.test(info.value)); + assert.ok(/empty do-while loop/.test(info.value)); + }); +}); + +describe("object literals with multiple yields", function () { + it("should receive different sent values", function () { + var _marked56 = [gen].map(regeneratorRuntime.mark); + + function gen(fn) { + return regeneratorRuntime.wrap(function gen$(_context75) { + while (1) switch (_context75.prev = _context75.next) { + case 0: + _context75.next = 2; + return "a"; + + case 2: + _context75.t0 = _context75.sent; + _context75.next = 5; + return "b"; + + case 5: + _context75.t1 = _context75.sent; + _context75.next = 8; + return "c"; + + case 8: + _context75.t2 = _context75.sent; + _context75.next = 11; + return "d"; + + case 11: + _context75.t3 = _context75.sent; + _context75.t4 = fn(_context75.t2, _context75.t3); + _context75.next = 15; + return "e"; + + case 15: + _context75.t5 = _context75.sent; + _context75.next = 18; + return "f"; + + case 18: + _context75.t6 = _context75.sent; + _context75.t7 = [_context75.t5, _context75.t6]; + return _context75.abrupt("return", { + a: _context75.t0, + b: _context75.t1, + c: _context75.t4, + d: _context75.t7 + }); + + case 21: + case "end": + return _context75.stop(); + } + }, _marked56[0], this); + } + + check(gen(function sum(x, y) { + return x + y; + }), ["a", "b", "c", "d", "e", "f"], { + a: 1, + b: 2, + c: 3 + 4, + d: [5, 6] + }); + }); +}); + +describe("generator .throw method", function () { + (runningInTranslation ? it : xit)("should complete generator", function () { + var _marked57 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context76) { + while (1) switch (_context76.prev = _context76.next) { + case 0: + _context76.next = 2; + return 2; + + case 2: + throw 1; + + case 3: + case "end": + return _context76.stop(); + } + }, _marked57[0], this); + } + + var u = gen(); + + u.next(); + + try { + u.throw(2); + } catch (err) { + assert.strictEqual(err, 2); + } + + assertAlreadyFinished(u); + }); + + it("should work after the final call to .next", function () { + var _marked58 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context77) { + while (1) switch (_context77.prev = _context77.next) { + case 0: + _context77.next = 2; + return 1; + + case 2: + case "end": + return _context77.stop(); + } + }, _marked58[0], this); + } + + var g = gen(); + assert.deepEqual(g.next(), { value: 1, done: false }); + + var exception = new Error("unhandled exception"); + try { + g.throw(exception); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, exception); + } + }); + + it("should immediately complete a new-born generator", function () { + var _marked59 = [gen].map(regeneratorRuntime.mark); + + var began = false; + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context78) { + while (1) switch (_context78.prev = _context78.next) { + case 0: + began = true; + _context78.next = 3; + return 1; + + case 3: + case "end": + return _context78.stop(); + } + }, _marked59[0], this); + } + + var g = gen(); + var exception = new Error("unhandled exception"); + try { + g.throw(exception); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, exception); + assert.strictEqual(began, false); + } + }); + + it("should not propagate errors handled inside a delegate", function () { + var _marked60 = [outer, inner].map(regeneratorRuntime.mark); + + function outer() { + return regeneratorRuntime.wrap(function outer$(_context79) { + while (1) switch (_context79.prev = _context79.next) { + case 0: + _context79.prev = 0; + return _context79.delegateYield(inner(), "t0", 2); + + case 2: + _context79.next = 7; + break; + + case 4: + _context79.prev = 4; + _context79.t1 = _context79["catch"](0); + return _context79.abrupt("return", -1); + + case 7: + return _context79.abrupt("return", 1); + + case 8: + case "end": + return _context79.stop(); + } + }, _marked60[0], this, [[0, 4]]); + } + + function inner() { + return regeneratorRuntime.wrap(function inner$(_context80) { + while (1) switch (_context80.prev = _context80.next) { + case 0: + _context80.prev = 0; + _context80.next = 3; + return void 0; + + case 3: + _context80.next = 8; + break; + + case 5: + _context80.prev = 5; + _context80.t0 = _context80["catch"](0); + return _context80.abrupt("return"); + + case 8: + case "end": + return _context80.stop(); + } + }, _marked60[1], this, [[0, 5]]); + } + + var g = outer(); + g.next(); + assert.equal(g.throw(new Error('foo')).value, 1); + }); + + it("should propagate errors unhandled inside a delegate", function () { + var _marked61 = [outer, inner].map(regeneratorRuntime.mark); + + function outer() { + return regeneratorRuntime.wrap(function outer$(_context81) { + while (1) switch (_context81.prev = _context81.next) { + case 0: + _context81.prev = 0; + return _context81.delegateYield(inner(), "t0", 2); + + case 2: + _context81.next = 7; + break; + + case 4: + _context81.prev = 4; + _context81.t1 = _context81["catch"](0); + return _context81.abrupt("return", -1); + + case 7: + return _context81.abrupt("return", 1); + + case 8: + case "end": + return _context81.stop(); + } + }, _marked61[0], this, [[0, 4]]); + } + + function inner() { + return regeneratorRuntime.wrap(function inner$(_context82) { + while (1) switch (_context82.prev = _context82.next) { + case 0: + _context82.next = 2; + return void 0; + + case 2: + case "end": + return _context82.stop(); + } + }, _marked61[1], this); + } + + var g = outer(); + g.next(); + assert.equal(g.throw(new Error('foo')).value, -1); + }); +}); + +describe("unqualified function calls", function () { + it("should have a global `this` object", function () { + var _marked62 = [invoke].map(regeneratorRuntime.mark); + + function getThis() { + return this; + } + + // This is almost certainly the global object, but there's a chance it + // might be null or undefined (in strict mode). + var unqualifiedThis = getThis(); + + function invoke() { + return regeneratorRuntime.wrap(function invoke$(_context83) { + while (1) switch (_context83.prev = _context83.next) { + case 0: + _context83.next = 2; + return "dummy"; + + case 2: + return _context83.abrupt("return", (0, _context83.sent)()); + + case 3: + case "end": + return _context83.stop(); + } + }, _marked62[0], this); + } + + var g = invoke(); + var info = g.next(); + + assert.deepEqual(info, { value: "dummy", done: false }); + + info = g.next(getThis); + + // Avoid using assert.strictEqual when the arguments might equal the + // global object, since JSON.stringify chokes on circular structures. + assert.ok(info.value === unqualifiedThis); + + assert.strictEqual(info.done, true); + }); +}); + +describe("yield* expression results", function () { + it("have correct values", function () { + var _marked63 = [foo, bar].map(regeneratorRuntime.mark); + + function foo() { + return regeneratorRuntime.wrap(function foo$(_context84) { + while (1) switch (_context84.prev = _context84.next) { + case 0: + _context84.next = 2; + return 0; + + case 2: + return _context84.delegateYield(bar(), "t0", 3); + + case 3: + return _context84.abrupt("return", _context84.t0); + + case 4: + case "end": + return _context84.stop(); + } + }, _marked63[0], this); + } + + function bar() { + return regeneratorRuntime.wrap(function bar$(_context85) { + while (1) switch (_context85.prev = _context85.next) { + case 0: + _context85.next = 2; + return 1; + + case 2: + return _context85.abrupt("return", 2); + + case 3: + case "end": + return _context85.stop(); + } + }, _marked63[1], this); + } + + check(foo(), [0, 1], 2); + }); + + it("can be used in complex expressions", function () { + var _marked64 = [foo, bar].map(regeneratorRuntime.mark); + + function pumpNumber(gen) { + var n = 0; + + while (true) { + var res = n > 0 ? gen.next(n) : gen.next(); + n = res.value; + if (res.done) { + return n; + } + } + } + + function foo() { + return regeneratorRuntime.wrap(function foo$(_context86) { + while (1) switch (_context86.prev = _context86.next) { + case 0: + return _context86.delegateYield(bar(), "t0", 1); + + case 1: + _context86.t1 = _context86.t0; + return _context86.delegateYield(bar(), "t2", 3); + + case 3: + _context86.t3 = _context86.t2; + return _context86.abrupt("return", _context86.t1 + _context86.t3); + + case 5: + case "end": + return _context86.stop(); + } + }, _marked64[0], this); + } + + function bar() { + return regeneratorRuntime.wrap(function bar$(_context87) { + while (1) switch (_context87.prev = _context87.next) { + case 0: + _context87.next = 2; + return 2; + + case 2: + _context87.t0 = _context87.sent; + _context87.next = 5; + return 3; + + case 5: + _context87.t1 = _context87.sent; + return _context87.abrupt("return", _context87.t0 + _context87.t1); + + case 7: + case "end": + return _context87.stop(); + } + }, _marked64[1], this); + } + + assert.strictEqual(pumpNumber(bar()), 5); + assert.strictEqual(pumpNumber(foo()), 10); + }); +}); + +describe("isGeneratorFunction", function () { + it("should work for function declarations", function () { + var _marked65 = [genFun].map(regeneratorRuntime.mark); + + // Do the assertions up here to make sure the generator function is + // marked at the beginning of the block the function is declared in. + assert.strictEqual(regeneratorRuntime.isGeneratorFunction(genFun), true); + + assert.strictEqual(regeneratorRuntime.isGeneratorFunction(normalFun), false); + + function normalFun() { + return 0; + } + + function genFun() { + return regeneratorRuntime.wrap(function genFun$(_context88) { + while (1) switch (_context88.prev = _context88.next) { + case 0: + _context88.next = 2; + return 0; + + case 2: + case "end": + return _context88.stop(); + } + }, _marked65[0], this); + } + }); + + it("should work for function expressions", function () { + assert.strictEqual(regeneratorRuntime.isGeneratorFunction(regeneratorRuntime.mark(function genFun() { + return regeneratorRuntime.wrap(function genFun$(_context89) { + while (1) switch (_context89.prev = _context89.next) { + case 0: + _context89.next = 2; + return 0; + + case 2: + case "end": + return _context89.stop(); + } + }, genFun, this); + })), true); + + assert.strictEqual(regeneratorRuntime.isGeneratorFunction(function normalFun() { + return 0; + }), false); + }); +}); + +describe("new expressions", function () { + it("should be able to contain yield sub-expressions", function () { + var _marked66 = [gen].map(regeneratorRuntime.mark); + + function A(first, second) { + this.first = first; + this.second = second; + } + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context90) { + while (1) switch (_context90.prev = _context90.next) { + case 0: + _context90.next = 2; + return 0; + + case 2: + _context90.t0 = _context90.sent; + _context90.next = 5; + return 1; + + case 5: + _context90.t1 = _context90.sent; + _context90.next = 8; + return 2; + + case 8: + _context90.t2 = _context90.sent; + _context90.next = 11; + return new _context90.t0(_context90.t1, _context90.t2); + + case 11: + return _context90.abrupt("return", _context90.sent); + + case 12: + case "end": + return _context90.stop(); + } + }, _marked66[0], this); + } + + var g = gen(); + + assert.deepEqual(g.next(), { value: 0, done: false }); + assert.deepEqual(g.next(A), { value: 1, done: false }); + assert.deepEqual(g.next("asdf"), { value: 2, done: false }); + + var info = g.next("zxcv"); + assert.strictEqual(info.done, false); + assert.ok(info.value instanceof A); + assert.strictEqual(info.value.first, "asdf"); + assert.strictEqual(info.value.second, "zxcv"); + + assert.deepEqual(g.next("qwer"), { value: "qwer", done: true }); + }); +}); + +describe("block binding", function () { + it("should translate block binding correctly", function () { + "use strict"; + + var _marked67 = [gen].map(regeneratorRuntime.mark); + + function gen() { + var a$0, a$1, a, _a, _a2; + + return regeneratorRuntime.wrap(function gen$(_context91) { + while (1) switch (_context91.prev = _context91.next) { + case 0: + a$0 = 0, a$1 = 1; + a = 3; + _a = 1; + _context91.next = 5; + return _a + a$0; + + case 5: + _a2 = 2; + _context91.next = 8; + return _a2 - 1 + a$1; + + case 8: + _context91.next = 10; + return a; + + case 10: + case "end": + return _context91.stop(); + } + }, _marked67[0], this); + } + + var g = gen(); + + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: 2, done: false }); + assert.deepEqual(g.next(), { value: 3, done: false }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + }); + + it("should translate block binding with iife correctly", function () { + "use strict"; + + var _marked68 = [gen].map(regeneratorRuntime.mark); + + function gen() { + var arr, _loop, x; + + return regeneratorRuntime.wrap(function gen$(_context92) { + while (1) switch (_context92.prev = _context92.next) { + case 0: + arr = []; + + _loop = function (x) { + var y = x; + arr.push(function () { + return y; + }); + }; + + for (x = 0; x < 3; x++) { + _loop(x); + } + + x = undefined; + + case 4: + if (!(x = arr.pop())) { + _context92.next = 9; + break; + } + + _context92.next = 7; + return x; + + case 7: + _context92.next = 4; + break; + + case 9: + case "end": + return _context92.stop(); + } + }, _marked68[0], this); + } + + var g = gen(); + + assert.equal(g.next().value(), 2); + assert.equal(g.next().value(), 1); + assert.equal(g.next().value(), 0); + assert.deepEqual(g.next(), { value: void 0, done: true }); + }); +}); + +describe("newborn generators", function () { + it("should be able to yield* non-newborn generators", function () { + var _marked69 = [inner, outer].map(regeneratorRuntime.mark); + + function inner() { + return regeneratorRuntime.wrap(function inner$(_context93) { + while (1) switch (_context93.prev = _context93.next) { + case 0: + _context93.next = 2; + return 1; + + case 2: + _context93.t0 = _context93.sent; + _context93.next = 5; + return 2; + + case 5: + _context93.t1 = _context93.sent; + return _context93.abrupt("return", [_context93.t0, _context93.t1]); + + case 7: + case "end": + return _context93.stop(); + } + }, _marked69[0], this); + } + + function outer(delegate) { + return regeneratorRuntime.wrap(function outer$(_context94) { + while (1) switch (_context94.prev = _context94.next) { + case 0: + return _context94.delegateYield(delegate, "t0", 1); + + case 1: + return _context94.abrupt("return", _context94.t0); + + case 2: + case "end": + return _context94.stop(); + } + }, _marked69[1], this); + } + + var n = inner(); + + assert.deepEqual(n.next(), { + value: 1, + done: false + }); + + var g = outer(n); + + // I would really like to be able to pass 3 to g.next here, but V8 + // ignores values sent to newborn generators, and SpiderMonkey throws + // a TypeError. + assert.deepEqual(g.next(), { + value: 2, + done: false + }); + + assert.deepEqual(g.next(4), { + value: [void 0, 4], + done: true + }); + }); + + it("should support the ignore-initial-yield wrapper idiom", function () { + var _marked70 = [inner].map(regeneratorRuntime.mark); + + var markers = []; + + function inner() { + var sent1, sent2; + return regeneratorRuntime.wrap(function inner$(_context95) { + while (1) switch (_context95.prev = _context95.next) { + case 0: + markers.push(0); + _context95.next = 3; + return 1; + + case 3: + sent1 = _context95.sent; + + markers.push(2); + _context95.next = 7; + return 2; + + case 7: + sent2 = _context95.sent; + + markers.push(3); + return _context95.abrupt("return", [sent1, sent2]); + + case 10: + case "end": + return _context95.stop(); + } + }, _marked70[0], this); + } + + function wrapper(delegate) { + var gen = regeneratorRuntime.mark(function _callee4() { + var sent, info; + return regeneratorRuntime.wrap(function _callee4$(_context96) { + while (1) switch (_context96.prev = _context96.next) { + case 0: + _context96.next = 2; + return "ignored"; + + case 2: + sent = _context96.sent; + + markers.push(1); + + case 4: + if ((info = delegate.next(sent)).done) { + _context96.next = 10; + break; + } + + _context96.next = 7; + return info.value; + + case 7: + sent = _context96.sent; + _context96.next = 4; + break; + + case 10: + + markers.push(4); + + return _context96.abrupt("return", info.value); + + case 12: + case "end": + return _context96.stop(); + } + }, _callee4, this); + })(); + + // Ensure that gen is not newborn and that the next invocation of + // gen.next(value) can send value to the initial yield expression. + gen.next(); + + return gen; + } + + var n = inner(); + + assert.deepEqual(n.next(), { + value: 1, + done: false + }); + + var g = wrapper(n); + + // Unlike in the previous spec, it's fine to pass 3 to g.next here, + // because g is not newborn, because g.next was already called once + // before g was returned from the wrapper function. + assert.deepEqual(g.next(3), { + value: 2, + done: false + }); + + assert.deepEqual(g.next(4), { + value: [3, 4], + done: true + }); + + // Ensure we encountered the marker points in the expected order. + assert.deepEqual(markers, [0, 1, 2, 3, 4]); + }); + + it("should allow chaining newborn and non-newborn generators", function () { + var _marked71 = [range, chain, y3, y5].map(regeneratorRuntime.mark); + + function range(n) { + var i; + return regeneratorRuntime.wrap(function range$(_context97) { + while (1) switch (_context97.prev = _context97.next) { + case 0: + i = 0; + + case 1: + if (!(i < n)) { + _context97.next = 7; + break; + } + + _context97.next = 4; + return i; + + case 4: + ++i; + _context97.next = 1; + break; + + case 7: + case "end": + return _context97.stop(); + } + }, _marked71[0], this); + } + + function chain(a, b) { + return regeneratorRuntime.wrap(function chain$(_context98) { + while (1) switch (_context98.prev = _context98.next) { + case 0: + return _context98.delegateYield(a, "t0", 1); + + case 1: + return _context98.delegateYield(b, "t1", 2); + + case 2: + case "end": + return _context98.stop(); + } + }, _marked71[1], this); + } + + check(chain(range(3), range(5)), [0, 1, 2, 0, 1, 2, 3, 4]); + + function y3(x) { + return regeneratorRuntime.wrap(function y3$(_context99) { + while (1) switch (_context99.prev = _context99.next) { + case 0: + _context99.next = 2; + return x; + + case 2: + _context99.next = 4; + return _context99.sent; + + case 4: + _context99.next = 6; + return _context99.sent; + + case 6: + return _context99.abrupt("return", _context99.sent); + + case 7: + case "end": + return _context99.stop(); + } + }, _marked71[2], this); + } + + function y5(x) { + return regeneratorRuntime.wrap(function y5$(_context100) { + while (1) switch (_context100.prev = _context100.next) { + case 0: + _context100.next = 2; + return x; + + case 2: + _context100.next = 4; + return _context100.sent; + + case 4: + _context100.next = 6; + return _context100.sent; + + case 6: + _context100.next = 8; + return _context100.sent; + + case 8: + _context100.next = 10; + return _context100.sent; + + case 10: + return _context100.abrupt("return", _context100.sent); + + case 11: + case "end": + return _context100.stop(); + } + }, _marked71[3], this); + } + + check(chain(y3("foo"), y5("bar")), ["foo", 1, 2, "bar", 4, 5, 6, 7]); + + var g3 = y3("three"); + assert.deepEqual(g3.next(), { + value: "three", + done: false + }); + + var g5 = y5("five"); + assert.deepEqual(g5.next(), { + value: "five", + done: false + }); + + var undef; // A little easier to read than void 0. + check(chain(g3, g5), [undef, 1, undef, 3, 4, 5]); + }); +}); + +describe("labeled break and continue statements", function () { + it("should be able to exit multiple try statements", function () { + var _marked72 = [gen].map(regeneratorRuntime.mark); + + var e1 = "first"; + var e2 = "second"; + var e3 = "third"; + var e4 = "fourth"; + + function gen(n, which) { + var i; + return regeneratorRuntime.wrap(function gen$(_context101) { + while (1) switch (_context101.prev = _context101.next) { + case 0: + _context101.prev = 0; + _context101.next = 3; + return 0; + + case 3: + raise(e1); + + case 4: + _context101.prev = 4; + _context101.next = 7; + return 1; + + case 7: + i = 0; + + case 8: + if (!(i < n)) { + _context101.next = 42; + break; + } + + _context101.next = 11; + return i; + + case 11: + _context101.prev = 11; + + raise(e2); + + case 13: + _context101.prev = 13; + _context101.next = 16; + return 2; + + case 16: + _context101.prev = 16; + + raise(e3); + + case 18: + _context101.prev = 18; + _context101.next = 21; + return 3; + + case 21: + _context101.prev = 21; + + raise(e4); + + case 23: + _context101.prev = 23; + _context101.next = 26; + return 4; + + case 26: + if (!(which === "break")) { + _context101.next = 30; + break; + } + + _context101.next = 29; + return "breaking"; + + case 29: + return _context101.abrupt("break", 42); + + case 30: + if (!(which === "continue")) { + _context101.next = 34; + break; + } + + _context101.next = 33; + return "continuing"; + + case 33: + return _context101.abrupt("continue", 39); + + case 34: + _context101.next = 36; + return 5; + + case 36: + return _context101.finish(23); + + case 37: + return _context101.finish(18); + + case 38: + return _context101.finish(13); + + case 39: + ++i; + _context101.next = 8; + break; + + case 42: + _context101.next = 44; + return 6; + + case 44: + return _context101.finish(4); + + case 45: + case "end": + return _context101.stop(); + } + }, _marked72[0], this, [[0,, 4, 45], [11,, 13, 39], [16,, 18, 38], [21,, 23, 37]]); + } + + try { + check(gen(1, "break"), [0, 1, 0, 2, 3, 4, "breaking", 6]); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, e1); + } + + try { + check(gen(3, "continue"), [0, 1, 0, 2, 3, 4, "continuing", 1, 2, 3, 4, "continuing", 2, 2, 3, 4, "continuing", 6 // Loop finished naturally. + ]); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, e1); + } + + try { + check(gen(3, "neither"), [0, 1, 0, 2, 3, 4, 5]); + assert.ok(false, "should have thrown an exception"); + } catch (err) { + assert.strictEqual(err, e4); + } + }); + + it("should allow breaking from any labeled statement", function () { + var _marked73 = [gen].map(regeneratorRuntime.mark); + + function gen(limit) { + var i; + return regeneratorRuntime.wrap(function gen$(_context102) { + while (1) switch (_context102.prev = _context102.next) { + case 0: + _context102.next = 2; + return 0; + + case 2: + i = 0; + + case 3: + if (!(i < limit)) { + _context102.next = 32; + break; + } + + _context102.next = 6; + return 1; + + case 6: + _context102.next = 8; + return 2; + + case 8: + return _context102.abrupt("break", 11); + + case 11: + if (!(limit === 3)) { + _context102.next = 26; + break; + } + + _context102.next = 14; + return 4; + + case 14: + if (!(i === 0)) { + _context102.next = 16; + break; + } + + return _context102.abrupt("break", 26); + + case 16: + _context102.next = 18; + return 5; + + case 18: + if (!(i === 1)) { + _context102.next = 20; + break; + } + + return _context102.abrupt("break", 26); + + case 20: + _context102.next = 22; + return 6; + + case 22: + if (!(i === 2)) { + _context102.next = 24; + break; + } + + return _context102.abrupt("break", 32); + + case 24: + _context102.next = 26; + return 7; + + case 26: + return _context102.abrupt("break", 27); + + case 27: + _context102.next = 29; + return 8; + + case 29: + ++i; + _context102.next = 3; + break; + + case 32: + _context102.next = 34; + return 9; + + case 34: + case "end": + return _context102.stop(); + } + }, _marked73[0], this); + } + + check(gen(0), [0, 9]); + check(gen(1), [0, 1, 2, 8, 9]); + check(gen(2), [0, 1, 2, 8, 1, 2, 8, 9]); + check(gen(3), [0, 1, 2, 4, 8, 1, 2, 4, 5, 8, 1, 2, 4, 5, 6, 9]); + }); +}); + +describe("for loop with var decl and no update expression", function () { + var _marked74 = [range].map(regeneratorRuntime.mark); + + // https://github.com/facebook/regenerator/issues/103 + function range() { + var i; + return regeneratorRuntime.wrap(function range$(_context103) { + while (1) switch (_context103.prev = _context103.next) { + case 0: + for (i = 0; false;) {} + + case 1: + case "end": + return _context103.stop(); + } + }, _marked74[0], this); + } + + it("should compile and run", function () { + check(range(), []); + }); +}); + +describe("generator function prototype", function () { + function getProto(obj) { + return Object.getPrototypeOf ? Object.getPrototypeOf(obj) : obj.__proto__; + } + + it("should follow the expected object model", function () { + var _marked75 = [f2, f, f].map(regeneratorRuntime.mark); + + var GeneratorFunctionPrototype = getProto(f); + var GeneratorFunction = GeneratorFunctionPrototype.constructor; + + assert.strictEqual(GeneratorFunction.name, 'GeneratorFunction'); + assert.strictEqual(GeneratorFunction.prototype, GeneratorFunctionPrototype); + assert.strictEqual(GeneratorFunctionPrototype.prototype.constructor, GeneratorFunctionPrototype); + assert.strictEqual(GeneratorFunctionPrototype.prototype, getProto(f.prototype)); + assert.strictEqual(getProto(GeneratorFunctionPrototype), Function.prototype); + + if (typeof process === "undefined" || process.version.slice(1, 3) === "0.") { + // Node version strings start with 0. + assert.strictEqual(GeneratorFunctionPrototype.name, "GeneratorFunctionPrototype"); + } else if (process.version.slice(1, 3) === "1.") { + // iojs version strings start with 1., and iojs gets this .name + // property wrong. TODO report this? + assert.strictEqual(GeneratorFunctionPrototype.name, ""); + } + + assert.strictEqual(typeof f2, "function"); + assert.strictEqual(f2.constructor, GeneratorFunction); + assert.ok(f2 instanceof GeneratorFunction); + assert.strictEqual(f2.name, "f2"); + + var g = f(); + assert.ok(g instanceof f); + assert.strictEqual(getProto(g), f.prototype); + + assert.deepEqual([], Object.getOwnPropertyNames(f.prototype)); + // assert.deepEqual([], Object.getOwnPropertyNames(g)); + + f.prototype.x = 42; + + var g2 = f(); + assert.strictEqual(g2.x, 42); + + var g3 = new f(); + assert.strictEqual(g3.x, 42); + + function f2() { + return regeneratorRuntime.wrap(function f2$(_context104) { + while (1) switch (_context104.prev = _context104.next) { + case 0: + _context104.next = 2; + return 1; + + case 2: + case "end": + return _context104.stop(); + } + }, _marked75[0], this); + } + + assert.strictEqual(getProto(f), getProto(f2)); + assert.strictEqual(f.hasOwnProperty('constructor'), false); + assert.strictEqual(getProto(f).constructor.name, 'GeneratorFunction'); + + // Intentionally at the end to test hoisting. + function f() { + return regeneratorRuntime.wrap(function f$(_context105) { + while (1) switch (_context105.prev = _context105.next) { + case 0: + _context105.next = 2; + return this; + + case 2: + case "end": + return _context105.stop(); + } + }, _marked75[1], this); + } + + function f() { + return regeneratorRuntime.wrap(function f$(_context106) { + while (1) switch (_context106.prev = _context106.next) { + case 0: + _context106.next = 2; + return 1; + + case 2: + case "end": + return _context106.stop(); + } + }, _marked75[2], this); + } + + var f2 = f; + f = 42; + var g = f2(); + + assert.deepEqual(g.next(), { value: 1, done: false }); + assert.deepEqual(g.next(), { value: void 0, done: true }); + assert.ok(g instanceof f2); + }); +}); + +describe("for-of loops", function () { + (runningInTranslation ? it : xit)("should work for Arrays", function () { + var sum = 0; + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = [1, 2].concat(3)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var x = _step.value; + + sum += x; + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + assert.strictEqual(sum, 6); + }); + + it("should work for generators", function () { + var value, + values = []; + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = range(3)[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + value = _step2.value; + + values.push(value); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + assert.deepEqual(values, [0, 1, 2]); + }); + + it("should work inside of generators", function () { + var _marked76 = [yieldPermutations].map(regeneratorRuntime.mark); + + function yieldPermutations(list) { + var count, first, genRest, _iteratorNormalCompletion3, _didIteratorError3, _iteratorError3, _iterator3, _step3, perm, i, prefix, suffix; + + return regeneratorRuntime.wrap(function yieldPermutations$(_context107) { + while (1) switch (_context107.prev = _context107.next) { + case 0: + if (!(list.length < 2)) { + _context107.next = 4; + break; + } + + _context107.next = 3; + return list; + + case 3: + return _context107.abrupt("return", 1); + + case 4: + count = 0; + first = list.slice(0, 1); + genRest = yieldPermutations(list.slice(1)); + _iteratorNormalCompletion3 = true; + _didIteratorError3 = false; + _iteratorError3 = undefined; + _context107.prev = 10; + _iterator3 = genRest[Symbol.iterator](); + + case 12: + if (_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done) { + _context107.next = 27; + break; + } + + perm = _step3.value; + i = 0; + + case 15: + if (!(i < list.length)) { + _context107.next = 23; + break; + } + + prefix = perm.slice(0, i); + suffix = perm.slice(i); + _context107.next = 20; + return prefix.concat(first, suffix); + + case 20: + ++i; + _context107.next = 15; + break; + + case 23: + + count += i; + + case 24: + _iteratorNormalCompletion3 = true; + _context107.next = 12; + break; + + case 27: + _context107.next = 33; + break; + + case 29: + _context107.prev = 29; + _context107.t0 = _context107["catch"](10); + _didIteratorError3 = true; + _iteratorError3 = _context107.t0; + + case 33: + _context107.prev = 33; + _context107.prev = 34; + + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + + case 36: + _context107.prev = 36; + + if (!_didIteratorError3) { + _context107.next = 39; + break; + } + + throw _iteratorError3; + + case 39: + return _context107.finish(36); + + case 40: + return _context107.finish(33); + + case 41: + return _context107.abrupt("return", count); + + case 42: + case "end": + return _context107.stop(); + } + }, _marked76[0], this, [[10, 29, 33, 41], [34,, 36, 40]]); + } + + var count = 0; + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = yieldPermutations([])[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var perm = _step4.value; + + assert.deepEqual(perm, []); + ++count; + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + + assert.strictEqual(count, 1); + + check(yieldPermutations([1]), [[1]], 1); + + check(yieldPermutations([2, 1]), [[2, 1], [1, 2]], 2); + + check(yieldPermutations([1, 3, 2]), [[1, 3, 2], [3, 1, 2], [3, 2, 1], [1, 2, 3], [2, 1, 3], [2, 3, 1]], 6); + }); +}); + +describe("generator return method", function () { + if (!runningInTranslation) { + // The return method has not been specified or implemented natively, + // yet, so these tests need only pass in translation. + return; + } + + it("should work with newborn generators", function () { + var _marked77 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context108) { + while (1) switch (_context108.prev = _context108.next) { + case 0: + _context108.next = 2; + return 0; + + case 2: + case "end": + return _context108.stop(); + } + }, _marked77[0], this); + } + + var g = gen(); + + assert.deepEqual(g.return("argument"), { + value: "argument", + done: true + }); + + assertAlreadyFinished(g); + }); + + it("should behave as if generator actually returned", function () { + var _marked78 = [gen].map(regeneratorRuntime.mark); + + var executedFinally = false; + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context109) { + while (1) switch (_context109.prev = _context109.next) { + case 0: + _context109.prev = 0; + _context109.next = 3; + return 0; + + case 3: + _context109.next = 8; + break; + + case 5: + _context109.prev = 5; + _context109.t0 = _context109["catch"](0); + + assert.ok(false, "should not have executed the catch handler"); + + case 8: + _context109.prev = 8; + + executedFinally = true; + return _context109.finish(8); + + case 11: + case "end": + return _context109.stop(); + } + }, _marked78[0], this, [[0, 5, 8, 11]]); + } + + var g = gen(); + assert.deepEqual(g.next(), { value: 0, done: false }); + + assert.deepEqual(g.return("argument"), { + value: "argument", + done: true + }); + + assert.strictEqual(executedFinally, true); + assertAlreadyFinished(g); + }); + + it("should return both delegate and delegator", function () { + var _marked79 = [callee, caller].map(regeneratorRuntime.mark); + + var checkpoints = []; + + function callee(errorToThrow) { + return regeneratorRuntime.wrap(function callee$(_context110) { + while (1) switch (_context110.prev = _context110.next) { + case 0: + _context110.prev = 0; + _context110.next = 3; + return 1; + + case 3: + _context110.next = 5; + return 2; + + case 5: + _context110.prev = 5; + + checkpoints.push("callee finally"); + + if (!errorToThrow) { + _context110.next = 9; + break; + } + + throw errorToThrow; + + case 9: + return _context110.finish(5); + + case 10: + case "end": + return _context110.stop(); + } + }, _marked79[0], this, [[0,, 5, 10]]); + } + + function caller(errorToThrow) { + return regeneratorRuntime.wrap(function caller$(_context111) { + while (1) switch (_context111.prev = _context111.next) { + case 0: + _context111.prev = 0; + _context111.next = 3; + return 0; + + case 3: + return _context111.delegateYield(callee(errorToThrow), "t0", 4); + + case 4: + _context111.next = 6; + return 3; + + case 6: + _context111.prev = 6; + + checkpoints.push("caller finally"); + return _context111.finish(6); + + case 9: + case "end": + return _context111.stop(); + } + }, _marked79[1], this, [[0,, 6, 9]]); + } + + var g1 = caller(); + + assert.deepEqual(g1.next(), { value: 0, done: false }); + assert.deepEqual(g1.next(), { value: 1, done: false }); + assert.deepEqual(g1.return(-1), { value: -1, done: true }); + assert.deepEqual(checkpoints, ["callee finally", "caller finally"]); + + var error = new Error("thrown from callee"); + var g2 = caller(error); + + assert.deepEqual(g2.next(), { value: 0, done: false }); + assert.deepEqual(g2.next(), { value: 1, done: false }); + + try { + g2.return(-1); + assert.ok(false, "should have thrown an exception"); + } catch (thrown) { + assert.strictEqual(thrown, error); + } + + assert.deepEqual(checkpoints, ["callee finally", "caller finally", "callee finally", "caller finally"]); + }); +}); + +describe("expressions containing yield subexpressions", function () { + it("should evaluate all subexpressions before yielding", function () { + var _marked80 = [gen].map(regeneratorRuntime.mark); + + function gen(x) { + return regeneratorRuntime.wrap(function gen$(_context112) { + while (1) switch (_context112.prev = _context112.next) { + case 0: + _context112.t0 = x; + _context112.next = 3; + return function (y) { + x = y; + }; + + case 3: + _context112.t1 = _context112.sent; + return _context112.abrupt("return", _context112.t0 * _context112.t1); + + case 5: + case "end": + return _context112.stop(); + } + }, _marked80[0], this); + } + + var g = gen(2); + var result = g.next(); + assert.strictEqual(result.done, false); + + result.value(5); + + assert.deepEqual(g.next(5), { + value: 10, + done: true + }); + }); + + it("should work even with getter member expressions", function () { + var _marked81 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context113) { + while (1) switch (_context113.prev = _context113.next) { + case 0: + _context113.t0 = a.b; + _context113.next = 3; + return "asdf"; + + case 3: + _context113.t1 = _context113.sent; + return _context113.abrupt("return", _context113.t0 + _context113.t1); + + case 5: + case "end": + return _context113.stop(); + } + }, _marked81[0], this); + } + + var a = {}; + var b = 0; + + Object.defineProperty(a, "b", { + get: function () { + return ++b; + } + }); + + var g = gen(); + + assert.strictEqual(a.b, 1); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + assert.strictEqual(a.b, 3); + + assert.deepEqual(g.next(2), { + value: 4, + done: true + }); + }); + + it("should evaluate all array elements before yielding", function () { + var _marked82 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context114) { + while (1) switch (_context114.prev = _context114.next) { + case 0: + _context114.t0 = a; + _context114.next = 3; + return "asdf"; + + case 3: + _context114.t1 = _context114.sent; + _context114.t2 = a; + return _context114.abrupt("return", [_context114.t0, _context114.t1, _context114.t2]); + + case 6: + case "end": + return _context114.stop(); + } + }, _marked82[0], this); + } + + var a = 1; + var g = gen(); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + a = 3; + + assert.deepEqual(g.next(2), { + value: [1, 2, 3], + done: true + }); + }); + + it("should handle callee member expressions correctly", function () { + var _marked83 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context115) { + while (1) switch (_context115.prev = _context115.next) { + case 0: + _context115.t0 = a.slice(0); + _context115.next = 3; + return "asdf"; + + case 3: + _context115.t1 = _context115.sent; + a = _context115.t0.concat.call(_context115.t0, _context115.t1); + return _context115.abrupt("return", a); + + case 6: + case "end": + return _context115.stop(); + } + }, _marked83[0], this); + } + + var a = []; + var g = gen(); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + a.push(1); + + assert.deepEqual(g.next(2), { + value: [2], + done: true + }); + }); + + it("should handle implicit stringification correctly", function () { + var _marked84 = [gen].map(regeneratorRuntime.mark); + + function gen() { + return regeneratorRuntime.wrap(function gen$(_context116) { + while (1) switch (_context116.prev = _context116.next) { + case 0: + _context116.t0 = a; + _context116.next = 3; + return "asdf"; + + case 3: + _context116.t1 = _context116.sent; + return _context116.abrupt("return", _context116.t0 + _context116.t1); + + case 5: + case "end": + return _context116.stop(); + } + }, _marked84[0], this); + } + + var a = [1, 2]; + var g = gen(); + + assert.deepEqual(g.next(), { + value: "asdf", + done: false + }); + + a = [4, 5]; + + assert.deepEqual(g.next(",3"), { + value: "1,2,3", + done: true + }); + }); +}); \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/test/tests.es6.js b/packages/babel-plugin-transform-regenerator/.test/tests.es6.js similarity index 100% rename from packages/babel-plugin-transform-regenerator/test/tests.es6.js rename to packages/babel-plugin-transform-regenerator/.test/tests.es6.js diff --git a/packages/babel-plugin-transform-regenerator/test/tests.transform.js b/packages/babel-plugin-transform-regenerator/.test/tests.transform.js similarity index 100% rename from packages/babel-plugin-transform-regenerator/test/tests.transform.js rename to packages/babel-plugin-transform-regenerator/.test/tests.transform.js From 3185741bcda43d413d9fa48a2410b733d33913fb Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:32:26 +0000 Subject: [PATCH 161/174] newline --- packages/babel-preset-es2015/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index ce48daac76..262cfc8289 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -28,4 +28,4 @@ "babel-plugin-transform-es2015-typeof-symbol": "^6.0.2", "babel-plugin-transform-regenerator": "^6.0.2" } -} \ No newline at end of file +} From 6e3f794cd4f9ef80b60abc5a16e81f9ba914afd2 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:33:52 +0000 Subject: [PATCH 162/174] add empty src directory --- packages/babel-plugin-transform-regenerator/src/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/babel-plugin-transform-regenerator/src/.gitkeep diff --git a/packages/babel-plugin-transform-regenerator/src/.gitkeep b/packages/babel-plugin-transform-regenerator/src/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 2889e01e1eb1d18952ea1cb5812447a01ffaf976 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:40:34 +0000 Subject: [PATCH 163/174] fix plugin name --- packages/babel-plugin-transform-regenerator/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index a285cdf979..d52dd1a07e 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -1,6 +1,6 @@ { "author": "Ben Newman ", - "name": "babel-plugin-regenerator", + "name": "babel-plugin-transform-regenerator", "description": "Source transformer enabling ECMAScript 6 generator functions (yield) in JavaScript-of-today (ES5)", "keywords": [ "generator", From ff99383b5b150e7f75a108b639b1ff844b86e707 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:41:24 +0000 Subject: [PATCH 164/174] v6.0.5 --- VERSION | 2 +- .../babel-plugin-transform-es2015-classes/package.json | 4 ++-- packages/babel-plugin-transform-regenerator/package.json | 4 ++-- packages/babel-preset-es2015/package.json | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index 7a9f89d81a..81f0c273ca 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.2 \ No newline at end of file +6.0.5 \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index 589f25566b..c362856f9b 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-classes", - "version": "6.0.2", + "version": "6.0.5", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", "license": "MIT", @@ -19,4 +19,4 @@ "keywords": [ "babel-plugin" ] -} +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index d52dd1a07e..3bb0154390 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -16,7 +16,7 @@ "desugaring", "ES6" ], - "version": "6.0.3", + "version": "6.0.5", "homepage": "http://github.com/facebook/regenerator", "repository": { "type": "git", @@ -48,4 +48,4 @@ "engines": { "node": ">= 0.6" } -} +} \ No newline at end of file diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index 262cfc8289..3d50a096bf 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "6.0.2", + "version": "6.0.5", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -13,7 +13,7 @@ "babel-plugin-transform-es2015-function-name": "^6.0.2", "babel-plugin-transform-es2015-arrow-functions": "^6.0.2", "babel-plugin-transform-es2015-block-scoped-functions": "^6.0.2", - "babel-plugin-transform-es2015-classes": "^6.0.2", + "babel-plugin-transform-es2015-classes": "^6.0.5", "babel-plugin-transform-es2015-object-super": "^6.0.2", "babel-plugin-transform-es2015-shorthand-properties": "^6.0.2", "babel-plugin-transform-es2015-computed-properties": "^6.0.2", @@ -26,6 +26,6 @@ "babel-plugin-transform-es2015-destructuring": "^6.0.2", "babel-plugin-transform-es2015-block-scoping": "^6.0.2", "babel-plugin-transform-es2015-typeof-symbol": "^6.0.2", - "babel-plugin-transform-regenerator": "^6.0.2" + "babel-plugin-transform-regenerator": "^6.0.5" } -} +} \ No newline at end of file From a9b1c3ee52f542d8d9b5696db9e84bc564333260 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:43:02 +0000 Subject: [PATCH 165/174] fix plugin reference --- packages/babel-runtime/package.json | 4 ++-- packages/babel-runtime/scripts/build-dist.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index f2d865348b..953fdc1f27 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -10,8 +10,8 @@ }, "devDependencies": { "babel-helpers": "^6.0.2", - "babel-plugin-runtime": "^1.0.7", + "babel-plugin-transform-runtime": "^1.0.7", "babel-template": "^6.0.2", "regenerator": "^0.8.34" } -} \ No newline at end of file +} diff --git a/packages/babel-runtime/scripts/build-dist.js b/packages/babel-runtime/scripts/build-dist.js index df8357d9df..3c78e00d2e 100644 --- a/packages/babel-runtime/scripts/build-dist.js +++ b/packages/babel-runtime/scripts/build-dist.js @@ -42,7 +42,7 @@ var transformOpts = { presets: [ require("../../babel-preset-es2015") ], - + plugins: [ require("../../babel-plugin-transform-runtime"), require("../../babel-plugin-transform-es2015-modules-commonjs") @@ -71,7 +71,7 @@ writeFile("regenerator/index.js", readFile("regenerator/runtime-module", true)); writeFile("regenerator/runtime.js", selfContainify(readFile("regenerator/runtime"))); -var coreDefinitions = require("babel-plugin-runtime/lib/definitions"); +var coreDefinitions = require("babel-plugin-transform-runtime/lib/definitions"); var paths = ["is-iterable", "get-iterator"]; From 7501582d56bdea4f25e446df5aebfd45e1c1a259 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:44:09 +0000 Subject: [PATCH 166/174] v6.0.6 --- VERSION | 2 +- packages/babel-runtime/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index 81f0c273ca..e873808261 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.5 \ No newline at end of file +6.0.6 \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 953fdc1f27..f447993be6 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-runtime", - "version": "6.0.2", + "version": "6.0.6", "description": "babel selfContained runtime", "license": "MIT", "repository": "babel/babel", @@ -14,4 +14,4 @@ "babel-template": "^6.0.2", "regenerator": "^0.8.34" } -} +} \ No newline at end of file From ec452941111a2959ac5d29b8ec88f473d315f3ad Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:45:13 +0000 Subject: [PATCH 167/174] v6.0.7 --- VERSION | 2 +- packages/babel-plugin-transform-es2015-classes/package.json | 4 ++-- packages/babel-plugin-transform-regenerator/package.json | 2 +- packages/babel-preset-es2015/package.json | 6 +++--- packages/babel-runtime/package.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/VERSION b/VERSION index e873808261..41bd15e2ea 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.6 \ No newline at end of file +6.0.7 \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index c362856f9b..56209abe13 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-classes", - "version": "6.0.5", + "version": "6.0.7", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", "license": "MIT", @@ -13,7 +13,7 @@ "babel-traverse": "^6.0.2", "babel-helper-define-map": "^6.0.2", "babel-messages": "^6.0.2", - "babel-runtime": "^6.0.2", + "babel-runtime": "^6.0.7", "babel-types": "^6.0.2" }, "keywords": [ diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index 3bb0154390..35216d7c31 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -16,7 +16,7 @@ "desugaring", "ES6" ], - "version": "6.0.5", + "version": "6.0.7", "homepage": "http://github.com/facebook/regenerator", "repository": { "type": "git", diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index 3d50a096bf..649e9edd1b 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "6.0.5", + "version": "6.0.7", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -13,7 +13,7 @@ "babel-plugin-transform-es2015-function-name": "^6.0.2", "babel-plugin-transform-es2015-arrow-functions": "^6.0.2", "babel-plugin-transform-es2015-block-scoped-functions": "^6.0.2", - "babel-plugin-transform-es2015-classes": "^6.0.5", + "babel-plugin-transform-es2015-classes": "^6.0.7", "babel-plugin-transform-es2015-object-super": "^6.0.2", "babel-plugin-transform-es2015-shorthand-properties": "^6.0.2", "babel-plugin-transform-es2015-computed-properties": "^6.0.2", @@ -26,6 +26,6 @@ "babel-plugin-transform-es2015-destructuring": "^6.0.2", "babel-plugin-transform-es2015-block-scoping": "^6.0.2", "babel-plugin-transform-es2015-typeof-symbol": "^6.0.2", - "babel-plugin-transform-regenerator": "^6.0.5" + "babel-plugin-transform-regenerator": "^6.0.7" } } \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index f447993be6..92db6e3113 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-runtime", - "version": "6.0.6", + "version": "6.0.7", "description": "babel selfContained runtime", "license": "MIT", "repository": "babel/babel", From a4cedf62a211873d0bf029615117563b20f2be6a Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:47:35 +0000 Subject: [PATCH 168/174] v6.0.8 --- VERSION | 2 +- packages/babel-plugin-transform-es2015-classes/package.json | 4 ++-- packages/babel-plugin-transform-regenerator/package.json | 2 +- packages/babel-preset-es2015/package.json | 6 +++--- packages/babel-runtime/package.json | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/VERSION b/VERSION index 41bd15e2ea..a0c2cf5cd7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.7 \ No newline at end of file +6.0.8 \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-classes/package.json b/packages/babel-plugin-transform-es2015-classes/package.json index 56209abe13..5800358576 100644 --- a/packages/babel-plugin-transform-es2015-classes/package.json +++ b/packages/babel-plugin-transform-es2015-classes/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-classes", - "version": "6.0.7", + "version": "6.0.8", "description": "Compile ES2015 classes to ES5", "repository": "babel/babel", "license": "MIT", @@ -13,7 +13,7 @@ "babel-traverse": "^6.0.2", "babel-helper-define-map": "^6.0.2", "babel-messages": "^6.0.2", - "babel-runtime": "^6.0.7", + "babel-runtime": "^6.0.8", "babel-types": "^6.0.2" }, "keywords": [ diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index 35216d7c31..09786a0426 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -16,7 +16,7 @@ "desugaring", "ES6" ], - "version": "6.0.7", + "version": "6.0.8", "homepage": "http://github.com/facebook/regenerator", "repository": { "type": "git", diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index 649e9edd1b..39a9449290 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "6.0.7", + "version": "6.0.8", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -13,7 +13,7 @@ "babel-plugin-transform-es2015-function-name": "^6.0.2", "babel-plugin-transform-es2015-arrow-functions": "^6.0.2", "babel-plugin-transform-es2015-block-scoped-functions": "^6.0.2", - "babel-plugin-transform-es2015-classes": "^6.0.7", + "babel-plugin-transform-es2015-classes": "^6.0.8", "babel-plugin-transform-es2015-object-super": "^6.0.2", "babel-plugin-transform-es2015-shorthand-properties": "^6.0.2", "babel-plugin-transform-es2015-computed-properties": "^6.0.2", @@ -26,6 +26,6 @@ "babel-plugin-transform-es2015-destructuring": "^6.0.2", "babel-plugin-transform-es2015-block-scoping": "^6.0.2", "babel-plugin-transform-es2015-typeof-symbol": "^6.0.2", - "babel-plugin-transform-regenerator": "^6.0.7" + "babel-plugin-transform-regenerator": "^6.0.8" } } \ No newline at end of file diff --git a/packages/babel-runtime/package.json b/packages/babel-runtime/package.json index 92db6e3113..97f37bdcd3 100644 --- a/packages/babel-runtime/package.json +++ b/packages/babel-runtime/package.json @@ -1,6 +1,6 @@ { "name": "babel-runtime", - "version": "6.0.7", + "version": "6.0.8", "description": "babel selfContained runtime", "license": "MIT", "repository": "babel/babel", From 08c87ddcfdfa31dd2a2b273600c51cd5fecc744c Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:50:17 +0000 Subject: [PATCH 169/174] v6.0.9 --- VERSION | 2 +- .../babel-plugin-transform-es2015-block-scoping/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index a0c2cf5cd7..fb06ed73fa 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.8 \ No newline at end of file +6.0.9 \ No newline at end of file diff --git a/packages/babel-plugin-transform-es2015-block-scoping/package.json b/packages/babel-plugin-transform-es2015-block-scoping/package.json index cb65100065..29ea2349b7 100644 --- a/packages/babel-plugin-transform-es2015-block-scoping/package.json +++ b/packages/babel-plugin-transform-es2015-block-scoping/package.json @@ -1,6 +1,6 @@ { "name": "babel-plugin-transform-es2015-block-scoping", - "version": "6.0.2", + "version": "6.0.9", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": "babel/babel", "license": "MIT", From ac70f690e94c42332b99934537d79357da118ff5 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:53:40 +0000 Subject: [PATCH 170/174] fix babel-plugin-transform-regenerator dependencies --- packages/babel-plugin-transform-regenerator/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index 09786a0426..6447dc4797 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -29,9 +29,9 @@ }, "dependencies": { "commoner": "~0.10.3", - "babel-plugin-transform-es2015-block-scoping": "^5.0.0", - "babel-plugin-syntax-async-functions": "^5.0.0", - "babel-plugin-transform-es2015-for-of": "^5.0.0", + "babel-plugin-transform-es2015-block-scoping": "^6.0.0", + "babel-plugin-syntax-async-functions": "^6.0.0", + "babel-plugin-transform-es2015-for-of": "^6.0.0", "babel-core": "^6.0.0", "babel-traverse": "^6.0.0", "babel-types": "^6.0.0", @@ -48,4 +48,4 @@ "engines": { "node": ">= 0.6" } -} \ No newline at end of file +} From 90b125bc1d11a3fc79d719d090e490858d106fe6 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 18:54:16 +0000 Subject: [PATCH 171/174] v6.0.10 --- VERSION | 2 +- packages/babel-plugin-transform-regenerator/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index fb06ed73fa..c5a1e4c436 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.9 \ No newline at end of file +6.0.10 \ No newline at end of file diff --git a/packages/babel-plugin-transform-regenerator/package.json b/packages/babel-plugin-transform-regenerator/package.json index 6447dc4797..8cf845e18e 100644 --- a/packages/babel-plugin-transform-regenerator/package.json +++ b/packages/babel-plugin-transform-regenerator/package.json @@ -16,7 +16,7 @@ "desugaring", "ES6" ], - "version": "6.0.8", + "version": "6.0.10", "homepage": "http://github.com/facebook/regenerator", "repository": { "type": "git", @@ -48,4 +48,4 @@ "engines": { "node": ">= 0.6" } -} +} \ No newline at end of file From b23ffca1cb7e5c26393ef1d6e06dd4d07dec0ad1 Mon Sep 17 00:00:00 2001 From: Maxime Quandalle Date: Thu, 29 Oct 2015 22:32:58 +0100 Subject: [PATCH 172/174] Add Meteor as a Monorepo example --- doc/design/monorepo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/design/monorepo.md b/doc/design/monorepo.md index a702132d31..61c5de82e9 100644 --- a/doc/design/monorepo.md +++ b/doc/design/monorepo.md @@ -22,7 +22,7 @@ This is quite taboo but let's look at the pros and cons: ## This is dumb! Nobody in open source does this! -[React](https://github.com/facebook/react/tree/master/packages) and [Ember](https://github.com/emberjs/ember.js/tree/master/packages), among others, do this. +[React](https://github.com/facebook/react/tree/master/packages), [Meteor](https://github.com/meteor/meteor/tree/devel/packages), and [Ember](https://github.com/emberjs/ember.js/tree/master/packages), among others, do this. ## Previous discussion From 198025aea91f8b1f36a1d95203eb8a25e61bee04 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 29 Oct 2015 23:49:03 +0000 Subject: [PATCH 173/174] add babel-plugin-transform-es2015-modules-commonjs to babel-preset-es2015 --- packages/babel-preset-es2015/index.js | 3 ++- packages/babel-preset-es2015/package.json | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/babel-preset-es2015/index.js b/packages/babel-preset-es2015/index.js index fec29c3586..c085fa188b 100644 --- a/packages/babel-preset-es2015/index.js +++ b/packages/babel-preset-es2015/index.js @@ -18,6 +18,7 @@ module.exports = { require("babel-plugin-transform-es2015-destructuring"), require("babel-plugin-transform-es2015-block-scoping"), require("babel-plugin-transform-es2015-typeof-symbol"), - require("babel-plugin-transform-regenerator") + require("babel-plugin-transform-es2015-modules-commonjs"), + require("babel-plugin-transform-regenerator"), ] }; diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index 39a9449290..fd176b35c3 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -26,6 +26,7 @@ "babel-plugin-transform-es2015-destructuring": "^6.0.2", "babel-plugin-transform-es2015-block-scoping": "^6.0.2", "babel-plugin-transform-es2015-typeof-symbol": "^6.0.2", + "babel-plugin-transform-es2015-modules-commonjs": "^6.0.2", "babel-plugin-transform-regenerator": "^6.0.8" } -} \ No newline at end of file +} From 25f78c356eda8928b6d506e6a7b03db4e456a45c Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Fri, 30 Oct 2015 00:13:15 +0000 Subject: [PATCH 174/174] v6.0.11 --- VERSION | 2 +- packages/babel-preset-es2015/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/VERSION b/VERSION index c5a1e4c436..cb372c07bf 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -6.0.10 \ No newline at end of file +6.0.11 \ No newline at end of file diff --git a/packages/babel-preset-es2015/package.json b/packages/babel-preset-es2015/package.json index fd176b35c3..f9e8099e12 100644 --- a/packages/babel-preset-es2015/package.json +++ b/packages/babel-preset-es2015/package.json @@ -1,6 +1,6 @@ { "name": "babel-preset-es2015", - "version": "6.0.8", + "version": "6.0.11", "description": "", "author": "Sebastian McKenzie ", "homepage": "https://babeljs.io/", @@ -29,4 +29,4 @@ "babel-plugin-transform-es2015-modules-commonjs": "^6.0.2", "babel-plugin-transform-regenerator": "^6.0.8" } -} +} \ No newline at end of file